用单内部的定时器实现的数字钟_智能测控仪器设计.doc_第1页
用单内部的定时器实现的数字钟_智能测控仪器设计.doc_第2页
用单内部的定时器实现的数字钟_智能测控仪器设计.doc_第3页
用单内部的定时器实现的数字钟_智能测控仪器设计.doc_第4页
用单内部的定时器实现的数字钟_智能测控仪器设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、.“智能测控仪器设计”课程项目设计总结报告项目名称: 用单片机内部定时器实现的数字钟 指导老师: 学 号: 专业年级: 完成时间: 2013 年 7 月 用单片机内部定时器实现的数字钟摘要:近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善本文介绍了基于单片机AT89C5

2、1的数字钟的设计,详细讨论了它从软件上实现的过程,重点在时钟调整的方式:查询和中断的比较,然后,对数字钟的稳定性和精确性作了相关的讨论在文章的最后,给出了采用中断方式实现的数字钟的源程序本次设计通过对一个时钟显示手动校时等功能的时间系统的设计,其中结合了LCD1602显示单片机定时中断等技术关键词:单片机的应用,AT89C51,LCD:19 Abstrct:In recent years along with computer penetration in the social sphere and the large scale integrated circuit development,

3、 MCU applications are constantly deepening, because it has strong function, small volume, low power consumption, low price, reliable work, so that the use is convenient wait for a characteristic, thus it is especially suitable for and control of relevant system, more and more widely and its applicat

4、ion in automatic control, intelligent instruments, instrumentation, data acquisition, military products and household appliances and other fields, the microcontroller is often used as a core component to use, in accordance with the specific hardware structure, and the specific characteristics of the

5、 target application software node, to make perfect. This article introduced based on the single-chip digital clock design, discussed in detail from the software implementation process, heavy in the clock adjustment way: queries and disruption of comparison, and then, on the digital clock made of the

6、 stability and accuracy of closed the discussion. At the end of the article, gives the interrupt mode to achieve digital clock source. This design through to a clock display, manual school functions when the time system design, which combines the LCD1602 display, dynamic scanning, SCM timer interrup

7、t technology.Key words: The application of MCU, AT89C51, LCD1. 项目研究意义与研究现状数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,与机械式时钟相比具有更高的准确性和直观性,装置,具有更长的使用寿命,已得到广泛的使用数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展数字钟广泛用于个人家庭,车站, 码头办公室等公共场所,

8、成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能诸如定时自动报警按时自动打铃时间程序自动控制定时广播自动起闭路灯定时开关烘箱通断动力设备甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的因此,研究数字钟及扩大其应用,有着非常现实的意义 本课题研究的基于51单片机数字钟采用专用实时时钟芯片,走时准确,且具有掉电保持功能,采用新颖简单的图像点阵液晶显示,开机有启动画面,具有良好的人机界面;是很好的时间指示工具2.

9、研究的内容与预期目标2.1 研究内容单片机经过1233代的发展,正朝着多功能高性能低电压低功耗低价格大存储容量强I/O功能及较好的结构兼容性方向发展其发展趋势不外乎以下几个方面:1多功能 单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能比如A/DPWMPCA(可编程计数器阵列)WDT(监视定时器-看家狗)高速I/O口及计数器的捕获/比较逻辑等有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量例如,有的芯片以51内核为核心,集成了USB控制器SMART CARD接口MP3解码器CAN或者I*I*C总线控制器等,LEDLCD或VF

10、D显示驱动器也开始集成在8位单片机中2高效率和高性能为了提高执行速度和执行效率,单片机开始使用RISC流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能3低电压和低功耗单片机的嵌入式应用决定了低电压和低功耗的特性十分重要由于CMOS等工艺的大量采用,很

11、多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级这些特性使得单片机系统可以在更小电源的支持下工作更长的时间2.2 预期目标该多功能数字钟的设计,总体上大致可分为以下几个部分组成:1. 时钟电路部分;2.复位电路部分;3.LCD显示电路部分;4.按键选择电路部分;5. 蜂鸣器电路部分系统原理框图如图1所示整个电路的工作原理是由晶振芯片提供准确的时钟电路,由键盘调整数字钟的功能,并通过软件编程把时间数字通过LCD显示出来时钟电路复位电路LCD显示电路按键选择电路AT89C51图1 系统原理框图3. 总体结构设计1.系统的基本原理及设计思想 本设计采用AT89C5

