1、摘要本设计主要介绍了一种基于STC89C52单片机微处理芯片与DS1302时钟芯片和8*8的点阵显示屏外加DS18B20温度传感器组成青奥倒计时电路软硬件,本设计的硬件主要由单片机最小系统,DS1302时钟模块,点阵显示屏和DS18B20温度传感器四个组成,采用的是C语言进行编程,可以精确的显示年,月,日,十,分,秒,倒计时时间和温度信息关键词:STC89C52 ; 点阵显示屏;DS1302;DS18B20;AbstractThis design mainly introduces the hardware and software of the youth olympic ganmes co
2、untdowm which is made up of the STC89C52 MCU ,DS1302 clock chip and 16*16 Dot matrix display and DS18B20 Temperature Sensor . The hardware design of this system is made up MCU ,DS1302 clock module ,Dot matrix display and DS18B20 temperature sensor , The program adopts C language and it can accuratel
3、y shows the information of the year ,month , day , hour ,minute , second ,countdowm time and temperature .Key words: STC89C52 ; dot matrix display screen ; DS1302 ; DS18B20目 录1引言11.1倒计时牌研究背景及意义12硬件电路设计12.1单片机最小系统22.1.1单片机型号STC89C52简介22.1.2STC89C52各引脚介绍32.2复位电路设计42.3晶振电路设计42.4DS1302时钟模块52.574HC138译码器
4、62.6温度传感器DS18B2062.774HC595模块简介62.8按键电路设计72.9点阵显示模块设计和驱动73青奥倒计时牌系统软件程序设计93.1主程序流程图和主程序103.2延时程序设计103.3温度传感器流程图和程序设计113.4LED点阵显示程序设计133.5利用PROTEUS仿真结果144系统调试155总结176参考文献187致谢19I1 引言1.1 倒计时牌研究背景及意义随着社会科技的不断发展,人们生活节奏不断加快。为了提高工作效率,提醒大家注意某些重大事情的开始或者结束(例如 “高考”、“奥运会”等),以便合理的安排事情,倒计时时钟发挥了越来越大的作用,同时人们对倒计时时钟的
5、要求不仅计时要准确,而且要求它具有成本低、功能全、可靠性好等特点。倒计时牌研究的成功代表着数字科技领域的入门,它的出现可以衍生更高端应用的开发,例如定时自动报警器、篮球计时器、抢答器等等,因此倒计时牌的研究和扩展是单片机的重要的课题!本次设计就是利用单片机技术开发的青奥倒计时牌,本倒计时牌使用的是点阵显示屏进行显示工作的,该系统操作比较简单、体积比较小,可以增强人们的时间观念,对一些重要的时间能够给予人们提醒和警觉,对随时提醒人们注意把握时间具有重要的作用。加上温度效果的显示更加具有实用价值,其性能能够满足大部分的需要,可以使我们的开发设计更简便,因此单片机是我们生活中不可缺少的元件,使我们各
6、个领域都得到了方便。2 硬件电路设计本次设计的硬件电路系统是由单片机最小系统、DS1302时钟模块、电源模块、晶振模块、复位模块、74HC138译码器、16个点阵模块、DS18B20温度传感器、74HC595移位寄存器等部分组成,每个部分之间互相协作,构成一个统一的整体,实现倒计时温度显示功能。系统框图如图1所示:74HC138模块点阵显示模块STC89C52DS18B20模块电源模块74HC595模块晶振模块DS1302模块复位模块。图1:硬件系统框图2.1 单片机最小系统 单片机最小系统,它也叫做最小应用系统,是一种用最少的元件组成的可工作的单片机系统,对于51系列单片机来说,最小系统一般
7、包括:单片机、晶振电路、复位电路。本设计使用的是STC89C52单片机。 2.1.1 单片机型号STC89C52简介STC89C52是一款高性能的CMOS 8位的单片机,低电压,具有8K的刻反复擦写的FLASH存储器,与标准MCS-51指令系统和8052产品的引脚互相兼容,在单片机芯片上,拥有一个8位的中央处理器(CPU)和系统可编写的FLASH储存单元,由于将多功能8位CPU和闪烁存储器组合在单个芯片中,能够进行1000次的写或者擦循环,数据可以保存十年。它是一种高效微控制器,从而使得STC89C52为众多嵌入式控制应用提供有效的解决方案,因此STC89C52单片机在电子行业上广泛的应用。图
8、 2:STC89C52管脚图2.1.2 STC89C52各引脚介绍STC89C52具有以下标准功能:可以兼容,MCS51指令系统,8k FlashROM可以反复的重擦写,有三级的加密程序存储器,具有3个16位定时/计数器,具有低功空闲和掉电模式等性能。STC89C52管脚图如图2。P0口:P0口作为输出口,每位能驱动8个TTL 逻辑电平,对其写“1”时,引脚作高阻抗输入。当访问外部程序或者数据存储器的时候,P0端口也被作为低8位地址或者数据复用,在这个情况下,P0具有内部上拉电阻。P1口:P1口是一个双向I/O口,P1的输出缓冲级可驱动4个逻辑电平。对跑口写“1”时,由于内部上拉电阻的原因,将
9、会输出电流。另外,P1.0和P1.1还可以分别作为定时器或者计数器。P2 口:它是具有内部上拉电阻的8位双向的I/O口,对P2口写“1”时,通过内部上拉电阻把端口拉高,此时可以作为输入端口使用,当作为输入端口使用的时候,被外部拉低的引脚由于内部电阻的原因,会产生输出电流IP3口:P3口作为一般的I/O接口以外,它还有更重要的第二个功能,它的P3.0: RXD(串行输出),P3.1 :TXD (串行输出),P3.2 :INT0(外部中断0 ) P3.3:INT1(外部中断1)P3.4:T0(定时器0外部输入)P3.5:T1(定时器1外部输入) P3.6:WR(外部数据存储器写选通) P3.7:R
10、D(外部数据存储器读选通)。ALE/:地址锁存器控制是当访问外部程序存储器的时候,锁存低8位地址的输出秒冲。在Flash编程时候,(PROG)引脚也使用作编程输入脉冲。:程序存储允许()输出是外部程序存储器的读选通信号,当STC89C52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器,将跳过两次信号。/VPP:外部访问允许,欲使CPU仅访问外部程序存储器,端口必须保持低电平(接地)。如果端为高电平,CPU则要执行内部程序存储器的指令。XTAL1:振荡器反向放大器和内部时钟发生电路的输入端。XTAL2:振荡器反向放大器的输出端。2.2 复位电路设计复位电路的功能
11、是让单片机从程序起始处重新执行的电路,在复位电路中设计中有上电复位和手动复位两种模式。复位电路如图3所示。上电复位工作原理如下:外部电源通过电容C3充电加至REST脚一个短暂的高电平信号,此时信号随着VCC对电容C3的充电过程逐渐回落,即REST引脚上的高电平持续时间取决于电容C3的充电时间。因此为保证系统能可靠地复位,REST引脚上的高电平必须持续足够长的时间。手动复位工作原理是在当按下复位按钮,电容中的电荷被放完后,按照上电复位原理进行复位。图3:复位电路设计图2.3 晶振电路设计在本次设计中,单片机使用内部时钟振荡方式。晶振电路的作用是产生单片机正常工作时所需要的时钟信号,电路由两个22
12、pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。电路中的两个电容C1和C10的作用使电路快速起振,提高电路的运行速度。电路晶振电路如图4所示。图4:晶振电路设计图2.4 DS1302时钟模块 DS1302时钟模块与单片机能进行简单的使用同步串行的方式进行通信,支持双电源供电,可以使用外部电源和备用电源,备用电源能够使时钟芯片继续工作,占用引脚少,仅需要用三个接口: 复位,I/O数据线,SCLK串行时钟。STC89C52的P2.2与DS1302的I/O数据线接口相连,P2.1用来输入DS1302 SCLK串行时钟,P2.3控制D
13、S1302 的复位输入端,DS1302电路设 计图如图5所示。图5:DS1302电路设计图DS1302实时时钟电路可以提供年、月、日、时、分、秒等信息,当某个月小于30天的时候可以自动的调整,并且还具有闰年补偿功能;用于高速数据暂存的31X8RAM ;2.5V时耗电小于300na;它还具有宽范围的工作电压2.05.5V;工业温度范围是可以选的,再者它的连线比较简单,占用的IO接口也比较的少,由于这些原因,此次毕业设计所使用的时钟芯片是DS1302,它能够更准确的计时。 2.5 74HC138译码器74HC138译码器也称做解码器,译码过程实际上是一种翻译过程,即编码的逆过程,74HC138引脚
14、兼容低功耗肖特基TTL系列。74HC138译码器可接受3位二进制加权地址输入,并当使能时,能提供8个互斥的低有效输出,74HC138特有3个使能输入端:两个低有效和一个高有效。除非E1和E2置低且E3置高,如果不是,那么74HC138将保持所有输出为高,利用这种复合使能特性。2.6 温度传感器DS18B20DS18B20是一种改进版的智能温度传感器,它与传统的热敏电阻相比,DS18B20他可以直接读出被测的温度,根据实际要求通过简单的编程实现9到12位的数字值读数方式并且DS18B20的系统结构更加的简单,可靠性也很高,只需要一条数据线进行数据传输,它在测温度,传输距离和分辨率等方面上比上一代
15、的DS1820有了很大的改进,让用户使用更加的方便,效果令人满意!DS18B20电路设计图如图6所示。图6:DS18B20电路设计图2.7 74HC595模块简介74HC595 是一种漏极开路输出的移位寄存器,它是可控的三态输出端,也可以串行输出控制下一个级联芯片,它是74系列芯片的一种,它主要的特点是功耗小、速度快、操作简单,可以很方便的用于对单片机接口进行驱动LED的操作。本次设计中,使用74HC595来进行对LED的串行驱动,所有的LED分为2个一组,直接与74HC595输出端连接,通过串行控制输出信号对LED进行显示驱动,最后通过74HC595的级联操作,这样的驱动方式比较简单,电路设
16、计完成之后只要级联就可以完成。74HC595是带锁存功能的三态输出的8位串行输入和并行输出的移位寄存器。由于它自带锁存器,所以其数据在移位寄存器中的移位与锁存器的输出是独立的,当数据移位时,可以保持锁存器输出的数据不改变,等所有8位数据全部串行输入完成移位操作后,一次性将数据打入锁存器中,从而实现并行输出的同步改变。2.8 按键电路设计按键电路是用来对系统显示的时钟进行复位,模式的选择,时间的加和减。模式选择中可以对时间进行设置,倒计时时间进行设置,可以选着手动模式和自动模式。按键电路如图7所示。按键电路工作原理如下:当按键没有按下去时,与按键连接的单片机接口均为高电平;当按键按下去时,单片机
17、该接口端为低电平。在系统工作时,单片机不断扫描按键电路,当检测到相应端口输入为低电平时,进行时间按键功能的选择加、减、时钟的复位和模式选择。图7:按键电路设计图2.9 点阵显示模块设计和驱动在本次设计中使用了16个8*8 LED阵列,从结构上可以知道,每个LED模块它每一列共用一根列线,每一行也是共用一根行线,当相应的行接高电平,列接低电平时,对应的发光二极管被点亮,在显示过程中,多采用扫描方式,利用人的视觉暂停效应,只要刷新速率不小于25帧每秒,就不会有闪烁的感觉。 图8:LED点阵模块内部显示图我们把行列全部直接在单片机的IO口,然后通过分析到的扫描代码送到总线,我们就可以得显示的数据,但
18、是我们直接将LED点阵的行列端口全部接到89C51单片机上,每个LED点阵需要16个IO口,本设计使用了16个LED点阵显示的,那就需要16*16个IO口,这样就会照成IO口资源的耗尽,系统就会无法扩充,因此,我们在实际应用只是将LED点阵的列线接到74HC595移位寄存器上,列驱动图如图9.1,至于行扫描信号则是由译码器74HC138来选择控制,行驱动如图9.2,这样行和列的控制只使用了单片机上的6个IO口,节约了很多IO资源。图9.1列驱动设计图:9.2行驱动设计图:3 青奥倒计时牌系统软件程序设计青奥倒计时牌系统程序由单片机、按键程序、显示程序、左移程序等部分组成。通过C语言编程,软硬件
19、结合,构成一个青奥倒计时牌系统的整体。系统工作时,首先系统初始化,点阵屏初始化,串口的初始化,然后显示左移的滚动字幕验证系统显示正常,同时时钟、温度、倒计时初始化开始计算,接着通过按钮设置设置时间和模式,模式中可以选着手动或自动模式显示,自动模式下,显示时间(年,月,日,时,分、秒),温度,剩余天数,重复的循环。LED点阵显示程序流程图如图10所示。图10:LED点阵显示程序流程图3.1 主程序流程图和主程序本设计的程序部分比较多,主要是通过时钟芯片对时间的计算和温度传感器对温度的转换,然后通过595串行输出,通过LED点阵显示。在主函数中完成这些操作。/*主函数*/void main() w
20、hile(1) /重复(无限)循环显示 du1302(); /读取 秒 分 时 日 月 星期 年read_temp();/读取温度 Show_word(); /待机显示按三秒间隔分别显示年、月日、星期、时分秒。 3.2 延时程序设计延时程序在LED电子显示屏中的主要功能有:延时存在的目的是等一段时间,让这列显示的内容在人的眼内产生“视觉暂留”现象。void DelayMs(void)uchar TempCyc;for(TempCyc=110;TempCyc1;TempCyc-);3.3 温度传感器流程图和程序设计开始 初始化读取数据写数据数据转换输出结束void delay_18B20(uns
21、igned int i)/延时1微秒 while(i-);void ds1820rst()/*ds1820复位*/unsigned char x=0;DQ = 1; /DQ复位delay_18B20(4); /延时DQ = 0; /DQ拉低delay_18B20(100); /精确延时大于480usDQ = 1; /拉高delay_18B20(40); uchar ds1820rd()/*读数据*/ unsigned char i=0;unsigned char dat = 0;for (i=8;i0;i-) DQ = 0; /给脉冲信号dat=1;DQ = 1; /给脉冲信号if(DQ)da
22、t|=0x80;delay_18B20(10);return(dat);void ds1820wr(uchar wdata)/*写数据*/unsigned char i=0;for (i=8; i0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata=1;read_temp()/*读取温度值并转换*/uchar a,b; ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ds1820wr(0x44);/*启动温度转换*/ ds1820rst(); ds1820wr(0xcc);/*跳过读序列号*/ ds18
23、20wr(0xbe);/*读取温度*/ a=ds1820rd();b=ds1820rd();tvalue=b*16+a/16;return(tvalue);3.4 LED点阵显示程序设计LED点阵显示主要通过595驱动其显示,通过三秒转换,分别显示年、月日、星期、时分秒、温度、距离青奥汉字、剩余天数、if(id=0)&(f=0)|(id=1)/f为三秒转换显示 Send_data(&timer00); /不显示if(Flicker=1)&(id=1) /闪烁标志为1时不亮,为零时亮 Show_pass(); /不显示一个字Show_pass();elseSend_data(&timer2h);
24、 /20年 Send_data(&timer0h);Send_data(&timerYear/16h); /年值 Send_data(&timerYear%16h);Send_data(&hanzih*2+641); /年字符 Send_data(&hanzih*2+640);Send_data(&timer0); /不显示3.5 利用PROTEUS仿真结果利用PROTEUS仿真结果如图10,LED点阵轮流显示设定的年,月,日,时,分,秒,距离青奥天数,温度。图10:PROTEUS仿真图4 系统调试(一) 静态调试在系统进行加电之前,首先用万用表依据硬件电路原理图仔细检查连线的正确性,尤其电源
25、的走线、防止电源间的短路或极性错误及开路,并重要检查系统总线是否存在相互之间的短路或与其他信号线的短路。(二) 通电调试接通电源,查看显示单元的内容是否正常,再按下有关按键,是否能够达到预期目标。如果不能,通过仿真单步运行,查看每一步的运行结果,并对预期现象对程序进行调整。(三) 实物效果图 通过整个调试,实物效果跟所预期的效果是一样的。本次设计完成预期的目标。如图11.1 11.2 和11.3图11.1图11.2如图11.35 总结本次设计的青奥倒计时牌分为硬件电路设计和软件程序设计两大模块。硬件电路设计包括控制系统硬件电路设计和显示系统硬件电路设计,控制系统硬件电路设计以STC89C52为
26、控制核心,外围电路包括电源模块、程序下载模块、按键模块、晶振电路、温度模块、点阵电路模块等组成部分;显示系统硬件电路又分为接口电路、列驱动电路、行驱动电路、点阵屏电路等组成部分。软件程序设计包括按键程序、LED指示灯程序、静止显示程序、左移程序等组成部分。控制系统通过排线控制显示系统显示汉字等信息,并能使显示系统上的汉字等信息静态显示、左移显示。本次设计的青奥倒计时按照上述设计思路,能够实现实时时间,实时温度,距离青奥开幕的时间的交替显示。6 参考文献1 侯向荣,马永森. 利用单片机串口实现多个LED的显示J. 仪器仪表用户. 2006(03) 2 眭碧霞. 用单片机串行口实现动态扫描LED显
27、示J. 电子工程师. 2006(06) 3 刘文洲,张立臣. 利用80C31单片机串行口实现多个LED显示的一种简单方法J. 国外电子元器件. 2001(01) 4 王飞,程耀瑜. 基于AT89C51的作息时间控制器设计J. 数字技术与应用. 2011(07) 5 郭景. 用单片机驱动LED数码管显示J. 阴山学刊(自然科学版). 2005(01) 6 李正浩,姜宝钧,邓兴成. 51单片机在LED数码管显示中的应用J. 实验科学与技术. 2006(S1) 7 蓝厚荣. 单片机驱动LED数码管的方法J. 电气时代. 2008(04)8钟达.基于LED数码管的单片机显示电路实验平台开发.办公自动化
28、,2006(15)9K.Alexander,N.O.Sadiku. Fundamentals of electric CircuitsM.北京:清华大学出版社 200010 The Designing and Realizing of the Detection and Control of Environment Temperature and Optical IntensityJ.Computer Science and Application 2012 Vol.02 (03)pp.138-141汉斯出版社7 致谢随着时间在不间断的流逝,我的大学生活也要即将结束,回想大学生活有高兴有伤心过在这即将毕业之际,随着我这段时间的不断努力,我的毕业论文也随之完成。本次论文的完成,对我而言是一种挑战也是一种巩固和丰富知识的机会,它也让我在安排事情进度的把握方面有了很大提高,同时能更好的对自己进行约束。本次毕业设计是在老师的指导和支持下完成的。感谢老师从论文的题目的选定、资料的搜集以及在论文资料的修改上所提的宝贵的意见和无私的帮助。同时,在此次毕业设计过程中我对单片机的一些知识又有了重新的认识,实验技能有了很大的提高。 另外,我还要特别感谢一些同学对我论文修改上所提的一些意见,为我论文的完成提供了巨大的帮助。 最后,对此次帮助我的老师和同学表示真诚的谢意。19