標(biāo)題: 74hc165使用教程適合初學(xué)者 [打印本頁]
作者: 2500 時(shí)間: 2016-10-28 14:57
標(biāo)題: 74hc165使用教程適合初學(xué)者
#include<reg52.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit SHLD=P1^7; //1腳SH/LD移位控制/置入控制(低電平有效)
sbit CLK=P1^6; //2腳CLK,CLK INH時(shí)鐘輸入端(上升沿有效)
sbit QH=P1^5; //9腳QH輸出端
uint data1=0,
data2=0;
data3=0;
void XD_74hc165_Readdata(void)
{
uchar i; //位移時(shí)使用
unsigned char
readdata1,
readdata2,
readdata3;//獲取數(shù)據(jù)時(shí)使用
readdata1 = 0x00; //初始值
readdata2 = 0x00;
readdata3 = 0x00;
SHLD=0; //將165外部端口數(shù)據(jù)裝入內(nèi)部寄存器 置入控制端口(低電平有效)
_nop_();
SHLD=1; //抬高為移位準(zhǔn)備 移位控制(高電平有效)
/****************讀取第一個(gè)74HC165***************************************************/
for(i=0;i<8;i++) //移動(dòng)8位字節(jié)
{
readdata1<<=1; //每次左移一位
CLK=0; //時(shí)鐘低
_nop_();
readdata1|=QH; //先接收高位
CLK=1; //時(shí)鐘高,上升沿下一個(gè)數(shù)據(jù)移出
_nop_();
}
/****************讀取第二個(gè)74HC165***************************************************/
for(i=0;i<8;i++) //移動(dòng)8位字節(jié)
{
readdata2<<=1; //每次左移一位
CLK=0; //時(shí)鐘低
_nop_();
readdata2|=QH; //先接收高位
CLK=1; //時(shí)鐘高,上升沿下一個(gè)數(shù)據(jù)移出
_nop_();
}
/****************讀取第三個(gè)74HC165***************************************************/
for(i=0;i<8;i++) //移動(dòng)8位字節(jié)
{
readdata3<<=1; //每次左移一位
CLK=0; //時(shí)鐘低
_nop_();
readdata3|=QH; //先接收高位
CLK=1; //時(shí)鐘高,上升沿下一個(gè)數(shù)據(jù)移出
_nop_();
}
data1=readdata1; //返回接收字符
data2=readdata2;
data3=readdata3;
}
void main()
{
XD_74hc165_Readdata();
while(1)
{
P2=data1; //顯示
P3=data2;
P0=data3;
}
}
[attach]3[/attach]
-
-
165.rar
2016-10-28 14:57 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
74.45 KB, 下載次數(shù): 29, 下載積分: 黑幣 -5
作者: 騷年 時(shí)間: 2017-4-8 09:37
有沒有級(jí)聯(lián)圖
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |