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

下载本文档

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

文档简介

1、课程设计任务书学生姓名: 向伟杰 专业班级: 机自xs1101班 指导教师: 徐汉斌 工作单位: 机电工程学院 题 目: LED数字倒计时器设计初始条件:1采用MCS51作为主控芯片; 2采用LED数码管显示倒计时,倒计时范围24:00:00; 3可调任意设定定时时间,要具有定时提醒功能,定时到2s报警功能。要求完成的主要任务: 1、 查阅参考资料,自学相关可编程接口芯片的内部结构、工作方式和初始化编程过程;2、 根据设计系统的具体功能和性能参数,明确设计目标;3、 单片机系统及其扩展接口电路设计,绘制系统硬件原理图;4、 编制系统控制源程序,绘制源程序流程图,包括初始化和监控程序;5、 撰写

2、设计说明书(包括参考资料目录,字数不少于5000字)时间安排:(两周)序号内 容所用时间(天)1查阅资料,学习相关芯片知识22系统及扩展电路硬件设计33初始化程序和应用程序设计34相关硬件电路和程序调试35课程设计答辩1合计12指导教师签名: 2013年 12 月 27 日系主任(或责任教师)签名: 年 月 日目 录1 LED数字倒计时器的功能及需求分析12 LED数字倒计时器的设计方案22.1 LED数字倒计时器的组成22.2 LED数字倒计时器的系统设计图2 3 LED数字倒计时器硬件电路设计与主要元器件分析33.1 AT89C51单片机33.2 晶振电路83.3 复位电路93.4 按键电

3、路103.5 数码管显示电路113.6 蜂鸣电路134 LED数字倒计时器系统仿真图145 LED数字倒计时器原件清单156 LED数字倒计时器的软件设计166.1程序流程图166.2 程序清单177 总结228 参考文献239 评分表241.LED数字倒计时器的功能及需求分析1.1 功能分析:可实现倒计时功能,计时时间可通过按键进行设定,设定完成后启动倒计时,倒计时还剩下两秒时,蜂鸣电路会报警提示。(1)可实现倒计时功能:本设计的LED数字倒计时采用六位数码管显示时间,分别显示小时、分钟、秒钟,最大的倒计时时间为24小时,倒计时时间为24小时内任意时间可调。(2)计时时间可通过按键进行设定:

4、 通过运用独立的按键控制时,分,秒的设定。按键B1控制小时让小时以加一方式设定,按键B2控制分钟让分钟以加一方式设定,按键B3控制秒让秒以加一方式设定,按键B4控制定时器开关。 (3)设定完成后启动倒计时:通过按下独立按键k4控制倒计时器开关,按一下开始倒计时。(4)当倒计时时间还剩下两秒时,蜂鸣电路会报警,这些功能都是通过软件实现的。LED数字倒计时器的功能,原理上,和电子表的闹钟定时功能没什么两样,但是,与之不同的是,LED数字倒计时器不仅具有提醒功能,还能直接倒计时显示,还有多长时间到达设置的时间,并且,能够通过按钮调节,24小时内任意倒计时时间均可以调节,可以调节小时、分钟以及秒钟,有

5、按钮复位,能够实现取消定时,有按钮能够实现开始倒计时。1.2 需求分析近年来随着计算机在社会领域的渗透,单片机的应用正在不断深入人们的生活,同时带动传统控制检测日新月异。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,针对具体应用特点与软件结合。本次课程设计研究了LED数字倒计时器的设计与制作,此方案线路简单,成本低,应用前景广阔。例如,在所有大学以及初高中的每个教室里都可以安装一个LED数字倒计时器,教室前面有个大的LED数字倒计时器,在平时不仅可以同学们还有多长时间上课下课,更主要的是,能在学校的考试或者十分重要的

