单片机课程设计实验报告 基于单片机的数字时钟 含完整实验代码..

else if(keyval==0xf7) //按键5 设置闹钟时间 {

clock_shanshuo=1;

clock_hh=dispbuf[0]*10+dispbuf[1]; //保存所设闹钟时间 clock_mm=dispbuf[2]*10+dispbuf[3]; dispbuf[0]=hh/10; dispbuf[1]=hh; dispbuf[2]=mm/10; dispbuf[3]=mm;

}

break;

case 4: //秒表模式

if(keyval==0x7f) //按键1 调整模式 进入时钟显示模式 {

mode=0;

TR1=0; //关闭秒表 dispbuf[0]=mm/10; dispbuf[1]=mm; dispbuf[2]=ss/10; dispbuf[3]=ss; }

else if(keyval==0xef) //按键4 开始、暂停 {

old_ss=miaobiao_ss; old_ms=miaobiao_ms; TR1=~TR1; }

else if(keyval==0xbf||keyval==0xdf) //按键2或按键3 清零 {

miaobiao_ss=0; miaobiao_ms=0;

dispbuf[0]=miaobiao_ss/10; dispbuf[1]=miaobiao_ss; dispbuf[2]=miaobiao_ms/10; dispbuf[3]=miaobiao_ms; }

break;

default:

break; } }

/******************延时程序******************/ void delay(unsigned int t) {

while(t--); }

/******************中断程序,用于秒表******************/ void t1int(void) interrupt 3 using 3 {

TH1=(0-2000)/256; TL1=(0-2000)%6; cnt2++; if(cnt2>=5) {

cnt2=0;

miaobiao_ms++;

if(miaobiao_ms>=100) {

miaobiao_ms=0; miaobiao_ss++;

if(miaobiao_ss>=60) {

miaobiao_ss=0; } }

dispbuf[0]=miaobiao_ss/10; dispbuf[1]=miaobiao_ss; dispbuf[2]=miaobiao_ms/10; dispbuf[3]=miaobiao_ms; } }

五、 学习体会

通过本次单片机课程设计,不仅加深了我对单片机理论课程知识的认识,而且通过将理论与实践相结合,使我真正地全面理解单片机的功能。

在刚开始编程时,没有一点思路,通过ftp上所提供的例程,慢慢理清了思路、基本了解了程序大致需要那几部分,基本确定编程思想。

在课程设计的整个过程中也遇到了很多问题,但本着遇到问题解决问题的原则,通过查找资料和询问老师、同学的办法,基本解决了所遇到问题。整个课程设计过程学到了不少通过理论学习没法学到的东西,真正增强了自己的能力。 课程设计的三天时间,虽然辛苦但是收获巨大。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4