日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

74hc165C语言程序,单片机驱动74hc165程序

發(fā)布時(shí)間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 74hc165C语言程序,单片机驱动74hc165程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

74HC165簡(jiǎn)介

74HC165是八位并行輸入/串行輸出移位寄存器,兩片74HC165串聯(lián)在一起,在時(shí)鐘脈沖的作用下,從KB-DAT讀入串行數(shù)據(jù),可完成對(duì)16位鍵盤(pán)數(shù)據(jù)掃描讀取。

74HC165是一款高速CMOS器件,74HC165遵循JEDEC標(biāo)準(zhǔn)no.7A。74HC165引腳兼容低功耗肖特基TTL(LSTTL)系列。

74HC165是8位并行輸入串行輸出移位寄存器,可在末級(jí)得到互斥的串行輸出(Q0和Q7),當(dāng)并行讀取(PL)輸入為低時(shí),從D0到D7口輸入的并行數(shù)據(jù)將被異步地讀取進(jìn)寄存器內(nèi)。而當(dāng)PL為高時(shí),數(shù)據(jù)將從DS輸入端串行進(jìn)入寄存器,在每個(gè)時(shí)鐘脈沖的上升沿向右移動(dòng)一位(Q0→Q1→Q2,等等)。利用這種特性,只要把Q7輸出綁定到下一級(jí)的DS輸入,即可實(shí)現(xiàn)并轉(zhuǎn)串?dāng)U展。

74HC165的時(shí)鐘輸入是一個(gè)“門(mén)控或”結(jié)構(gòu),允許其中一個(gè)輸入端作為低有效時(shí)鐘使能(CE)輸入。CP和CE的引腳分配是獨(dú)立的并且在必要時(shí),為了布線的方便可以互換。只有在CP為高時(shí),才允許CE由低轉(zhuǎn)高。在PL上升沿來(lái)臨之前,CP或者CE應(yīng)當(dāng)置高,以防止數(shù)據(jù)在PL的活動(dòng)狀態(tài)發(fā)生位移。

單片機(jī)驅(qū)動(dòng)74hc165程序

當(dāng)1腳拉低時(shí),八位并行數(shù)據(jù)被壓入鎖存器,但與此同時(shí),D7也已經(jīng)從7腳輸出,因此只要再循環(huán)7次將數(shù)據(jù)讀出即可

ucharReadExport(void)

{

unsignedchari=0,receive_date=0;

ucharRead_Int;

Clr_P25;//使能控制。為低電平時(shí),并行數(shù)據(jù)進(jìn)入鎖存器

Clr_P25;

Read_Int=(P2&0x10);//串行輸出數(shù)據(jù)線

if(Read_Int==0x10)//把最高位讀出

receive_date|=0x01;

Clr_P03;

Set_P25;//為高電平時(shí),可以進(jìn)行串行數(shù)據(jù)讀出

for(i=1;i《=7;i++)//接下來(lái)只要進(jìn)行7次循環(huán)

{

Clr_P03;

Set_P03;//時(shí)鐘線,上升沿有效

Read_Int=(P2&0x10);//串行輸出數(shù)據(jù)線

if(Read_Int==0x10)

{

receive_date|=(0x01《《i);

}

}

returnreceive_date;

}

基于51單片機(jī)之74HC165實(shí)驗(yàn)例程

**************************Copyright(C)CaKe*****************************************

==================================================

==============**文件名:main.c==============

==============**作者:CaKen==============

==============**版本號(hào):V1.0==============

==============**時(shí)間:2014.08.16==============

==============**功能描述:74HC165實(shí)驗(yàn)測(cè)試==============

====================================================

**********************************************************

#include

#include

//SPI接口

sbitCLK=P3^6;//串行時(shí)鐘

sbiTIN_PL=P1^6;//把數(shù)據(jù)加載到鎖存器中

sbiTIN_Dat=P1^7;//數(shù)據(jù)通過(guò)P1.7腳移進(jìn)單片機(jī)內(nèi)處理

sbitRELAY=P1^4;//繼電器

sbitBEEP=P1^5;//蜂鳴器

unsignedcharbdataKey;

sbitK0=Key^0;//位定義

sbitK1=Key^1;//位定義

sbitK2=Key^2;//位定義

sbitK3=Key^3;//位定義

sbitK4=Key^4;//位定義

sbitK5=Key^5;//位定義

sbitK6=Key^6;//位定義

sbitK7=Key^7;//位定義

bitM0,K0J;//位定義

**********************************************************

函數(shù)名:

調(diào)用:beep();

參數(shù):

返回值:

結(jié)果:

備注:蜂鳴器(讓蜂鳴器發(fā)出動(dòng)聽(tīng)聲音)

************************************************************

voidbeep()

{

unsignedchari,j;

for(i=0;i《2;i++)

{

for(j=0;j《255;j++)

{_nop_();}

BEEP=!BEEP;//BEEP取反

}

BEEP=1;//關(guān)閉蜂鳴器

}

*********************************************************

函數(shù)名:74HC165函數(shù)初始化

調(diào)用:HC165_Init();

參數(shù):

返回值:

結(jié)果:

備注:IN_PL上升沿,CLK上升沿

********************************************************

unsignedlongHC165_Init(void)

{

unsignedchari;

unsignedinTIndata;

IN_PL=0;//上升沿

_nop_();//短暫延時(shí)產(chǎn)生一定寬度的脈沖

IN_PL=1;//將外部信號(hào)全部讀入鎖存器中

_nop_();

indata=0;//保存數(shù)據(jù)的變量清0

for(i=0;i《8;i++)

{

indata=indata《《1;//左移一位

if(IN_Dat==1)

indata=indata+1;//如果IN_Dat檢測(cè)到高電平保存數(shù)據(jù)的變量加1

CLK=0;//時(shí)鐘置0

_nop_();//上升沿

CLK=1;//時(shí)鐘置1

}

return(~indata);//將保存數(shù)據(jù)的變量取反后返回

}

*********************************************************

函數(shù)名:主函數(shù)

調(diào)用:main

參數(shù):

返回值:

結(jié)果:

備注:74HC165控制八個(gè)按鍵

********************************************************

main()

{

while(1)

{

unsignedlongInput=HC165_Init();//調(diào)用165驅(qū)動(dòng)程序

Key=Input&0xff;//將數(shù)據(jù)傳給位變量

RELAY=1;

P2=0xff;//清除

if(K0&K0J)

M0=~M0;//實(shí)現(xiàn)脈沖輸入大家仔細(xì)體會(huì)

K0J=~K0;

if(M0){RELAY=0;P2=0x7f;}//實(shí)現(xiàn)脈沖輸入

if(K1){beep();P2=0xbf;}//K1為1時(shí)開(kāi)啟蜂鳴器和2個(gè)燈

if(K2){beep();P2=0xdf;}

if(K3){beep();P2=0xef;}

if(K4){beep();P2=0xf7;}

if(K5){beep();P2=0xfb;}

if(K6){beep();P2=0xfd;}

if(K7){beep();P2=0xfe;}

}

}

總結(jié)

以上是生活随笔為你收集整理的74hc165C语言程序,单片机驱动74hc165程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。