基于51单片机可调数字钟的设计讲解_第1页
基于51单片机可调数字钟的设计讲解_第2页
基于51单片机可调数字钟的设计讲解_第3页
基于51单片机可调数字钟的设计讲解_第4页
基于51单片机可调数字钟的设计讲解_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、安阳师范学院 单片机技术课程实践 基于89C51单片机可调数字钟的仿真设计 班级: 姓名: 学号: 辅导老师: 设计时间: 1.设计目的 11设计目的 (1) 掌握51系列内部定时/计数器的原理和基本应用; (2) 掌握使用单片机处理复杂逻辑的方法; (3) 掌握多位数码管动态显示的方法: (4) 掌握独立式(和矩阵)键盘的编程方法: (5) 掌握利用汇编语言编写单片机系统的应用软件的方法; (6) 巩固,加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识 解决工业控制的能力; (7) 培养针对课题需要,选择和査阅有关手册,图表及文献资料的白学能力, 提高组成系统,编程,调试的动手能力;

2、 (8) 熟悉单片机用系统开发,研制的过程,软硬件设计方法,内容及步骤. (9) 了解数字钟的组成及工作原理. 1. 2设计性能 (1) 用51单片机的定时/计数器TMRO产生一秒的定时时间,作为秒计数时 间; (2) 当一秒产生时,秒计数加1; (3) 开机时,显示00.00.00,并开始连续计时: (4) 计时满23.29.59时,返回00.00.00重新开始计时; (5) 在以上设计基础上,在单片机的I/O 口上分别接入四个按键:K0-控制 “秒”的调整,每按一次加1秒;K1控制“分”的调整,每按一次加1分: K2控制“时”的调整,每按一次加1小时;K3时间复位按键。 2 系统电路的方案

3、 2.1实现时钟计时的基本方法 用AT89C51单片机的定时/计数器TO产生一秒的定时时间,作为秒计数时间, 当一秒产生时,秒计数加1开机时。显示03-00-00的时间,开始计时;计时满 23-59-59时,返回00-00-00重新计时 AT89C51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既 可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要 通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过TCON 特殊功能寄存器来设置的。 在此设计中,选择16位定时工作方式。对于T0來说,系统时钟为12MHz, 最大定时也只有65536us,即

4、65.536ms,无法达到我们所需要的1秒的定时,因 此,必须通过软件来处理这个问题,假设取T0的最大定时为50ms,即要定时1 秒需要经过20次的50ms的定时。对于这20次计数,就可以采用软件的方法來 统计了。 设定TM0D=01H,设置定时/计数器0工作在方式1。 给T0定时/计数器的THO, TLO装入预置初值,通过下面的公式可以计算出: N=t/Ty=(50X 10-3)/(IX 10*-6) =50000 X 二65536-5000015536二 3CB0H 即 THO二3CH, TLO二OBOH. 这样,当定时/计数器0计满50ms时,产生一个中断,我们可以在中断服务 程序中,对

5、中断次数加以统计,以实现数字钟的逻辑功能。 2. 2数字钟的时间显示 显示器的时间显示采用动态扫描电路驱动形式,以达到简化电路的目的。但 要注意所需的驱动电流比静态驱动时要大,因此要增加驱动电路。可采用 74LS244或者晶体管;其中74LS244是用来驱动段选码,晶体管是驱动位选码。 电子钟的时钟时间在六位数码管上进行显示,因此,在内部RAM中设置显 示缓冲区共8个单元。 LED8 LED7 LED6 LED5 37H 36H 35H 34H 小时 分隔符 分 LED4 LED3 LED2 LED1 33H 32H 31H 30H 钟 分隔符 秒 3. 系统的硬件设计 3.1单片机的功能介绍

6、 AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微 处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储 器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用 ATMEL高密度非易失存储器制造技术制造,与匚业标准的MCS-51指令集和输 出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排 列如图所示。 U1 19 18 只 TALI X

7、TAL2 RST PSEN ALE EA PO.O/ADO P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 =2.2W P2.3/A11 P2.4A2 P2 5/A13 P26/AU P2A5 39 38 37 36 35 豆 33 32 OJ.234.56.7 11111111 PPPPPPPP 10 TT ll 亘 77 16 V P3.D/RXD P3.1/IXD P32INT0 P3.3frTrT P3.4H0 P3.5H1 P3.6R P3 7/RD AT89C51 图3.