12、1单片机模块晶振电路模块复位电路模块独立键盘模块和显示电路模块 晶振电路用于产生AT89C51单片机工作时所必需的控制信号AT89C51单片机的内部电路正是在时钟信号的控制下,严格地按时序执行指令进行工作在执行指令时,CPU首先到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号完成指令所规定的操作 复位是单片机的初始化操作,只需给AT89C51的复位引脚RESET加上大于2个机器周期的高电平就可使AT89C51复位当AT89C51进行复位时,PC初始化为0000H,使AT89C51单片机从程序存储器的0000H单元开始执行程序除了进入系统的正常

13、初始化之外,当程序运行出错(如程序“跑飞”)或操作错误使系统处于“死锁”状态时,也需要按复位键即RESET为高电平,使AT89C51摆脱“跑飞”或“死锁”状态而重新启动程序 键盘的任务有三项:(1)首先判别是否有键按下若有,进入下一步工作(2)识别哪一个键被按下,并求出相应的键值(3)根据键值,找到相应键值的处理程序入口在本设计中,键盘具有向单片机输入数据命令等功能,是人与单片机对话的主要手段2.计时方案 电脑数字钟的秒信号是利用AT89C51单片机内部定时器TO产生的由于振荡器的晶振频率为12MHz,使得TO的最大定时时间远远小于1秒,因此,在设计时采用了硬件计数与软件计

14、数相结合的方式,即通过TO产生0.1S的时基信号,然后再利用软件进行计数,从而产生1秒钟的时间信号 在设计中,定时器TO采用了中断方式当定时时间到时,定时器向CPU申请一次中断,CPU响应中断后转入中断服务程序,在TO的中断服务程序中实现时分秒的累加,即每产生一次中断,0.1S时基单元的内容加1,当0.1S时基单元的内容等于10时,便产生1S信号,使秒计数单元的内容加1,并将0.1S时基单元的内容清0;当秒计数单元计满60后,向分计数单元进位,使分计数单元的内容加1,并将秒计数单元的内容清0;当分计数单元计满60后,向时计数单元进位,使时计数单元的内容加1,并将分计数单元的内容清0;

15、时计数单元计满24后清O4.硬件设计4.1 单片机的选择本课程选用AT89C51型号的单片机 AT89C51 是美国ATMEL 公司生产的低电压,高性能CMOS8 位单片机,片内含4k bytes 的可反复擦写的只读程序存 储器(PEROM)和128 bytes 的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度非易失性存储技术生产, 兼容标准MCS-51指令系统,片内置通用8 位 央处理器(CPU)和Flash 存储单元,功能强大AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域主要性能参数: 1与MCS-51产指令系统完全兼容 2 4k字节可重

16、擦写Flash 闪速存储器 3 1000 次擦写周期 4 全静态操作:0Hz-24MHz 5 三级加密程序存储器 6 128×8 字节内部RAM 7 32 个可编程I /O口线 8 2 个16 位定时/计数器 4.2 定时/计数器8051系列单片机至少有两个16位内部定时器/计数器8052有三个定时器/计数器,其中连个基本定时器/计数器是定时器/计数器0和定时器/计数器1他们既可以编程为定时器使用,也可以编程为计数器使用若是计数内部晶振驱动时钟,则它是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器8051的T/C时加一计数的定时器实际上也是工作在技术方式下的,只不过对固定

17、频率的脉冲计数;由于脉冲周期固定,由计数值可以计算出时间,有定时功能当T/C工作在定时器时,对振荡源12分频的脉冲计数,即每个机器周期计数值加一,频率加=fosc/12晶振为6MHz,计数频率=500KHz,每2Us计数加一当T/C工作在计数器时,计数脉冲来自外部脉冲输入引脚T0或T1当T0或T1脚上负跳变需2个机器周期,即24个振荡周期所以T0或T1脚输入的计数外部脉冲的最高频率为fosc/12当晶振为12MHz时,最高技术频率为500KHz,高于此频率将计数出错4.3 显示电路1602字符型LCD简介1602LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.55.5V

18、工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V引脚功能说明 表1:引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器低电

