ImageVerifierCode 换一换
格式:DOC , 页数:31 ,大小:282.74KB ,
资源ID:2307228      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-2307228.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计多功能数字电子时钟82837.doc)为本站会员(dzzj200808)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计多功能数字电子时钟82837.doc

1、目 录第 1 章 系统总体方案与说明 .11.1 系统总体方案 .11.2 系统设计说明 11.3 系统设计目的 .21.4 系统设计要求 .3第 2 章 硬件电路设计 .42.1 总原理图 .42.2 各个模块设计 .42.3 器件清单 8第 3 章 软件设计 .93.1 硬件框图 93.2 程序流程图 9第 4 章 心得体会 12第 5 章 附件 15附录 A. 源程序清单 .15附录 B.硬件原理图 .25附件 C 参考文献 .27电气信息学院课程设计评分表 .281第 1 章 系统总体方案与说明1.1 系统总体方案该课程设计是利用 MCS-51 单片机内部的定时计数器、中断系统、以及行

2、列键盘和 LED 显示器等部件,设计的一个单片机电子时钟,6 位 LED 数码显示,分别显示“小时:分钟:秒” 。该作品主要用于 24 小时计时显示,能整时报时,能作为秒表使用,能定时闹铃 1 分钟。使用方法:开机后时钟在 00:00:00 起开始计时。1.长按 P3.2 进入调分状态:分单元闪烁,按 P3.2 加 1,按 P3.3 减1.再长按 P3.2 进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。2.按 P3.3 进入设定闹时状态: 12:00: ,可进行分设定,按 P3.4分加 1,再按 P3.2 为时调整,按 P3.4 时加 1,按 P3.3 调闹钟结束.在闹铃时可

3、按 P3.2 停闹,不按闹铃 1 分钟。(3 按下 P3.4 进入秒表状态:再按 P3.4 秒表又启动,按 P3.4暂停,再按 P3.4 秒表清零,按 P3.4 退出秒表回到时钟状态。1.2 系统设计说明1)系统由AT89C51、LED 数码管、按键、电容、电阻等部分构成,能实现时间的调整、输出、调时间等功能。系统中按钮BUTTON能对时间进行调整功能的按钮,采用单键控制调时功能,运用软件去抖判断按键的时间从而选择完成相对应的功能(2)时间调整:该设计需要校对时间,所以用三个按键来实现。按 hour 来调节小时的时间,按 minute 来调节分针的时间,按 scoend 来调节秒的时间。按键处

4、理是先检测秒按键是否按下,2秒按键如果按下,秒就加 1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加 1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加 1;如果没有按下,就把时间显示出来。(3)中断:中断技术在单片系统中有着十分重要的作用,它不仅可以提高单片机 CPU 的效率,也可以对突发事件处理。所谓中断就是当 CPU 正在执行程序 A 时,发生了另一个急需处理的事件 B,这是 CPU 暂停当前执行的程序 A,立即转去执行处理事件B 的程序,处理完事件 B 后,再返回到程序 A 继续执行,这个过程被叫做中断。关于中断的概念有下列几个名词:(1)程序 A称为主程序,

5、 (2)处理事件 B 的程序称为中断服务程序, (3)主程序中转向中断服务程序的地方称为断点, (4)引起中断的原因即事件 B 称为中断源, (5)转去执行中断服务程序称为中断响应。关于中断的概念可以打个如下的比喻。领导(CPU)在自己的房间办公(执行主程序) ,下属(外设)有问题打电话来请示(中断源) 。1.3 系统设计目的通过课程设计的教学实践,巩固、加深和扩大 51 系列单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力。对课题设计方案的分析、选择、比较、熟悉用 51 单片机做系统开发、研制的过程,软硬件设计的方法、内容及步骤。提高动手实践能力、提高科学的思维能力。31.4

6、 系统设计要求1.掌握单片机最小系统的电路原理图; 2.硬件的焊接、连接;3.独立编辑、编译软件;4.调试要求: (1)上电以后自动进入计时状态,起始于 00:00:00。(2)设计键盘调整时间,完成时间设计,并设置闹钟。(3)定时时间为 1/20 秒,采用定时器实现。(4)采用 LED 数码管显示,时、分,秒采用数字显示。(5)采用 24 小时制,具有方便的时间调校功能。(6)具有时钟和秒表的切换功能。4第 2 章 硬件电路设计2.1 总原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。图 2-1 电子时钟原理图2.2 各个模块设