8、1单片机AT89C52引脚功能简化图 32时钟振荡电路 时钟振荡器即时钟脉冲发生器,产生整个芯片内部各功能电路正常操作所需 的时钟脉冲和定时信号。最常用的一种电路连接方法是,在X1AL1和X1AL2 这2只引脚之间外接一只晶体振荡器X1AL和2只电容C1和C2到地(如图53 所示),与片内电路共同构成一个多谐振荡器电路。其振荡频率取决于外接石英 晶体振荡器元件XTAL的固有频率,常选取12MHZ或6MHZ的晶振。 典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特 率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)特 别注意:对于31脚

9、(EA/Vpp),当接高电半时,单片机在复位后从内部ROM的UUUUH 开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。 图3. 2时钟振荡电路图 33键盘控制电路 键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实 现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程來识 别的称为非编码键盘; 在单片机组成的各种系统中,用的最多的是非编码键盘。也有用到编码键盘 的。非编码键盘有分为:独立键盘和行列式(乂称为矩阵式)键盘。下图56是 非编码键盘式控制电路。 Q.1.2.3.4IP.6.7 1 1 1 d HI d d 1 pppppppp 图3

10、. 3键盘控制电路 按键在闭合和断开时,触点会存在抖动现象为使CPU能正确地读出端口的 状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的 方法有两种:硬件方法和软件方法。单片机中常用软件法,软件法其实很简单, 就是在单片机获得端口为低的信息后,不是立即认定按键己被按下,而是延时 10毫秒或更长一些时间后再次检测端口,如果仍为低,说明按键的确按下了, 这实际上是避开了按键按下时的抖动时间。而在检测到按键释放后(端口为高) 再延时5-10个臺秒,消除后沿的抖动,然后再对键值处理。不过一般情况下, 我们通常不对按键释放的后沿进行处理,实践证明,也能满足一定的要求。 4. 系统的

11、软件设计 4.1系统软件设计流程图 这次的数字钟设计用到很多子程序,最好将它们分为若干个相对独立且相互 联系的部分。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测, 检测完后,就可以显示时间。以下是数字钟工作的流程图。 图4.1数字钟工作流程图 4.2系统中断流程图 单片机一般允许有多个中断源,当几个中断源同时向CPU请求中断时,就 存在CPU优先响应哪一个中断谙求源的问题(优先级问题),一般根据中断源的 轻重缓急排队,优先处理最紧急事件的中断诸求,于是便规定每一个中断源都有 一个中断优先级别,并且CPU总是响应级别最高的中断请求。 当CPU正在处理一个中断源请求的时候,乂发生了另

12、一个优先级比它高的 中断源请求,如果CPU能够暂时中止对原来中断处理程序的执行,转而去处理 优先级更高的中断源请求,待处理完以后,再继续执行原来的低级中断处理程序, 这样的过程称为中断嵌套。 以下图是定时器中断服务子程序流程图 图4. 2定时器中断服务子程序流程图 43子程序说明 4. 3.1按键扫描 按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有 按下,就检测分按键是否按下,分按键如果按下,分就加1:如果没有按下,就 检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就检测复位 键是否按下,复位健按键如果按下,时钟就复位。如果没有按下,把时间显示出 来。 4.

13、3.2 时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显 示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪 一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各 位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留特性,使 人的感觉好像各位数码管同时都在显示。 5. 数字钟元件清单和软件介纟 5.1数字钟元件清单 列元件清单的主要目的是为了更好地理论联系实际,为了硬件设计和仿真起 到了不可磨灭的作用,做到心中有数。以下是数字钟的元件清单 元件名称 规格型号 数量(个

14、) 单片机 AT89C51 1 电阻 RES/10K.RES/220 5,8 晶振 11.0592MHz 1 电容 30pF/220uf 2,1 按键 BUTTON 4 排阻 RESPACK-8/10K 1 锁存器 74LS245 1 液晶显示 7SEG-MPX6-CC 1 二极管 1N4148 4 表5.1电子钟元器件淸单 52软件调试 打开程序调试软件keil uVisioiB,在里面新建一个工程,接着新建文件,编 写相应程序。编写好的齐个程序进行编译与连接。但若是在该过程中,看见我们 编好的程序有错误,那么根据他相应的提示来修改错误,直到该程序能够正确编 译为上。能够正常编译的程仔说明没

