将74HC165并行口健狀态信号串行輸入,再串行輸出至74HC164,控制164并行口LED亮暗,要求LED亮暗狀态與按健開合狀态一緻。
#include<reg51.h>//包含通路sfr庫函數reg51.h
sbit P25=P2^5;//定義P25為P2.5
sbit P26=P2^6;//定義P26為P2.6
sbit P27=P2^7;//定義P27為P2.7
void main(){//主函數
unsigned char i,s;//定義循環序号i,串行資料暫存器s
unsigned long t;//定義延時參數t
SCON=0;//置串行口方式0,禁止接收
ES=0;//禁止串行中斷
while(1){//無限循環,不斷讀取鍵值,輸出鍵信号
for(i=0;i<8;i++){//165串行輸入
P25=0;P25=1;//先鎖存165并行口資料,再允許串行移位操作
P26=0;//控制輸入的兩或門開,選通165發送TXD、接收RXD信号
REN=1;//80C51允許并啟動串行接收
while(RI==0);//等待串行接收完畢
REN=0;//串行接收完畢,禁止接收
RI=0;//清接收中斷标志
P26=1;//控制輸入的兩或門關,禁止165發送TXD、接收RXD信号
s=SBUF;)//鍵狀态資料暫存s
for(i=0;i<8;i++){//164串行輸出
P27=0;//控制輸出的兩或門開,選通164發送TXD、RXD信号
SBUF=s;//串行發送鍵狀态資料
while(TI==0);//等待串行發送完畢
TI=0;//串行發送完畢,清發送中斷标志
P27=1;}//控制輸出的兩或門關,禁止164發送TXD、RXD信号