单片机数字时钟课程设计资料.doc

上传人:小飞机 文档编号:4006255 上传时间:2023-03-31 格式:DOC 页数:24 大小:1.07MB
返回 下载 相关 举报
单片机数字时钟课程设计资料.doc_第1页
第1页 / 共24页
单片机数字时钟课程设计资料.doc_第2页
第2页 / 共24页
单片机数字时钟课程设计资料.doc_第3页
第3页 / 共24页
单片机数字时钟课程设计资料.doc_第4页
第4页 / 共24页
单片机数字时钟课程设计资料.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《单片机数字时钟课程设计资料.doc》由会员分享,可在线阅读,更多相关《单片机数字时钟课程设计资料.doc(24页珍藏版)》请在三一办公上搜索。

1、 单片机课程设计数字时钟设计学 院:机电工程学院专 业:农业电气化与自动化班 级:10级农电一班姓 名:学 号:指导教师:2013年1月5日课程设计(论文)任务书题目:数字电子钟任务与要求: 1. 设计数字时钟,能显示时、分、秒; 2. 整点采用声音报时功能; 3.按键调时、分时间: 2012 年 12 年28 日 至 2013 年 1月 5 日 共 9 天摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,

2、数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本次设计中以单片机的发展过程和发展方向为背景,介绍了单片机的输入输出的工作原理和操作方法,中断的工作原理和操作方法,74LS245译码器的工作原理和与,LED连接的方法。本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、BCD-锁存/7段译码/驱动器74LS245等),再配以相应的软件,是它具有时,分,秒显示的功能,并且时,分,秒还可以调整。此次设计电子数字钟是为了了解电子数字钟的原理,从而学会制作电子数字钟。

3、而且通过电子数字钟的制作进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法。通过它可以进一步学习与掌握单片机原理与使用方法。关键词:单片机 AT89C51 共阴极LED数码显示器 74LS245译码器 目录摘要3目录4第一章 数电字子钟的背景、意义、应用5第二章 单片机和数字钟的基本知识l52.1应用知识简介52.2单片机数字钟的基本原理6第三章系统硬件电路的设计63.1 单片机的基本结构63.2 74LS245 引脚图及功能:83.3七段数码管的引脚图及使用:103.4 蜂鸣器设计.-10-3.5硬件电路的设计原则11第四章软件程序的设计134.2 软件流程图134.2.1 系统

4、软件设计流程图134.3 定时程序设计164.3.1实时时钟实现的基本方法:164.3.2 实时时钟程序设计步骤:16结束语22参考文献23第一章 数电字子钟的背景、意义、应用 20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发

5、展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置

6、,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、

7、娱乐带来极大的方便。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时自动报时及自动控制的领域。 第二章 单片机和数字钟的基本知识l 2.1应用知识简介51单片机: 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。51 系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51 系列单片机的发展又进入了一个新的阶段。在今后很长一段时间内51 系列单片机仍将占据嵌入式系统产品的

8、中低端市场。l 汇编语言:汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。汇编语言保持了机器语言的优点,具有直接和简捷的特点,其代码具有效率高实时性强等优点。但是对于复杂的运算或大型程序,用汇编语言编写将非常耗时。汇编语言可以与高级语言配合使用,应用十分广泛。l ISPISP(In-System Programming)在系统可编程,是当今流行的单片机编程模式,指电路板上的空白元器件可以编程写入最终用户代码,而不需要从电路板上取下元器件。已经编程的器件也可以用ISP 方式擦除或再编程。本次课程设计便使用ISP 方式,直接将编写好的程序下载到连接好的单片机

9、中进行调试。2.2单片机数字钟的基本原理 它是利用单片机的内部的定时/计数器工作与定时方式,对机器周期计数形成基准时间(如10ms)然后用另外一个计数器或软件计数的形式对基准时间进行计数形成秒(如对10ms计数100次),“秒”计数60次“分”,“分”计数60次形成“时”,“时”计数24次满一天清零,然后通过译码器,数码管把他们的内容在相应的位置显示出来。在具体的设计时定时器采用中断方式工作,对时钟的形成在终中断序中实现,在主程序只是对定时/计数器的定义初始化,调用显示程序和控制程序的初始化。另外为了使用的方便,也设计了按键,可以通过按键对时分秒进行调整,这样程序就加了按键程序。第三章系统硬件

10、电路的设计3.1 单片机的基本结构 MCS-51单片机内部结构: 8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM) 8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能

11、访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图3-1 单片机8051的内部结构程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。MCS-51的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配

12、置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:MCS-51的引脚说明:MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明: 图3-2 单片机的引脚Pin9:RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位

