基于单片机AT89S51控制的数字时钟课程方案设计书报告

上传人:B**** 文档编号:51481149 上传时间:2022-01-26 格式:DOCX 页数:28 大小:249.85KB
返回 下载 相关 举报
基于单片机AT89S51控制的数字时钟课程方案设计书报告_第1页
第1页 / 共28页
基于单片机AT89S51控制的数字时钟课程方案设计书报告_第2页
第2页 / 共28页
基于单片机AT89S51控制的数字时钟课程方案设计书报告_第3页
第3页 / 共28页
点击查看更多>>
资源描述
课程设计报告论文题目基于 AT89S51 控制的数字时钟专业班级学生姓名_学号_指导教师_宁波技师学院电气技术系二零一三年九 月摘要本系统采用MSC-51 系列单片机以AT89S51 为中心器件来设计多功能数字时钟。文中详细介绍了 51 单片机应用中的数据转换显示,数码管显示原理, 动态扫描显示原理,单片机的定时中断原理。该时钟系统能实现时钟日历的功能:能进行时、分、秒的显示;也具有日历计算、显示和时钟,日历的校准、定时时间的设定,实现秒表,整点报时等功能关键词: AT89S51 ; 74LS245 ;原理;时钟;单片机目录1引言 .42总体设计方案 .52.1系统总体结构框图 .53硬件设计 .63.1复位电路 .63.2晶振电路 .63.3数码管原理图 .73.3.1AT89S51 的管脚说明 .84软件设计 .94.1主程序流程图 .95制作和调试中遇到的问题和解决方法.96结论 .107致谢 .错 误!未定义书签。8参考文献 .错 误!未定义书签。 10附录 1C 语言程序.错误!未定义书签。 1附录 2硬件接线图.24附录 3系统仿真图.错 误!未定义书签。 5宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计11 引言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新 .在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善 .本文通过用对一个能实现定时,日历显示功能的时间系统的设计学习,详细介绍了51 单片机应用中的数据转换显示,数码管显示原理,动态扫描显示原理,单片机的定时中断原理、从而达到学习,了解单片机相关指令在各方面的应用。宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计22 总体设计方案系统 AT89S51、 LED 数码管、按键、电容,电阻,晶震等部分构成,能实现的功能有:时间显示、日期显示、定时。左键:切换更改项目,按一下选择更改时钟秒位,再按为分位、小时位。小时位置在按则跳出编辑时间功能。中键:给当前项进行加1 的控制,使当前项在个位加1。右键:给当前项进行减1 的控制,使当前项在个位减1。2.1系统总体结构框图针对于设计思想,做系统的结构框图如下图2-1 所示:晶A显振示电电路A路AT89复S51位按键电控制路电路图 2-1 总体方案方框图宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计33 硬件设计本数字时钟系统的硬件电路主要包括晶振电路、数码显示电路及其它外围电路等。3.1 复位电路【 2】 9复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分 -合过程中引起的抖动而影响复位。下图所示的 RC 复位电路可以实现上述基本功能 ,Sm 为手动复位开关。图 3-0 复位电路图3.2 晶振电路 1AT89S51 中有一个构成内部震荡器的高增益反向放大器,引脚 XTAL1 和 XTAL2 分别是放大器的输入端和输出端 ,这个放大器与作为反馈元件的石英晶体构成自激震荡电路。外接石英晶体及电容 C1,C2 接在放大器的反馈回路中构成并联震荡电路。图 3-1 晶体震荡电路宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计43.3 数码管原理图 4810。图 3-2 数码管管脚图的管脚说明 2图 3-3 AT89S51 管脚图VCC电源电压 .GND接地 .RST 复位输入 .当 RST 变为高电平并保持 2 个机器周期时 ,将使单片机复位 .WDT 溢出将使该引脚输出高电平 ,设置 SFR AUXR 的 DISRTO 位 (地址 8EH) 可打开或关闭该功能.DISKRTO 位缺省为 RESET输出高电平打开状态 .XTAL1反向振荡放大器的输入及内部时钟工作电路的输入.XTAL2来自反向振荡放大器的输出 .P0 口 一组 8 位漏极开路型双向I/O 口 .也即地址 /数据总线复用口 .作为输出口用时 ,每位能驱动 8个TTL逻辑门电路 ,对端口写 1 可作为高阻抗输入端用 .在访问外部数据存储器或程序存储器时,这组口线分时转换地址 (低 8 位 )和数据总线复用 ,在访问期间激活内部上拉电阻.在 Flash 编程时 ,P0 口接收指令字节 ,而在程序校验时 ,输出指令字节 ,校验时 ,要求外接上拉电阻 .P1 口 一个带内部上拉电阻的8 位双向 I/O 口 ,P1 的输出缓冲级可驱动(吸收或输出电流 )4 个 TTL逻辑门电路 .对端口写 1, 通过内部的上拉电阻把端口拉到高电平,此时可作输入口 .作输入口使用时,因为内部存在上拉电阻 ,某个引脚被外部信号拉低时会输出一个电流(IIL).Flash 编程和程序校验期间,P1宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计5接收低 8 位地址 .P2 口 一个带内部上拉电阻的8 位双向 I/O 口 .P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路 .对端口写 1, 通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL). 在访问外部程序存储器或16位地址的外部数据存储器时,P2 口送出高8 位地址数据 .在访问 8 位地址的外部数据存储器时,P2 口线上的内容在整个访问期间不改变.Flash 编程和程序校验期间,P2 亦接收低8 位地址 .P3 口 一个带内部上拉电阻的 8 位双向 I/O 口 .P3 的输出缓冲级可驱动 (吸收或输出电流 )4 个 TTL 逻辑门电路 .对 P3 口写 1 时 ,它们被内部的上拉电阻把拉到高电并可作输入端口 .作输入端口使用时 ,被外部拉低的P3 口将用上拉电阻输出电流(IIL).P3 口除了作为一般的I/O 口线外 ,更重要的用途是它的第二功能 ,如下图所示 .P3 口还接收一些用于Flash 闪速存储器编程和程序校验期间的控制信号.PSEN/ 程序储存允许输出是外部程序存储器的读先通信号 ,当 AT89S51 由外部程序存储器取指令 (或数据 ) 时 ,每个机器周期两次 PSEN/ 有效 ,即输出两个脉冲 .当访问外部数据存储器 ,没有两次有效的PSEN/信号 .EA/VPP外部访问允许 .欲使 CPU仅访问外部程序存储器,EA 端必须保持低电平,需注意的是 :如果加密位 LB1 被编程 ,复位时内部会锁存EA 端状态 .Flash 存储器编程时 ,该引脚加上 +12V 的编程电压VPP.宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计64 软件设计4.1主程序流程图开始进行上电复位显示时间是否有按键信 号没有有进入调试状态5 制作和调试中的一些问题和解决办法数字时钟设计刚完成时,我经过检查 ,发现了一些问题147:1 刚弄好电路板并烧写程序进去后发现数码管不能正确显示时间,每个数码管中显示的数字几乎一样。经过询问老师,自己查阅资料,终于找出问题的原因:由于我在电路中采用的是动态数码管显示,需准确地调整延时子程序DEL1MS 。我在程序中采取的延时时间为1 毫秒。2复位电路中的开关不能使电路复位到初始状态即12:00: 00,经过认真检查电路后我发现我是开关的管脚没接对。测试后重新接下开关的管脚就可以了。宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计76 结论经过调试之后 ,我发现我做的基于AT89S51 设计的数字时钟,经过调试,一天的时间里面,差不多在 1 秒,计时是相对准确。而且该设计的成本不高,硬件电路简单,可以用在对时间精度要求不高的场合 . 由于时钟电路的重要性,时钟电路在很多应用系统中必不可少,用软件方法可以实现,但误差很大。在对时间精度要求很高的情况下,通常采用时钟芯片来实现。典型的时钟芯片有 :DS1302,DS12887,X1203 等都可以满足精度要求。致谢辞在论文完成之际,谨向关心我、支持我的师长、朋友和亲人表示最衷心的感谢。首先要感谢我尊敬的指导老师陈弢和唐幼君,本论文的工作得到了陈老师悉心的指导和启发,从论文的选题和具体实现都给予极大的帮助。唐老师平易近人,我非常感两位老师。本设计的完成,当然也少不了同学的帮助,感谢他们对我的帮助,没有他们的帮助,设计的任务是不可能这么快顺利完成的。同时,也要感谢我的爸爸妈妈,感谢他们这么多年来默默地支持着我的学业,我会再接再厉,以更加饱满的热情投入到今后的学习和工作中去。参考文献 :1 曹巧媛 单片机原理与应用 M. 京 :电子工业出版社 , 20022 何立民 MCS-51 系列单片机应用系统设计 .北京航空航天大学出版社 ,20003丁元杰单片微机原理及应用第 2 版 M. 北京机械工业出版社,20014郁凯平MCS-51 单片机串口一口两用在LED 显示屏的一例应用电子与电脑2008 年第 1 期5 陈忠平 P89LPC935 驱动数码管显示时钟的设计 湖南工业职业技术学院学报 2007 年第 02 期6 林成武等MCS-51 单片机 PO 口扩展技术研究.电子元器件应用2007 年第4 期7 谢自美 电子线路设计、实验、测试 .华中理工大学出版社 ,20008 李正浩等51单片机在 LED 数码管显示中的应用.实验科学与技术2006 年第 z1 期9 包国宾、张建民 单片机复位电路的设计与分析 .光电技术应用 2005 年第 03 期10 唐光明 基于中断技术的开关软件消抖算法现代机械2006 年第03 期11 N. Ambramson, Editor, Multiple Acess Communication-Foundation of Emerging Tecnologies, IEEE Press,1992宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计8附录 1 C语言程序附录ORG 0000HLJMP MAIN;跳到主程序ORG 0003HLJMP INT0;跳到外部中断0ORG 000BHLJMP T0;跳到定时器0ORG 0013HLJMP INT1;跳到外部中断1ORG 001BHLJMP T1;跳到定时器1ORG 0100HMAIN:CLR P3.0ACALL INITIAL;主函数; 关蜂鸣器;调用初始化函数DONE:JNB 00H,DONE1;是否显示时间MOV R0,#73H ACALL CONVERT AJMP TEST;显示时间;把时间存储器转化到显示存储器;是否处于调整状态DONE1:JNB 01H,DONE2MOV R0,#70H;是否显示日期;显示日期ACALL CONVERTAJMP TEST;转化;是否处于调整状态DONE2:JNB 02H,DONE3 MOV R0,#63H ACALL CONVERT;是否显示定时时间;显示定时时间;转化AJMP TEST;DONE3:MOV R0,#60H;显示秒表ACALL CONVERT;转化LJMP DISP;跳到显示函数TEST:JNB 18H,TEST10JNB P3.5,TEST7;判断是否处于调整状态;是否按键已经按下; 按键是否已经释放AJMP TEST11TEST10:JB 16H,TEST8;判断是否有按键按下JB P3.5,TEST7宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计9SETB 16HAJMP TEST7TEST8:JB P3.5,TEST9SETB 18HAJMP TEST7TEST11:CLR 18HCPL 17HMOV C,17HMOV P0.0,CCLR 16HCLR 12HCLR TR1; 定时结束;关定时器1CLR P3.0;关蜂鸣器CLR 13H;MOV 59H,#00H;MOV 58H,#01HAJMP TEST7TEST9:CLR 16HTEST7:JNB 12H,TEST6JB P3.4,TEST6CLR 12HCLR TR1;定时结束;关定时器1CLR P3.0;关蜂鸣器CLR 13H;MOV 59H,#00H;MOV 58H,#01H;TEST6:JNB 01H,TEST5 JB P3.4,TEST4;是否处于日期状态;案键 3 是否按下MOV 20H,#01H; 返回时间状态MOV 21H,#00HLJMP DISPTEST5:JNB 02H,TEST4 JB P3.4,TEST4 MOV 20H,#01H; 是否处于定时时间状态;按键 3 是否按下;返回时间状态MOV 21H,#00HLJMP DISPTEST4:JNB 15H,DO;闪烁标志是否有效LJMP DISP;无效则进入显示函数DO:MOV A,21H;CJNE A,#00H,TEST2;是否在调整状态LJMP DISP;不处于调整状态则进入显示函数TEST2: JB P3.4,TEST3MOV 20H,#01H宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计10MOV 21H,#00HLJMP DISPTEST3:JNB 08H,DONE4;是否秒位置处于调整状态MOV 78H,#11MOV 79H,#11LJMP DISPDONE4:JNB 09H,DONE5MOV 7BH,#11MOV 7CH,#11LJMP DISPDONE5:MOV 7EH,#11MOV 7FH,#11LJMP DISPCONVERT:MOVA,R0; 不显示;不显示;进入显示函数;是否分位置处于调整状态;不显示;不显示;进入显示函数; 时位置不显示; 时位置不显示;进入主函数;转化成数码管显示所对应的存储器;把 R0 存储的地址所对应的存储器的内容转化到秒位置的存储器MOV B,#10;DIVAB;MOV 79H,AMOV 78H,B;高位存储;地位存储?INC R0MOV A,R0;地址加一;取数据MOV B,#10;DIV AB;MOV 7CH,AMOV 7BH,B; 高位存储;低位存储INC R0MOV A,R0;地址加一;取数据MOV B,#10;DIV AB;MOV 7FH,AMOV 7EH,B; 高位存储; 低位存储RETINITIAL:MOV 7FH,#1;数码管显示12:00:00MOV 7EH,#2MOV 7DH,#10MOV 7CH,#0MOV 7BH,#0MOV 7AH,#10MOV 79H,#0MOV 78H,#0MOV 75H,#12;初始化时间12:00:00MOV 74H,#0MOV 73H,#0宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计11MOV 72H,#08;初始化日期08.3.20MOV 71H,#3MOV 70H,#20MOV 65H,#12;初始化定时时间 12:00:20MOV 64H,#0MOV 63H,#20MOV 62H,#00; 初始化秒表 00:00.00MOV 61H,#00MOV 60H,#00MOV 50H,#100;1s 定时 100*10msMOV 51H,#20;200ms 闪烁计时MOV 52H,#10; 秒表计数器MOV 53H,#5; 每放一个音时延时 5msMOV 58H,#1; 存放音乐表的指针MOV TH0,#0D8H;T0 定义为 10ms 中断MOV TL0,#0F0HMOV TMOD,#11H;定时器工作在方式 1MOV IP,#2;定时器 0 高优先级MOV IE,#8FH;开中断SETB IT0;外部中断为边缘触发SETB IT1;外部中断为边缘触发SETB TR0;开定时器 0MOV 20H,#0;SETB 00H; 设置成处在时间显示状态00H 为时间显示标志,01h 为日期显示标志, 02h 为定时时间显示标志, 03h秒表显示标志;08h 为秒位置选择标志, 09h为分位置选者标志,0ah 为时位置选择标志;10h 为秒表开始或暂停标志,11h 为,12h 为是否正在放音乐标志, 13h为是否延时标志, 15h 为闪烁标志, 16h,17h 为判断定时按键标志MOV 21H,#0; 位存储器初始化MOV 22H,#0;SETB 17H; 开定时器SETB P0.0;开定时器指示灯RETDISP:;显示函数MOV R0,#78H;显示第一个位置MOV DPTR,#TAB;MOV R7,#0FEH;第一位有效NEXT:MOV A,R0;MOVC A,A+DPTR;把十进制数转化成数码管对应的数据MOV P1,A; 数据送出端口MOV P2,R7; 地址送出端口ACALL DEL1MS; 延时一毫秒MOV A,R7;宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计12RL A;地址位左移到下一位MOV R7,A;INC R0CJNER0,#80H,NEXT;数据地址加1;是否已经显示完LJMP DONETAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H,00H;012DEL1MS:MOV R6,#2DEL1:MOV R5,#250DJNZ R5,$DJNZ R6,DEL1RET3456;延时789-1 毫秒函数空T0:;定时器0 函数PUSH DPHPUSH DPLPUSH PSWPUSH ACCMOV TH0,#0D8H;定时时间设置为10 毫秒MOV TL0,#0F0HDJNZ 50H,MIAO1;是否已经延时1 秒AJMP NEXT5;MIAO1:LJMP MIAOBIAONEXT5:MOV 50H,#100;一秒还没到,进入秒表; 重新循环100 次,即一秒INC 73H;秒加一MOV A,73H;CJNE A,#60,MIAO2;是否已经加到60AJMP NEXT6;MIAO2:LJMP MIAOBIAONEXT6:MOV 73H,#0; 没到 60,进入秒表;已经加到60,秒清0INC 74H;分加一MOV A,74H;CJNE A,#60,MIAO3;分是否已经加到60AJMP NEXT7;MIAO3:LJMP MIAOBIAONEXT7:MOV 74H,#0; 没到;已经到60,进入秒表60,分清 0INC 75H;时加1MOV A,75H;CJNE A,#24,MIAO4;是否已加到24AJMP NEXT8;MIAO4:LJMP MIAOBIAO; 没到24 则进入秒表NEXT8:MOV 75H,#0;时清0INC 70H;日加1MOV A,70H;CJNE A,#29,MONTH;是否是29宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计13MOV A,71H;CJNE A,#2,MIAO5;是否是2 月AJMP NEXT9;MIAO5:LJMP MIAOBIAO;不是2 月,进入秒表NEXT9:MOV 71H,#3MOV 70H,#1;月份为 3;日为1LJMP MIAOBIAO;MONTH: MOV A,70H;CJNE A,#31,MONTH1;是否是日是31MOV A,71H;CJNE A,#4,MONTH6MOV 71H,#5;是否是; 月份为4 月5MOV 70H,#1;日为1AJMP MIAOBIAO;MONTH6:MOV A,71H;CJNE A,#6,MONTH9MOV 71H,#7;是否是;月份为6 月7MOV 70H,#1;日为1AJMP MIAOBIAO;MONTH9:MOV A,71H;CJNE A,#9,MONTH11;是否是9 月MOV 71H,#10MOV 70H,#1;月分为;日为 110AJMP MIAOBIAO;MONTH11:MOV A,71H;CJNE A,#11,MIAOBIAOMOV 71H,#12MOV 70H,#1;是否是 11 月;月份为 12; 日为1AJMP MIAOBIAO;MONTH1: MOV A,70H;CJNE A,#32,MIAOBIAOMOV A,71HCJNE A,#12,MONTH0;是否日是; 是否是3212 月INC 73HMOV 70H,#1MOV 71H,#1;年加;月为;日为111AJMP MIAOBIAO;MONTH0:INC 71H;不是12 月,月加1MOV 70H,#1;日为AJMPMIAOBIAO;MIAOBIAO:; 秒表函数JNB 03H,DINGSHI;是否进入计时JNB 10H,DINGSHIDJNZ 52H,DINGSHI;是否开始计时; 是否 100 毫秒已到MOV 52H,#10;宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计14JNB P3.4,CLEARINC 60H;按键按下时清;0.1 秒位加 10MOV A,60H;CJNE A,#10,DINGSHIMOV 60H,#0;是否已加到;0.1 秒位清 010INC 61H;秒位加1MOV A,61H;CJNE A,#60,DINGSHIMOV 61H,#0;秒是否已经加到;秒位清 060INC 62H;分加1MOV A,62H;CJNE A,#60,DINGSHI;是否是60 分MOV 62H,#0;分为清0AJMP DINGSHI;CLEAR:MOV 60H,#0;清0MOV 61H,#0;MOV 62H,#0;CLR 10H;停止计数AJMP DINGSHI;DINGSHI:JB 17H,YSTARTLJMP BAOSHIYSTART:JB 12H,START;定时函数;定时器有效; 定时器无效; 是否已经在放音乐MOV A,63H;CJNE A,73H,BAO1;是否时已到AJMP NEXT10;BAO1:LJMP BAOSHI;NEXT10:MOV A,64H;CJNE A,74H,BAO2;是否分已到AJMP NEXT11;BAO2:LJMP BAOSHI;NEXT11:MOV A,65H;CJNE A,75H,BAO3;是否秒已到AJMP NEXT12;BAO3:LJMP BAOSHI;NEXT12:SETB 12H;设置定时已到MOV 55H,#10HMOV 57H,#0FBH;第一个节拍;第一个音调高位MOV 56H,#8BH;第一个音调低位SETB TR1; 启动定时器1START:DJNZ 55H,BAO4;节拍是否已结束AJMP NEXT13;BAO4: LJMP BAOSHI;NEXT13: CPL 13H;JB 13H,DELAY50MS;进入延时50 毫秒宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计15MOV A,58H;INC A;表地址加1MOV 58H,A;GETNEXT:MOV DPTR,#DAT;MOVC A,A+DPTR;取音调CJNE A,#00H,DSQ1CLR 12HCLR TR1; 是否已经结束;定时结束; 关定时器1CLR P3.0;关蜂鸣器CLR 13H;MOV 59H,#00H MOV 58H,#01H AJMP BAOSHI DSQ1:CJNE A,#01H,DSQ2 MOV A,55H;INC A;INC A;MOV 55H,A;AJMP GETNEXT;DSQ2:CJNE A,#0FFH,DSQ3 CLR TR1;是否播放空音调; 关定时器1CLR P3.0;关蜂鸣器AJMP DSQ4;DSQ3:MOV B,#20;把音调转化成定时器1 所对应定时存储器MUL ABMOV 59H,A;MOV A,#0FFH;SUBB A,59HMOV 56H,AMOV 59H,BMOV A,#0FFH;SUBB A,59H;MOV 57H,A;SETB TR1;DSQ4:MOV A,58H;INC A;表地址加1MOV 58H,A;MOV DPTR,#DAT;MOVC A,A+DPTR;取节拍进行延时MOV 55H,A;JB P3.4,BAOSHICLR 12HCLR TR1;是否停止放;清标志位;关定时器1CLR P3.0;关蜂鸣器CLR 13H;宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计16MOV 59H,#00H;MOV 58H,#01H;AJMP BAOSHI;DELAY50MS:CLR TR1;延时 50 毫秒CLR P3.0;关蜂鸣器MOV 55H,#5;BAOSHI:; 整点报时函数JB 12H,FLASHCTRL;如果正在定时放音乐则不整点报时MOV A,74H;CJNE A,#0,BAO;是否是0 分MOV A,73H;CJNE A,#0,FLASHCTRL;是否是 0 秒;JNB TR1,FLASHCTRL;是否已经关定时器1CLR TR1; 关定时器 0CLR P3.0;关蜂鸣器AJMP FLASHCTRL;BAO:MOV A,74H;CJNE A,#59,FLASHCTRL;是否是 59 分MOV A,73H;CJNE A,#55,EQU56S;是否是55 秒JB TR1,FLASHCTRL;是否已经在报时MOV 56H,#8BH;启动定时器 1 报时MOV 57H,#0FBH;SETB TR1;AJMP FLASHCTRL;EQU56S:;CJNE A,#56,EQU57S;是否是56 秒JNB TR1,FLASHCTRL;是否已经关定时器1CLR TR1; 关定时器 1CLR P3.0;关蜂鸣器AJMP FLASHCTRL;EQU57S:;CJNE A,#57,EQU58S;是否是57 秒JB TR1,FLASHCTRL;是否正在报时MOV 56H,#8BH;启动定时器 1 报时MOV 57H,#0FBH;SETB TR1;AJMP FLASHCTRL;EQU58S:;CJNE A,#58,EQU59S;是否是58 秒JNB TR1,FLASHCTRL;是否已经关定时器1CLR TR1; 关定时器 1CLR P3.0;关蜂鸣器AJMP FLASHCTRL;EQU59S:;宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计17CJNE A,#59,FLASHCTRLJB TR1,FLASHCTRLMOV 56H,#8BHMOV 57H,#0FEH;是否是 59 秒;是否开定时器;1SETB TR1;AJMP FLASHCTRL;FLASHCTRL:;闪烁标志控制函数DJNZ 51H,T0OUT;是否已经延时200 豪秒MOV 51H,#20;CPL 15H;标志位取反AJMP T0OUT;T0OUT:POP ACC;POP PSWPOP DPLPOP DPH;RETIT1:;定时器1,产生音调所对应频率的方波PUSH ACC;PUSH PSW;MOV A,56H;ORL TL1,A;存入音调所对应的定时时间MOV A,57H;MOV TH1,A;CPL P3.0;蜂鸣器位取反POP PSWPOP ACCRETI;外部中断0INT0:PUSH PSWPUSH ACCMOV 6FH,#30;延时15 毫秒DEL2:MOV 6EH,#250;DJNZ 6EH,$;DJNZ 6FH,DEL2;JB P3.2,INT5;是否已出低电平AJMP NEXT20;INT5:LJMP INT0OUT;NEXT20:MOV A,21H;CJNE A,#0,TIAO; 是否出在调整状态MOV A,20H;RL A;时间、日期、定时时间、秒表间的状态切换MOV 20H,A;JNB 04H,INT6;秒表状态返回时间状态AJMP NEXT21;宁波技师学院电气系胡珂、姚烨汀、虞峰课程设计18INT6:LJMP INT0OUT;NEXT21:MOV 20H,#01H;MOV 60H,#0;回到时间状态,秒表清0MOV 61H,#0;MOV 62H,#0;CLR 10H; 秒表停止计时LJMP INT0OUT;TIAO:JNB 00H,DAY;是否出在时间状态JNB 08H,MINMOV 73H,#0; 是否调整秒;秒清 0LJMP INT0
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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