一、设计要求 (2)1.1 设计内容及要求 (2)1.2 设计方案及思路 (2)二、系统硬件设计 (2)2.1 硬件电路的总体设计方案及框图 (2)2.2 各单元硬件设计 (3)2.2..1 复位电路设计 (3)2.2.2 时钟电路设计 (3)2.2.3 显示电路设计 (4)2.2.4 主要硬件元器件介绍 (4)2.3 EDA辅助设计 (6)2.3.1 定时器的原理图 (6)2.3.2 定时器的PCB图 (6)三、系统软件设计 (9)3.1 主程序流程图 (9)3.2定时子程序流程图 (9)3.3 定时器完整程序 (12)四、系统软件仿真 (15)五、总结 (17)六、参考文献 (17)附录一:七段数码管字型码 (18)附录二:元器件清单 (18)摘要:本次课程设计是基于8051单片机控制的电子定时器设计。
设计中应用了单片中断及LED显示等技术,经历了方案设计、电路硬件设计、软件设计、软件仿真等过程,经过此次课程设计掌握了单片机应用系统的设计过程,单片机应用系统的设计流程如图所示:一、设计要求1.1 设计内容及要求以89C51单片机为核心,设计一个定时器,4位LED显示,分别显示10分,分,10秒,秒。
定时范围从1秒到59分59秒,有按键设置定时时间,按开始键后开始计时,每过一秒刷新一次定时时间,若计时时间到,停止计时,并在LED上显示定时的时间。
仪器工作过程:1、通电或复位状态显示0000;2、由按键设置定时时间;3、定时开始键按下,开始定时,每一秒刷新一次计时时间;4、定时时间到,停止计时,4位LED显示设定时间;5、复位后恢复初始状态,准备进行下一次定时。
1.2 设计方案及思路根据设计要求,本系统初步设定由单片机系统、键0——3、LED显示组成。
1、按键的输入:键0——3四个键作为时间设定的控制键,由P1口输入2、定时的显示电路:8051显示电路由4位共阴极数码管显示,由8051的串行口输出,并通过74LS164八位移位寄存器输入给数码管二、系统硬件设计2.1 硬件电路的总体设计方案及框图设计一个控制系统总体设计方案很重要,关系设计接下来的操作程序,一下就是本设计的总体框架。
按照设计要求,确定硬件电路的总体设计方案,以8051单片机为核心的控制电路,设计总框图如图1所示,此定时电路包含:复位电路、时钟电路、按键输入、显示电路,这些控制电路将在硬件电路主要模块设计中详细介绍。
图1 设计总框图2.2 各单元硬件设计2.2..1 复位电路设计单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
8051系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST 引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:手动按钮复位(如图2所示)和上电自动复位(如图3所示)等。
在本系统中采用手动按钮复位。
图2 手动按钮复位图3 上电自动复位2.2.2 时钟电路设计时钟电路时计算机的心脏,它控制着计算机的工作节奏,CPU就是通过复杂的时序电路完成不同的指令功能的。
MCS-51的时钟信号可以由两种方式产生:一种是内部方式,利用芯片内部的振荡电路,产生时钟信号;另一种为外部方式,时钟信号由外部引入。
MCS-51单片机有HMOS型和CHMOS型,他们的时钟电路有一定的区别。
(1)、内部时钟方式内部方式的时钟电路如图4所示。
利用MCS-51内部的高增益反相放大器,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡。
定时元件一般采用石英晶体和电容组成的并联谐振回路。
(2)、外部时钟方式外部时钟方式常用于多机系统,以便各个单片机能够同步工作。
对外部振荡信号无特殊要求,但需保证脉冲宽度不小于20ns,且频率应低于单片机所支持的最高频率。
电路如图5所示。
C1C230pf 30pf图4 内部时钟方式 图5 外部时钟方式 2.2.3 显示电路设计8051显示电路由4位共阴极数码管显示,由8051的串行口输出,并通过 74LS164八位移位寄存器输入给数码管。
如图6所示:图6 显示电路2.2.4 主要硬件元器件介绍 (1)单片机STC89C51芯片8051单片机引脚图如图7所示图7 8051单片机引脚图1、主电源引脚VCC和VSSVCC——(40脚)接+5V电压;VSS——(20脚)接地。
2、外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
XTAL2(18脚)接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RST/VPD(9脚)复位/备用电源输入端②ALE/PROG(30脚):低8位地址锁存使能输出端③PSEN(29脚):外部程序存储器的读选通信号。
④EA/VPP(引脚):外部程序存储器地址允许使能端4、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)①P0口(39脚至32脚):漏极开路的8位准双向复用I/O口②P1口(1脚至8脚):内部带上拉电阻的8位准双向I/O口③P2口(21脚至28脚):内部带上拉电阻的8位准双向复用I/O口④P3口(10脚至17脚):内部带上拉电阻的8位多功能双向I/O口(2)七段数码管①七段数码管引脚图如图8所示:图8 其段数码管引脚图②七段数码管字型码(见附录一)(3)移位寄存器74LS164①74LS164引脚图,如图9所示图9 74LS164引脚图图10 74LS164功能表②74LS164功能表,如图10所示2.3 EDA辅助设计EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
在此次课程设计中,将主要使用PROTEL99SE来进行电路的设计。
PROTEL为设计者提供了一个集成的电路设计环境,包括原理图设计和PCB布线工具、电路仿真和集成的设计文档管理。
2.3.1 定时器的原理图(1)原理图绘制的流程图如图11所示(2)定时器原理图如图12所示2.3.2 定时器的PCB图(1)PCB绘制流程图如图13所示(2)PCB板如图14所示图11 电路图绘制流程图图13 PCB制作流程图图12 定时器电路原理图图14 定时器的PCB板三、系统软件设计3.1 主程序流程图主程序流程图如图15所示3.2定时子程序流程图定时子程序流程图如图16所示图15 主程序流程图图16 定时子程序流程图3.3 定时器完整程序ORG 0000HLJMP 0030H/*****************************************************************主程序****************************************************************/ORG 0030HSTART: MOV 30H,#0 ;30H~33H清零MOV 31H,#0MOV 32H,#0MOV 33H,#0LCALL DIR0 ;调用显示子程序AA: JNB P1.0,AA0 ;检测按键,若有按键按下则跳转至相应的程序JNB P1.1,AA1JNB P1.2,AA2JNB P1.3,AA3JNB P1.4,AA4LJMP AA ;循环检测按键AA0: INC 30H ;按键0按下时,30H自动加一MOV A,30HCJNE A,#10,AA00;若秒小于10,调用显示程序MOV 30H,#0 ;若秒大于等于10,则30H清零AA00: LCALL DIR0 ;调用显示子程序LCALL DLYR ;调用延时程序LJMP AA ;循环检测按键AA1: INC 31H ;按键1按下,31H自动加1并执行相应显示程序MOV A,31HCJNE A,#6,AA11 ;若秒小于6,调用显示程序MOV 31H,#0 ;若秒大于等于6,则3H清零AA11: LCALL DIR0LCALL DLYRLJMP AAAA2: INC 32H ;按键2按下32H自动加1并执行相应显示程序MOV A,32HCJNE A,#10,AA22;若秒小于10,调用显示程序MOV 32H,#0AA22: LCALL DIR0LCALL DLYRLJMP AAAA3: INC 33H ;按键3按下33H自动加1并执行相应显示程序MOV A,33HCJNE A,#6,AA33 ;若秒小于6,调用显示程序MOV 33H,#0 ;若秒大于等于6,则3H清零AA33: LCALL DIR0LCALL DLYRLJMP AAAA4: LCALL DS00 ;调用定时子程序LJMP AA ;检测按键/******************************************** *********************定时子程序**********************************************************/ DS00: MOV 40H,30HMOV 41H,31HMOV 42H,32HMOV 43H,33HMOV 30H,#0 ;30H~33H清零MOV 31H,#0MOV 32H,#0MOV 33H,#0DS11: LCALL DIR0 ;调用显示程序LCALL DLYR ;调用延时程序LCALL DLYRINC 30HMOV A,30HCJNE A,#10,GRMOV 30H,#0INC 31HMOV A,31HCJNE A,#6,GRMOV 31H,#0INC 32HMOV A,32HCJNE A,#10,GRMOV 32H,#0INC 33HGR: MOV A,33H ;判断是否到定时时间CJNE A,43H,DS11MOV A,32HCJNE A,42H,DS11MOV A,31HCJNE A,41H,DS11MOV A,30HCJNE A,40H,DS11LCALL DIR0RET/***************************************************************显示子程序***********************************************************/DIR0: MOV SCON,#0 ;使用串行方式输出显示数码MOV R0,#30HMOV R7,#4L1: MOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV SBUF,AJNB TI,$ ;等待发送数据完成CLR TI ;发送请求标志清零INC R0DJNZ R7,L1RETTAB: DB 3FH,06H,5BH,4FH,66H;0~9这十个数字的字型码DB 60H,70H,07H,7FH,6FHRET/****************************************************************延时0.5s子程序******************************************************/ DLYR: MOV R5,#125DELY: MOV R7,#100DLY0: MOV R6,#50DLY1: DJNZ R6,DLY1DJNZ R7,DLY0DJNZ R5,DELYRETEND四、系统软件仿真Proteus是多功能的EDA软件,真正实现了虚拟物理原型功能,在目标板还没有制作之前,就可以对所设计的硬件系统的功能、合理性和性能指标进行充分调整,并可以在没有硬件电路的情况下,进行相应的程序设计与调试,可由仿真原理图直接导出绘制成印制电路板(PCB)。