您的位置 首页 IOT

proteus与keil Cx51的单片机仿真(串行通信口)

单片机串行口工作于方式0,通过74LS164实现串并转换,来控制共阳极数码管的显示,当按下K01按钮显示2010,按下K02键显示1987,按下K03键显

单片机串行口作业于方法0,经过74LS164完结串并转化,来操控共阳极数码管的显现,当按下K01按钮显现2010,按下K02键显现1987,按下K03键显现0606,按下K04键显现1988,按下K05键显现1224。其间数字显现可由自己设定.

电路图:

C程序:

#include
#include
#include
#define uchar unsigned char//宏界说
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P2_0=P2^0;
uchar code discode[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//串行方法下共阳极数码管段码表0~9
unsigned char leddis[4]={0,1,2,3};//显存,有几个数码管进行界说
void display(void)//数码管显现函数
{
unsigned char count;//数码管个数
P2_0=0;//P2.0引脚输出清零信号,对74LS164清零
_nop_();
_nop_();//延时,确保清零完结
P2_0=1;//完毕对74LS164清零
for(count=4;count>0;count–)
{
SBUF=discode[leddis[count-1]];
while(TI==0);TI=0;
}
}
void main()
{
SCON=0x00;//设定UART的作业方法为方法0
leddis[0]=0;leddis[1]=1;leddis[2]=2;leddis[3]=3;//显现内容初始化
display();//显现函数
while(1)
{
if(P1_1==0)//K01按下,即P1_1被按下,显现2010
{leddis[0]=2;leddis[1]=0;leddis[2]=1;leddis[3]=0;
display();
P1_1=1;}
if(P1_2==0)//K02按下,即P1_2被按下,显现1987
{leddis[0]=1;leddis[1]=9;leddis[2]=8;leddis[3]=7;
display();
P1_2=1;}
if(P1_3==0)//K03按下,即P1_3被按下,显现0606
{leddis[0]=0;leddis[1]=6;leddis[2]=0;leddis[3]=6;
display();
P1_3=1;}
if(P1_4==0)//K04按下,即P1_4被按下,显现1988
{leddis[0]=1;leddis[1]=9;leddis[2]=8;leddis[3]=8;
display();
P1_4=1;}
if(P1_5==0)//K05按下,即P1_5被按下,显现1224
{leddis[0]=1;leddis[1]=2;leddis[2]=2;leddis[3]=4;
display();
P1_5=1;}
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/260008.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部