基于单片机的时钟设计_第1页
基于单片机的时钟设计_第2页
基于单片机的时钟设计_第3页
基于单片机的时钟设计_第4页
基于单片机的时钟设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、第1章 绪论1.1 电子时钟功能1.1.1 时钟简介现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。1.1.2 时钟的基本特点及原理现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和

2、分的校对,片选的灵活性好。该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。1.2 实现功能此课程设计要求用单片机AT89C51定时功能,中断系统,按键及LED数码管显示,设计一个能显示时、分、秒的数字时钟。数字时钟通过数码

3、管显示,使用按键开关来实现调时功能。1.3 设计方案1.3.1 计时方案利用AT89S51单片机内部的定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。1.3.2 显示方案AT89S51的P0口和P2口外接由8个LED数码管(LED7LED0)构成的显示器,用P0口作LED的段码输出口,P2口作LED数码管的位控输出线,P1口外接四个按键A、B、C、D构成键盘电路。简易电子钟的功能不复杂,采用其现有的I/O便可完成。图1

4、.1 硬件设计流程图第2章 硬件介绍2.1单片机简介2.1.1单片机的特点 1 . 单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。 2 . 采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力.3 . 单片机的I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分.4 . 单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需

5、求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。2.1.2 89C51单片机介绍VCC:电源。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉

6、为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存 储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器 的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

7、图2.1 AT89C51单片机 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能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 /RD(外部数据存储器读选通)

8、P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器 时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执

9、行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。2.2 LED数码管图2.2 共阴数码管数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把

10、多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,

11、共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。 2.3晶振电路每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五

12、十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。 晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。2.4 复位电路复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图2

13、.3 上电复位电路第3章 软件设计3.1 Protues软件3.1.1 Protues软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、A

14、VR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。3.1.2 电路功能仿真在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在

15、PROTUES的原理图中看到模拟的实物运行状态和过程。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大

16、为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能茯得愈来愈广泛的应用。3.2 主程序主程序执行流程如图3.1,主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有键按下,则转入相应的功能程序。3.3 显示子程序图3.1 主程序本系统共用8个数码管,从右到左依次显示秒个位、秒十位、横线、分个位、分十位、横线、时个位和时十位。采用软件译码动态显示。由于采用7段共阳LED数码管动态扫描实现数据显示,所以显示用十进制BCD码数据的对应段码存放在ROM中。显示时,先取内存地址中的数据,然后查得对应的显示用段码从P0口输出,P1口将对应的数码管选

17、中供电,就能显示该地址单元的数据值。3.4 定时器/计数器T0中断服务程序定时器/计数器T0用于时间计时。选择方式1,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加1,秒单元加到60则对分单元加1,同时秒单元清0;分单元加到60则对时单元加1,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。在对各单元计数的同时,把它们的值放到存储单元的指定位置。定时器/计数器T0中断服务程序流程图如图3.2。3.5 调时程序图3.2 T0中断流程图给三个按键,当P2.0口的按键K0按下,则进入调时状态,按K1,K2加1减1操作

18、,再按K0,调分,再按K0,调秒,再按K0,则退出调时功能,进行正常计数运行。第4章 调试及运行结果4.1 调试步骤(1)在WAVE软件中编写程序,完成后,单击“项目”下的“编译”,产生“.hex”文件,再单击“执行”下的“全速执行”(2)打开proteus软件,画上硬件电路图,保存。(3)选择“源代码”中的“添加/移除源代码”,单击“新建”,加入“.asm”,确定。(4)单击“源代码”中的“全部编译”,无错误后,调试。4.2 运行结果图4.1 运行程序截图按P2.0口的按键K1,进入调时状态,P2.1和P2.2口的按键分别为加减计数,在按K1,进入调分状态,再按,进入调秒状态,再按则退出调时

19、状态,进入正常的计数程序。4.3 参考程序org 0000hljmp mainorg 0003hljmp miaoorg 000bhljmp shiorg 0013hljmp fenorg 001bhljmp mpmain:mov sp,#5fhmov tmod,#16hmov th0,#255mov tl0,#255mov th1,#3chmov tl1,#0b0hmov r4,#00hmov r5,#00hmov r6,#00hsetb eaclr ex0clr ex1setb it0setb it1clr et0setb tr0setb tr1setb et1mov r7,#20loop

20、:mov a,r4mov b,#10div abmov dptr,#0300hmovc a,a+dptrmov p0,amov p1,#01hlcall delaymov p0,#0ffhmov a,bmovc a,a+dptrmov p1,#02hmov p0,alcall delaymov p0,#0ffhmov p2,#0ffhjnb p2.0,tiaojiemov p1,#04hmov p0,#0bfhlcall delaymov p0,#0ffhmov a,r5mov b,#10div abmovc a,a+dptrmov p1,#08hmov p0,amov p1,#08hlcal

21、l delaymov p0,#0ffhmov p2,#0ffhjnb p2.0,tiaojiemov a,bmovc a,a+dptrmov p1,#10hmov p0,alcall delaymov p0,#0ffhmov p1,#20hmov p0,#0bfhlcall delaymov p0,#0ffhmov p2,#0ffhjnb p2.0,tiaojiemov a,r6mov b,#10div abmovc a,a+dptrmov p1,#40hmov p0,alcall delaymov p0,#0ffhmov a,bmovc a,a+dptrmov p1,#80hmov p0,a

22、lcall delaymov p0,#0ffhmov p2,#0ffhjnb p2.0,tiaojieljmp looptiaojie: cpl et0cpl et1cpl ex0cpl ex1ljmp looporg 0100hmp :push amov th1,#3chmov tl1,#0b0hdjnz r7,fanhuimov r7,#20inc r4mov a,r4cjne a,#60,fanhuimov r4,#00hinc r5mov a,r5cjne a,#60,fanhuimov r5,#00hinc r6mov a,r6cjne a,12h ,fanhuimov r6,#00

23、hfanhui:pop aretidelay: mov r3,#10l0:mov r2,#100djnz r2,$djnz r3,l0retorg 0200hmiao:clr eainc r4mov a,r4cjne a,#60,l3mov r4,#00hl3: setb earetifen:clr eainc r5mov a,r5cjne a,#60,l1mov r5,#00hl1: setb earetishi :clr eainc r6mov a,r6cjne a,#12,l2mov r6,#00hl2: setb earetiorg 0300htab:db 0c0h,0f9h,0a4h, 0b0h,99h,92h,82h,0f8h,80h,90hend第5章 心得体会此实验利用protues仿真软件实现,基本实现了要求的功能。为了校准时钟增加了按键,便于调节。在本次实验中对单片机内部结构有一定了解,熟悉了各个引脚的功能,同时熟知了LED数码管的使用及各种电路的功能。通过此次课程设计,无论是从软件方面还是硬件方面,都进一步学习和巩固了程序的总体设计。在软件方面,进一步熟悉了各条指令的功能及用法,定时、中断的用法,更深一步学习了用汇编语言编写实现数字时钟功能。在硬件方面,了解并学习使用

温馨提示

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

评论

0/150

提交评论