智能仪器课程设计数字电子时钟.docx_第1页
智能仪器课程设计数字电子时钟.docx_第2页
智能仪器课程设计数字电子时钟.docx_第3页
智能仪器课程设计数字电子时钟.docx_第4页
智能仪器课程设计数字电子时钟.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能仪器课程设计报告 题 目: 数字电子时钟 学 号: 09042328 姓 名: 黄强 东华理工大学2012年 7 月 1 日程序:#include#include#define CYCLE 20000#define uint unsigned int#define uchar unsigned charvoid Delayxms(unsigned int ms);/延时函数声明void delay1ms();void Display();/显示函数声明void sbuf(unsigned c);/送断码函数声明void dataprocess();/数据处理函数声明void keyscan();/按键扫描函数声明 void k1manage();/k1键处理函数 分校准声明void k2manage();/k2键处理函数 时校准声明void shansuo();/时分闪烁函数声明void DS();/定时函数声明void nz();/闹钟函数声明void k3manage();void k4manage();sbit key1=P20;sbit key2=P21;sbit key3=P22;sbit key4=P23;sbit fm=P26;uint sec,min,hour,psec,pmin,phour,Dsec,Dmin,Dhour;uchar aa,num,a,b,keycode,k1,k2;/中断次数变量uchar flag=0,flage=0;uchar flagee=0;unsigned ssec,gsec,smin,gmin,shour,ghour,gpsec,spsec,gpmin,spmin,gphour,sphour,GDsec,GDmin,GDhour;SDsec,SDmin,SDhour;uchar code tabe= 0x00,0x03,0x0c,0x30;uchar code table=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff;main()TMOD=0x01;TH0=(65536-CYCLE)/256;TL0=(65536-CYCLE)%256;ET0=1;TR0=1;EA=1;sec=0;min=0;hour=0;while(1)keyscan();nz();dataprocess();Display();void t0ser() interrupt 1 using 1/定时计数器T0中断服务函数定义if(flagee=1)psec+;if(psec50)psec=0;pmin+;if(pmin59)pmin=0;phour+;if(phour59)phour=0; if(flagee=0) psec=0;pmin=0;phour=0;if(num=50)num=0;sec+;if(sec59)sec=0;min+;if(min59)min=0;hour+;if(hour24)hour=0;else;else;else;elsenum+;TH0=(65536-CYCLE)/256;TL0=(65536-CYCLE)%256;void Display()/显示函数 if(flage=2)/切换到定时显示P1=0xfe;if(num=14) P1=P1|tabeflag; else P1=0xfe;/选中秒个位数码管亮sbuf(GDsec);/发断码P1=0xff;P1=0xfd;if(num=14) P1=P1|tabeflag; else P1=0xfd;/关闭显示器,消影sbuf(SDsec);P1=0xff;P1=0xfb;if(num=14) P1=P1|tabeflag; else P1=0xfb;sbuf(GDmin);P1=0xff; P1=0xf7;if(num=14) P1=P1|tabeflag; else P1=0xf7;sbuf(SDmin);P1=0xff; P1=0xef;if(num=14) P1=P1|tabeflag; else P1=0xef;sbuf(GDhour);P1=0xff; P1=0xdf;/选中时十位显示数码管if(num=14) P1=P1|tabeflag; else P1=0xdf;sbuf(SDhour);P1=0x0ff;elseif(flage=1)/切换到跑表P1=0xfe;sbuf(gpsec);/发断码P1=0xff;P1=0xfd;sbuf(spsec);/发断码P1=0xff;P1=0xfb;sbuf(gpmin);/发断码P1=0xff;P1=0xf7;sbuf(spmin);/发断码P1=0xff;P1=0xef;sbuf(gphour);/发断码P1=0xff;P1=0xdf;sbuf(sphour);/发断码P1=0xff; elseif(flage=0)P1=0xfe;if(num=14) P1=P1|tabeflag; else P1=0xfe;/选中秒个位数码管亮sbuf(gsec);/发断码P1=0xff;P1=0xfd;if(num=14) P1=P1|tabeflag; else P1=0xfd;/关闭显示器,消影sbuf(ssec);P1=0xff;P1=0xfb;if(num=14) P1=P1|tabeflag; else P1=0xfb;sbuf(gmin);P1=0xff; P1=0xf7;if(num=14) P1=P1|tabeflag; else P1=0xf7;sbuf(smin);P1=0xff; P1=0xef;if(num=14) P1=P1|tabeflag; else P1=0xef;sbuf(ghour);P1=0xff; P1=0xdf;/选中时十位显示数码管if(num=14) P1=P1|tabeflag; else P1=0xdf;sbuf(shour);P1=0x0ff;void sbuf(unsigned c)/送断码函数SBUF=tablec;while(!TI)TI=0;Delayxms(5);void dataprocess()/数据处理函数ssec=sec/10; /秒十位数求取gsec=sec-ssec*10;/秒个位数求取smin=min/10;/分十位数求取gmin=min-smin*10;/分个位数求取shour=hour/10;/时十位数求取ghour=hour-shour*10;/时个位数求取spsec=psec/10;gpsec=psec-spsec*10;spmin=pmin/10;gpmin=pmin-spmin*10;sphour=phour/10;gphour=phour-sphour*10;SDsec=Dsec/10;GDsec=Dsec-SDsec*10;SDmin=Dmin/10;GDmin=Dmin-SDmin*10;SDhour=Dhour/10;GDhour=Dhour-SDhour*10;void keyscan()/按键扫描函数if(key1=0) flag+; if(flag=4) flag=0; while(!key1) Display(); if(key2=0)while(!key2)Display();k2manage();if(key3=0)while(!key3)Display();k3manage();if(key4=0)while(!key4)Display();k4manage();void k2manage()/k2键处理函数 时校准if(flage=2)DS();elseif(flag=1)if(sec=59)sec=0;elsesec+; if(flag=2)if(min=59)min=0;elsemin+; if(flag=3)if(hour=59)hour=0;elsehour+;void k3manage()/flage为1切换到跑表显示,为2切换到定时界面,为0走时界面flage+;if(flage2)flage=0;void k4manage()/flagee为1启动跑表,为2关闭跑表,为0清零flagee+;if(flagee2)flagee=0;void DS()/定时修改函数if(flag=1)if(Dsec=59)Dsec=0;elseDsec+; if(flag=2)if(Dmin=59)Dmin=0;elseDmin+; if(flag=3)if(Dhour=59)Dhour=0;elseDhour+;void nz()/闹钟函数if(Dsec=sec)if(Dmin=min)if(Dhour=hour)fm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论