欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年2022年基于单片机的智能电子钟系统设计毕业设计论文 .pdf

    • 资源ID:33684708       资源大小:1.22MB        全文页数:23页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年2022年基于单片机的智能电子钟系统设计毕业设计论文 .pdf

    基于单片机的智能电子钟系统设计姓名:李永健、王海、吕军梅、巩珍珍课题组的分工或贡献:每人完成的百分比或者每人负责的内容课程名称: MCS-51单片机应用设计指导教师:李林2014年 12 月名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 23 页 - - - - - - - - - 基于单片机的智能电子钟系统设计李永健、王海、吕军梅、巩珍珍(信息科学与工程学院)摘要:电子钟是一种利用数字电路来显示时间的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。本设计通过以单片机芯片STC89C51 为核心,通过软件编程完成时钟及定时的基本功能,温度芯片DS18B20 完成温度测量功能。采用了六位数码管动态显示时、分、秒,两个 LED灯分别指示上下午, 同时还有两个 LED灯每半秒分别闪烁一次。矚慫润厲钐瘗睞枥庑赖。通过 4 个外部按键可以控制小时和分钟的定时和定闹以及报警。此电子钟具有性能优越,操作简单等优点。关键词: 智能电子钟、 STC89C51、LED 数码管、 DS18B20 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 23 页 - - - - - - - - - 目录一、项目目的二、项目要求三、基本原理四、设计方案 (一)系统整体设计思想(二) 电子钟计时(三) 数码管显示(四) 调时(五) 定闹、报警(六) 温度采集五、结论六、参考文献七、附录一附录二名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 23 页 - - - - - - - - - 一、项目目的 1. 掌握单片机各个功能模块 ( 并行 I/O 口、中断系统、定时器 / 计数器 )的工作原理、性能和特点;2、掌握单片机外围电路的设计方法和仿真方法;3、掌握单片机外围电路的调试方法;4、掌握单片机外围电路设计报告的撰写方法;5、培养团队合作精神、项目组织与管理、交流表达能力;6、培养责任感和职业道德。二、项目要求本课程三级项目要求学生使用MCS-51系列单片机设计并制作一个具有时间显示、按键调时、闹钟报警、温度测量、遥控和自动调时等功能的软硬件系统,可实现六项基本功能分别如下:聞創沟燴鐺險爱氇谴净。1) 时间显示:采用六个数码管显示当前时间:小时、分钟、秒。2) 温度显示:采用两个数码管显示当前环境温度。3) 上下午指示:采用两个发光二极管来指示上下午。4) 半秒提示:采用两个发光二极管,每隔半秒闪烁。5) 调时功能:采用三个按键 (K1-K3) 来调整时间,步骤如下:a)按下 K1键,开始调小时,同时2 个小时数码管闪烁。b)按下 K2键,小时加;按下K3键,小时减。c) 小时调整好后,再按下K1键,开始调分钟,同时分钟数码管闪烁。d)按下 K2键,分钟加;按下K3键,分钟减。e)调整好分钟后,再按下K1键,调时结束。6) 闹钟功能:采用三个按键 (K2-K4) 来调整闹钟,步骤如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 23 页 - - - - - - - - - a)按下 K4键,开始调小时,同时2 个小时数码管闪烁。b)按下 K2键,小时加;按下K3键,小时减。c) 小时调整好后,再按下K4键,开始调分钟,同时分钟数码管闪烁。d)按下 K2键,分钟加;按下K3键,分钟减。e)调整好分钟后,再按下K4键,定闹结束。闹钟定时的时间到后,蜂鸣器/ 扬声器发出提示音;用户需按K2-k4 键来取消闹钟警告。三、基本原理利用软件编程借助于定时器/ 计数器 0 实现间隔为 1s 的定时功能,格式为秒,分,时,在其中断服务程序中实现对小时、分钟、秒单元数值的调整。主程序通过不断循环调用调时子程序,实现整个功能。 利用嵌套在调时子程序中的显示子程序实现上下午指示和半秒闪烁。利用温度芯片DS18B20来测量温度。残骛楼諍锩瀨濟溆塹籟。四、设计方案(一)系统整体设计思想总体设计框图:电源STC89C52 单片机DS18B20 温度芯片LED 灯指示(上下午、半秒)8 片数码管显示按键(k1k4) 报警名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 23 页 - - - - - - - - - 通过定时器 / 计数器 0 实现 1s 的计时,将它设计成内部中断,即每计满1s产生中断信号, 主程序转去执行定时器0 的中断服务程序, 按照时间规则改变相应 RAM 存储单元的数值。在主程序里首先不断检测是否有按键按下,如果没有,则不断调用显示子程序, 否则, 根据按下的是哪个键可以转去执行相应的程序段,分别实现小时和分钟的加和减以及闹钟定时,而每次执行结束都会调用显示子程序,保证数码管的稳定显示,同时也可以实时根据存储单元数值的不同显示。酽锕极額閉镇桧猪訣锥。而闹钟的倒计时则利用定时器/ 计数器 1 的计时来实现,同样为1s 计时,只不过是在中断服务程序中实现对存储单元的按规则递减,同样的即使显示就可以实现倒计时功能,到达00:00:00 时就可以调用报警子程序,实现报警。彈贸摄尔霁毙攬砖卤庑。(1)RAM 单元分配(21H).0 指示即将显示的是十位还是个位20H #0AH,定时器 / 计数器 0 或 1 计满 10 次为 1s 19H #05H,定时器 / 计数器 0 或 1计满 5 次为 0.5s 18H #05H,显示子程序内部执行次数29H #01010101B 30H 小时的 BCD 码31H 分钟的 BCD 码 32H 秒的 BCD 码TH0 #3CH ,T0计数初值,可计时100ms 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 23 页 - - - - - - - - - TL0 #0B0H TH1 #3CH ,T1计数初值,可计时100ms TL1 #0B0H (2) 循环执行部分:HERE: LCALL ADJUST AJMP HERE ; 反复调用ADJUST 程序可以实现所有功能(3)主程序的初始化部分:MAIN: SETB P3.0 CLR P3.1MOV TMOD,#01H ; 设 T0方式 1,定时CLR A ;A 清零MOV 30H, A ; “时”单元清零MOV 31H, A ; “分”单元清零MOV 32H, A ; “秒”单元清零SETB ET0 ; 允许中断SETB ET1SETB EA ;CPU开中断MOV TH0, #3CH ; 给 T0装入计数初值,可计时100msMOV TL0, #0B0H ;MOV TH1, #3CH ; 给 T1装入计数初值MOV TL1, #0B0H SETB TR0 ; 启动计数(二) 时间显示模块(1)物理连接P0.0P0.7 接数码管的 adp(片选码 ) P2.0P2.5 接数码管的 16(段选码)时间显示:采用六个数码管显示两位的小时,分钟,秒名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 23 页 - - - - - - - - - (2)流程图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 23 页 - - - - - - - - - (3)动态显示的核心在于依次选中一块数码管,并在此之前将相应数码管要显示的数字的段码送到端口, 进行相应的延时后关闭数码管选通信号。不断执行上述过程就可以实现较为稳定的动态显示。謀荞抟箧飆鐸怼类蒋薔。每次进入主程序都首先判断是否到了1s,到了则继续执行,否则,返回中断。为了在显示完秒之后还能继续显示小时的十位,必须有一个用来计数的单元,用以区分当前显示的是小时还是分钟,还是秒,并以此作为仅次于显示次数 N的循环。厦礴恳蹒骈時盡继價骚。对每一个单元( 30H32H )的两位 BCD 码的显示,用一位( 21H ).0 来指示即将显示的是十位还是各位,据此控制刚才所说的单元指示数值是否用该加一或者重新初始化。茕桢广鳓鯡选块网羈泪。由此在 DISPLAY子程序中有 3 重循环。调用入口参数为30H32H单元的数值。(4)半秒提示:采用两个发光二极管,每隔半秒闪烁。中断 5 次就是半秒,并在相应的分支里设置P3.6 和 P3.7,保证二者同时取反即可。这可以放在显示子程序内部,保证时间显示和半秒闪烁的同步,同时可以节约计数器。(5)上下午指示:采用两个发光二极管来指示上下午。只要判断 30H单元的内容与 11H相比较就可以知道是上午还是下午了,在分支语句里控制相应的灯亮了就行。如上所述,将它放置在显示子程序里较为方便。鹅娅尽損鹌惨歷茏鴛賴。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 23 页 - - - - - - - - - 时间显示模块的仿真结果(三)按键模块ADJUST 的主体部分就是检测是否有按键按下,如果没有只是调用显示子程序,而有的话转去执行相应的分支语句。籟丛妈羥为贍偾蛏练淨。为了防止干扰,我们便写了一个延时5ms左右的子程序,若是经过延时后,按键信号依然有效,则认定是有效信号,否则为干扰,返回程序起始点重新检测。預頌圣鉉儐歲龈讶骅籴。K1可以控制实现定时,所以定时器计数器依然是0 在起作用,在其分支语句里根据按键次数使指针指向不同的单元(小时、分钟),然后检测 K2K3的信号到来。渗釤呛俨匀谔鱉调硯錦。在 K2K3的分支语句里实现指针所指向单元的加一或者减一,但是注意要按照时间规则来, 对加一或者减一结果进行调整, 否则可能出错。铙誅卧泻噦圣骋贶頂廡。对单元的加一或者减一直接反映到显示子程序和定时器计数器0 或者 1 的 16 位计数单元里,所以,每次更改后的值就相当于对时间确定调节,并从该处继续计时,这样就实现了调时功能。擁締凤袜备时分秒上午半秒提示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 23 页 - - - - - - - - - 訊顎轮烂蔷。K4的分支语句要求实现定闹, 它与 K1分支语句的不同之处是更改当前计数器为1,关闭 0,在计数器 1 的中断服务程序里可以实现倒计时功能。贓熱俣阃歲匱阊邺镓騷。元器件:按钮开关名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 23 页 - - - - - - - - - (四)闹钟模块(1)计时器 T1 的倒计时同样是 1s 的倒计时,只是在中断程序里实现对计时单元的减一,但在减一之前检测是否为0,如果是就调用报警子程序,如果不是则按照规则减一,注意的同样是数值的调整。坛摶乡囂忏蒌鍥铃氈淚。调整结束后返回 ADJUST 程序,继续检测,这样就可以实现连续调节。K1:控制调时K3:对应单元减一K2:对应单元加一K4:控制定闹名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 23 页 - - - - - - - - - (五)报警模块连线 P1.7 引脚连接到三极管元器件:蜂鸣器、三极管2N2907 原理:由单片机芯片中引脚输出的信号来控制蜂鸣器的开和关在报警子程序里要求不断调用显示子程序,这样数码管可以在时间到达之后稳定显示 00:00:00. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 23 页 - - - - - - - - - (六)温度测量模块元器件:数字温度传感器DS18B20 (测温范围 -55 度125度)原理:利用温度传感器测量到温度值通过引脚传递到芯片中利用 DS18B20 温度芯片来实现温度测量的功能,并将其显示在数码管上。测量的温度范围是零下55 至零上 125 摄氏度。 DS18B20 的六条控制命令如下表:指令约定代码操作说明温度转换44H 启动 DS18B20 进行温度转换读暂存器BEH 读暂存器9 个字节内容写暂存器4EH 将数据写入暂存器的TH 、TL 字节复制暂存器48H 把暂存器的TH、TL 字节写到E2RAM 中重新调 E2RAM B8H 把 E2RAM 中的 TH 、TL 字节写到暂存器TH、TL 字节读电源供电方式B4H 启动 DS18B20 发送电源供电方式的信号给主CPU 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 23 页 - - - - - - - - - 五、结论本次项目利用单片机STC89C52 控制串行口与时钟芯片DS1302构成数字时钟电路,实现计时功能,同时具有定时闹钟的功能,并且可以显示温度,定时和调时的功能仅用四个键控制, 更加方便。本设计没有实现上下午提示和半秒提示的功能,但是智能电子钟的基本功能已经实现,所以算是比较成功的。蜡變黲癟報伥铉锚鈰赘。六、不足和改进(1)当定闹结束之后不能够通过按键来重新启动,这个可以通过在报警子程序里跳转到主程序重新开始执行来实现。(2)在调时和定闹的过程中,相应模块不能闪烁,这个可以通过调用一个新的显示子程序,实现相应数码管间歇性亮灭。買鲷鴯譖昙膚遙闫撷凄。(3)时间紧迫,没有对减或者加的单元设定上限和下限值,所以只能实现一天内的功能。 这个可以通过在相应程序段中与限值比较来实现。綾镝鯛駕櫬鹕踪韦辚糴。(4)温度显示模块是一大遗憾,没有足够的时间来做。(5)在设计过程中另外有一个关于按键的想法,没有能够编程实现。它是利用两级中断来实现。 加一或者减一是通过外部中断的中断服务程序实现。这里可能与按键延时有关, 同时这样的设计可能会涉及到从引脚读入信号,这在实际设计中不可取。此处不再赘述。驅踬髏彦浃绥譎饴憂锦。七、感想经历过这么多不间断的讨论课和三级项目,我们有挺多感触的, 从最基本上来说我们看到了, 也意识到了自己的不足, 对于不断克服的各种阻碍也让我们体会到了讨论课、三级项目的意义所在。猫虿驢绘燈鮒诛髅貺庑。对于只接触课本只动笔杆的我们,面临实际的设计, 让我们很是尴尬, 都说理论联系实际,真正到联系的时候才发现挺困难的,不过正是理论知识的各种补充才让我们能最终完成任务, 然后深深地体会到理论对现实的指导作用。我们现在最缺乏的就是实践动手的经验, 而理论联系实践并不像我们想象的那么简单,它需要坚实的理论基础和实际工作经验。 坚实的理论基础决定了我必须坚持学习新的知识新的理论,完善了自己的知识结构,才能在以后的实际中轻松面对。锹籁饗迳琐筆襖鸥娅薔。在这个一边忙着复习忙着考试又要准备讨论课三级项目的日子里,真真正正的体会到了时间的宝贵, 有点像高中忙忙碌碌的生活, 不过能按时完成三级项目对我们来说也是一个莫大的安慰。構氽頑黉碩饨荠龈话骛。严谨和细心是做项目的必要态度, 要想做好一件事, 就必须一丝不苟、 态度认真。俗话说:“失之毫厘,谬之千里。”在设计上尤其应该注意。再者就是设计中要严谨和细心, 任何的微小误差都达不到预计的结果,当然对于我们来说就是设计中要走一些弯路,而且在这个严重缺少时间又惦记回家问题的我们来说也是一个很严重的打击。輒峄陽檉簖疖網儂號泶。不过,困难虽是难免的, 但我们有信心就能并且已经战胜了困难,完成了这个无比揪心的三级项目。因为时间等各种关系设计中难免有些不足还请老师助教给予批评和帮助。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 23 页 - - - - - - - - - 程序:ORG 0000H LJMP MAIN ORG 000BH LJMP IT0P ORG 001BH LJMP IT1P ORG 0100H DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0-9的共阳极显示段码尧侧閆繭絳闕绚勵蜆贅。ORG 1000H MAIN: SETB P3.0 ;6 亮,绿灯CLR P3.1 MOV TMOD, #01H ; 设 T0 方式 1,定时 ,T1 为方式 1,计数;SETB IT0 ; 外部中断 0 为跳沿方式有效;SETB IT1 ; 外部中断 1 为跳沿方式有效;SETB PX0 ; 外部中断 0 为高优先级中断;SETB PX1 ; 外部中断 1 为高优先级中断;CLR PT0 ; 定时器 0 为低优先级中断;CLR PT1 ; 计数器 1 为低优先级中断MOV 20H, #0AH ; 中断 10 次为 1s,中断计数单元为20H MOV 19H, #05H MOV 29H, #55H ;01010101B, 不断左移位,相当于最高两位的 0 和 1 转换MOV 18H, #05H ;DISPLAY子程序执行这么多次后结束CLR A ;A 清零MOV 30H, A ; “时”单元清零MOV 31H, A ; “分”单元清零MOV 32H, A ; “秒”单元清零SETB ET0 ; 允许中断SETB ET1 ;SETB EX0 ;SETB EX1 SETB EA ;CPU开中断MOV TH0, #3CH ; 给 T0 装入计数初值,可计时100ms MOV TL0, #0B0H ; MOV TH1, #3CH ; 给 T1 装入计数初值MOV TL1, #0B0H SETB TR0 ; 启动计数;SETB TR1 MOV R1, #31H HERE: NOP ; 允许被中断LCALL ADJUST 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 23 页 - - - - - - - - - AJMP HERE ; 反复调用显示子程序ADJUST: MOV R3, #00H A1: LCALL DISPLAY MOV P1, #0FFH JNB P1.2, K3 JNB P1.1, K2 JNB P1.0, K1 JNB P1.3, K4 LJMP A1 ; 如果没有键按下重新检测; 等待按键抬起来J3: JB P1.2, A1 LCALL DISPLAY LJMP J3 J2: JB P1.1, A1 LCALL DISPLAY LJMP J2 J1: JB P1.0, A1 LCALL DISPLAY LJMP J1 J4: JB P1.3, A1 LCALL DISPLAY LJMP J4 K3: LCALL DELAY JB P1.2, A1 ; 确实有键按下,进入下面处理,否则严重干扰,重测MOV A, R1 ANL A, #0FH CJNE A, #09H, M1 MOV A, R1 ADD A, #10H ANL A, #0F0H MOV R1, A JMP M2 M1: INC R1 M2: LCALL DISPLAY LJMP J3 ; 等按键弹起来,按一次,只加一次K2: LCALL DELAY 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 23 页 - - - - - - - - - JB P1.1, A1 MOV A, R1 ANL A, #0FH JNZ NONBOUND MOV A, R1 CLR C SUBB A, #06H MOV R1, A NONBOUND: DEC R1 LCALL DISPLAY LJMP J2 K1: LCALL DELAY JB P1.0, A1 INC R3 CJNE R3, #01H, TWICE1 MOV R1, #30H JMP S1 TWICE1: CJNE R3, #02H, DONE ; 完了MOV R1, #31H S1: LCALL DISPLAY LJMP J1 K4: LCALL DELAY JB P1.3, N1 JMP N2 N1: LJMP A1 N2: CLR TR0 SETB TR1 INC R3 CJNE R3, #01H, TWICE2 MOV R1, #30H JMP S2 TWICE2: CJNE R3, #02H, DONE ; 完了MOV R1, #31H S2: LCALL DISPLAY LJMP J4 DONE: NOP RET 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 23 页 - - - - - - - - - IT0P: PUSH Acc ; 保护现场PUSH PSW CLR EA MOV TH0, #3CH ; 重新装入计数初值MOV TL0, #0B0H DJNZ 19H, HALF ; 半秒MOV 19H, #05H MOV A, 29H RL A MOV 29H, A HALF: DJNZ 20H, RETURN ;1s还没有到,那么就返回继续计数100s MOV 20H, #0AH ; 否则,重新装入中断次数计数值MOV A, #01H ; ADD A, 32H ; 秒单元增 1 DA A ; 将二进制的秒数转换成BCD 码,以便显示MOV 32H, A ; 返回到秒单元保存CJNE A, #60H, RETURN; 如果不满 60s, 继续下一个 1s 的计时MOV 32H, #00H ; 否则,秒单元就要清零MOV A, #01H ADD A, 31H ; 针对分单元加 1 DA A MOV 31H, A CJNE A, #60H, RETURN; 如果不满 60 分钟,则继续下一个1s 的计数MOV 31H, #00H ; 否则分单元清零MOV A, #02H ADD A, 30H ; 针对时单元加 1 DA A MOV 30H, A CJNE A, #24H, RETURN; 如果不满 24 小时,则继续计数,否则,全部清零MOV 30H, #00H ; 时单元清零RETURN: SETB EA POP PSW POP Acc RETI DISPLAY:;CLR EA PUSH Acc PUSH PSW 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 23 页 - - - - - - - - - PUSH 01H LOOP0: DJNZ 18H, START LJMP FINISH START: MOV DPTR, #0100H MOV C, (29H).7 ;29H 的最高两位每隔半秒互调一次,只要不断调用显示程序,输出就会每隔半秒变化一次识饒鎂錕缢灩筧嚌俨淒。MOV P3.7, C MOV C, (29H).6 MOV P3.6, C MOV A, #11H CJNE A,30H,NEXT1 ; 若是 12 小于小时数,则 Cy被置位,否则清零NEXT1: JC NIGHT ;C 为 0,是早上SETB P3.0 ;6 亮,绿灯CLR P3.1 JMP MOON NIGHT: SETB P3.1 ;C 为 1,是晚上CLR P3.0 ;7 亮,黄灯MOON: NOP NOP MOV 10H, #01H ; 存放片选码MOV R0, #30H ; 寄存器间接寻址SETB (21H).0 ; 指示将要显示的是十位还是个位,1 表示十位, 0表示个位LOOP1: MOV A, R0 ;A 中是待显示的两位数BCD 码JNB (21H).0,NEXT ; 若将要显示个位则直接相与取位SWAP A ; 否则,十位与个位交换再取位NEXT: CPL (21H).0 ; 指示位取反,为下次显示做准备ANL A, #0FH ; 取得待显示的一位BCD 码MOVC A, A+DPTR ; 取得待显示段码MOV P0, A ; 准备显示MOV P2, 10H ; 片选, 亮了NOP NOP NOP MOV P0, #0FFH ; 关闭数码管MOV A, 10H RL A ; 为下次显示做准备MOV 10H, A JNB (21H).0,LOOP1 ; 若将显示个位,则R0不变INC R0 ; 否则,加一CJNE R0,#33H,LOOP1 ;若刚才显示的是秒并且是个位,也就是显示结束,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 23 页 - - - - - - - - - 那么重新置数AJMP LOOP0 ; 否则,继续显示FINISH: MOV 18H, #05H POP 01H POP PSW POP Acc ;SETB EA RET ;INT0 中断服务程序EINT0: PUSH PSW ; 它本来就是高优先级中断,所以不会再被打断PUSH Acc INC R1 MOV A, R1 DA A MOV R1, A POP Acc POP PSW RETI ;INT1 中断服务程序EINT1: PUSH PSW PUSH Acc DEC R1 MOV A, R1 DA A CLR C SUBB A, #0CH MOV R1, A POP Acc POP PSW RETI ;T1 中断服务程序;K4 按钮第一次按下,转到T1 的中断程序这里IT1P: NOP PUSH Acc ; 保护现场PUSH PSW CLR EA MOV TH1, #3CH ; 给 T1 装入计数初值MOV TL1, #0B0H DJNZ 19H, HALF1 ; 半秒MOV 19H, #2AH MOV A, 29H RL A MOV 29H, A HALF1: DJNZ 20H, RETURN1 ;1s 还没有到,那么就返回继续计数100s 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 23 页 - - - - - - - - - MOV 20H, #4AH ; 否则,重新装入中断次数计数值MOV A, 30H ; CJNE A, #00H, B0 MOV A, 31H CJNE A, #00H, B0 MOV A, 32H CJNE A, #00H, B0 LJMP SPEAKER B0: MOV A, 32H CJNE A, #00H, W0 LJMP Y0 W0: ;DEC A ;MOV 32H, A ANL A, #0FH JNZ Q0 MOV A, 32H CLR C SUBB A, #06H MOV 32H, A Q0: DEC 32H LJMP RETURN1 Y0: MOV 32H, #59H MOV A, 31H CJNE A, #00H, W1 LJMP Y1 W1: ;DEC A ;MOV 31H, A ANL A, #0FH JNZ Q1 MOV A, 31H CLR C SUBB A, #06H MOV 31H, A Q1: DEC 31H LJMP RETURN1 Y1: MOV 31H, #59H MOV A, 30H CJNE A, #00H, W2 LJMP Y2 W2: ;DEC A 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 23 页 - - - - - - - - - ;MOV 30H, A ANL A, #0FH JNZ Q2 MOV A, 30H CLR C SUBB A, #06H MOV 30H, A Q2: DEC 30H LJMP RETURN1 Y2: LJMP RETURN1 RETURN1:SETB EA POP PSW POP Acc RETI SPEAKER:NOP NOP SS: CPL P1.7 LCALL DISPLAY NOP NOP NOP NOP JMP SS RET ; 延时子程序 5ms DELAY: MOV R6, #5 D1: MOV R7, #250 D0: NOP NOP DJNZ R7, D0 DJNZ R6, D1 RET END 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 23 页 - - - - - - - - -

    注意事项

    本文(2022年2022年基于单片机的智能电子钟系统设计毕业设计论文 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开