P0=0x40; delay(1);
P0=0x00; P2=0x02; P0=table[c1]; delay(1);
P0=0x00; P2=0x01; P0=table[c0]; delay(1);
P0=0x00; }
void display3() 闪烁显示函数,用于未松手闪烁 { int n;
for(n=0;n<40;n++) { display0(); }
for(n=0;n<35;n++) { display2(); } }
void kryscan() //键盘扫描函数 {
if(k0==0) {
delay(3); //延时去抖 if(k0==0) //确认K0已按下 { slnum++; while(!k0) //判断是否松手 display0(); //未松手闪烁显示 if(slnum==1) {
TR0=0; //关闭定时器,时钟停止走动 c1=10; c0=10; a1=h1; a0=h0; b0=min0; b1=min1; //让秒钟闪,时钟分钟显示 }
if(slnum==2) {
c1=s1; c0=s0; a1=h1; a0=h0; b0=10; b1=10; //让分钟闪,秒钟时钟显示 } if(slnum==3) {
c1=s1; c0=s0; a1=10; a0=10; b0=min0; b1=min1; //让时钟闪,秒钟分钟显示 } if(slnum==4) {
c1=s1; c0=s0; a1=h1; a0=h0; b0=min0; b1=min1; slnum=0; //全部显示,不闪烁 TR0=1; //打开定时器,时钟继续 } } }
if(slnum!=0) { if(k1==0) { delay(3);
if(k1==0) //K1是否按下 { while(!k1) //判断是否松手 display3(); //闪烁显示 if(slnum==1)
{ miao++; if(miao==60)
miao=0;
s1=miao/10; s0=miao; } if(slnum==2)
{ //秒钟加一
fen++; if(fen==60) fen=0;
if(slnum==3)
shi++; if(shi==24) shi=0;
} } if(k2==0) { delay(3); if(k2==0)
{ while(!k2) display3(); if(slnum==1)
miao--;
if(miao==-1) miao=59;
if(slnum==2)
fen--;
if(fen==-1) fen=59;
min1=fen/10; min0=fen; } { h1=shi/10; h0=shi; } { s1=miao/10; s0=miao; } { min1=fen/10; min0=fen;
//分钟加一
//时钟加一
//秒钟减一
//分钟减一
} if(slnum==3)
{ shi--;
if(shi==-1) shi=23;
h1=shi/10; h0=shi; //时钟减一 } } } } }
void display1() //按键检查闪烁显示函数 { int n;
for(n=0;n<40;n++) { display0(); kryscan(); }
for(n=0;n<35;n++) { display2(); kryscan(); } }
void main() //主函数 { init(); while(1) { display0(); kryscan(); if(!slnum==0) display1(); } }
void timer0() interrupt 1 //中断函数 {
TH0=(65536-50000)/256; TL0=(65536-50000)%6; count++; if(count==20)
{ count=0; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi==24) shi=0;
h1=shi/10; h0=shi; }
min1=fen/10; min0=fen; }
s1=miao/10; s0=miao; } }
五、设计心得体会
通过本次课程设计,加强了我对单片机这门课程的理解与熟悉,而且这次设计使我的动手能力更有显著的提高,让我获益良多,也使我更加扎实的掌握了有关电子线路单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查,我终于找出了问题的所在,也暴露出了我在这方面的知识欠缺和经验不足。实践才能出真知,实践才是检验真理的唯一标准,唯有通过亲手制作,才能令我们掌握知识。
在这次的课程设计中,我们遇到了很多困难,过程很艰难,但是我们都克服
了,这是对我们自己的肯定。我们不断发现错误,不断改正,不断领悟,不断获取。不可否认,单片机是一门比较难的专业学科。但是经过这一学期的学习,我觉得单片机这门课很好,让我们在设计中掌握课程,具有很强的实用性。在社会上,单片机应用极其广泛。通过这次课程设计骂我掌握了常用元件的识别和测试,熟悉了常用仪器仪表;了解了电路的连接方法;以及如何提高电路的性能等。
六、参考文献及网站
1、《单片机原理及应用》 罗维平 李德骏 编 华中科技大学出版社。