6、大型考试,如中考,高考,四六级考试,公务员考试,研究生考试等中发挥重要作用,方便考生把握考试时间发挥出最好的水平。总而言之,LED数字倒计时器,在未来会有十分广阔的前景。2.LED数字倒计时器的设计方案2.1 LED数字倒计时器的组成:a) AT89C51单片机b) 晶振电路c) 复位电路d) 按键电路e) 六位数码管显示电路f) 蜂鸣器电路2.2 LED数字倒计时器的系统设计图 晶振电路数码管电路AT89C51复位电路按键电路蜂鸣电路 图 2.2 3. LED数字倒计时器硬件电路设计与主要元器件分析3.1 AT89C51单片机3.3.1 AT89C51的原理图3.3.1 AT89C51的原理

7、和性能介绍(一) AT89C51的原理a) VCC:供电电压。b) GND:接地。c) P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。d) P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLAS

8、H编程和校验时,P1口作为第八位地址接收。e) P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。f) P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,

9、可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。g) RST:复位输入。当振荡器复位器

10、件时,要保持RST脚两个机器周期的高电平时间。 h) ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 i) /PSEN:外部程序存储器的选通信号。在

11、由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。j) /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 k) XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。l) XTAL2:来自反向振荡器的输出。(二) AT89C51的性能分析a) 主要特点:AT89C51是一种带4K字节闪烁可编程可擦除只

12、读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。b) 振荡器特性: TAL2分别为反向放大器的输入和输出。该反向放大为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通

13、过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。c) 芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2 晶振电路3.2.1

14、晶振电路原理图3.2.2晶振电路分析 a) 晶振电路的原理:晶振是通过电激励来产生固定频率的机械振动,而振动又会产生电流反馈给电路,电路接到反馈 后进行信号放大,再次用放大的电信号来激励晶振机械振动,晶振再将振动产生的电流反馈给电路,如此这般。当电路中的激励电信号和晶振的标称频率相同时,电 路就能输出信号强大,频率稳定的正弦波。整形电路再将正弦波变成方波送到数字电路中供其使用。b) 晶振电路的特点:晶振是石英振荡器的简称,英文名为Crystal,晶振分为有源晶振和无源晶振两种,其作用是在电路产生震荡电流,发出时钟信号。它是时钟电路中最重要的部件,它的作用是向IC等部件提供基准频率,它就像个标尺

15、,工作频率不稳定会造成相关设备工作频率不稳定,自然容易出现问题。由于制造工艺不断提高,现在晶振的频率偏差、温度稳定性、老化率、密封性等重要技术指标都很好,已不容易出现故障,但在选用时仍可留意一下晶振的质量。3.3复位电路3.3.1复位电路的原理图 3.3.2复位电路的原理和作用a) 复位电路的原理:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。RC复位电路可以实现上述基本功能,但解决不了电源毛刺和电源缓慢下降(电池电压不足)等问题,而且调整 RC 常数改变延时会令驱动能力变

16、差。左边的电路为高电平复位有效,右边为低电平有效, 复位按键为手动复位开关,电容可避免高频谐波对电路的干扰。b) 复位电路的作用:复位电路是为确保微机系统中电路稳定可靠工作必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。3.4 按键电路3.4.1 按键电路的原理图 3.4.2 按键电路的原理分析(一) 按键电路的原理:按键B1/B2/B3/B4断

17、开时,P1.0/P1.1/P1.2/P1.3输入为高电平;按键B1/B2/B3/B4闭合后,P1.0/P1.1/P1.2/P1.3输入为低电平。每按一次按键,就会有一次低电平,单片机就会对低电平计数,从而来调节定时时间。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,这种抖动对于计算机来说,是完全能感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级。你只按了一次按钮,可是计算机却已执行了多次中断的过程,如果执行的次数正好是奇数次,那么结果正如你所料,如果执行的次数是偶数次,那就不对了,所以必须运用延时程序消除按键的抖动。(二) 按键电路的功用:每次复位之后,三个两位

