找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3267|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

74hc164和74hc165串口驅(qū)動(dòng)程序?qū)Σ唬?/span>

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:77319 發(fā)表于 2015-5-6 21:56 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>   
sbit   LOAD=P1^6;            //用P1^6控制SH/LD管腳   
sbit   CLR=P1^7;             //用P1^7控制CLR  
//----------------------------------------------------------------------
// 函數(shù)名稱:UART_init()   
// 功能說(shuō)明:串口初始化,設(shè)定串口工作在方式0   
//----------------------------------------------------------------------

void UART_init(void)   
{
SCON =0x10;              //沒(méi)串行口方式0,允許接收,啟動(dòng)接收過(guò)程  
ES=0;                    // 禁止串口中斷   
}   
//----------------------------------------------------------------------  
//  函數(shù)名稱:PA()  
//  輸出參數(shù):返回由并口輸入的數(shù)據(jù)  
//  功能說(shuō)明:接收八位串行數(shù)據(jù)   
//  函數(shù)名稱:PA_out()
//  輸入?yún)?shù):PA_data,需要從74LS164并行口輸出的數(shù)據(jù)
//  功能說(shuō)明:發(fā)送八位串行數(shù)據(jù)至并口  
//----------------------------------------------------------------------  
unsigned char PA(void)   
{
unsigned char PA_data;            
LOAD=0;                   //當(dāng)P1.6輸出低電平,74LS165將并行數(shù)據(jù)置入寄存器中  
LOAD=1;                   //當(dāng)P1.6輸出高電平,74LS165將并行數(shù)據(jù)置入寄存器中  
UART_init();              //74LS165工作在時(shí)鐘控制下的串行移位狀態(tài)  
While(RI==0);           //循環(huán)等待  RI=0;   
PA_data=SBUF;   
return PA_data;              //返回并行輸入的數(shù)據(jù)  
}
void  PA_out(unsigned char)  
{
CLR =0;                    //并口輸出清零
CLR =1;                    //開(kāi)始串行移位  
UART_init();               //74LS165工作在時(shí)鐘控制下的串行移位狀態(tài)
While(TI==0);            //循環(huán)等待
TI=0;  
SBUF=PA_data;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:77319 發(fā)表于 2015-5-6 22:00 | 只看該作者
要求用74hc165輸入并且用74hc164輸出,這個(gè)驅(qū)動(dòng)程序可以嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表