13、。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。 3.2 74LS245 引脚图及功能: 总线驱动器74LS245经常用作三态数据缓冲器,74LS245为双向三态数据缓冲器。单向的内部有8个三态驱动器,分成两组,分别由控制端1G和2G控制; 双向的有16个三态驱动器,每个方向8个。在控制G有效时(G为低电平),由DIR端控制驱动方向:DIR为“1”时方向从左到右(输出允许),D

14、IR为“0”时方向从右到左(输入允许)。 图3-3 74LS245的引脚图G0,DIR0,B-A;G=0, DIR=1, A-B;G=1, DIR=X, X=0或者1,输入和输出均为高阻态;高阻态的含意就是相当于没有这个芯片74LS245是8路3态 双向缓冲驱动,也叫做总线驱动门电路或线驱动。主要使用在数据的双向缓冲,原来常见于51的数据接口电路,比如,早期电路中,扩展了很多的8255/8155/8251/8253/573等芯片的时候,担心8031的数据驱动能力不足,就使用一片74LS245作为数据缓冲电路,增强驱动能力;也常见与ISA卡的接口电路. 3.3七段数码管的引脚图及使用:图 3-4

15、数码管使用条件:a、段及小数点上加限流电阻。b、使用电压:段:根据发光颜色决定; 小数点:根据发光颜色决定。c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA上面这个只是七段数码管引脚图,其中共阳极数码管引脚图和共阴极的是一样的。 LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。 将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在

16、一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将b和c段接上正电源,其它端接地或悬空,那么b和c段发光,此时,数码管显示将显示数字“1”。而将a、b、d、e和g段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同。3.4蜂鸣器的设计1、 蜂鸣器的分类 i. 压电式蜂鸣器 以压电陶瓷的压电效应带动金属片震动发声呈容性 ii. 电磁式蜂鸣器 用电磁的原理通电时将金属振动膜吸下不通电时依振动膜的弹力弹回呈感性iii. 无论是压电式或是电磁式蜂鸣器均有无源和有源之分。区别是驱

17、动方式不一样iv. 无源蜂鸣器方波驱动周期一般为2KHz或4KHz的方波 v. 有源蜂鸣器电压直接驱动 2、 驱动电压的区别 i. 压电式蜂鸣器的驱动电压一般在9V以上且经过升压电感升压后发生声音的分贝很大 ii. 电磁式蜂鸣器的驱动电压一般为+5V或+12V图3-53.5硬件电路的设计原则在性价比满足应用系统要求的情况下,选择更可靠,更熟悉的单片机缩短研制周期。尽可能选择自己较为熟悉的应用电路,以提高系统的可靠性。单片机内部的资源与外部的扩展资源应在满足系统设计的基础上留有余地,为进一步的升级和扩展提供方便。应充分的结合软件方案考虑硬件的结构,通常硬件功能较完善,其相应的软件程序就简单,但硬

18、件的成本较高,而功能较低,其相应的软件就复杂,其实际常用软件代替硬件来降低成本。整个系统相关的器件尽可能的做到性能相匹配。充分的考虑系统的抗干扰性,如具有抗干扰的单片机并充分的帅选芯片与器件,在电路中采取隔离或屏蔽的措施等。更具以上的原则我们选择我们较为熟悉的80c51单片机;为了LED数码管的显示和和键盘的控制,我们也选择了74LS245的译码器和#1,#2,#3号按键作为时钟的参数修改加一键#1键修改时,按一下时加一#2键修改分,按一下分加一#3键修改秒,按一下秒加一3.6proteus简介与仿真proteus简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真

19、软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,

20、同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision3等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。Proteus仿真图3-6 Proteus仿真电路图第四章软件程序的设计4.1 软件程序内容 本设计的软件程序包括主程序、中断子程序、打铃子程序、时钟显示子程序、查询时间表切换程序和延时子程序等等。另外由于电路中有四个按键,还另外设计了防抖动程序来防止干扰。4.2 软件流

21、程图4.2.1 系统软件设计流程图 这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。NYNYNY时加1显示时间结束开始秒按键按下?秒加1分按键按下?分加1时按键按下?开始启动定时器按键检测时间显示图4-1 主程序流程图 图4-2 按键处理流程图按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示。 定时器中断时是先检测1秒是否到,1秒如果到,秒单

22、元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。N24小时到?分单元清零,时单元加1NNNYY时单元清零时间显示中断返回开始一秒时间到?6秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1YY闹铃判断整点报时图4-3 定时器中断流程图 时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。定时器检测分、秒是否到60,是,启动报时器。4.3 定时程序设计单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单

