标题 | 易于激发兴趣的电子钟制作 |
范文 | 王战 摘 要:当前学习单片机的学生相当多,为激发初学者学习单片机的兴趣,本文介绍一款很有趣味性的小型电子钟的设计和制作过程,非常适合电子制作爱好者们业余仿作,以锻炼动手能力和操作技能、激发和培养学习兴趣和实践热情。 关键词:激发;单片机;电子钟 中图分类号:TP36 文献标识码:A “教、学、做”,突出“做”。通过“做”,让学生对学习专业技术感兴趣,通过“做”,让学生提高动手能力。如何提高学生学习的积极性,提高学生的动手实操能力,现介绍一种易操作,又能激发学生兴趣的电子钟制作方法,给无线电爱好的同学参考。 本范例是采用单片机内部时钟信号作为触发源的一款简易型电子钟,采用8位数码管显示,其电路简单,具备电子钟的基本功能。可惜的就是存在时间误差较大及无停电走时及记忆功能。 1 控制电路组成及其工作原理 如图1 所示为单片机内部触发源数码管显示简易电子钟Protues虚拟电路图。其中电路主要由 74245芯片驱动的8位共阳数码管显示电路、3位独立简易型按键和蜂鸣器驱动电路组成。 注:本电路对晶振频率有着严格的要求,本范例编程时是按12MHz晶振来设计的。 本范例是使用定时器T0以50ms中断1次同时以20次中断作为1秒钟来实现时间单位的控制。子程序模块除了显示、蜂鸣器控制常规程序模块以外,主要包含50ms及1s单位时间中断程序模块、时分秒进位处理程序模块、时、分和秒时间设置模块。 1.1 控制程序 主程序中是通过控制模式代码寄存器GN变化于0~3间分别代表时间显示模式、小时设置模式、分钟设置模式和秒钟设置模式。在主程序中控制扫描计数器“biao”每扫描1轮(约8位数码管扫描显示1轮的时间)加1,并达到30时清零,用以在时间设置时控制对应数据闪烁显示。 请认真阅读“//”后的中文注释达成对每行语句含义的初步认识。 #include #define uchar unsigned char #define uint unsigned int #define WM_OUT P2 #define DM_OUT P0 sbit SET=P1^7; sbit jia=P1^5;sbit jian=P1^6; sbit BEEP=P3^7; uchar GN=0; uchar biao; uchar shi,fen,miao,count_50ms; void delay(uint ms) uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80, 0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xbf}; uchar code wm[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; uchar time[8]; void Beep() void disp(uchar *p) void chuli() { if(miao==60) { fen++; miao=0; if(fen==60) { shi++; fen=0; if(shi==24)shi=0; } } time[0]=shi/10; time[1]=shi%10; time[2]=17; time[3]=fen/10; time[4]=fen%10; time[5]=17; time[6]=miao/10; time[7]=miao%10; } void shi_hm() { if(!jia) { Beep(); if(++shi==24)shi=0; while(!jia)disp(time); } if(!jian) { Beep(); if(--shi==255)shi=23; while(!jian)disp(time); } if(biao>15){time[0]=16;time[1]=16;} disp(time); } void fen_hm() { if(!jia) { Beep(); if(++fen==60)fen=0; while(!jia)disp(time); } if(!jian) { Beep(); if(--fen==255)fen=59; while(!jian)disp(time); } if(biao>15){time[3]=16;time[4]= 16;} disp(time); } void miao_hm() { if(!jia) { Beep(); if(++miao==60)miao=0; while(!jia)disp(time); } if(!jian) { Beep(); if(--miao==255)miao=59; while(!jian)disp(time); } if(biao>15){time[6]=16;time[7]= 16;} disp(time); } void main() { TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)/256; IE=0X82; TR0=1; while(1) {biao=(biao+1)%30; if(!SET) {GN=(GN+1)%4; Beep(); while(!SET)disp(time); } chuli(); if(GN==0)disp(time); else if(GN==1)shi_hm(); else if(GN==2)fen_hm(); else if(GN==3)miao_hm(); } } void timer0()interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)/256; if(++count_50ms==20) { miao++;count_50ms=0; } } 以上电子钟制作制作方案,是我院实施“教、学、做”一体化教学模式,创新教育教学环境和培养学生的动手实操能力,在机电一体化专业开展的工学结合实践操作模式课程。 参考文献 [1]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001. } void miao_hm() { if(!jia) { Beep(); if(++miao==60)miao=0; while(!jia)disp(time); } if(!jian) { Beep(); if(--miao==255)miao=59; while(!jian)disp(time); } if(biao>15){time[6]=16;time[7]= 16;} disp(time); } void main() { TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)/256; IE=0X82; TR0=1; while(1) {biao=(biao+1)%30; if(!SET) {GN=(GN+1)%4; Beep(); while(!SET)disp(time); } chuli(); if(GN==0)disp(time); else if(GN==1)shi_hm(); else if(GN==2)fen_hm(); else if(GN==3)miao_hm(); } } void timer0()interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)/256; if(++count_50ms==20) { miao++;count_50ms=0; } } 以上电子钟制作制作方案,是我院实施“教、学、做”一体化教学模式,创新教育教学环境和培养学生的动手实操能力,在机电一体化专业开展的工学结合实践操作模式课程。 参考文献 [1]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001. } void miao_hm() { if(!jia) { Beep(); if(++miao==60)miao=0; while(!jia)disp(time); } if(!jian) { Beep(); if(--miao==255)miao=59; while(!jian)disp(time); } if(biao>15){time[6]=16;time[7]= 16;} disp(time); } void main() { TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)/256; IE=0X82; TR0=1; while(1) {biao=(biao+1)%30; if(!SET) {GN=(GN+1)%4; Beep(); while(!SET)disp(time); } chuli(); if(GN==0)disp(time); else if(GN==1)shi_hm(); else if(GN==2)fen_hm(); else if(GN==3)miao_hm(); } } void timer0()interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)/256; if(++count_50ms==20) { miao++;count_50ms=0; } } 以上电子钟制作制作方案,是我院实施“教、学、做”一体化教学模式,创新教育教学环境和培养学生的动手实操能力,在机电一体化专业开展的工学结合实践操作模式课程。 参考文献 [1]李广第,朱月秀,王秀山.单片机基础[M].北京:北京航空航天大学出版社,2001. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。