数字时钟电路设计_第1页
数字时钟电路设计_第2页
数字时钟电路设计_第3页
数字时钟电路设计_第4页
数字时钟电路设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

-.z东北石油大学实习总结报告实习类型生产实习实习单位电子科学学院实习基地实习起止时间2011年7指导教师*东明所在院〔系〕电子科学学院班级电子信息工程08-1学生**梁磊学号92011年7月23日-.z目录TOC\o"1-2"\h\z\u第1章单片机系统硬件电路附录2系统主要程序*include<reg52.h> *include<intrins.h> *defineucharunsignedchar *defineuintunsignedint uchardatadis_digit; ucharkey_s,key_v; ucharcodedis_code[11]={0*c0,0*f9,0*a4,0*b0,//共阳极数码管编码代码 0*99,0*92,0*82,0*f8,0*80,0*90,0*ff}; uchardatadis_buf[8]; uchardatadis_inde*; ucharhour,min,sec; ucharsec100,b; sbitK1=P3^2; sbitK2=P3^3; sbitbeep=P2^1; bitscan_key(); voidproc_key(); voidinc_sec(); voidinc_min(); voidinc_hour(); voiddelayms(ucharms); voidmain(void) { P0=0*ff; P1=0*ff; TMOD=0*11;//定时器0和1,工作模式1 TH1=(65536-50000)%256; TL1=(65536-50000)/256; TH0=0*FC; TL0=0*17; hour=21; min=13; sec=14; sec100=0; dis_buf[0]=dis_code[hour/10];//时十位 dis_buf[1]=dis_code[hour%10];//时个位 dis_buf[3]=dis_code[min/10];//分十位 dis_buf[4]=dis_code[min%10];//分个位 dis_buf[6]=dis_code[sec/10];//秒十位 dis_buf[7]=dis_code[sec%10];//秒个位 dis_buf[2]=0*bf; dis_buf[5]=0*bf; dis_digit=0*fe; dis_inde*=7; TCON=0*01; EA=1; ET0=1; ET1=1; TR0=1; TR1=1; key_v=0*03; while(1) { if(scan_key()) { delayms(10); if(scan_key()) { key_v=key_s; proc_key(); } } } } bitscan_key() { key_s=0*00; key_s|=K2; key_s<<=1; key_s|=K1; return(key_s^key_v); } voidproc_key() { EA=0; if((key_v&0*01)==0)//K1 { inc_hour(); } elseif((key_v&0*02)==0)//K2 { min++; if(min>59) { min=0; } dis_buf[3]=dis_code[min/10];//分十位 dis_buf[4]=dis_code[min%10];//分个位 } EA=1; } voidtimer0()interrupt1 //定时器0中断效劳程序,用于数码管的动态扫描 //dis_inde*--显示索引,用于标识当前显示的数码管和缓冲区的偏移量 //dis_digit位选通值,传送到P2口用于选通当前数码管的数值,如等于0*fe时, //选通P2.0口数码管 //dis_buf显于缓冲区基地址 { TH0=0*FC; TL0=0*17; P1=0*ff;//先关闭所有数码管 P0=dis_buf[dis_inde*];//显示代码传送到P0口 P1=dis_digit;// dis_digit=_crol_(dis_digit,1);//位选通值左移,下次中断时选通下一位数码管 dis_inde*--;// dis_inde*&=0*07;//8个数码管全部扫描完一遍之后,再回到第一个开场下一次扫描 } voidtimer1()interrupt3 { TH1=(65536-50000)%256; sec100++; if(sec100>=45) { sec100=0; inc_sec(); } } voidinc_sec() { beep=0; delayms(10); beep=1; sec++; if(sec>59) { sec=0; inc_min(); } dis_buf[6]=dis_code[sec/10];//秒十位 dis_buf[7]=dis_code[sec%10];//秒个位 } voidinc_min() { min++; if(min>59) { min=0; inc_hour(); } dis_buf[3]=dis_code[min/10];//分十位 dis_buf[4]=dis_code[min%10];//分个位 } voidinc_hour() { hour++; if(hour>23) { hour=0; } if(hour>9) dis_buf[0]=dis_code[hour/10];//时十位 else dis_buf[0]=0*ff;//当小时的十位为0时该位不显示 dis_buf[1]=dis_code[hour%10];//时个位 } voiddelayms(unsignedcharms)//延时子程序 {

温馨提示

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

评论

0/150

提交评论