7、计1、单片机最小系统 5AT89S52 概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的 8051,8031 的指令系统,他的运行速度要比8051 快最高支持达 33MHz 的晶体震荡器,在此系统中使用 12MHz的晶振。AT89S52 具有以下标准功能: 8k 字节 Flash,256 字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位定时器/计数器,一个 6 向量 2 级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器

8、/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止详述:AT89S52 是一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C51 产品指令和引脚完全兼容。片上 Flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52 具有以下标准功能:8k 字节 Flash

9、,256 字节RAM,32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16位定时器/计数器。一个 6 向量 2 级中断结构,全双工串行口及时钟电路。另外,AT89S52 可降至 0Hz 静态逻辑操作,支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允许 RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM 内6容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止.2、显示模块 LED 数码管是由发光二极管构成的,亦称半导体数码管。将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成“8”字,再把发光二极管另一电极作笔段电

10、极,就构成了LED 数码管。若按规定使某些笔段上的发光二极管发光,就能显示从 09 的系列数字。同荧光数码管(VFD)、辉光数码管(NRT)相比,它具有:体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与 TTL、CMOS 电路兼容等的数显器件。+、-分别表示公共阳极和公共阴极。ag 是 7 个笔段电极,DP 为小数点。另有一种字高为 76mm 的超小型 LED 数码管,管脚从左右两排引出,小数点则是独立的。 本系统利用 6 位 LED 数码管显示时间,共阴极结构。LED 数码管由 7 段发光二极管组成,当要显示某个数字时只要将数字所对应的引脚送入低电平。3.按键模块本设

11、计中主要有三个控制按键,按键功能为:(1)P3.2 为调时间模式,长按 P3.2 进入调分状态:分单元闪烁,按 P3.2 加 1,按 P3.3 减1.再长按 P3.2 进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。 图 2-2(2)按 P3.3 进入设定闹时状态: 12:00: ,可进行分设定,按P3.4 分加 1,再按 P3.2 为时调整,按 P3.4 时加 1,按 P3.3 调闹钟7结束.在闹铃时可按 P3.2 停闹,不按闹铃 1 分钟。(3)按下 P3.4 进入秒表状态:再按 P3.4 秒表又启动,按 P3.4 暂停,再按 P3.4 秒表清零,按 P3.4 退出秒表回到

12、时钟状态。4晶振模块下图所示为时钟电路原理图,在 AT89S51 芯片内部有一个高增益反相放大器,其输入端为芯片引脚 XTAL1,输出端为引脚XTAL2。而在芯片内部,XTAL1 和 XTAL2 之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。图 2-3 晶振电路82.3 器件清单 元件名 封装名 型号CRYSTAL XTAL-1VOLTREG TO-220 MC7805TTRANS4 FLY4 10TO1VSINCAP RB.2/.4 CAPACITOR POLCAP RAD-0.1 CAPTRANSIS

13、TOR TO18 PNPTRANSISITOR TO92A NPNSPEAKER SIP-2LED DIODE-0.4SW-PBRES2 AXIAL0.3-1.0DPY_7-SEG_DP DIP8单片机 AT89S52表一 元件器件清单9第 3 章 软件设计3.1 硬件框图根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块、晶振模块、电源模块与按键模块等,模块之间的关系图如下面得方框电路图所示。图 3-13.2 程序流程图(1)总体流程图10图 3-2(2)时钟调整模式 图 3-3YNNNYY开始系统初始化是否按下设置键时间调整模式是否退出调整模式是否跟闹钟时

