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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(单片机课程动静态显示设计方案.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机课程动静态显示设计方案.docx

1、单片机课程动静态显示设计方案单片机课程动静态显示设计方案一、设计任务与要求1.1 设计背景 随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。单片机以其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能仪器仪表、家电产品等领域。 近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是却很少知道它的部结构以及工作原理。由单片

2、机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术和数码管显示技术。 单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试。1.2 课程设计目的通过单片机原理与应用课程设计,使学生掌握单片机及其扩展系统设计的方法和设计原则及相应的硬件调试的方法。进一步加深单片机及其扩展系统设计和应用的理解 1.3 设计要求1、主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电

3、路组成2、秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计3、译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过六位LED七段显示器显示出来4、校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的二、总体方案设计 2.1

4、电路的总体原理框图根据以上的电子时钟的设计要求可以分为以下的几个硬件电路模块:单片机模块、数码显示模块与按键模块,模块之间的关系图如下面得方框电路图1所示 单片机 图1 硬件电路方框图2.2 实现时钟计时的基本方法利用STC系列单片机的可编程定时/计数器、中断系统来实现时钟计数。(1) 计数初值计算:把定时器设为工作方式1,定时时间为50ms,则计数溢出20次即得时钟计时最小单位秒,而100次计数可用软件方法实现。假设使用T/C0,方式1,50ms定时,fosc=12MHz。则初值X满足(216-X)1/12MHz12s =50000sX=15536100003CB0H(2) 采用中断方式进行

5、溢出次数累计,计满20次为秒计时(1秒);(3) 从秒到分和从分到时的计时是通过累加和数值比较实现。2.3 电子钟的时间显示电子钟的时钟时间在六位数码管上进行显示,因此,在部RAM中设置显示缓冲区共8个单元。LED8 LED7 LED6 LED5 LED4 LED3 LED2 LED137H 36H 35H 34H 33H 32H 31H 30H时十位 时个位 分隔 分十位 分个位 分隔 秒十位秒个位2.4 电子钟的时间调整电子钟设置3个按键通过程序控制来完成电子钟的时间调整。A键按一次调整时,按第二次调整分钟,第三次推出时间调整;B键对小时或分钟进行加一;C键对小时或分钟进行减一;2.5 总

6、体方案介绍2.5.1 计时方案利用STC89C52单片机部的定时/计数器进行中断时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能使读者在定时/计数器的使用、中断及程序设计方面得到锻炼与提高,对单片机的指令系统能有更深入的了解,从而对学好单片机技术这门课程起到一定的作用。2.5.2 控制方案STC89C52的P0口和P1口外接由八个LED数码管(LED8LED1)构成的显示器,用P0口作LED的段码输出口,P1口作八个LED数码管的位控输出线,P3口外接四个按键A、B、C构成键盘电路。STC89C52 是一种低功耗,高性能的CMOS 8位微型计算机。它带有8K Flash 可编程和

7、擦除的只读存储器(EPROM),该器件采用ATMEL的高密度非易失性存储器技术制造,与工业上标准的80C51和80C52的指令系统及引脚兼容,片Flash 集成在一个芯片上,可用与解决复杂的问题,且成本较低。简易电子钟的功能不复杂,采用其现有的I/O便可完成,所以本设计中采用此的设计方案。三、数字钟的硬件设计3.1 最小系统3.1.1 芯片分析STC89C52单片机引脚图如下:图3-1 STC89C52引脚图MCS-51单片机是标准的40引脚双列直插式集成电路芯片,其各引脚功能如下:VCC:+5V电源。VSS:接地。RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完

8、成单片机的复位初始化操作。XTAL1和XTAL2:外接晶体引线端。当使用芯片部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。P0口:P0口为一个8位漏极开路双向I/O口,当作输出口使用时,必须接上拉电阻才能有高电平输出;当作输入口使用时,必须先向电路中的锁存器写入“1”,使FET截止,以避免锁存器为“0”状态时对引脚读入的干扰。P1口:P1口是一个部提供上拉电阻的8位双向I/O口,它不再需要多路转接电路MUX;因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”,使输出驱动电路的FET截止。P2口:P2口电路比P

9、1口电路多了一个多路转接电路MUX,这又正好与P0口一样。P2口可以作为通用的I/O口使用,这时多路转接电路开关倒向锁丰存器Q端。P3口:P3口特点在于,为适应引脚信号第二功能的需要,增加了第二功能控制逻辑。当作为I/O口使用时,第二功能信号引线应保持高电平,与非门开通,以维持从锁存器到输出端数据输出通路的畅通。当输出第二功能信号时,该位应应置“1”,使与非门对第二功能信号的输出是畅通的,从而实现第二功能信号的输出,具体第二功能如表3-1所示。P3引脚兼用功能P3.0串行通讯输入(RXD)P3.1串行通讯输出(TXD)P3.2外部中断0( INT0)P3.3外部中断1(INT1)P3.4定时器

10、0输入(T0)P3.5定时器1输入(T1)P3.6外部数据存储器写选通WRP3.7外部数据存储器写选通RD表3-1P3端口引脚兼用功能表3.1.2 晶振电路右图所示为时钟电路原理图,在AT89S51芯片部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,输出端为引脚XTAL2。而在芯片部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。图3-2晶振电路3.2 数码显示模块设计显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:

11、 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一,如下图所示。图3-4 LED显示器的符号图发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图是共阳式、共阴式LED数码管的原理图和符号。图3-5 共阳式、共阴式LED数码管的原理图和数码管的符号图系统采用动态显示方

12、式,用P0口来控制LED数码管的段控线,而用P2口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。四、系统软件设计4.1 软件设计分析在编程上,首先进行了初始化,定义程序的的入口地址以及中断的入口地址,在主程序开始定义了一组固定单元用来储存计数的时.分.秒,在显示初值之后,进入主循环。在主程序中,对不同的按键进行扫描,实现秒表,时间调整,复位清零等功能。4.2 源程序清单DISBEG EQU 30H CALB EQU P1.7 TI

13、MCON EQU 2FH ORG 0000H ;程序开始LJMP MAINORG 0003H ;关外中断0RETIORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;关中断1RETIORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;关串行中断RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,88H,0BFH;共阳段码表 012 34567 89不亮A-I_TAB: DB 0C0H,0F9H,0A4H,0B0H

14、,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表,启动时显示2013年06月07日、A01-01-15(学号)用STAB: DB 0AH,0AH,0AH,0AH,0AH,0AH,05H,01H,0CH,01H,00H,0CH,01H,00H,0DH,0AH,0AHDB 07H,00H,0CH,06H,00H,0CH,03H,01H,00H,02H,0AH,0AH,0AH,0AH,0AH,0AH

15、DLY1M: MOV R6,#14H ;1毫秒延时DL_LOOP: MOV R7,#19HDL_LOOP1: DJNZ R7,DL_LOOP1DJNZ R6,DL_LOOPRETDLY20M: CLR CALB ;20毫秒延时LCALL D_II_PLAYLCALL D_II_PLAYLCALL D_II_PLAYSETB CALBRETDL_LOOPS: LCALL DL05SLCALL DL05SRETDL05S: MOV R3,#20H ;8毫秒*32=0.196秒DL05S1: LCALL D_II_PLAYDJNZ R3,DL05S1RET;程序开始 ;整点报时用CTIME: MOV

16、 A,#10HMOV B,79HMUL ABADD A,78HMOV TIMCON,ACLOOP: LCALL DLY20MLCALL DL_LOOPSLCALL DL_LOOPSLCALL DL_LOOPSDJNZ TIMCON,CLOOPCLR 08H AJMP MLOOP1;主程序开始MAIN: LCALL ST ;上电显示年月日及班级学号MOV R0,#00H ;清00H-7FH存单元MOV R7,#80H ;MLOOP: MOV R0,#00H ;INC R0 ;DJNZ R7,MLOOP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入熄灭符数据MO

17、V TMOD,#11H ;设T0、T1为16位定时器MOV TL0,#0B0H ;50MS定时初值(T0计时用)MOV TH0,#3CH ;50MS定时初值MOV TL1,#0B0H ;50MS定时初值(T1闪烁定时用)MOV TH1,#3CH ;50MS定时初值SETB EA ;总中断开放SETB ET0 ;允许T0中断SETB TR0 ;开启T0定时器MOV R4,#14H ;1秒定时用计数值(50MS20)MOV DISBEG,#70H ;显示单元为70-75H;以下主程序循环MLOOP1: LCALL D_II_PLAY ;调用显示子程序JNB P1.0,T_SETSC ;P1.0口为

18、0时转时间调整程序JNB P1.1,DLY5 ;秒表功能,P1.1按键调时时作减1加能JNB P1.2,FUNBT ;秒表STOP,PUSE,CLRJNB P1.3,TSET JB 08H, CTIMEAJMP MLOOP1 ;P1.0口为1时跳回MLOOP1FUNBT: LJMP DLY6TSET: LCALL DLY20MJB P1.3,MLOOP1 ;TS_LOOP: JNB P1.3,TS_LOOP ;等待键释放JB 05H,CLRBELL MOV DISBEG,#50H MOV 50H,#0CH ;- -MOV 51H,#0AH ;黑MINCHG: SETB EALCALL D_II

19、_PLAYJNB P1.2,DLY1 ;分加1JNB P1.0,DLY3 ;分减1JNB P1.3,DLY ;进入时调整AJMP MINCHGCLRBELL: CLR 05H CLR CALBAJMP MLOOP1DLY: LCALL DLY20M ;消抖JB P1.3, MINCHGLJMP DLY8 ;进入时调整T_SETSC: LJMP R_SETTIM ;转到时间调整程序R_SETTIMDLY1: LCALL DLY20M ;消抖JB P1.2, MINCHGDLY2: LCALL D_II_PLAY ;等键 释放JNB P1.2, DLY2CLR EAMOV R0,#53H ;LCA

20、LL ADD_1 MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADD_M ;ADD_M: JC MINCHG ;小于60分时返回ACALL CLR_H ;大于或等于60分时分计时单元清0AJMP MINCHGDLY3 : LCALL DLY20M ;消抖JB P1.0, MINCHGDLY4: LCALL D_II_PLAY ;等键 释放JNB P1.0, DLY4CLR EAMOV R0,#53H ;LCALL SUB_M LJMP MINCHG;以下秒表功能/时钟转换程序;按下P1.1 可进行功能转换DLY5: LCALL DLY20MJB P1.1,T

21、_MLOOP1JNB P1.1,$CPL 03HJNB 03H,DIS_SETMOV DISBEG,#60H ;显示秒表数据单元MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HMOV TL1,#0F0H ;10MS定时初值()MOV TH1,#0D8H ;10MS定时初值SETB TR1SETB ET1T_MLOOP1: LJMP MLOOP1DIS_SET: MOV DISBEG,#70H ;显示时钟数据单元CLR ET1CLR TR1T_MLOOP11: LJMP MLOOP1;以下秒表暂停清零

22、功能程序;按下P1.2暂停或清0,按下P1.1退出秒表回到时钟计时DLY6: LCALL DLY20MJB P1.2,T_MLOOP11T_EST11: JNB P1.2,T_EST11CLR ET1CLR TR1T_EST22: JNB P1.1,DLY5JB P1.2,T_EST21LCALL DLY20MJB P1.2,T_EST22T_EST55: JNB P1.2,T_EST51MOV 60H,#00HMOV 61H,#00HMOV 62H,#00HMOV 63H,#00HMOV 64H,#00HMOV 65H,#00HT_EST33: JNB P1.1,DLY5JB P1.2,T_

23、EST31LCALL DLY20MJB P1.2,T_EST33T_EST44: JNB P1.2,T_EST41SETB ET1SETB TR1AJMP MLOOP1;以下键等待释放时显示不会熄灭用T_EST411: LCALL D_II_PLAYAJMP T_EST11T_EST21: LCALL D_II_PLAYAJMP T_EST22T_EST31: LCALL D_II_PLAYAJMP T_EST33T_EST41: LCALL D_II_PLAYAJMP T_EST44T_EST51: LCALL D_II_PLAYAJMP T_EST55; 1秒计时程序;T0中断服务程序IN

24、TT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0MOV A,#0B7H ;中断响应时间同步修正ADD A,TL0 ;低8位初值修正MOV TL0,A ;重装初值(低8位修正值)MOV A,#3CH ;高8位初值修正ADDC A,TH0 MOV TH0,A ;重装初值(高8位修正值)SETB TR0 ;开启定时器T0DJNZ R4, I_INT0 ;20次中断未到中断退出A_DDS: MOV R4,#14H ;20次中断到(1秒)重赋初值CPL 07H MOV R0,#71H ;指向秒计时单元(71H-

25、72H)ACALL ADD_1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,A_DDM A_DDM: JC I_INT0 ;小于60秒时中断退出ACALL CLR_H ;大于或等于60秒时对秒计时单元清0MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD_1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,A_DDH ;A_DDH: JC I_INT0 ;小于60分时中断退出ACALL CLR_H ;大于或等于60分时分计时单元

