天天看点

proteus——74hc164+165

proteus——74hc164+165

将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信号
           

继续阅读