14、间一致启动闹铃显示时间11(3)秒表模式图 3-4YYYYNNNN开始是否按功能切换键系统初始化是否按秒表暂停键是否按秒表启动键是否按秒表清零键切换秒表秒表计时暂停秒表显示时间12第 4 章 心得体会本次课程设计是用 AT89S52 单片机 CPU 及接口电路设计一个数字时钟,经过一个星期的调试,结果满足设计要求,验证无误。通过单片机硬件电路的调试,实现了预先设定的功能,设计主要用到了多种芯片,程序也比较长比较麻烦,同时也遇到了不少困难,尤其是关于校时模块的设计实现。关于显示模块,在以前的实验中做过,所以问题很容易解决。随着集成电路和计算机技术的迅速发展,使电子仪器的整体水平发生巨大变化,传统

15、的仪器逐步的被智能仪器所取代。智能仪器的核心部件是单片机,因其极高的性价比得到广泛的应用与发展,从而加快了智能仪器的发展。而传感器作为测控系统中对象信息的入口,越来越受到人们的关注。传感器好比人体“五官”的工程模拟物,它是一种能将特定的被测量信息(物理量、化学量、生物量等)按一定规律转换成某种可用信号输出的器件或装置本次课设中的半桥电子秤就是在以上仪器的基础上设计而成的。因此,只有充分了解有关智能仪器、单片机、传感器以及各部分之间的关系才能达到要求。通过本次设计,我们系统的了解了实时时钟的设计流程,尤其是硬、软件的设计方法,掌握了键盘显示电路的基本功能及编程方法,掌握了键盘电路和显示电路的一般

16、原理,也进一步掌握了 89S52 定时器的使用和中断处理器程序的编程方法。开拓了思路,锻炼了实践动手能力,提高了分工协作能力和分析问题,解决问题的能力,达到了本次课程设计的目的。在调试电路的过程中也积累了一些宝贵的经验,比如说,在 I/O 口要保证标准的高13电平”1”的产生,一般要上拉电阻 5.1k,在一些需要高电平的地方,不能用悬空来模拟,必须严格的按照“+5v”来连接,特别是调试过程中的分部分进行很重要。此次单片机课程设计,从选题到定稿,从理论到实践,在整整两个星期里,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了

17、理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。这次的课程设计还让我学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。更重要的是,我在这一设计过程中,学会了坚持不懈,不轻言放弃。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老

18、师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。单片机课程设计虽然结束了,但通过设计所学到的东西将长久存在。相信这次设计带给我们的严谨的学习态度和一丝不苟的科学作风将会给我们未来的工作和学习打下一个更坚实的基础。单片机课程设计,是对单片机知识的验证,可以帮助我们理解巩固所学知识,激发我们对单片机课程的兴趣,更锻炼了我们独立思考、开拓创新的能力。14在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切

19、都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:CAD 制图、汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该

20、让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。另外,这次课程设计让我感到了团队合作的重要性。在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。15第 5 章 附件附录 A. 源程序清单; AT89S52 时钟程序 ;*定时器 T0、T1 溢出周期为 50MS,T0 为秒计数用, T1 为调整时闪烁及秒表定时用,P3.2、P3.3、P3.4 为调整按钮,P0 口为字符

21、输出口,P2 为扫描口,P1.2 为蜂呜器口,采用共阳显示管。50H-55H 为闹钟定时单元,60H-65H 为秒表计时单元,70H-75H 为显示时间单元,76H-79H 为分时计时单元。03H 标志=0 时钟闪烁,=1 秒表, 05H=0,不闹铃,=1 要闹铃. 07H 每秒改变一次,用作间隔呜叫.*DISPFIRST EQU 30H ;显示首址存放单元BELL EQU P1.2CONBS EQU 2FH ;存放报时次数CLOCK EQU 2DH*中断入口程序 *ORG 0000H ;程序执行开始地址LJMP START ;跳到标号 START 执行ORG 0003H ;外中断 0 中断程

22、序入口16RETI ;外中断 0 中断返回ORG 000BH ;定时器 T0 中断程序入口LJMP INTT0 ;跳至 INTTO 执行ORG 0013H ;外中断 1 中断程序入口RETI ;外中断 1 中断返回ORG 001BH ;定时器 T1 中断程序入口LJMP INTT1 ;跳至 INTT1 执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回*以下程序开始 ;*整点报时用QQQQ: MOV A,#10HMOV B,79HMUL ABADD A,78HMOV CONBS,ABSLOOP: LCALL DS21MSLCALL DL1SLCALL DL1SLCALL

