学习单片机动态数码管显示,数字时钟是最好的案例,本仿真案例有以下特点。
1.使用定时器0,方式2,可以减小定时器的误差;
2.调时、调分按键具有连加功能,与常见的按键松手检测有区别;
3.具有秒点显示功能,若制作实物案例,可购买带秒点的数码管。
参考程序:
#include
#define uint unsigned int
#define uchar unsigned char
sbit w1=P2^2;
sbit w2=P2^3;
sbit w3=P2^4;
sbit w4=P2^5;
sbit s1=P1^3;
sbit s2=P1^4;
sbit s3=P1^5;
uint shi,fen,sec;
uint num,s1num,keynum;
uchar m;
void delay(uint);
void keyscan();
void time_adj();
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}; //共阴代码
void display() //数码管显示
{
w1=1;w2=1;w3=1;w4=1;
P0=~tab[shi/10%10];
if((s1num==2)|(shi/10%10==0)){w1=1;}
else{w1=0;}
delay(5);
w1=1;
if(num<2000)
{P0=~(tab[shi%10]|0x80); } //秒点显示
else
{P0=~tab[shi%10];}
if(s1num==2){w2=1;}
else{w2=0;}
delay(5);
w2=1;
P0=~tab[fen/10%10];
if(s1num==1){w3=1;}
else{w3=0;}
delay(5);
w3=1;
P0=~tab[fen%10];
if(s1num==1){w4=1;}
else{w4=0;}
delay(5);
w4=1;
}
void keyscan() //功能键函数
{
if(s1==0)
{
delay(5); //消抖
if(s1==0)
{
while(!s1)display();
s1num++;
if(s1num==3)
{
s1num=0;
}
}
}
}
void time_adj() //加、减键时间调整函数
{
if(s1num!=0)
{
if(s2==0)
{
keynum++;
if(keynum>18) //连加延时
{
switch(s1num)
{
case 1:
shi++;
if(shi>23)
{shi=0;}
keynum=0;
break;
case 2:
fen++;
if(fen>59)
{fen=0;}
keynum=0;
break;
}
}
}
if(s3==0)
{
keynum++;
if(keynum>18)
{
switch(s1num)
{
case 1:
shi--;
if(shi<0)
{shi=23;}
keynum=0;
break;
case 2:
fen--;
if(fen<0)
{fen=59;}
keynum=0;
break;
}
}
}
}
}
void main()
{
shi=12;fen=0;sec=0;num=0;
TMOD=0x02;
TH0=0x06;
TL0=0x06;
EA=1;
ET0=1;
TR0=1;
while(1)
{
keyscan();
time_adj();
display();
if(sec>59)
{
sec=0;
fen++;
if(fen>59)
{
fen=0;
shi++;
if(shi>23)
{
shi=0;
}
}
}
}
}
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void Timer0() interrupt 1 //定时器服务
{
num++;
if(num==4000){num=0;sec++;}
}
上一篇:基于51单片机计算器源程序 可发送给上位机 可红外
下一篇:51单片机交流电检测程序 单相工频电参数测量仪
推荐阅读
史海拾趣
为了进一步扩大市场份额,Caddell-Burns Manufacturing公司开始积极寻求国际合作。他们与多个国家的电子制造商建立了稳定的合作关系,将产品出口到世界各地。同时,公司还参加了多个国际电子展会,展示了公司的最新产品和技术成果,吸引了众多客户的关注。这些举措不仅提升了公司的国际知名度,也为公司的长期发展奠定了坚实基础。
在竞争激烈的电子行业中,质量管理是企业生存和发展的关键。Caddell-Burns Manufacturing公司深知这一点,因此他们始终将质量放在首位。公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、包装等各个环节都进行严格把关。同时,公司还定期对员工进行质量培训,提高他们的质量意识和操作技能。这些措施确保了公司产品的稳定性和可靠性,赢得了客户的信赖。
在竞争激烈的电子行业中,质量管理是企业生存和发展的关键。Caddell-Burns Manufacturing公司深知这一点,因此他们始终将质量放在首位。公司建立了严格的质量管理体系,从原材料采购到产品生产、检验、包装等各个环节都进行严格把关。同时,公司还定期对员工进行质量培训,提高他们的质量意识和操作技能。这些措施确保了公司产品的稳定性和可靠性,赢得了客户的信赖。
随着公司规模的扩大和市场需求的增长,Boyd Corporation积极拓展全球业务版图。公司在多个国家和地区设立了生产基地和研发中心,以便更好地服务全球客户。通过全球化布局,Boyd Corporation不仅提升了生产效率,还加强了与全球客户的合作关系,进一步巩固了其在电子行业的领导地位。
在电子行业快速发展的背景下,Boyd Corporation始终保持着对技术的追求和对市场的敏锐洞察。公司不断深耕细作,优化现有产品,同时积极研发新产品,以满足市场的不断变化和客户的不同需求。通过持续创新,Boyd Corporation在电子行业中始终保持着领先地位,为客户提供了更优质的产品和服务。
这五个故事展示了Boyd Corporation在电子行业中的发展历程和取得的成就。作为一家技术领先、市场领先的企业,Boyd Corporation将继续秉承创新、质量、服务的理念,为电子行业的发展做出更大的贡献。
随着公司规模的扩大和市场需求的增长,Boyd Corporation积极拓展全球业务版图。公司在多个国家和地区设立了生产基地和研发中心,以便更好地服务全球客户。通过全球化布局,Boyd Corporation不仅提升了生产效率,还加强了与全球客户的合作关系,进一步巩固了其在电子行业的领导地位。
基于Ansoft电磁技术的新一代PCB仿真设计 针对PCB设计人员关注的问题予以讨论,剖析PCB电磁问题的实质及处理方法,介绍Ansoft仿真解决方案的技术特点,与同类型产品的定位关系及比较,并为您展示Ansoft电磁技术及工具在国内 ...… 查看全部问答∨ |
|
大家好,我是一名大三的学生,学的是嵌入式方向的,但我们现在才学嵌入式操作系统,都TMD还是理论,学了等于没学,就上学期还学了个汇编,现在一学期都快过完了,感觉什么关于嵌入式方面的都没学到,如果靠下学期再来学点东西,以后出去就别想混了 ...… 查看全部问答∨ |
本公司(知名国企)正在寻求IPCamera(网络摄像机)的技术合作,包括嵌入式开发+硬件设计、中心 管理平台开发。有特色的产品,可提供整机、主板,或者能提供优秀的硬件方案的亦可。 合作方式多种,可技术转让、兼职或者全职。 &nb ...… 查看全部问答∨ |
程序先前一直没问题,后来改程序又加了几条语句,在编译过程中就有一个错误:Code size limit exceeded(4096 code bytes)for this version of the compiler 4212bytes of CODE memory 10bytes of CONST memory(+4bytes shared) 544bytes of DATA me ...… 查看全部问答∨ |