19、平时选择指令寄存器第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令第714脚:D0D7为8位双向数据线4.3.1 液晶显示器各种图形的显示原理字符型液晶显示模块是一种专门用于显示字母数字符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法一般1602字符型液晶显示器实物如图5,仿

20、真图6:1.线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)

21、=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线这就是LCD显示的基本原理2.字符的显示用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮这样一来就组成某个字符但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可4.3.2 时钟电路图2 时钟电路图时钟是单片机的心脏,单片

22、机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式本文用的是内部时钟方式电路图如图7:MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反向放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器4.3.3 按键电路图 3 独立式按键电路图独立式按键是各按键相互独立,每个按键占用一根I/O端线,每根I/O端线上的按键工作状态不会影响其他I/O端线上按键

23、的工作状态如图9所示:独立式按键电路配置灵活,软件结构简单,但每个按键必须适用于按键数量较少的场合本设计中用到4个按键数量较少,所以采用的是独立式按键5.软件设计系统的软件设计也是工具系统功能的设计单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计单片机的软件设计通常要考虑以下几个方面的问题:(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰简洁和流程合理;(2)培养良好的编程风格,如考虑结构化程序设计实行模块化子程序化既便于调试链接,又便于移植和修改;(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;

24、(4)绘制程序流程图;(5)合理分配系统资源;(6)为程序加入注释,提高可读性,实施软件工程;(7)注意软件的抗干扰设计,提高系统的可靠性5.1 主控模块设计开始初始化启动定时器,主程序开始运行按键检测时间显示图4 主程序流程图开始工作时,先把一切都初始化,然后单片机里的定时器开始工作,主程序开始运行,同时对按键进行检测,检测完就可以开始计时以下是本实验程序:#include<reg52.h>#include<intrins.h>#include<stdlib.h>sbit RS=P20;sbit RW=P21;sbit E=P22;sbit BF=P07;

25、sbit K1=P30;sbit K2=P32;sbit K3=P34;sbit K4=P36;unsigned char t;unsigned char s,m,h;unsigned char code string="Beijing Time"unsigned char code digit="0123456789"void delay(unsigned char i) unsigned char j; while(i-) for(j=0;j<115;j+) ;unsigned char BusyTest() bit result; RS=0;

26、 RW=1; E=1; _nop_(); _nop_(); _nop_(); _nop_(); result=BF; E=0; return result;void Write_com(unsigned char dicate) while(BusyTest()=1); RS=0; RW=0; E=0; _nop_(); _nop_(); P0=dicate; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0;void WriteAddress(unsigned char x)Wri

27、te_com(x|0x80);void WriteData(unsigned char y)while(BusyTest()=1); RS=1; RW=0; E=0; _nop_(); _nop_(); P0=y; _nop_(); _nop_(); _nop_(); _nop_(); E=1; _nop_(); _nop_(); _nop_(); _nop_(); E=0;void Lcdint() delay(15); Write_com(0x38); delay(5); Write_com(0x38); delay(5); Write_com(0x38); delay(5); Write

28、_com(0x0c); delay(5);Write_com(0x06);delay(5);Write_com(0x01);delay(5);void Displayhour() unsigned char i,j; i=h/10; j=h%10; WriteAddress(0x44); WriteData(digiti); WriteData(digitj);void Displayminute() unsigned char i,j; i=m/10; j=m%10; WriteAddress(0x47); WriteData(digiti); WriteData(digitj);void

29、Displaysecond() unsigned char i,j; i=s/10; j=s%10; WriteAddress(0x4a); WriteData(digiti); WriteData(digitj);void main()unsigned char i; Lcdint(); TMOD=0x01; EA=1; ET0=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; t=0; s=0; m=0; h=0;WriteAddress(0x02); i=0; while(stringi!='0') Write

30、Data(stringi);i+; WriteAddress(0x46); WriteData(':'); WriteAddress(0x49); WriteData(':'); while(1) Displayhour(); delay(5); Displayminute(); delay(5); Displaysecond(); delay(5); if(K1=0) delay(15); if(K1=0) h+; if(h=24) h=0; while(K1=0); delay(15); if(K2=0) delay(15); if(K2=0) m+; if(m=60) m=0; while(K2=0); delay(15); if(K3=0) delay(15); if(K3=0) m-; if(m=0)

温馨提示

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

评论

0/150

提交评论