中易网

求STC 12c5a60s2单片机板 显示数码管滚动的keil程序。

答案:3  悬赏:30  
解决时间 2021-01-12 04:26
  • 提问者网友:我一贱你就笑
  • 2021-01-11 19:09
求STC 12c5a60s2单片机板 显示数码管滚动的keil程序。
最佳答案
  • 二级知识专家网友:空山清雨
  • 2021-01-11 19:30
数码管有单独一位,也有多位的,不过就其显示原理来讲是一样,以一个4位共阳数码管为例,它有12个管脚,其中,a,b,...h,分别接IO口就可以了。余下的4个口,分别为CS0,。。CS3共计4个,称为位选,对应数码管的从右到左的4个位。
全部回答
  • 1楼网友:西风乍起
  • 2021-01-11 21:33
看你电路怎么设计。
  • 2楼网友:神也偏爱
  • 2021-01-11 20:49

#include
int count1s;
unsigned int count1m;
unsigned char dis_bitcount=0;
unsigned char display_o[6];
unsigned char display_q[6];
unsigned char code SEG[11]={0xc0 0 0 0 0 0 0 0 0 0 0 char dis_bitdriver=0;
void delay5ms()
{
register int i;
for (i=0;i<500;i++)
;
}
main()
{
unsigned char dcode;
unsigned char p2code p3code;
count1m=0;
count1s=0;
while(1)
{
switch(dis_bitcount+1)
{
case 1:dis_bitdriver=0x01; break;
case 2:dis_bitdriver=0x02; break;
case 3:dis_bitdriver=0x04; break;
case 4:dis_bitdriver=0x08; break;
case 5:dis_bitdriver=0x10; break;
default:dis_bitdriver=0x20; break;
}
p2code=P2;
P2=p2code&0x40;
dcode=SEG[display_q[dis_bitcount]];
P0=SEG[display_q[dis_bitcount]];
P2=(p2code&0x40)|dis_bitdriver;
if(dis_bitcount =5) dis_bitcount=0;
else dis_bitcount++;
count1s++;
if(count1s =400)
{
count1m++;
count1s=0;
}
p3code=P3&0x04;
if(count1m 99) count1m=0;
if(p3code==0) count1m=0;
display_o[1]=count1m/10;
display_o[0]=count1m-display_o[1]*10;
display_q[1]=display_o[1];
display_q[0]=display_o[0];
delay5ms();
}
}
6位LED显示接口说明:
P0.0---P0.7 通过7406 驱动LED的8个段;
P2.0---P2.5 通过UN2003驱动6个LED 的公共端追问能不能跟我具体讲讲?要的是数码管啊,不是LED的、
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息