单片机交流
直播中

茶壶茶茶

11年用户 584经验值
私信 关注
[问答]

求大神分享使用软件Proteus和Keil uVision4实现6位数码管动态时间扫描程序

求大神分享使用软件proteus和Keil uVision4实现6位数码管动态时间扫描程序

回帖(1)

黄锐

2021-9-28 15:28:50
#include
***it con1=P3^0;
***it con2=P3^1;
***it con3=P3^2;
***it con4=P3^3;
***it con5=P3^4;
***it con6=P3^5;
int sec=40,min=59,hour=23;//全局变量
char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80
,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//把数组放入ROM中
void delay(char ms)//延时的时间是由ms变量来控制
{
char x,y;//8位-128-127
for(x=ms;x>0;x--)//每执行一次x,就执行110次y
for(y=110;y>0;y--);//此时y变量是110,大概循环110次的y之后,时间是1ms
}


main()
{
P3=0x00;//首先关闭P3口,让所有的小端口都不能控制
while(1)
{
sec++;
if(sec==60)//注意双等号
{
sec=0;
min++;
if(min==60)
{
min=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
delay(20);


P2=table[hour/10];
con1=1;//先打开控制1的三极管
delay(20);//延时一段时间,让1号数码管显示时间为20ms
con1=0;//关闭1号数码管,因为下一个要控制2号数码管


P2=table[hour%10];
con2=1;
delay(20);
con2=0;


P2=table[min/10];
con3=1;
delay(20);
con3=0;


P2=table[min%10];
con4=1;
delay(20);
con4=0;


P2=table[sec/10];
con5=1;
delay(20);
con5=0;


P2=table[sec%10];
con6=1;
delay(20);
con6=0;
}
}
电路仿真效果
举报

更多回帖

发帖
×
20
完善资料,
赚取积分