单片机课程设计-LED数字倒计时器设计.doc_第1页
单片机课程设计-LED数字倒计时器设计.doc_第2页
单片机课程设计-LED数字倒计时器设计.doc_第3页
单片机课程设计-LED数字倒计时器设计.doc_第4页
单片机课程设计-LED数字倒计时器设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LED数字倒计时器 LED数字倒计时器设计作者: 指导老师:摘 要:近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。并采用电子秤原理可根据输入单价准确的计算出物体的金额。本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。 关键词:单片机;AT89S51;LED数码管显示器;keilC51;倒计时器;三极管C8850全套设计加扣3012250582 目录前言第一章 设计目的及要求- 2 -1.1、设计目的- 2 -1.2、设计要求- 2 -1.2.1、课程设计要求- 2 -1.2.2、基本设计功能要求主要分为以下几个部分:- 2 -第2章 方案- 3 -2.1、方案设计- 3 -2.2、方案论证- 4 -2.2.1、开发意义- 3 -2.2.2、功能说明- 3 -第3章 主要元器件介绍- 5 -3.1 AT89C51单片机介绍- 5 -3.2、集成块74LS245- 6 -3.3、6位led数码管显示- 7 -第4章 基本硬件电路- 7 -4.1、复位电路- 7 -4.2、按键电路- 7 -4.3、单片机最小系统模块电路- 8 -第5章 系统仿真与调试- 11 -5.1、Protues仿真平台- 11 -5.2、Keil编程- 11 -5.3、仿真结果- 11 -第6章 课程设计总结- 12 -附录- 12-汇编程序- 12-参考文献- 23 - 第一章 设计目的及要求1.1、设计目的本次课程设计目的在于真正的把所学单片机理论知识应用于实际,更加熟悉51单片机的硬件与软件。能灵活运用Keil进行软件编程调试以及用proteus软件仿真。本次设计组成电子密码锁系统,画出系统硬件电路图,设计编写键盘控制、LED显示、声报警、密码输入等子程序。在调试程序时,要求整个系统工作正常、显示正确、结果满意,掌握该芯片的工作原理并完成读、写程序的设计、编写和调试。1.2、设计要求1.2.1、课程设计要求 能熟练运用51单片机实现硬件与软件结合完成电子产品的设计,把理论真正运用于实践,会用Keil等软件编程调试运行,熟悉应用Proteus软件仿真。强化编程练习,注意查询方式与中断方式的区别等等。1.2.2、基本设计功能要求主要分为以下几个部分:本次设计的任务与要求是,使基于AT89S52单片机的LED数字倒计时器主要具有如下功能:(1)LED数码管显示倒计时时间。(2)倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出约2s的报警声音。(3)通过按键可以对倒计时设定初值。倒计时初始值范围在24:00:0000:00:60之间,用户可根据需要对其进行设置,设置成功后复位初始值为成功设定值。第2章 方案2.1 电路设计 LED数字倒计时器以AT89S52单片机为核心,系统包括六位数码管显示电路,按键电路,电源电路,复位电路,晶振电路以及蜂鸣器电路,LED数字倒计时器设计框图如下:AT89S52 单片机电源电路复位电路晶振电路6位数码管显示电路蜂鸣器电路按键电路 图2-1 LED数字倒计时器设计框图2.2 方案论证2.2.1 开发意义 本课题开发的意义在于它既节省了硬件成本,又能实现多功能。既可做倒计时秒表,又可进行定时,还可以通过扩展完成其他功能,而且功能的相互转换也十分简单。对于厂商,有很大的挖掘潜在价值的空间;对于消费者,也有很大的吸引力。2.2.2 功能说明 (1)本电路应用TIMER0MODE16位计数器的计时中断法。 (2)1秒等于1000000微秒,而每一计时脉冲是1微秒,因此需输入100000个计时脉冲,方可达到1秒的时间。由于16位计数器初值为0000H,需65536个计时脉冲方可发生溢出,现在需1000000个脉冲,则溢出次数达15.258次(100000065536=15.258次)。 (3)由上式得知实际应溢出16次,即:1000000=65536*15+1696065536-16960=48576=BDC0HTH0TL0由上式得知1000000个脉冲,首先需设定TL0=C0H,TH0=BDH,此时第1次只要输入16960个脉冲输入,就会溢出;第2次至第16次,则需每65536个计时脉冲,方才发生溢出。共计输入16960+65536*15=1000000个计时脉冲。第3章 主要元器件介绍3.1 AT89C51单片机介绍AT89C51是MCS51系列单片机中的一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。 主要性能:与MCS-51 微控制器产品系列兼容。 片内有4KB可在线重复编程的快闪擦写存储器存储数据保存时间为10年。宽工作电压范围:Vcc可为2.7V到6V全静态工作;可从0Hz至16MHz 程序存储器具有3级加密保护 128*8位内部RAM 32条可编程I/O线、两个16位定时器/计数器、中断结构具有5个中断源和2个优先级、可编程全双工串行通道、空闲状态维持低功耗和掉电状态保存存储内容。89C51单片机是把那些作为控制应用所必需的基本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器。它们都是通过片内单一总线连接而成,其基本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能寄存器的集中控制方式。微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统各部分功能及说明类似于8051单片机内部结构说明。 特殊功能寄存器共有21个,用于对片内的各功能的部件进行管理、控制、监视。实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区。 由上可见, 89C51单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个1位微计算机有自己的CPU、位寄存器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机设计的精美之处。 引脚说明 图3.1是标准的40引脚双列直插式集成电路芯片。 图3.1 AT89C51引脚图P00P07 P0口8位双向口线(在引脚的3932号端子)。P10P17 P1口8位双向口线(在引脚的18号端子)。P20P27 P2口8位双向口线(在引脚的2128号端子)。P30P37 P3口8位双向口线(在引脚的1017号端子)。1、P0口有三个功能: (1)外部扩展存储器时,用作数据总线(如图中的D0D7为数据总线接口)(2)外部扩展存储器时,用作地址总线(如图中的A0A7为地址总线接口)(3)不扩展时,可做一般的I/O口使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。2、P1口功能:P1口只做I/O口使用,其内部有上拉电阻。3、P2口有两个功能:(1)扩展外部存储器时,当作地址总线使用;(2)做一般I/O口使用,其内部有上拉电阻。4、P3口有两个功能:除了作为I/O口使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置。当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。5、ALE/PROG 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。PROG为编程脉冲的输入端,在89C51单片机内部有一个4KB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序的,那么我们是怎样把编写好的程序存入进这个ROM中的呢?实际上是通过编程脉冲输入才能写进去的,这个脉冲的输入端口就是PROG。6、PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作:(1)内部ROM读取时,PSEN不动作;(2)外部ROM读取时,在每个机器周期会动作两次;(3)外部RAM读取时,两个PSEN脉冲被跳过不会输出;(4)外接ROM时,与ROM的EA脚相接。7、EA/VPP 访问程序存储器控制信号:(1)接高电平时:CPU读取内部程序存储器(ROM)(2)接低电平时:CPU读取外部程序存储器(ROM)。8031单片机内部是没有ROM的,那么在应用8031单片机时,这个脚是一直接低电平的。8、RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。9、XTAL1和XTAL2 :外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。10、VCC:电源端接+5V电压输入。11、GND:接地端。3.2 集成块74LS24574LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收) *DIR=“1”,信号由 A 向 B 传输;(发送)当/CE为高电平时,A、B均为高阻态。由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,/E端接地,保证数据现畅通。3.3 6位LED数码管显示本项目设计采用了6位数码管显示电路,在设计6位LED显示时,为了简化电路,降低成本,采用动态显示方式,6个LED显示器共用一个8位的I/O,6位LED数码管的位选线分别由相应的P2.0p2.5控制,而将相应的段选线并联在一起,由一个8位的I/O口控制,即p0口。译码显示电路将“时”、“分”、“秒”显示数字进行校对调整。第4章 基本硬件电4.1复位电路复位是单片机的初始化操作,只需给AT89S52的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位,复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。 图4.1 复位电路原理图4.2 按键电路按键电路的按键功能说明:(1)K1用于设置时间和闹钟的小时。(2)K2用于设置小时以及设置闹钟的开关。(3)K3用于设置分钟和闹钟的分钟。(4)K4用于设置完成退出。.4.3单片机最小系统模块电路单片机选用Atmel公司的单片机芯片STC89C52RC,它完全可以满足本设计中采集控制和数据处理的需要。它小巧灵活、成本低、可靠性好、适应温度范围宽,易于扩展等优点,在工业自动化、智能仪器仪表、家用电器等方面得到了广泛应用。 图4.2单片机最小系统模块电路第5章 系统仿真与调试5.1、Protues仿真平台 Protues软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MATLAB等多种编译。 下图是在proteus连接好的硬件仿真图 图5.1 proteus硬件仿真图5.2、Keil编译 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势, Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。本次设计采用汇编语言编程,生成.hex文件以供装载到Protues中的单片机进行仿真。 在keil编写程序生成hex文件,载入到单片机中: 图 5.2 hex文件载入到单片机中5.3仿真结果联合仿真的结果如下: 图5.3 运行过程中的LED倒计时器 第6章 课程设计总结 通过这次课程设计,加强了我的动手、思考和解决问题的能力。在整个设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,但实际接上电路,总是实现不了,因此耗费在这上面的时间用去很多。我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。尤其学习软件proteus,除了可以提高仿真能力、综合能力和设计能力外,还可进一步提高实践能力。初步掌握一种电子电路计算机辅助分析和设计软件对学习模拟电子技术基础课很有必要。 本次设计也使我们认识并了解了基本的设计开发过程,在这过程中,我的身边的同学们给了我很大的启示和帮助,而且我觉得对以前不了解的单片机只是有了一个更感更深的了解。我相信我所学的东西在以后的工作学习中会起很大的作用。 在本次设计中得到了指导老师许老师的大力支持,在此表示感谢!附录汇编程序;* K1 EQU P1.0 K2 EQU P1.1 K3 EQU P1.2 K4 EQU P1.3 ORG 0000H LJMP MAIN ORG 000BH LJMP TIME ORG 0100H MAIN:MOV SP,#50H MOV 20H,#3CH ;时间 BIN SECOND MOV 21H,#3CH ; BIN MINUTE MOV 22H,#18H ; BIN HOUR MOV 23H,#01H ;闹铃 BIN MINUTE MOV 24H,#01H ; BIN HOUR MOV 25H,#00H ;定义一个标志位 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 ;闹铃 BCD MINUTE MOV 37H,#00H ; MOV 38H,#01H ; BCD HOUR MOV 39H,#00H ; MOV TMOD,#01H ;16位计数器 T0,方式1 MOV TH0,#03CH ;赋初值 MOV TL0,#0B0H MOV IE,#10000111B ;开中断 T0,EA=1 SETB TR0 ;T0启动计数 MOV R2,#14H ;计数器 MOV P2,#0FFH LOOP:LCALL TIMEPRO ; 调用现在时间与闹铃时间比较程序 LCALL DISPLAY1 ; 调用现在时间显示子程序 JB K1,M1 ; 判断按键是否按下 LCALL XIAOZHEN1 ; 调用消抖程序 MOV C,25H.0 JC A1 A1:CLR 25H.0 LCALL SETTIME ; 调用设置现在时间子程序 LJMP LOOP M1:JB K2,M2 LCALL XIAOZHEN2 MOV C,25H.0 JC A2 A2:CLR 25H.0 LCALL SETATIME ; 调用设置闹钟的程序 LJMP LOOP M2:JB K4,M3 A3:LCALL XIAOZHEN3 MOV C,25H.0 JC A4 A4:CLR 25H.0 M3:LJMP LOOPSETTIME: L0:LCALL DISPLAY1 JB K2,L1 LCALL XIAOZHEN4 MOV C,25H.0 JC A5 A5:CLR 25H.0 DEC 22H MOV A,22H CJNE A,#18H,GO12 MOV 22H,#00H MOV 34H,#00H MOV 35H,#00H LJMP L0 L1:JB K3,L2 LCALL XIAOZHEN5 MOV C,25H.0 JC A6 A6:CLR 25H.0 DEC 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 MOV 33H,A LJMP L0 GO12:MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0 L2:JB K4,L0 LCALL XIAOZHEN3 MOV C,25H.0 JC AX AX:CLR 25H.0 RETSETATIME:LCALL DISPLAY2 ;调用闹钟设置,闹铃响时的显示程序 N0:LCALL DISPLAY2 JB K3,N1 LCALL XIAOZHEN6 MOV C,25H.0 JC A7 A7:CLR 25H.0 DEC 24H MOV A,24H CJNE A,#24,GO22 MOV 24H,#00H MOV 38H,#00H MOV 39H,#00H LJMP N0 N1:JB K1,N2 LCALL XIAOZHEN7 MOV C,25H.0 JC A8 A8:CLR 25H.0 DEC 23H MOV A,23H CJNE A,#60,GO21 MOV 23H,#00H MOV 36H,#00H MOV 37H,#00H LJMP N0 GO21:MOV B,#0AH DIV AB MOV 36H,B MOV 37H,A LJMP N0 GO22:MOV B,#0AH DIV AB MOV 38H,B MOV 39H,A LJMP N0 N2:JB K4,N0 LCALL XIAOZHEN3 MOV C,25H.0 JC A9 A9:CLR 25H.0 RETTIMEPRO: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 JC XX XX:LCALL TIMEOUT BK:RET TIMEOUT: X1:LCALL BZ LCALL DISPLAY2 CLR 25H.0 JB K4, X1 RET BZ:CLR P3.7 MOV R7,#250 T2:MOV R6,#124 T3:DJNZ R6,T3 DJNZ R7,T2 SETB P3.7 JB K4,XY LCALL XIAOZHEN3 MOV C,25H.0 JC XY1 XY:RET XY1:LJMP LOOPXIAOZHEN1:LCALL DISPLAY1 JB K1,XIAOZHEN1 MOV C,K1 JC XIAOZHEN1 LCALL DELAY MOV C,K1 JC XIAOZHEN1 STOP1:MOV C,K1 JNC STOP1 LCALL DELAY MOV C,K1 JNC STOP1 SETB 25H.0 RET XIAOZHEN2:LCALL DISPLAY2 JB K2,XIAOZHEN2 MOV C,K2 JC XIAOZHEN2 LCALL DELAY MOV C,K2 JC XIAOZHEN2 STOP2:MOV C,K2 JNC STOP2 LCALL DELAY MOV C,K2 JNC STOP2 SETB 25H.0 RET XIAOZHEN3:LCALL DISPLAY1 JB K4,XIAOZHEN3 MOV C,K4 JC XIAOZHEN3 LCALL DELAY MOV C,K4 JC XIAOZHEN3 STOP3:MOV C,K4 JNC STOP3 LCALL DELAY MOV C,K4 JNC STOP3 SETB 25H.0 RET XIAOZHEN4:LCALL DISPLAY1 JB K2,XIAOZHEN4 MOV C,K2 JC XIAOZHEN4 LCALL DELAY MOV C,K2 JC XIAOZHEN4 STOP4:MOV C,K2 JNC STOP4 LCALL DELAY MOV C,K2 JNC STOP4 SETB 25H.0 RET XIAOZHEN5:LCALL DISPLAY1 JB K3,XIAOZHEN5 MOV C,K3 JC XIAOZHEN5 LCALL DELAY MOV C,K3 JC XIAOZHEN5 STOP5:MOV C,K3 JNC STOP5 LCALL DELAY MOV C,K3 JNC STOP5 SETB 25H.0 RET XIAOZHEN6:LCALL DISPLAY2 JB K3,XIAOZHEN6 MOV C,K3 JC XIAOZHEN6 LCALL DELAY MOV C,K3 JC XIAOZHEN6 STOP6:MOV C,K3 JNC STOP6 LCALL DELAY MOV C,K3 JNC STOP6 SETB 25H.0 RET XIAOZHEN7:LCALL DISPLAY2 JB K1,XIAOZHEN7 MOV C,K1 JC XIAOZHEN7 LCALL DELAY MOV C,K1 JC XIAOZHEN7 STOP7:MOV C,K1 JNC STOP7 LCALL DELAY MOV C,K1 JNC STOP7 SETB 25H.0 RETDELAY:MOV R4,#14H DL00:MOV R5,#0FFH DL11:DJNZ R5,DL11 DJNZ R4,DL00 RETTIME:PUSH ACC PUSH PSW MOV TH0,#03CH MOV TL0,#0B0H DJNZ R2,RET0 MOV R2,#14H MOV A,20H CLR C DEC A CJNE A,#0,GO1 MOV 20H,#3CH MOV 30H,#0 MOV 31H,#0 MOV A,21H DEC A CJNE A,#3CH,GO2 MOV 21H,#0H MOV 32H,#0 MOV 33H,#0 MOV A,22H DEC A CJNE A,#18H,GO3 MOV 22H,#00H MOV 34H,#0 MOV 35H,#0 AJMP RET0 GO1:MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B AJMP RET0 GO2:MOV 21H,A MOV B,#0AH DIV AB MOV 33H,A MOV 32H,B AJMP RET0 GO3:MOV 22H,A MOV B,#0AH DIV AB MOV 35H,A MOV 34H,B AJMP RET0 RET0:P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论