利用单片机控制6个共阳数码管,采用动态显示方式稳定显示自己的生日

利用单片机控制6个共阳数码管,采用动态显示方式稳定显示自己的生日,如小王同学出生于1999年6月14日,显示效果为“990614”。画出电路图,并用C语言编写程序。

#include<reg51.h>
#define uchar unsigned char
uchar code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9
unsigned char scanled;
unsigned char disdat[6];
void dischg()
{
 disdat[0]=4;
 disdat[1]=1;
 disdat[2]=6;
 disdat[3]=0;
 disdat[4]=9;
 disdat[5]=9; 
}
void t1isr() interrupt 3 //显示
{
 TH1=0xec;
 TL1=0x78;
 switch(scanled)
 {
  case 0:
   P2=0x01;
   P0=~ledtab[disdat[5]];
   break;
  case 1:
   P2=0x02;
   P0=~ledtab[disdat[4]];
   break;
  case 2:
   P2=0x04;
   P0=~ledtab[disdat[3]];
   break;
  case 3:
   P2=0x08;
   P0=~ledtab[disdat[2]];
   break;
  case 4:
   P2=0x10;
   P0=~ledtab[disdat[1]];
   break;
  case 5:
   P2=0x20;
   P0=~ledtab[disdat[0]];
   break;
  default:break;
 }
 scanled++;
 scanled%=6;
}
main()
{
 TMOD=0x10;
 TH1=0xec;
 TL1=0x78;
 EA=1;
 TR1=1;
 ET1=1;
 scanled=0;
 dischg();
 while(1);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-16

网页链接网页链接这是我写的解析你可以看看,主要是方法

第2个回答  2016-06-14
你好!程序什么时间要?是用仿真实现,还是有开发板?
第3个回答  2016-06-14
需要帮你做作业吗。,打赏吗?
相似回答