23、片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。如果MCS-52采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标

24、志位TFX.当定时器/计数器工作于方式1,为16位的计数器。本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。4.3.1实时时钟实现的基本方法:时钟的最小计时单位是秒,但使用定时器的方式1,最大的定时时间也只能达到131ms。我们可把定时器的定时时间定为50ms。这样,计数溢出20次即可得到时钟的最小计时单位:秒。而计数20次可以用软件实现。秒计时是采用中断方式进行溢出次数的累积,计满20次,即得到秒计时。从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。要求每满1秒,则“秒”单元中

25、的内容加1;“秒”单元满60,则“分”单元中的内容加1;“分”单元满60,则“时”单元中的内容加1;“时”单元满24,则将时、分、秒的内容全部清零。:4.3.2 实时时钟程序设计步骤:(1)选择工作方式,计算初值;(2)采用中断方式进行溢出次数累计;(3)从秒分时的计时是通过累加和数值比较实现的;(4)时钟显示缓冲区:时钟时间在方位数码管上进行显示,为此在内部RAM中要设置显示缓冲区,共6个地址单元。显示缓冲区从左到右依次存放时、分、秒数值;(5)主程序:主要进行定时器/计数器的初始化编程,然后反复调用显示子程序的方法等待中断的到来。(6)中断服务程序:进行计时操作(7)加1子程序:用于完成对

26、时、分、秒的加操作,中断服务程序在秒、分、时加1时共有三种条调用加1子程序,包括三项内容:合字、加1并进行十进制调整、分字。源程序如下:SET_1 BIT P1.0 ;秒控制键SET_2 BIT P1.1 ;分控制键SET_3 BIT P1.2 ;时控制键SECOND EQU 30H ;秒寄储单元MINUTE EQU 31H ;分寄储单元HOUR EQU 32H ;时寄储单元TCNT EQU 36H ;计数寄储单元 ORG 0000H AJMP TANG ORG 000BH LJMP INT_T0TANG: MOV DPTR,#TAB;把DPTR指针指向表格TAB的所在的地址,用于读数码管值表

27、 MOV HOUR,#1 ;对时、分、秒初始化 MOV MINUTE,#59 MOV SECOND,#55 MOV TCNT,#0;计数器 MOV TMOD,#01H;设置定时器0模式1,模式1定时最大值65.536ms,而模式0最大8.192ms MOV TH0,#32H;定时初值50ms(65535-50000)/256商放高八位 MOV TL0,#0b0H;(65535-50000)%256余数放低八 MOV IE,#82H;中断允许寄存器IE,cpu开中断,T0 开中断 SETB TR0;启动定时器0;*;设置时分秒程序:;判断时分秒是否有控制键按下,是哪一个键按下,并调用显示时分秒;

28、* A1: LCALL DISPLAY1;显示秒分时 JNB SET_1,S1;按下去跳转到s1 JNB SET_2,S2 JNB SET_3,S3 LJMP A1 S1: LCALL DELAY ;去抖动等待抬起 JB SET_1,A1;判断按键是否抬起,抬起秒就加1 INC SECOND ;秒值加1 MOV A,SECOND CJNE A,#60,timej0 ;判断是否加到60秒 MOV SECOND,#0 LJMP K1 S2: LCALL DELAY JB SET_2,A1 K1: INC MINUTE ;分钟值加1 MOV A,MINUTE CJNE A,#60,timej1 ;判

29、断是否加到60分 MOV MINUTE,#0 LJMP K2 S3: LCALL DELAY JB SET_3,A1 K2: INC HOUR ;小时值加1 MOV A,HOUR CJNE A,#24,timeJ2;判断是否加到24小时 MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 LJMP A1;*;控制时分秒等待按键抬起;*timej0: JB SET_1,A1;没到60秒,判断K1键抬起?抬起进入A1判断按键有没有再次按下,若按下继续加1 LCALL DISPLAY1 SJMP timej0timej1: JB SET_2,A1 LCALL DISPLA

30、Y1 SJMP timej1timej2: JB SET_3,A1 LCALL DISPLAY1 SJMP timej2;*;定时器中断服务程序,对秒,分钟,小时的计数;*INT_T0: MOV TH0,#3ch MOV TL0,#0b0h INC TCNT MOV A,TCNT CJNE A,#20,RETUNE ;计时1秒 INC SECOND MOV TCNT,#0 MOV A,MINUTESEC: MOV A,SECOND CJNE A,#60,RETUNE INC MINUTE MOV SECOND,#0 MOV A,MINUTE CJNE A,#60,RETUNELCALL BS