26、清0LCALL DLY20M ;正点报时SETB 08HMOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD_1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志CJNE A,#24H,RSTART ;RSTART: JC I_INT0 ;小于24小时中断退出ACALL CLR_H ;大于或等于24小时小时计时单元清0I_INT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;LCALL BELLPOP PSW ;恢复状态字(出栈)P

27、OP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回;闪动调时程序秒表功能程序;T1中断服务程序,用作时间调整时调整单元闪烁指示或秒表计时INTT1: PUSH ACC ;中断现场保护PUSH PSW JB 03H, R_ADDS ;=1时秒表MOV TL1, #0B0H ;装定时器T1定时初值MOV TH1, #3CH DJNZ R2,I_INT1 ;0.3秒未到退出中断(50MS中断6次)MOV R2,#06H ;重装0.3秒定时用初值CPL 02H ;0.3秒定时到对闪烁标志取反JB 02H,FLASH0 ;02H位为1时显示单元熄灭MOV 72H,76H ;0

28、2H位为0时正常显示MOV 73H,77H MOV 74H,78H MOV 75H,79H I_INT1: POP PSW ;恢复现场POP ACC RETI ;中断退出FLASH0: JB 01H,FLASH1 ;01H位为1时,转小时熄灭控制MOV 72H,7AH ;01H位为0时,熄灭符数据放入分MOV 73H,7AH ;显示单元(72H-73H),将不显示分数据MOV 74H,78H MOV 75H,79H AJMP I_INT1 ;转中断退出FLASH1: MOV 72H,76H ;01H位为1时,熄灭符数据放入小时MOV 73H,77H ;显示单元(74H-75H),小时将不显示MOV 74H,7AH MOV 75H,7AH AJMP I_INT1 ;转中断退出R_ADDS : CLR TR1MOV A,#0F7

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1