18、数码管全部都会显示为0,而与P1.0相接的按钮B1,每次按下一次,就会产生一次低电平,单片机就会计数一次,从而调节倒计时的小时时间,B2则调节分钟,B3则调节秒钟,与这三个按键分别控制数码管的显示倒计时的小时、分钟、秒。与这三个按键不同的是,按键B3的作用是开始倒计时。这些按键的功能都是通过编程来控制的。 3.5数码管显示电路3.5.1数码管显示电路的原理图 3.5.2数码管显示电路的原理分析:(一) 数码管显示电路的组成:a) 六位数码管:分别显示小时,分钟和秒钟。b) 含有八个电阻带电源的排阻:分别与三个数字显示的数码管并联,电源给数码管提供电压,电阻的作用是保护数码管不被烧坏。c) 将P

19、O口的八位与数码管和排阻连载一起的导线,将P2口的六位分别与六位数码管的六个位选引脚接在一起。(二) 数码管显示电路的工作原理:a) 七段数码管的的结构:7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管。 共阴极 共阳极 7段数码管内部字段LED和引脚分布 b) 七段数码管的驱动方法:发光二极

20、管(LED是一种由磷化镓(GaP)等半导体材料制成的,能直接将电能转变成光能的发光显示器件。当其内部有一一电流通过时,它就会发光。7段数码管每段的驱动电流和其他单个LED发光二极管一样,一般为510mA;正向电压随发光材料不同表现为1.82.5V不等。c) 七段数码管的动态显示:所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄 灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参烽

21、,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。3.6蜂鸣电路3.6.1 蜂鸣电路的组成图 3.6.1图 3.6.2 蜂鸣电路的结构和原理a) 蜂鸣电路的组成:两个阻值为一千欧姆的电阻,一个阻值为100欧姆的电阻,一个蜂鸣器,一个三极管,一个接地,以及导线。b) 蜂鸣电路的工作原理:蜂鸣电路是利用I/O 定时翻转电平产生驱动波形对蜂鸣器进行驱动。在程序上,可以使用TIMER0 来定时,将TIMER0 的预分频设置为/1,选择TIMER0 的始终为系统

22、时钟(主振荡器时钟/4),通过按键可以在TIMER0 的载入/计数寄存器内调节设置时间,就能将TIMER0 的中断设置设置为倒计时时间,当需要I/O 口驱动的蜂鸣器鸣叫时,只需要在进入TIMER0 中断的时候对该 I/O 口的电平进行翻转一次,直到蜂鸣器不需要鸣叫的时候,将I/O 口的电平设置为低电平即可。不鸣叫时将I/O 口的输出电平设置为低电平是为了防止漏电。4. LED数字倒计时器的仿真图 图45 .LED数字倒计时器元件清单元件名称型号数量/个用途单片机AT89C511控制核心晶振12MHz1晶振电路电容30pF2晶振电路电解电容22F/10V1复位电路电阻10k1复位电路按键5按键电

23、路和复位电路数码管共阳6显示器三极管2N50881蜂鸣器喇叭8/0.5W1蜂鸣器电阻1k2蜂鸣器电阻1001蜂鸣器电阻3308排阻电源+5V/0.5A1提供+5V 表56 . LED数字倒计时器软件设计 6.1 LED数字倒计时器的程序流程图开始CPU系统初始化定时器0初始化中断初始化设置时间?设置闹铃时间显示刷新启动走时有关变量初始化时分变化?刷新显示1秒到秒指示闹铃时间?蜂鸣器结束YNYNYNYN 图6.16.2 LED数字倒计时器程序清单 #include<reg51.h>sbit kh=P10;/定义kh为与P1.0相连接的按键B1sbit km=P11;/定义km为与P1

24、.1相连接的按键B2sbit ks=P12;/定义ks为与P1.2相连接的按键B3sbit st=P13;/定义st为与P1.3相连接的按键B4sbit b=P37;/定义b为P3.7unsigned char table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71; / LED数码管从0到F的显示unsigned char i=0,hour=0,minute=0,second=0;/定义无符号的变量并赋初值void delayms(unsigned int x)unsigned

