毕业设计(论文)-基于proteus的多功能数字电子钟的设计内容摘要:

问题,本电路的“段控”(即要显示的段码的控制)通过 P1 口实现;而每一位的公共端,即 LED 数码管的“位控”,则由 P3 口控制。 这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。 在这一瞬时,只有这一位在显示,其他几位则暗。 在本系统中 ,字位线的选通与否是通过 PNP三极管的导通与截止来控制 ,即三极管处于“ 开关 ”状态。 系统的时分显示部件由 4 只 7 段共阳 LED 数码管构成,前两只用于时的显示,后两只用于分的显示。 值得一提的是,在设计中需要实现时与分之间的两个闪烁点,为此,将第三只 LED 数码管倒置摆放,这样就形成了两个很自然的闪烁点。 与此同时,为了能使两点显示能够形象的表示时钟“秒”的变化,设计时,将两个点由 单独控制,每隔一秒使 发送一个正脉冲,从而实现了两个点的闪烁显示,闪烁周期为一秒。 3 系统的软件构成及功能 本系统的软件系统主要可分为主程序和定时器中断程序两大模块。 在程序过程中,加入了抗干扰 措施。 下面对部分模块作介绍。 3. 1 系统主程序设计 主程序的功能是完成系统的初始化,程序流程如图 4 所示。 3. 2 中断程序设计 中断程序 (如图 5 所示 )完成时间计数,时间调整,误差消除等功能。 中断采用 AT89C2051 内部 T0 中断实现,当时间到达 125ms 8,即 1 分钟时,分种数增加 1,到达 1 小时,则小时数增加 1,并将分、时的个位、十位放入显示缓冲器。 当分别到达 60min、 24h 时,则对它们清零,以便重新计数。 图 4 系统主程序流程图 图 5 定时中断程序 四、 硬件图 硬件图 程序运行时显示 五、 软件程序 include define uint unsigned int define uchar unsigned char sbit F=P3^6。 sbit key1=P3^2。 //定时调时按钮 sbit key2=P3^3。 //加 1 按钮 sbit key0=P3^0。 //复位按钮 uint b,i=0,a,m=18,f=18,s=8,xs[6],jia,wei=0,z,ding[6],ds=9,df=0,dm=20。 unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20}。 uchar code table[]={ 0xc0,0xF9,0xA4,0xB0,0x99,//04 0x92,0x82,0xF8,0x80,0x90,//59 0x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E 0x8E,0xFF,0x0C,0x89,0x7F,0xBF}。 //F,空格 ,P,H,., void delay(uint t)。 void change()。 void fuwei()。 void main() { TMOD=0x01。 //设定初值 TH0=(6553650000)/256。 TL0=(6553650000)%256。 IT0=1。 IT1=1。 EA=1。 ET0=1。 EX0=1。 EX1=1。 TR0=1。 F=1。 while(1) { if(key0==0) fuwei()。 i++。 if(i==6) { i=0。 P2=0x00。 } P2=Select[5i。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。