23、 DL1SDJNZ CONBS,BSLOOPCLR 08H ;清整点报时标志AJMP START1*主程序开始 ;17*START: LCALL ST ;上电显示 00:00:00MOV R0,#00H ;清 00H-7FH 内存单元MOV R7,#80H ;CLEARDISP: MOV R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清 20H(标志用)MOV 55H,#1MOV 54H,#2MOV 7AH,#0AH ;放入“熄灭符“ 数据MOV TMOD,#11H ;设 T0、T1 为 16 位定MOV TL0,#0B0H ;50MS 定

24、时( T0 计时用)MOV TH0,#3CH ;50MS 定时初值MOV TL1,#0B0H ;50MS 定时初值 MOV TH1,#3CH ;50MS 定时初值SETB EA ;总中断开放SETB ET0 ;允许 T0 中断SETB TR0 ;开启 T0 定时器MOV R4,#14H ;1 秒定时用计数值MOV DISPFIRST,#70H ;显示单元为 70-75H;以下主程序循环START1: LCALL DISPLAY ;调用显示子程序JNB P3.2,SETMM1 ;P3.2 口为 0 时转时间JNB P3.3,TSFUN ;定时闹铃设定JNB P3.4,FUNPT ;秒表功能JB

25、08H, QQQQAJMP START1 ;P3.2 口为 1 时跳回START1FUNPT: LJMP FUNPTTSTART12: LJMP START1以下闹铃时间设定程序,按 P3.3 进入设定TSFUN: LCALL DS20MSJB P3.3,START1 ;18WAIT113: JNB P3.3,WAIT113 ;等待键释放JB 05H,CLOSESP ;闹铃已开的话,关闹铃MOV DISPFIRST,#52H ;进入闹铃设定程序,显示 52-55H 闹钟定时单元DSWAIT: SETB EALCALL DISPLAYJNB P3.4,DSFINC ;分加 1JNB P3.2,D

26、SDEC ;分减 1JNB P3.3,DSSFU ;进入时调整AJMP DSWAITCLOSESP: CLR 05H ;关闹铃标志CLR BELLAJMP START1DSSFU: LCALL DS20MS ;消抖JB P3.3, DSWAITLJMP DSSFUNN ;进入时调整; SETMM1: LJMP SETMM;转到时间调整程序 SETMMDSFINC : LCALL DS20MS ;消抖JB P3.4, DSWAITDSWAIT12: LCALL DISPLAY ;等键 释放JNB P3.4, DSWAIT12CLR EAMOV R0,#53H ;LCALL ADD1 ;闹铃设定分

27、加 1MOV A,R3 ;分数据放入 ACLR C ;清进位标志CJNE A,#60H,ADDHH22 ;ADDHH22: JC DSWAIT ;小于 60 分时返回ACALL CLR0 ;大于或等于 60分AJMP DSWAITDSDEC : LCALL DS20MS ;消抖JB P3.2, DSWAITDSWAITEE: LCALL DISPLAY ;等键 释放JNB P3.2, DSWAITEECLR EAMOV R0,#53H ;19LCALL sub1 ;闹铃设定分减 1LJMP DSWAIT;以下键等待释放时显示不会熄灭用WAIT21: LCALL DISPLAYAJMP WAIT

28、22WAIT31: LCALL DISPLAYAJMP WAIT33WAIT41: LCALL DISPLAYAJMP WAIT44WAIT51: LCALL DISPLAYAJMP WAIT55WAIT61: LCALL DISPLAYAJMP WAIT66WAIT81: LCALL DISPLAYAJMP WAIT88WAIT91: LCALL DISPLAYAJMP WAIT99;*; 闪动调时程序秒表功能程序 ;*;T1 中断服务程序,用作时间调整时调整单元闪烁指示或秒表计时INTT1: PUSH ACC ;中断现场保护PUSH PSW JB 03H, MMFUN ;=1 时秒表MOV