31、;调用整点报时LCALL BS LCALL DELAY1 LCALL BSLCALL BSLCALL BS LCALL DELAY1LCALL BSLCALL BSLCALL BS LCALL DELAY1 LCALL BSLCALL BS LCALL DELAY1 INC HOUR MOV MINUTE ,#0 MOV A,HOUR CJNE A,#24,RETUNE MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0RETUNE:RETI;用于中断服务子程序的末尾,中断返回;*;秒时分显示控制子程序;*DISPLAY1: MOV A,SE

32、COND ;显示秒 MOV B,#10 DIV AB;A除以B,商 放A中,余数放中 MOV p2,#0FDh;数码管位选 ,使第2个数码管亮 MOVC A,A+DPTR;若A中存的商为2,A+DPTR就是把DPTR对应的TAB表首地址+表序号2,这样就可读出对应数码管表中的值06H,也就是数字2 MOV P0,A;通过p0控制数码管输出秒十位数字 LCALL DELAY MOV A,B MOV p2,#0FEh; MOVC A,A+DPTR MOV P0,A;通过p0控制数码管输出秒个位数字 LCALL DELAY MOV p2,#0FBh;数码管位选 ,为该数码管亮做准备 MOV P0,#

33、40H ;显示分隔符,数字中间一横亮,数码管abcdefg.当g亮时为-,即01000000为40H显示分隔符 LCALL DELAY MOV A,MINUTE ;显示分钟 MOV B,#10 DIV AB MOV p2,#0EFh MOVC A,A+DPTR MOV P0,A;通过p0控制数码管输出分十位数字 LCALL DELAY MOV A,B MOV p2,#0F7h MOVC A,A+DPTR MOV P0,A LCALL DELAYMOV p2,#0DFh MOV P0,#40H ;显示分隔符 LCALL DELAY MOV A,HOUR ;显示小时 MOV B,#10 DIV A

34、B MOV p2,#7Fh MOVC A,A+DPTR MOV P0,A LCALL DELAY MOV A,BMOV p2,#0BFh MOVC A,A+DPTR MOV P0,A LCALL DELAY RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0,1,2,3,4,5,6,7,8,9;*;整点报时服务程序;*BS:MOV R4,#100 SETB P1.5BS1: LCALL DELAY2 CPL P1.5 DEC R4 CJNE R4,#0,BS1 CLR P1.5RET;*;延时子程序;*DELAY: MOV R6,#10D

35、1: MOV R7,#100 DJNZ R7,$ ;R7不减为0,一直跳本行,$意思就是本行指令的地址DJNZ R6,D1 RETDELAY1:MOV R0,#10DELY0:MOV R5,#50DELY2:MOV R3,#50 DJNZ R3,$ DJNZ R5,DELY2 DJNZ R0,DELY0 RETDELAY2: MOV R1,#20D2: MOV R2,#10DJNZ R2,$ DJNZ R1,D2RETEND调试结果如下图所示:结束语这次的数字钟课程设计,让我感受颇深,有关于单片机知识的,但更多是团队和合作。我们小组一共2个人,分工很明确,在我们的集体的讨论之下,我负责设计硬件

36、电路,他负责软件程序设计,当时让我感到很有压力。因为我们平时接触的都是纯粹理论的东西,做实验也是雾里看花,对硬件的认识是很缺乏的。一回来我就去图书馆查阅的大量的单片机和数字芯片的资料,由于资料比较分散,所以整理有用的资料就显得很重要,有些东西实在是不懂我就把资料带回来请教同学,让我受益匪浅。然后在硬件电路的设计中,由于要涉及软件设计的具体情况,我们俩共同讨论,最终确定了一个大家都可以接受的方案。眼看着就要到答辩的时间了,可我们的成果却没有很大的改观,仿真一直有问题,当然之所以现在时间这么紧迫和我们刚开始低估课题有很大的关系,我们一直都是在程序上面做修改却没有想到是电路的问题,这个问题还是我们的组员在无意见提出来的,当时我眼前一亮,对啊,为什么不改改电路呢,这下我们集中力量对电路排查,终于找到了问题之所在啊。我们把74LS47换成74LS245后,调试结果马上就对了。现在想想我们的这个结果来的却是不容易。这与我们组的认真、团结十分不开的,当然更重要的是老师的指导。参考文献 单片机原理及应用 姜志海 电子工业出版社 电子技术基础试验 陈大钦 高等教育出版社 C程序设计潭浩强 北京航空航天出版社 电路基础 许熙文 高等教育出版社 51系列单片机高级实例开发指南 李军 北京航空航天大学附录:图123

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号