25、 char a=160;/定义无符号变量a的值为160,指延时时间为160个及其周期乘以x,160可以为180、200等,自己设置while(x-)while(a-);a=160;/定义延时程序的延时时间为160个及其周期乘以x,避免按键抖动的影响main()TH0=(65536-50000)/256;/设置定时时间对高八位赋值,50000是50000个机器周期,0.05秒TL0=(65536-50000)%256;/设置定时时间对低八位赋值,50000是50000个机器周期,0.05秒TMOD=1;/定时器模式TR0=0;/停止计时ET0=1;/开定时器中断EA=1;/开总中断while(1

26、)P0=tablehour/10;/显示小时的十位P2=32;/对数码管进行位选和段选,选中显示小时的十位delayms(1);/延时以便于显示P2=0xff;/重新给P2口一个高电平,避免误操作P0=tablehour%10;/显示小时的个位P2=16;/对数码管位选和片选,选中显示小时的个位delayms(1);/延时以便于显示P2=0xff;/重新给P2口一个高电平,避免误操作P0=tableminute/10;/显示分钟的十位P2=8;/对数码管进行位选和段选,选中显示分钟的十位delayms(1);/延时以便于显示P2=0xff;/重新给P2口一个高电平,避免误操作P0=tablem

27、inute%10;/显示分钟的个位P2=4;/对数码管进行位选和段选,选中显示分钟的个位delayms(1);/延时以便于显示P2=0xff;/重新给P2口一个高电平,避免误操作P0=tablesecond/10;/显示秒钟的十位P2=2;/对数码管进行位选和段选,选中显示秒钟的十位delayms(1);/延时以便于显示P2=0xff;/重新给P2口一个高电平,避免误操作P0=tablesecond%10;/对数码管进行位选和段选,选中显示秒钟的个位P2=1;/对数码管进行位选和段选,选中显示秒钟的个位delayms(1);/延时以便于显示P2=0xff;/重新给P2口一个高电平,避免误操作i

28、f(!kh)/如果小时按键B1按下delayms(200);/延时200乘以160个机器周期,避免按键抖动的影响hour+;/定时时间的小时加一if(hour>23)/因为是无符号的变量,减到0之后,再减就会变成ff,大于23hour=23;else if(!km)/如果分钟按键B2按下delayms(200);/延时200乘以160个机器周期,避免按键抖动的影响minute+;定时时间的分钟加一if(minute>59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于2359minute=59;else if(!ks)/如果秒按键B3按下delayms(200);/延时2

29、00乘以160个机器周期,避免按键抖动的影响second+;定时时间的分钟加一if(second>59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59second=59;if(!st)/开始按加按下delayms(200);/延时200乘以160个机器周期,避免按键抖动的影响TR0=1;/开始计时if(TR0=1&&hour=0&&minute=0&&second<3)/如果在最后2秒b=!b;/开报警delayms(1);/延时以便于显示void t0() interrupt 1 /定义中断服务程序TH0=(65536

30、-50000)/256;/设置定时时间对高八位赋值,50000是50000个机器周期,0.05秒TL0=(65536-50000)%256;/设置定时时间对低八位赋值,50000是50000个机器周期,0.05秒i+;/控制变量i自加if(i>=20)/定时满20次是1秒,即50000个机器周期为一秒i=0;second-;/秒减一if(second>59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59second=59;/秒为59minute-;/分钟减一if(minute>59)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59minute=59;

31、/因为是无符号的变量,减到0之后,再减就会变成ff,大于59hour-;/小时减一if(hour>23)/因为是无符号的变量,减到0之后,再减就会变成ff,大于59,如果小时减过0说明计时结束hour=0;minute=0;second=0;TR0=0;/停止计时7 . 总结这个学期的单片机课虽然早已经上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专

32、业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,

温馨提示

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

评论

0/150

提交评论