29、 TL1, #0B0H ;装定时器 T1 定时 MOV TH1, #3CH ;DJNZ R2,INTT1OUT ; MOV R2,#06H ;CPL 02H ; JB 02H,FLASH1 ;MOV 72H,76H ; MOV 73H,77H ;MOV 74H,78H ;MOV 75H,79H ;INTT1OUT: POP PSW ;恢复现场POP ACC ;RETI ;中断退出20FLASH1: JB 01H,FLASH2 ;MOV 72H,7AH ; MOV 73H,7AH ;MOV 74H,78H ;MOV 75H,79H ;AJMP INTT1OUT ;转中断退出;*; 显示程序 ;*

30、; 显示数据在 70H-75H 单元内,用六位 LED 共阳数码管显示,P0 口输出段码数据, P2 口作; 扫描控制,每个 LED 数码管亮 1MS 时间再逐位循环。DISPLAY: MOV R1,DISPFIRST ;指向显示数据首址MOV R5,#0FEH ;扫描控制字初值PLAY: MOV A,R5 ;扫描字放入 AMOV P2,A ;从 P2 口输出MOV A,R1 ;取显示数据到 AMOV DPTR,#TAB ;取段码表地址MOVC A,A+DPTR ;MOV P0,A ;段码放入 P1 口MOV A,R5 ;JB ACC.2,LOOP5 ;小数点处理CLR P0.7 ;LOOP5

31、: JB ACC.4,LOOP6 ;小数点处理CLR P0.7 ;LOOP6: LCALL DL1MS ;显示 1MSINC R1 ;指向下一地址MOV A,R5 ;扫描控制字放入 AJNB ACC.5,ENDOUT ;RL A ;A 中数据循环左移MOV R5,A ;放回 R5 内MOV P0,#0FFHAJMP PLAY ;跳回 PLAYENDOUT: MOV P2,#0FFH ;MOV P0,#0FFH ;P0 口复位RET ;子程序返回TAB: 21;共阴段码表 “0“1“2“ “3“4“5“6“7“ “8“9“不亮“A”“-”;*; SDISPLAY ,上电显示子程序;*;不带小数点

32、显示,有“A” “-”显示功能SDISPLAY: MOV R1,DISPFIRSTMOV R5,#0FEH ;扫描控制字初值SPLAY: MOV A,R5 ;扫描字放入 AMOV P2,A ;从 P2 口输出MOV A,R1 ;取显示数据到 AMOV DPTR,#TABS ;取段码表地址MOVC A,A+DPTR ;MOV P0,A ;段码放入 P1 口MOV A,R5 ;LCALL DL1MS ;显示 1MSINC R1 ;指向下一地址 ENDOUTS: MOV P2,#0FFH ;MOV P0,#0FFH ;P0 口复位RET ;子程序返回TABS:DB 0C0H,0F9H,0A4H,0B

33、0H,99H,92H,82H,0F8H,80H,90H,0FFH,0C6H,0BFH,88H; 显示数 “0 1 2 3 4 5 6 7 8 9 不亮 C - A “; 内存数 “0 1 2 3 4 5 6 7 8 9 0AH 0BH 0CH 0DH “STAB:DB0AH,0AH,0AH,0AH,0AH,09H,06H,04H,02H,00H,00H,06H,00H,01H,03H,0AHDB 0AH,09H,01H,0CH,06H,00H,0CH,09H,00H,00H,02H,0AH,0AH,0AH,0AH,0AH; 注:0A 不亮,0B 显示“A” ,0C 显示“-”;*;以下是闹铃时

34、间设定程序中的时调整程序22;*DSSFUNN: LCALL DISPLAY ;等待键释放JNB P3.3, DSSFUNNWAITSS: SETB EALCALL DISPLAYJNB P3.4,FFFF ;时加 1 键JNB P3.2,DDDD ;时减 1JNB P3.3,OOOO ;闹铃设定退出键AJMP WAITSSOOOO: LCALL DS20MS ;消抖JB P3.3,WAITSSDSSFUNNM: LCALL DISPLAY ;键释放等待JNB P3.3, DSSFUNNMMOV DISPFIRST,#72HLJMP START1FFFF: LCALL DS20MS ;消抖JB

