




免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 概述11设计目的本设计是一个定时闹钟,它仅使用单片的40引脚单片机完成闹钟的全部功能。设计目的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。12设计任务本文设计的定时闹钟采用AT89S52芯片,用汇编语言进行编程,时、分、秒用6位LED数码管显示。在电路中通过四个按键S1、S2、S3和S4来进行定时和调时,定时时间到通过喇叭发出报警声。13设计系统的主要功能 能显示 时时分分秒秒。能够设置定时时间、 修改定时时间。到定时时间能发出报警2 系统总体方案及硬件设计2.1系统总体方案1)由于要显示数字时间,所以需要6位数码管。2)时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出。3)AT89S52单片机加上外围器件(2个3位共阳数码管,8个限流电阻和一个蜂鸣器)和应用程序(ISIS 7 Professional软件和KEIL编译软件),构成相应的应用系统。2.2系统设计方框图晶振及复位按钮 单片机AT89S528个限流电阻蜂鸣器6位共阳数码管显示选位图1系统设计方框图2.3硬件设计2.3.1芯片:AT89S52AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。AT89S52管脚说明:图2 AT89S52管脚图VCC:供电电压。GND:接地。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在 flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。P2口: P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。P3口也可作为AT89S52的一些特殊功能口,如下表所示:P3口管脚 备选功能:端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通) RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当 AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.3.2蜂鸣器由P3.7口控制蜂鸣器,使其定时时间到能发出报警声。2.3.3时钟电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中AT89C51单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF之间取值。AT98S52单片机的时钟电路。如图3所示AT89S52图3限流电阻:8个220电阻控制按键:本系统要进行时间的调整和定时,因此用4个手动按键对其进行控制。2.3.4显示器模块的设计利用2个七段数码管6个选位引脚连接AT89C51单片机 P2.5 P2.0接口,其他8个引脚分别通过限流电阻与AT89S52单片机的P0.0 - P0.7和共阳极数码管连接。数码管:单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。如图4所示图43 软件设计3.1划分模块根据设计要求,定时闹钟程序可分为以下几个模块:1)显示时间的设置;2)闹钟时间的设置:4)定时时间的响应。3.2程序流程图显示时间S4按下?S3按下?S1按下?显示闹钟时间调整闹钟调整响铃主程序响铃判断YYYNYNNN初始化开始图5 程序流程图3.3汇编程序 ORG 0000H LJMP START ORG 000BH LJMP TIME;初始化;START: MOV SP, #50H MOV 20H,#00H ;定义秒 MOV 21H,#00H ;定义分 MOV 22H,#00H ;定义时 MOV 23H,#01H ;定义闹钟分钟 MOV 24H,#01H ;定义闹钟小时 MOV 25H,#00H MOV 26H,#01H MOV 30H,#00H ;BCD SECOND MOV 31H,#00H MOV 32H,#00H ;BCD MINUTE MOV 33H,#00H MOV 34H,#00H ;BCD HOUR MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV 50H,#00H ;按键次数 MOV TMOD,#01H ;16位计数器 MOV TH0, #03CH ;赋初值 MOV TL0, #0B0H MOV IE, #87H ;中断允许 SETB TR0 ;启动T0 MOV R2,#14H MOV P2,#0FFH CLR P3.7;主程序;MAIN: LCALL TIMEPRO ;调用闹钟判断GB: LCALL DISPLAY1;调用时间显示 JB P1.3,M1 ;P1.3=1时转移 S4没有按下 LCALL SETTIME ;调用SETTIME调时子程序 LJMP MAINM1: JB P1.2,M2 ;P1 g.2=1时转移S3 LCALL SETATIME ;调用SETATIME子程序 LJMP MAINM2: JB P1.0,M4 ;P1.01时转移 S1 LCALL LOOKATIME ;调用LOOKATIME显示闹钟子程序M4: LJMP MAIN;延时子程序 ;DELAY: MOV R4,#030HDL00: MOV R5,#0FFHDL11: MOV R6,#9HDL12: DJNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00 RET;时间调整;SETTIME: ;设置时间L0: LCALL DISPLAY1MM1: JB P1.3,L1 ;P1.3=1时转移 MOV C,P1.3 JC MM1 LCALL DELAY1 ;延时 JC MM1MSTOP1: MOV C,P1.3 ;P1.3为0时转移 JNC MSTOP1 LCALL DELAY1 ;延时 MOV A,50H INC 50H CJNE A,#00H,HJ1 LJMP L0HJ1: MOV C,P1.3 JNC MSTOP1 INC 22H ;小时自加一 MOV A,22H CJNE A,#18H,GO12 ;小时计数循环 MOV 22H,#00H ;复位 MOV 34H,#00H MOV 35H,#00H LJMP L0L1: JB P1.1,L2 ;P1.1=1时转移 MOV C,P1.1 JC L1 LCALL DELAY1 ;延时 JC L1MSTOP2: MOV C,P1.1 ;P1.10时转移 JNC MSTOP2 LCALL DELAY1 ;延时 MOV C,P1.1 JNC MSTOP2 INC 21H ;分钟加一 MOV A,21H CJNE A,#3CH,GO11 ;分钟计数循环 MOV 21H,#00H ; 复位 MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11: MOV B,#0AH DIV AB MOV 32H,B ; 将A的低4位存入32单元 MOV 33H,A ; 将A的高4位存入33单元 LJMP L0GO12: MOV B,#0AH DIV AB MOV 34H,B ;将A的低4位存入34单元 MOV 35H,A ; 将A的高4位存入35单元 LJMP L0L2: JB P1.0,L0 ; P1.01时转移 MOV C,P1.0 JC L2 LCALL DELAY1 ;延时 MOV C,P1.0 JC L2STOP1: MOV C,P1.0 ; P1.00时转移 JNC STOP1 LCALL DELAY1 ;延时 MOV C,P1.0 JNC STOP1 MOV 50H,#00H LJMP MAIN; 设置闹钟;SETATIME:LCALL DISPLAY2 ; 调用DISPLAY2显示闹钟N0: LCALL DISPLAY2MM2: JB P1.2,N1 ;P1.2=1时转移 MOV C,P1.2 JC MM2 LCALL DELAY1 ; 延时 JC MM2MSTOP3: MOV C,P1.2 ; P1.20时转移 JNC MSTOP3 LCALL DELAY1 ; 延时 MOV A,50H INC 50H CJNE A,#00H,HJ2 LJMP N0HJ2: MOV C,P1.2 JNC MSTOP3 INC 24H ;小时加一 MOV A,24H CJNE A,#24,GO22 ;小时计数循环 MOV 24H,#00H ;复位 MOV 38H,#00H MOV 39H,#00H LJMP N0N1: JB P1.1,N2 ;P1.11时转移 MOV C,P1.1 JC N1 LCALL DELAY1 ;延时 JC N1MSTOP4: MOV C,P1.1 ;P1.10时转移 JNC MSTOP4 LCALL DELAY1 ;延时 MOV C,P1.1 JNC MSTOP4 INC 23H ;分钟加一 MOV A,23H CJNE A,#60,GO21 ;分钟计数循环 MOV 23H,#00H ;复位 MOV 36H,#00H MOV 37H,#00H LJMP N0GO21: MOV B,#0AH DIV AB MOV 36H,B ;将A的低4位存入36单元 MOV 37H,A ;将A的高4位存入37单元 LJMP N0GO22: MOV B,#0AH DIV AB MOV 38H,B ;将A的低4位存入38单元 MOV 39H,A ;将A的高4位存入39单元 LJMP N0N2: JB P1.0 ,N0 ;P1.01时转移 MOV C,P1.0 JC N2 LCALL DELAY1 ;延时 MOV C,P1.0 JC N2STOP2: MOV C,P1.0 JNC STOP2 LCALL DELAY1 MOV C,P1.0 JNC STOP2 MOV 50H,#00H LJMP MAINTIMEPRO: MOV A,21H MOV B,23H CJNE A,B,BK ;判断定时闹钟的分钟 MOV A,22H MOV B,24H CJNE A,B,BK ;判断定时闹钟的小时 SETB 25H.0 MOV C,25H.0 LCALL TIMEOUT ;调用TIMEOUT BK:RETTIMEOUT: X1: LCALL BZ ;调用喇叭响应程序 LCALL DISPLAY2 ;延时 CLR 25H.0 ;调用喇叭响应程序结束 JB P1.0, X1 ;P1.01时转移 LCALL DELAY ;延时 CLR 25H.0 LJMP DISPLAY1 BZ: CLR P3.7 MOV R7,#250 ;喇叭响应时间 T2: MOV R6,#124 T3: DJNZ R6,T3 DJNZ R7,T2 SETB P3.7 RETLOOKATIME:LCALL DISPLAY2 MM: JNB P1.0,LOOKATIME LCALL DELAY1 LJMP MAINDELAY1: MOV R4,#14H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RET;*定时*TIME: PUSH ACC ;保护现场 PUSH PSW MOVTH0,#03CH ;初值 MOVTL0,#0B0H DJNZ R2,RET0 MOVR2,#14H MOV A,20H CLR C INC A ;秒自加一 CJNE A,#3CH,GO1 ;秒计数循环 MOV 20H,#0 ;复位 MOV 30H,#0 MOV 31H,#0 MOV A,21H INC A ;分钟自加一 CJNE A,#3CH,GO2 ;分钟计数循环 MOV 21H,#0H ;复位 MOV 32H,#0 MOV 33H,#0 MOV A,22H INC A ;小时自加一 CJNE A,#18H,GO3 ;小时计数循环 MOV 22H,#00H ;复位 MOV 34H,#0 MOV 35H,#0 AJMP RET0GO1:MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A ;将A的低4位存入31单元 MOV 30H,B ;将A的高4位存入30单元 AJMP RET0GO2: MOV 21H,A MOV B,#0AH DIV AB MOV 33H,A ;将A的低4位存入33单元 MOV 32H,B ;将A的高4位存入32单元 AJMPRET0GO3:MOV 22H,A MOV B,#0AH DIV AB MOV 35H,A ;将A的低4位存入35单元 MOV 34H,B ;将A的高4位存入34单元 AJMPRET0RET0: POP PSW ;恢复现场 POP ACC RETI;*显示子程序*DISPLAY1:MOV R0,#30H MOV R3,#0FEH MOV A,R3PLAY1: MOV P2,A MOV A,R0 ;取要显示的数据 MOV DPTR,#DSEG1 ;指向字形段码首地址 MOVC A,A+DPTR CPL A ;查表取字形段码 MOV P0,A ;指向P0口 LCALL DL1 MOV P2,#0FFH MOV A,R3 ;判断是否显示到最低位 RL A ;左移一位 JNB ACC.6,LD1 INC R0 ;缓冲器地址加一 MOV R3,A LJMP PLAY1LD1: RETDISPLAY2: PUSH ACC ;保护现场 PUSH PSW MOV R0,#36H MOV R3,#0FBH MOV A,R3PLAY2: MOV P2,A MOV A,R0 ;取要显示的数据 MOV DPTR,#DSEG1 ;指向字形段码首地址 MOVC A,A+DPTR CPL A ;查表取字形段码 MOV P0,A ;指向P0口 LCALL DL1 ;调用DL1 MOV P2,#0FFH MOV A,R3 ;判断是否显示到最低位 RL A ;左移一位 JNB ACC.6,LD2 INC R0 ;缓冲器地址加一 MOV R3,A LJMP PLAY2 ;调用PLAY2LD2: POP PSW POP ACC ;恢复现场 RET ;DELAY;DL1: MOV R7,#20HDL: MOV R6,#20HDL6: DJNZ R6,$ DJNZ R7,DL RETDSEG1: DB 3FH,06H,5BH,4FH,66H ;七段码表 DB 6DH,7DH,07H,7FH,6FH END4 protell软件仿真通过S1、S2、S3和S4四个按键,对时间进行修改和闹钟的设置。定时时间到能发出报警声,使用KEIL软件编辑程序,生成HEX文件,然后用protel进行仿真,系统运行初始状态如图6:按下S1键显示闹钟,松开后显示时间;按下S4键进入时间修改模式,再按S4键时间的时加1,按S2分加1,调整结束后按下S1恢复正常显示;按下S3键进入闹钟修改模式,再按S3键闹钟的时加1,按S2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一单元 富强与创新 单元检测题(含答案)-2025-2026学年九年级上册道德与法治
- 2025河南郑州大学招聘(博士)500人模拟试卷(含答案详解)
- 2025年智能交通系统中的车路协同技术
- 2025河南郑州市中华保险招聘考前自测高频考点模拟试题完整答案详解
- 2025广东广州市荔湾区东沙街环卫站招聘办公室管理员2人模拟试卷及答案详解(夺冠系列)
- 2025江苏无锡市锡山区卫生健康系统招聘事业编制高层次人才21人(长期)模拟试卷有完整答案详解
- 2025贵州省职工医院第十三届贵州人博会引进人才13人模拟试卷及答案详解(易错题)
- 2025嘉兴市众业供电服务有限公司招聘74人模拟试卷及答案详解(历年真题)
- 2025年安徽师范大学出版社招聘4人模拟试卷及答案详解(名师系列)
- 2025北京儿童医院顺义妇儿医院招聘编制外6人考前自测高频考点模拟试题附答案详解(模拟题)
- 《化工设备设计原理与实例》课件
- 新版机动车交通事故责任强制保险合同
- T-CTSS 3-2024 茶艺职业技能竞赛技术规程
- 品管圈PDCA案例-普外科提高甲状腺手术患者功能锻炼合格率
- 2022-2024年营养指导员考试真题及答案合集
- 《电工基础(第2版)》中职全套教学课件
- 2024-2025学年江苏省南通市海安市高二(上)月考物理试卷(10月份)(含答案)
- ISO9001-2015质量管理体系内审培训课件
- 初中物理晋升高级(一级)职称水平考试模拟试卷有答案解析共三套
- CJT 340-2016 绿化种植土壤
- 《无线电失效程序》课件
评论
0/150
提交评论