15、有什么问题了,此时我们在点击相关栏目, 让它生成我们在硬件仿真时所需要的.HEX文件。 5. 3硬件调试 打开Proteus仿真软件,按照方案所选的电路元件来设计整体电路,先把 芯片按一定的位置放好,然后按相应的对象进行连接,连接时需仔细,以免调试 时发生错误。做好之后把编程所生成的。HEX文件加载到AT89C52中,运行仿真 软件,査看运行效果。如果运行出错那么就根据他相应的提示来修改错误,直到 仿真成功为止。 总结 通过本次仿真的设计,我遇到很多自己不理解的问题及书本上或是我以前没 有看见过的知识点。在面对这些问题时,我首先采用的是上网搜寻的方法,在根 据别人的提示,想想自己的问题出在哪里

16、,该怎么解决。当我还是无法想到解决 的办法时,我就带着|己的问题到图书馆查阅资料或找同学互相交流,如果我的 问题还是没有解决,我就带着问题去问我们的指导老师,让他帮我解决。采用这 样的方法,我的很多问题都迎刃而解了!其次,我不但努力解决白己遇到的问题, 还帮助同学解决他们遇到的问题。这样一来,我的知识得到了进一步的巩固,同 学的问题也得到了相应的解决,我达到了一举双收的效果,我为此而感到高兴。 让我觉得仿真的最大成果是:知道了将理论用到实际当中时,会遇到很多的 问题。需要我们一个一个地把它解决,根据h己所学的专业基础知识分析具体原 因,具体问题具体分析,再逐一把它克服掉。知道理论与实际的差距,

17、所以以后 要多加强实际动手的能力。因此,学习就应该采収理论与实践相结合的方式,理 论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,乂有 助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。最后, 我相信以后不管遇到什么困难和挫折,不要畏惧,要敢于向前探索。这样问题才 能迎刃而解。 S_SET BIT M_SET BIT H_SET BIT RESET BIT 附录一系统程序源代码 P1.0 ;数字钟秒控制位 Pl.l ;分钟控制位 Pl.2 ;小时控制位 P1.3;复位键 SECOND EQU 30H MINUTE EQU 31H HOUR EQU 32H TCN

18、T EQU 34H ORG 0000H SJMP START ORG 0BH LJMP INT TO ;定时器0溢出中断矢量 STARTMOV MOV MOV DPTR, #TABLE HOUR,划;初始化 MINUTE, #0 MOV SECOND, #0 MOV TCNT,驹;计数值赋0 MOV TMOD,#01H淀时器/计数器工作在方式1 MOV TH0,#3CH ;定时 50 毫秒 MOV TLO, #0B0H MOV IE, #82H ;EA中断总允许位置1 SETB TRO ;允许TO累加计数。 ;判断是否有控制键按下,是哪一个键按下 Al: LCALL DISPLAY MOV P

19、l,执)FFH ;把Pl脚置成髙电平 JNB S_SET, SI JNB M_SET, S2 JNB H_SET, S3 JNB RESET, S4 LJMP Al ;如果没有键按下重新检测 SI: LCALL DELAY ;有S_SET键按下去抖动 JB S_SETA1;确实有舗按下进入下面处理,否则为干扰重新检测 INC SECOND ;秒值加 1 LCALL DISPLAY MOV A, SECOND CJNE A,堀0, JO ;判断是否加到60秒 MOV SECOND, #0 LJMP JO;等待按键弹起来,按一次,只加一次 10 S2: LCALL DELAY ;有M_SET键按下去抖动 JB M_SET, Al INC MINUTE ;分钟值加1 LCALL DISPLAY MOV A, MINUTE CJNE A,#60,J1 ;判断是否加到60分 MOV MINUTE, #0 LJMP JI S3: L

温馨提示

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

评论

0/150

提交评论