35、 P3.4, WAITSSDSSFUNMM: LCALL DISPLAY ;键释放等待JNB P3.4, DSSFUNMMCLR EAMOV R0,#55HLCALL ADD1MOV A,R3 ;CLR C ;CJNE A,#24H,ADDHH33N ;ADDHH33N: JC WAITSS ; ACALL CLR0 ;AJMP WAITSSDDDD : LCALL DS20MS ;消抖 ;JB P3.2, WAITSSDSSFUNDD: LCALL DISPLAY ;键释放等待JNB P3.2, DSSFUNDDCLR EAMOV R0,#55HLCALL SUBB1LJMP WAITSS;

36、*;以下是闹铃判断子程序23;*BAOJ: MOV A,79H ;CJNE A,55H,BBAOMOV A,78HCLR CBB3: CJNE A,54H,BBAOMOV A,77HCLR CCJNE A,53H,BBAOMOV A,76HCLR C; CJNE A,52H,BBAO; CLR C; CLR BELL; RETBB2: CJNE A,52H,BBAOJNB 07H,BBAO ;07H 在 1 秒到时会取反CLR BELL ;时分相同时RETBBAO: SETB BELL ;不相同或闹铃RET;*上电显示程序;*ST: MOV R0,#40H ;MOV R2,#20H ;MOV

37、R3,#00H ;CLR A ;MOV DPTR,#STAB ;SLOOP: MOVC A,A+DPTR ;MOV R0,A ;MOV A,R3 ;INC A ;MOV R3,A ;INC R0 ;DJNZ R2,SLOOP ;移入完毕24MOV DISPFIRST,#40H ;SSLOOP: MOV R2,#50 ;控制移动速度SSLOOP1: LCALL SDISPLAY ;DJNZ R2,SSLOOP1 ;INC DISPFIRSTMOV A,DISPFIRSTCJNE A,#5AH, SSLOOP ;MOV DISPFIRST,#5AH ;以下程MOV R3,#1BH ;显示 27SS

38、LOOP12: LCALL SDISPLAY ;DJNZ R2,SSLOOP12 ;DEC DISPFIRSTDJNZ R3,SSLOOP2 ;RET;*; 延时程序 ;*;1MS 延时程序,LED 显示程序用DL1MS: MOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1RET;延时程序,采用调用显示子程序以改善 LED 的显示闪烁现象DS20MS: ;CLR BELLLCALL DISPLAYLCALL DISPLAYLCALL DISPLAY; SETB BELLRETDS21MS: CLR BELLLCALL DISPLAYLC

39、ALL DISPLAYLCALL DISPLAYSETB BELLRET;延时程序,用作按键时间的长短判断DL1S: LCALL DL05S25LCALL DL05SRETDL05S: MOV R3,#20H ;8 毫秒*32=0.196秒DL05S1: LCALL DISPLAYDJNZ R3,DL05S1RET;*END ;程序结束26附录 B.硬件原理图附一 原理图27附二 仿真图一附三 仿真图二28附件 C 参考文献1 许立梓.微型计算机原理及应用M.北京. 机械工业出版社, 20022 刘乐善.微型计算机接口技术及应用M.华中理工大学出版社, 2000 3 邹逢兴.计算机硬件技术基础

40、试验教程M. 高等教育出版社 , 20004 周佩玲.16 位微型计算机原理接口及其应用M.中国科学技术大学出版社, 2000 5 吴秀清.微型计算机原理与接口技术M.中国科学技术出版社 , 20016 邓亚平.微型计算机接口技术M.清华大学出版社 , 20017 王迎旭.单片机原理及及应用M.机械工业出版社 , 20018 周航慈.单片机应用程序设计技术M.北京航空航天大学出版社, 20029 谢宜仁.单片机实用技术问答M.人民邮电出版社 , 200229电气信息学院课程设计评分表评 价项 目优 良 中 及格 差设计方案合理性与创造性(10%)开发板焊接及其调试完成情况*(10%)硬件设计或软件编程完成情况(20%)硬件测试或软件调试结果 *(10%)设计说明书质量(20%)答辩情况(10%)完成任务情况(10%)独立工作能力(10%)出勤情况(10%)综 合 评 分指导教师签名:_日 期:_

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报