AT89C51单片机LED数字倒计时器—课程设计
基于单片机AT89C51的电子时钟的课程设计
目录第一章电子时钟 (1)1.1电子时钟简介 (1)1.2电子时钟的基本特点 (1)1.3电子时钟的原理 (1)第二章单片机识的相关知识 (2)2.1单片机简介 (2)2.2单片机的发展史 (2)2.3单片机的特点 (3)2.489C51单片机介绍 (3)第三章控制系统的硬件设计 (6)3.1单片机型号的选择 (6)3.2数码管显示工作原理 (6)3.3键盘电路设计 (7)3.4系统工作原理 (7)3.5整个电路原理图 (9)第四章控制系统的软件设计 (10)4.1程序设计 (10)4.2程序流程图 (13)4.3伟福硬件仿真器简介 (14)4.4仿真图及结果分析 (15)第五章附录程序 (17)第六章结束语 (19)参考文献 (20)第一章电子时钟1.1 电子时钟简介本作品采用Atmel公司的AT89C51单片机,以汇编语言为程序设计的基础,设计一个用四位数码管显示时、分的时钟。
现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。
从而达到计时的功能,是人民日常生活补课缺少的工具。
1.2 电子时钟的基本特点现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
1.3 电子时钟的原理该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。
而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。
单片机课程设计——基于AT89C51的数字钟的设计
课程设计报告课程:单片机原理与接口技术姓名:班级:10通信1班河北联合大学信息工程学院一、设计名称基于AT89C51的数字钟的设计二、设计目的及要求1,了解AT89C51芯片的功能,性能,及使用方法。
2,了解时钟日历芯片DS12887的性能及使用方法。
3,利用所学汇编语言编(中断、计数等)写代码实现钟表计时定时等功能。
三、设计原理说明利用AT89C51芯片、时钟日历芯片DS12887,三极管等器件连接硬件电路,在用kell软件编写时钟程序,调试程序,最后烧入到硬件设备中进行结果检验及更改。
3.1、基于AT89C51数字钟设计的原理数字钟的基本功能是显示时间,可以通过计数器的级联实现。
以4位数码管的数字钟为例,设定前两位为小时,后两位为分钟,数码管的小数点闪烁可以表示秒。
首先产生一个1Hz的方波信号,在它的触发下驱动小数点闪烁。
在这个1Hz 的基础上,可以产生1/60Hz的信号(对1Hz信号计数,每计数30次就将输出反相,得到1/60Hz信号),它就是分钟信号需要的时钟。
在这个时钟的触发下分钟位数码管依次加1,直到60时变为0,再重新开始计数。
清零的时候要产生一个进位,加到小时上面。
其他时间小时位保持不变。
3.2、数字钟主要元件介绍3.2.1、AT89C51单片机AT89C51是一种低功耗,高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的8位COMS微控制器,使用高密度,非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。
芯片上的FPEROM允许在线编程或采用通用的非易失存储编程器对存储器重复编程。
单片机的主要特性如下:1.与MCS-51 兼容2.4K字节可编程闪烁存储器3.全静态工作:0Hz-24MHz4.三级程序存储器锁定5.4KB的片内程序存储器ROM6.128B内部数据存储器RAM和128B特殊功能寄存器SFR7.4个8位可编程并行I/O接口8.两个16位定时/计数器9.5个中断源的控制控制系统10.一个全双工串行接口11.低功耗的闲置和掉电模式12.片内振荡器和时钟电路。
单片机课程设计_基于89c51的LED数字秒表设计
单片机系统课程设计成绩评定表设计课题:基于89c51的LED数字秒表设计学院名称:电气工程学院专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统技术课程设计课程设计名称:基于89c51的LED数字秒表设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书目录1引言 (6)1.1研究背景 (6)1.2设计思想及基本功能 (6)2.总体方案设计 (7)2.1方案选取 (7)2.2系统框图 (7)2.3总体方案设计 (7)3.硬件电路设计 (8)3.1 89c51单片机的引脚及模块说明 (8)3.2晶体振荡电路 (8)3.3复位电路 (9)3.4按键电路 (10)3.5显示电路 (10)3.6引脚控制说明 (11)3.7绘制电路原理图 (11)4.系统软件设计 (12)4.1程序流程图 (12)4.2秒表的初始化 (13)4.3按键扫描检测程序 (14)4.4开始计时 (14)4.5计时程序 (14)4.6显示程序 (14)4.7暂停计时 (14)4.8秒表清零 (14)4.9延时程序 (15)5.总结 (15)参考文献 (16)附录一系统总原理图 (16)附录二主程序 (16)1引言1.1研究背景自20世纪末期以来,电子技术的发展日新月异。
电子技术在各个领域的运用也越来越广泛,从而有力地推动了社会生产力的发展以及社会信息化程度的提高。
其中,秒表计时器是工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、延时器、定时器等的时间测试。
在各种现代体育竞技比赛中,秒表成为必不可少的工具之一。
而随着运动员的水平的不断提高,他们之间的差距也在不断缩小。
因此,在某些运动中对时间精度的要求就会越来越高,也就需要高精度的秒表来记录成绩,从而保障比赛的公平性。
在历史上,钟表大致有三个演变阶段。
首先是大时钟演变到小时钟、其次小时钟过渡到袋表、再之袋表发展到腕表。
基于AT89C51单片机的倒计时
单片机课程设计题目:基于AT89C51单片机的倒计时学院:机械与电气工程学院专业:电气工程及其自动化学号:101401010205目录1、设计要求 (3)2. 工作原理 (3)2.1硬件设计 (4)2.1.1 单片机AT89S51 (4)2.1.2 显示器件选择 (5)2.1.3复位电路 (7)2.1.4 时钟电路 (7)2.1.6 蜂鸣器 (9)3、软件设计 (10)3.1 按键流程图: (10)3.2 定时器流程图: (11)3.3蜂鸣器发出音乐流程图: (12)3.4主程序流程图: (13)4、电路仿真 (14)参考文献 (15)附录1 电路图 (16)附录2 程序 (16)附录3 元件清单 (21)1、设计要求利用AT89C51单片机结合LED显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,红色LED灯闪烁,通知倒计数终了,该做应当做的事。
定时闹钟的基本功能如下。
●显示格式为“分分:秒秒”。
用4个按键操作来设置当前想要倒计数的时间。
一旦按下键则开始倒计数,当计数为0时,发出一阵利用AT89C51单片机结合LED显示器设计一个简易的倒数计数器,可用来煮方便面、煮开水或小睡片刻等。
做一小段时间倒计数,当倒计数为0时,红色LED灯闪烁,通知倒计数终了,该做应当做的事。
音乐声。
程序执行后工作指示灯LED闪动,表示程序开始执行,按下操作键K1~K4动作如下。
●K1—可调整倒计数的时间1~60分钟。
●K2—设置倒计数的时间为5分钟,显示“0500”。
●K3—设置倒计数的时间为10分钟,显示“1000”。
●K4—设置倒计数的时间为20分钟,显示“2000”。
按K1键则在LED上显示出设置画面。
此时,若:a. 按操作键K2—增加倒计数的时间1分钟。
b. 按操作键K3—减少倒计数的时间1分钟。
c. 按操作键K4—设置完成。
附加功能:K5—计数开始按钮。
毕业设计(论文)-基于at89c51单片机的倒计时系统设计[管理资料]
HUBEI UNIVERSITY OF EDUCATION 高等教育自学考试毕业设计(论文)题目基于单片机倒计时系统专业班级电子信息工程0703班学号姓名指导教师姓名、职称所属助学单位湖北第二师范学院2011年 02月 28日毕业论文开题报告书基于单片机倒计时系统摘要摘要:来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
模拟多通道压力系统是利用压力传感器采集当前压力并放映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
关键词:单片机;AT89C51;LED数码管显示器;keil C;晶体振荡器目录绪论 (9)1 课题背景 (10) (10)国内外研究现状 (10)课题研究方法 (11)2 硬件设计 (12)单片机简介 (12)单片机技术的发展 (12)单片机系统的应用 (13).2 单片机AT89C51 (14)AT89C51 的基本结构和引脚功能 (14)机器周期和指令周期 (17)LCD简介 (18)LCD显示器的基本结构和特点 (18)本章小结 (19)3 软件设计 (20)中断机制 (20)硬件中断和软件中断 (20)定时器/计时器 (21)定时器/计时器的结构 (21)定时器/计数器的计数信号 (21)程序结构类型 (22) (22) (25) (26) (26)4 软件设计 (28) (28) (28)C软件 (28) (29)、软、硬联接 (31) (31)结束语 (32)总结 (33)致谢 (34)参考文献 (35)附录 (36)附录A (36)附录B (37)绪论随着人们生活水平的不断提高。
LED数字倒计时器课程设计报告
淮阴师范学院物理与电子电气工程学院课程设计报告学生姓名学号班级专业电子信息科学与技术题目LED数字倒计时器指导教师2015 年11 月一、设计任务与要求近年来随着计算机在社会领域的渗透,单片机的应用正在不断深入人们的生活,同时带动传统控制检测日新月异。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结构,针对具体应用特点与软件结合。
本项目讨论了LED 数字倒计时器的设计与制作,此方案线路简单,成本低,应用前景广阔。
本次设计的任务与要求是,使基于AT89C51单片机的LED数字倒计时器主要具有如下功能:(1)LED数码管显示倒计时时间。
(2)倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出约2s 的报警声音。
(3)通过按键可以对倒计时设定初值。
倒计时初始值范围在24:00:00-00:00:60之间,用户可根据需要对其进行设置,设置成功后复位初始值为成功设定值。
二、硬件电路设计设计电路采用模块化设计,主要由AT89C51单片机、复位电路、LED显示模块和控制模块组成(如图2.1)。
图2.1 基于AT89C51单片机的数字倒计时器系统框图图2.2 基于AT89C51单片机的数字倒计时器电路原理图(元件清单见附录一)(2)AT89C51单片机控制模块图2.3 单片机控制模板(3)复位电路复位是单片机的初始化操作,只需给AT89S51的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位,复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。
除了进入系统的正常初始化之外由于程序运行出错或操作错误而使系统处于死锁状态,为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。
图2.4复位电路(4)LED显示模块图2.5 LED显示模块(5)按键电路按键电路的按键功能说明:(1)K1用于设置时间的分钟。
at89c51单片机led数字倒计时器课程设计论文__大学毕业论文设计
课题: AT89C51单片机LED数字倒计时器专业:班级:学号:姓名:指导教师:设计日期:成绩:重庆大学城市科技学院电气学院目录一、设计目的作用 (1)二、设计要求 (1)三、设计的具体实现 (1)1、设计原理 (1)(1)系统设计方案 (1)(2)功能模块 (2)(3)工作原理: (2)2、系统设计 (2)(1)显示模块 (2)(2)晶振模块 (3)(3)复位电路: (3)(4)按键模块: (4)(5)报警模块: (5)3、系统实现 (5)(1)实物图 (5)(2)分析 (6)四、总结 (6)五、附录 (7)附录1: (7)附录2: (8)附录3: (8)六、参考文献 (15)LED 数字倒计时器设计报告一、设计目的作用1、掌握51单片机最小系统的设计;2、掌握按键电路设计、LED 数码管的使用;3、掌握C51的编程方式。
二、设计要求基于AT89C51单片机的LED 数字倒计时器主要具有如下功能,具体要求如下:1、LED 数码管显示倒计时时间。
2、倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出2s 的报警声音。
(K1设置小时,K2设置分钟,K3设置秒钟,K4完成退出)3、通过按键可以对倒计时设定处置。
倒计时初值范围在24:00:00~00:00:60之间,设置成功后复位初始值为成功设定值。
三、设计的具体实现1、设计原理(1)系统设计方案:基于AT89C51单片机的数码管显示模块显示的倒计时器。
主要是以单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示剩余的时间。
此电路对于倒计时器中的LED 数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
显示模块晶振模块复位模块按键模块报警模块图1 LED数字倒计时器设计框图(2)功能模块:倒计时器的总体包括显示电路,按键电路,复位电路,晶振电路和报警电路等五个模块。
显示模块显示计数与灭灯,复位模块控制电路完成计数的直接清零,暂停/连续技术,用按键模块来设定倒计时初始时刻的值,报警模块实现定时时间到报警等功能。
用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计
累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。
一、设计题目和要求:
题目三:秒表
应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。设计一个“复位”键,按下“复位” 键后,秒表从0开始计时。
任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。
·P3 8位、准双向I/O口,具有内部上拉电阻。
P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。
(2)控制信号线
·RST 复位输入信号,高电平有效。在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。
·EA/VPP 外部程序存储器访问允许信号EA.
7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。
三、设计内容:
了解8051芯片的的工作原理和工作方式 ,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。
(3)存储器
基于单片机AT89C51控制的电子时钟课程设计报告
单片机电子时钟设计报告实现功能:显示时、分、秒,刚打开电源时,显示的数据为12:00:00,然后电路会自动开始计时。
电路中有时、分、秒各自单独的调整按钮,时间调整按钮每按一次,相应的显示时间加1。
所需材料:89C51单片机,多位数码管,数码管显示译码器74LS48,3线8线译码器74LS138,3个按钮,100Ω、22KΩ电阻若干,12MHZ晶振一个,30pf无极电容2个,10uf 有极电容一个,敷铜板。
电路设计:用P1端口的P1.0~P1.3来作为数码管显示数据的输出引脚,用P1.4~P1.6引脚作为3线8线译码器的控制输入引脚,用P0端口的P0.0~P0.2来分别作为时、分、秒的时间调整按钮。
当按下按钮时,相应的输入引脚上就会有低电平输入单片机。
3线8线译码器的控制端,Y0、Y1、Y2、Y3、Y4、Y5分别控制了数码管的显示控制线。
电路如下图1-1图1-1流程图:程序设计:ORG 00H 主程序起始地址JMP START 主程序STARTORG 0BH 定时器T0中断起始地址JMP TIM0 定时器T0中断子程序TIM0 START:MOV SP,#70H 设置堆栈指针MOV 28H,#00 设置显示位数扫描指针初值为0 MOV 2AH,#12H 设置时钟显示寄存器初值为12H MOV 2BH,#00 设置分钟显示寄存器初值为00H MOV 2CH,#00 设置秒钟显示寄存器初值为00H MOV TMOD,#01H 设置定时器T0工作在方式1 MOV TH0,#0F0H 定时4ms的初值,即0F060H MOV TL0,#60H 初值的低位MOV IE,#82H 定时器T0中断允许MOV R4,#250 保证后面实现中断250次,即1秒的延时SETB TR0 启动定时器T0LOOP:JB P0.0,N2 若没有按键,就转去下一步检查分CALL DELAY 延时5ms,消除抖动MOV A,2CH 将秒寄存器的值载入累加器AADD A,#01H A的内容加1DA A 十进制调整MOV 2CH,A A的值存入秒寄存器CJNE A,#60H,N1 看是否已经是60秒,若不是就继续检查MOV 2CH,#00 已经是60秒,就清空秒寄存器的值N1:JNB P0.0,$ 秒按键还没有放开就循环等待CALL DELAY 延时5ms,消除抖动N2:JB P0.1,N4 若分没有按键,就转去下一步检查分CALL DELAY 延时5ms,消除抖动MOV A,2BH 将分寄存器的值载入累加器AADD A,#01H A的内容加1DA A 十进制调整MOV 2BH,A A的值存入寄存器CJNE A,#60H,N3 看是否已经是60分,若不是就继续检查MOV 2BH,#00H 已经是60分,就清空寄存器的值N3:JNB P0.1,$ 分按键还没有放开就循环等待CALL DELAY 延时5ms,消除抖动N4:JB P0.2,LOOP 若时没有按键,就转回去继续检查看是否有按键CALL DELAY 延时5ms,消除抖动MOV A,2AH 将时寄存器的值载入累加器AADD A,#01H A的内容加1DA A 十进制调整MOV 2AH,A A的值存入时寄存器CJNE A,#24H,N5 看是否已经是24时,若不是就继续检查MOV 2AH,#00H 已经是24时,就清空是寄存器的值N5:JNB P0.2,$ 时钟按键还没有放开就循环等待CALL DELAY 延时5ms,消除抖动JMP LOOP 返回重新检查看是否有按键******定时器T0中断子程序*******TIM0:MOV TH0,#0F0H 定时初值重设MOV TL0,#60HPUSH ACC 将累加器A的值暂存于堆栈PUSH PSW 将PSW的值暂存于堆栈DJNZ R4,X2 计时中断不满1s就退出继续中断MOV R4,#250 计时1sCALL CLOCK 调用计时器子程序CLOCKCALL DISP 调用显示子程序DISPX2:CALL SCAN 调用扫描子程序SCANPOP PSW 到堆栈取回PSW的值POP ACC 到堆栈取回累加器ACC的值RETI 返回主程序******扫描子程序*******SCAN:MOV R0,#28HINC @R0 显示位数扫描值加1CJNE @R0,#6,X3 扫描位数不为6就准备控制输出MOV @R0,#0 扫描位数为6,就令其置为0X3:MOV A,@R0 扫描位数载入AADD A,#20H A加上20H(显示寄存器地址)=各时间显示区地址MOV R1,A 各时间显示区地址存入AMOV A,@R0 扫描位数存入ASWAP A 将A的高低4位交换(其高4位为扫描的位数,低4位为显示数值)ORL A,@R1 将扫描值与显示数据组合MOV P1,A 显示输出RET******计时子程序*******CLOCK:MOV A,2CH 秒寄存器值载入AADD A,#1 加1sDA A 十进制调整MOV 2CH,A A的值存入秒寄存器CJNE A,#60H,X4 A不等于60秒,就跳出程序去显示MOV 2CH,#00H 已经是60秒,就清0MOV A,2BH 分寄存器值载入AADD A,#1 加1分DA A 十进制调整MOV 2BH,A A的值存入分寄存器CJNE A,#60H,X4 A不等于60分,就跳出程序去显示MOV 2BH,#00H 已经是60分,就清0MOV A,2AH 时寄存器值载入AADD A,#1 加1小时DA A 十进制调整MOV 2AH,A A的值存入时寄存器CJNE A,#24H,X4 A不等于24时,就跳出程序去显示MOV 2AH,#00H 已经是24时,就清0X4:RET******显示子程序*******DISP:MOV R1,#20H 20H为显示寄存器单元MOV A,2CH 将秒寄存器的内容存入AMOV B,#10H 设B累加器的值为10HDIV AB A/B,商存入A(十位数),余数存入(个位数)MOV @R1,B 将显示的个位数存入20H显示寄存器单元INC R1MOV @R1,A 将显示的十位数存入21H显示寄存器单元INC R1MOV A,2BH 将分寄存器的内容存入AMOV B,#10H 设B累加器的值为10HDIV AB A/B,商存入A(十位数),余数存入(个位数)MOV @R1,B 将显示的个位数存入22H显示寄存器单元INC R1MOV @R1,A 将显示的十位数存入23H显示寄存器单元INC R1MOV A,2AH 将时寄存器的内容存入AMOV B,#10H 设B累加器的值为10HDIV AB A/B,商存入A(十位数),余数存入(个位数)MOV @R1,B 将显示的个位数存入24H显示寄存器单元INC R1MOV @R1,A 将显示的十位数存入25H显示寄存器单元RET******延时5ms消除抖动*******DELAY:MOV R6,#60D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETEND原理图:PCB图:。
音乐倒数计数器(单片机课程设计)
摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
而51单片机是各单片机中最为典型和最有代表性的一种。
本实验是基于MCS51系列单片机所设计的,可以实现键盘按键与数字动态显示并可以用音乐倒数的计数器。
本设计基于单片机技术原理,以单片机芯片STC89C52作为核心控制器,通过硬件电路的制作以及软件程序的编制,设计制作出一个计数器,包括以下功能:输出时间,按下键就开始计时,并将时间显示在LCD1602显示器上。
当倒计数为0时,蜂鸣器就发出音乐声响等等。
该计数器系统主要由计数器模块、LCD显示器模块、蜂鸣器模块、键盘模块、复位模块等部分组成。
关键词:STC89C52、键盘、LCD1602显示、蜂鸣器目录摘要............................................................... I 1 项目概述和要求 (2)1.1 单片机基础知识 (2)1.2 单片机的发展趋势 (2)1.3 项目设计任务与要求 (3)2 系统设计 (4)2.1 框图设计 (4)2.2部分硬件方案论述 (5)2.3电路原理图 (5)2.4元件清单 (6)2.4.1STC89C52芯片 (6)2.4.2字符型LCD1602 ......................... 错误!未定义书签。
2.4.3按键控制模块 (8)2.4.4其它元件 (10)3软件设计 (11)3.1 程序流程图 (11)4 系统的仿真与调试 (12)4.1 硬件调试 (12)4.2 软件调试 (12)4.3 软硬件调试 (12)5总结 (13)参考文献 (14)附录程序 (25)1 项目概述和要求1.1 单片机基础知识单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲,一块芯片就成了一台计算机。
单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。
at89c51单片机课程设计_数字电子时钟
课程设计课程名称:单片机课程设计题目名称:单片机电子时钟学院:专业:电气工程及其自动化姓名:金鱼学号:指导教师:3、定时器/计数器T0中断服务程序T0用于计时,选中方式一,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加一。
秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元加一,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。
在对各单元计数的同时,把他们的值放到存储器单元的指定位置。
流程图如下:4、按键处理模块按键设置为:如果没有按键吗,则时钟正常走时。
现场保护,重置初值,启动下一个50ms是开始显示单元清T0、T1设为16位计数模式允许T0中断调用显示子程序进入功能程序 按下键否开始中断返回 50ms 计数器加一秒单元加一,50ms 计数器清0分单元加一,秒单元清0时单元加一,分单元清0时单元清050ms 计数器=20?秒单元=60?分单元=60?时单元=24?主程序流程图T0中断服务程序NONONONO当按下K0键时,进入调分状态,时钟停止走动;按K1和K2按键可以进行加一和减一操作;继续按K0键可以分别进行分和小时的调整;最后按K0键启动计时。
5、汇编语言程序ORG 0000HLJMP STARTORG 000BHLJMP INIT0START: MOV R0,#70H ;主程序开始MOV R7,#0CHINIT: MOV @R0,#00HINC R0DJN Z R7,INITMOV 72H,#10 ;对连字符进行装值MOV 75H,#10MOV TMOD,#01H ;选择定时器/计数器T0的方式1MOV TL0,#0B0H ;对低位赋初值MOV TH0,#03CH ;高位赋初值SETB EASETB ET0SETB TR0ST ART1: LCALL SCANLCALL KEYSCANSJMP START1DL1MS: MOV R6,#14H ;延时1子程序DL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1RETDL20MS: ACALL SCAN ;延时20ms子程序ACALL SCANACALL SCANRET ;数码管显示程序开始SCAN: MOV A,78HMOV B,#0AHDIV AB ;时间秒的十位送给A,时间秒的个位送BMOV 71H,A ;时间秒要显示的十位MOV 70H,B ;时间秒要显示的个位MOV A,79HMOV B,#0AHDIV AB ;时间分的十位送给A,时间分的个位送BMOV 74H,A ;时间分要显示的十位送地址MOV 73H,B ;时间分要显示的个位送地址MOV A,7AHMOV B,#0AHDIV AB ;时间时的十位送给A,时间时的个位送BMOV 77H,A ;时间时显示的十位送地址MOV 76H,B ;时间时要显示的个位送地址MOV R1,#70HMOV R5,#0FEHMOV R3,#08HSCAN1: MOV A,R5 ;数码管的显示程序MOV P2,AMOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTR ;对字段表取值显示MOV P0,AMOV A,R5LCALL DL1MSINC R1MOV A,R5RL AMOV R5,ADJNZ R3,SCAN1MOV P2,#0FFHMOV P0,#0FFHRET ;"0~9"和"-"的字段表TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;定时/计数器T0中断程序INIT0: PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0 ;50ms是否到20次,没有到就继续执行50ms的延时MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0 ;一秒的延时是否计到60次,没有就继续执行MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0 ;60分钟的延时是否计到24次,没有就继续执行程序MOV 7AH,#00OUTT0:SETB ET0 ;启动定时器T0POP PSWPOP ACCRETI;按键处理程序KEYSCAN:CLR EAJNB P1.0,KEYSCAN0 ;P1.0有按键按下则跳转到子程序JNB P1.1,KEYSCAN1 ;P1.1有按键按下则跳转到子程序JNB P1.2,KEYSCAN2 ;P1.2有按键按下则跳转到子程序KEYOUT: SETB EARETKEYSCAN0:LCALL DL20MS ;20ms的延时消抖JB P1.0,KEYOUTW AIT0: JNB P1.0,W AIT0 ;判断按键是否松手,松手就往下执行程序INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUT ;按下第一次和第二次对时、分选定MOV 7CH,#00 ;按下第三次时就启动计时SETB ET0SETB TR0SJMP KEYOUTKEYSCAN1:LCALL DL20MS ;按键加一的程序JB P1.1,KEYOUTW AIT1: JNB P1.1,W AIT1MOV A,7CHCJNE A,#02H,KSCAN11 ;如果功能键按下则对时加一调整INC 79HCJNE A,#3CH,KEYOUT ;如果加到60则清零MOV 79H,#00SJMP KEYOUTKSCAN11:INC 7AH ;如果功能键是按下第二次则对分进行加一调整MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2:LCALL DL20MS ;延时消抖程序JB P1.2,KEYOUTW AIT2: JNB P1.2,W AIT2 ;判断是否放开按键MOV A,7CHCJNE A,#02H,KSCAN21 ;如果功能键是按下第一次对时进行减一DEC 79HMOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BHSJMP KEYOUTKSCAN21:DEC 7AH ;如果功能键是按下第二次则对分进行减一CJNE A,#0FFH,KEYOUTMOV 7AH,#17HSJMP KEYOUTEND6、软件编译环境:Keil uVision2确保生成". Hex"文件五、系统硬件电路的设计系统的硬件主要包括单片机芯片,数码管显示,按键开关电路,它的硬件电路如下图所示,单片机采用广泛使用的AT89C52,系统时钟采用12MHz的晶振,八个数码管显示,小时与分钟与秒钟间用短横线,采用共阳极七段式数码管,P0口为段选码输出端,P2口为位选码输出端。
基于单片机AT89C51控制的LED点阵屏显示时钟_课程设计报告
毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
单片机秒表课程设计
《接口及控制技术》课程设计报告课程设计题目:秒表姓名:专业班级:指导教师:成绩:时间:2010-12-10一、设计要求用AT89C51设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始”键和一个“复位”键。
二、实验原理题目难点在于通过对键盘的扫描对时钟的走时/停止进行控制,项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。
在此期间,如“开始”按键按下,程序方将TR0置为1,从而开启中断,时钟开始走时;如“复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。
本题目采用专用数码管显示控制芯片MAX7219。
MAX7219是美国MAXIM公司生产的串行输入/输出共阴极显示驱动器,该芯片最多可驱动8位7段数字LED显示器或个LED 和条形图显示器。
其引脚图及引脚功能参见有关参考资料。
三、实验目的1、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2、掌握定时器、外部中断的设置和编程原理。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
四、意义该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义。
五、实验内容用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”K1按键和一个“复位”K2按键。
按键K1同时具有“暂停”功能。
按键说明:按“开始”K1按键,开始计数,数码管显示从00开始每秒自动加一;再次按K1按键,系统暂停计数,数码管显示当时的计数;按“复位”按键,系统清零,数码管显示00。
六、电路原理仿真图将硬件连线按上图所示连接,该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片AT89C51中的P1.0管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能.;定时器T0作为每秒加1的定时器。
本科毕业设计论文--单片机课程设计基于at89c51的60秒倒计时设计
前言在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中、地面到地下,凡是能想像到的地方几乎都有使用单片的需求。
现在尽管单片机的应用已经很普遍了,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。
单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。
但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。
从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件(编程序)方法实现了。
这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。
微控制技术是一种全新的概念,是对传统控制技术的一次革命。
随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。
近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
模拟多通道压力系统是利用压力传感器采集当前压力并反映在显示器上,它可以分析压力过量程,并发出报警。
并采用电子秤原理可根据输入单价准确的计算出物体的金额。
本篇论文讨论了简单的倒计时器的设计与制作,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
目录第1章方案论证1.1 课程设计的目的和要求 (1)1.2 总体设计 (1)第2章硬件设计 (2)2.1 AT89S51芯片概述 (13)2.2 LED数码管显示器概述 (15)2.3 其他元器件介绍及参数选择 (18)第3章软件设计 (28)3.1 程序框图 (28)3.2 定时/计数器初值计算 (2)3.3 软件程序…………………………………………………………………………………………………………………………………………………………第4章调试与仿真4.1 Keil软件介绍及使用 (30)4.2 Proteus软件介绍及使用 (30)课程设计心得体会………………………………………………………………………………………………………………………………………参考文献 (30)第一章方案论证1.1课程设计的目的和要求1.目的课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。
LED数字倒计时器单片机课程设计
学会使用单片机开发工具,如Keil uVision等
掌握单片机中断、定时器、串口等常用 外设的使用方法
学会编写模块化、可重用的代码,提高 编程效率
学会调试和优化代码,提高程序运行效 率和稳定性
LED数字倒计时 器硬件设计
电路原理图设计
电源模块:提供稳定的电源电压 控制模块:控制LED数字倒计时器的工作状态 显示模块:显示倒计时时间 输入模块:接收用户输入信号,启动倒计时 输出模块:输出倒计时信号,驱动LED显示 保护模块:保护电路免受过压、过流等异常情况的影响
屏幕上
倒计时:将倒 计时时间减1, 并更新显示时
间
循环结束:当 倒计时时间减 至0时,循环结 束,显示“时
间到”信息
定时器中断服务程序
定时器中断服务程序的功能:实现LED数字倒计时器的定时功能
定时器中断服务程序的结构:包括定时器初始化、定时器中断处理、定时 器复位等部分
定时器初始化:设置定时器的工作模式、定时器周期、定时器中断优先级 等参数
电路板制作: 使用PCB软件 进行电路板制
作
元器件焊接: 将元器件焊接
到电路板上
电路板测试: 测试电路板功
能是否正常
LED数字倒计时 器软件设计
主程序流程图
初始化:设置 倒计时器参数, 如倒计时时间、
显示位数等
循环判断:判 断倒计时时间 是否为0,如果 为0则停止倒计
时
显示倒计时: 将倒计时时间 转换为数字, 并显示在LED
课程设计总结与 展望
设计总结与体会
课程设计过程: 从理论学习到实 践操作,逐步深 入
设计难点:解决 LED数字倒计时 器单片机的编程 和调试问题
设计收获:掌握 了单片机的基本 原理和编程技巧
课程设计基于单片机AT89C51的数字钟自动计时器
学院单片机课程设计基于51单片机的数字时钟的设计学生姓名:学生学号:院(系):年级专业:指导教师:二〇一一年六月摘要本文设计的是一个基于单片机AT89C51的数字钟自动计时器,附有复位电路,显示电路,按键电路等。
复位电路是单片机的初始化操作,除正常的初始化外,为摆脱窘境,通过复位电路能够从头开始。
时钟电路采纳12MHz的晶振,作为系统的时钟源,具有较高的准确性。
在上电时LED显示器开始显示时刻并自动计时,在按键电路中只设置了三个按键,通过检测第一个按键按下的次数来实现调时、调分、调秒按键的作用,再通过LED显示器显示时、分、秒的改变。
而且在P1端口处接了一个指示灯,指示按键的按下。
在那个地址主若是以AT89C51单片机为核心操纵器,P0口接LED 显示模块,P1口接按键的,通过按键输入来操纵显示器的显示。
关键字AT89C51,LED显示器,数字时钟ABSTRACTThis design is based on AT89C51 single-chip digital clock auto-timer, with a reset circuit, display circuit, the key circuit. Reset circuit is a microcontroller initialization, in addition to the normal initialization, for the bail out through the reset circuit can begin again. 12MHz crystal clock circuit, as the system clock source, with high accuracy.LED display on power began to show time and automatic timing, set in the key circuit only three buttons, a button pressed by detecting the number of the first to achieve the transfer, the transfer points, transfer second key role, through the LED display hours, minutes, seconds to change. And then at the P1 port of a light to indicate the button press. Here is AT89C51 microcontroller as the core of the main controller, P0 port access the LED display module, P1 port access keys, keystrokes to control the monitor display.Keywords AT89C51, LED display, digital clock目录摘要 (Ⅰ)ABSTRACT (Ⅱ)No table of contents entries found.1 绪论课程设计要求1. 应用MCS-51单片机设计单片机实现数字钟(LED显示:小时、分、秒)仿真电路;2. 选用8位LED数码显示,实时显示时、分、秒,采纳组合按键实现时钟对表功能,能调时、调分、调秒;3. 要求显示范围最大到23小时59分59秒,用按时中断来实现。
用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计
目录一、设计题目和要求: (2)二、设计目的: (2)三、设计内容: (3)四、课程设计心得体会 (25)五、参考文献 (26)六、课程设计指导教师评审标准及成绩评定 (27)附件1:秒表原理图(实际接线图) (28)附件2:仿真图1 (30)附件3:仿真图2 (31)一、设计题目和要求:题目三:秒表应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。
设计一个“复位”键,按下“复位”键后,秒表从0开始计时。
任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。
二、设计目的:1.进一步掌握AT89C51单片机的结构和工作原理;2.掌握单片机的接口技术及外围芯片的工作原理及控制方法;3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法;4.掌握PROTEUS仿真软件的使用方法;5.掌握LED数码管原理及使用方法。
6.掌握定时器、外部中断的设置和编程原理。
7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。
三、设计内容:了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。
AT89C51单片机的主要工作特性:·内含4KB的FLASH存储器,擦写次数1000次;·内含28字节的RAM;·具有32根可编程I/O线;·具有2个16位可编程定时器;·具有6个中断源、5个中断矢量、2级优先权的中断结构;·具有1个全双工的可编程串行通信接口;·具有一个数据指针DPTR;·两种低功耗工作模式,即空闲模式和掉电模式;·具有可编程的3级程序锁定定位;AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz.AT89C51各部分的组成及功能:振荡器和时钟电路数据存储器128字节程序存储器14KBCPU 两个16位定时器计数器中断控制总线扩展控制器并行可编程I/O口可编程串行口内部总线外部中断扩展控制P0 P1 P2 P3 RXD TXD1.单片机的中央处理器(CPU )是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课题: AT89C51单片机LED数字倒计时器专业:班级:学号:姓名:指导教师:设计日期:成绩:重庆大学城市科技学院电气学院目录一、设计目的作用 (3)二、设计要求 (3)三、设计的具体实现 (3)1、设计原理 (3)(1)系统设计方案 (3)(2)功能模块 (4)(3)工作原理: (4)2、系统设计 (4)(1)显示模块 (4)(2)晶振模块 (5)(3)复位电路: (5)(4)按键模块: (6)(5)报警模块: (7)3、系统实现 (7)(1)实物图 (7)(2)分析 (8)四、总结 (8)五、附录 (9)附录1: (9)附录2: (10)附录3: (10)六、参考文献 (17)LED数字倒计时器设计报告一、设计目的作用1、掌握51单片机最小系统的设计;2、掌握按键电路设计、LED数码管的使用;3、掌握C51的编程方式。
二、设计要求基于AT89C51单片机的LED数字倒计时器主要具有如下功能,具体要求如下:1、LED数码管显示倒计时时间。
2、倒计时过程中能设置多个闹钟,当倒计时值倒计到设定值时会发出2s 的报警声音。
(K1设置小时,K2设置分钟,K3设置秒钟,K4完成退出)3、通过按键可以对倒计时设定处置。
倒计时初值范围在24:00:00~00:00:60之间,设置成功后复位初始值为成功设定值。
三、设计的具体实现1、设计原理(1)系统设计方案:基于AT89C51单片机的数码管显示模块显示的倒计时器。
主要是以单片机来控制,用按键来设定倒计时初始时刻的值,数码管作为显示模块来显示剩余的时间。
此电路对于倒计时器中的LED数码管示器来说,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。
晶振模块图1 LED 数字倒计时器设计框图(2)功能模块:倒计时器的总体包括显示电路,按键电路,复位电路,晶振电路和报警电路等五个模块。
显示模块显示计数与灭灯,复位模块控制电路完成计数的直接清零,暂停/连续技术,用按键模块来设定倒计时初始时刻的值,报警模块实现定时时间到报警等功能。
(3)工作原理:以AT89C51单片机为核心控制器,P0口接LED 数码显示模块,P1口接按键,通过按键输入来控制显示器的显示。
在上电时LED 显示器开始显示时间,在按键电路中设置了七个按键,通过检测第5个按键开始倒计时,通过检测第1,2,3个按键按下的次数来实现小时,分和秒的调时的加减,检测第4个按键实现闹钟的定时,检测6,7个按键按下的次数来实现闹钟的小时和分钟的调时的加减,再由LED 显示器显示时,分,秒的改变。
2、系统设计(1)显示模块显示电路采用了3个二为一体的LED 数码管,单片机I/O 的应用最典型的是通过I/O 口与7段LED 数码管构成显示电路。
图2 数码管显示电路(2)晶振模块单片机的晶振电路,即时钟电路。
单片机的工作流程,就是在系统时钟的作用下,一条一条地执行存储器中的程序。
单片机的时钟电路由外接的一只晶振和两只起振电容,以及单片机内部的时钟电路组成,晶振的频率越高,单片机处理数据的速度越快,系统功耗也会相应增加,稳定性也会下降。
采用11.0592MHz 晶振,电容选22pF或30pF均可。
图3 晶振模块原理图(3)复位电路:系统上电时提供复位信号,直至系统电源稳定后撤销复位信号。
为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分,合工程中引起的抖动而影响复位。
如图所示,复位键接于AT89C51芯片的人RST接口,用于控制倒数计时器的复位操作。
计时器运行时按下复位键,计时器停止计数,或计数完成后按复位键进入下一轮计数工作。
图4 复位电路图(4)按键模块:在上电时LED显示器开始显示时间,在按键电路中设置了七个按键,通过检测第5个按键开始倒计时,通过检测第1,2,3个按键按下的次数来实现小时,分和秒的调时的加减,检测第4个按键实现闹钟的定时,检测6,7个按键按下的次数来实现闹钟的小时和分钟的调时的加减,再由LED显示器显示时,分,秒的改变。
图5 按键模块原理图(5)报警模块:报警模块实现定时时间到报警等功能。
图6 复位及报警模块原理图3、系统实现(1)实物图(2)分析设计结果为:三个LED显示器以小时、分钟、秒数逐一递减,即呈现倒计时现象,最终设计成功。
在整个实物焊接及接线过程中,必然出现众多问题,如:焊接错误导致元件无法使用、接线错误导致最终结果不出现、排线错误导致LED显示不完全等等,这需要我们不断的检测和实验,需要我们耐心的寻找问题所在,从而解决问题,整个过程中,忙碌但快乐,繁琐却充实。
四、总结在做本次课程设计的过程中,我们充分掌握了各模块电路的工作原理。
从课题入手到中间过程的修改设置、到使用Proteus 8 Professional电路仿真测试,再到最后的实物电路焊接。
每个过程都是小组的三个成员共同完成的,,并使用Keil uVision4编写了全部的驱动程序,在编写程序的过程中我们遇到很多的问题,翻阅了很多资料,也向老师请教了很多,最终写出了程序,画出了电路图,完成了本次课程设计。
在整个仿真过程中,免不了各种问题的频频出现,比如:程序编写出现错误导致电路仿真错误、保存程序的路径方式错误导致电路无法导入程序、导入程序之后却又无法进行加载仿真等等。
在实物电路焊接时,由于操作不熟悉,导致焊锡融化与电路板相连。
这次课程设计让我受益匪浅,无论从知识上还是其他的各个方面。
上理论课时从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味的书面知识,但在实践过程中真真切切的尝试了单片机及其系统的仿真和应用,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。
除此之外,我还体会团结的重要性及力量之强大,设计过程让我们处理事情更加有条理,思路更清晰明了,发现、提出、分析、解决问题和实践能力的提高都将受益于我以后的工作、学习和生活中。
五、附录附录1:元件清单附录2:完整的连接图附录3:程序编程#include<reg51.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int/*七段共阴和显示定义*///此表为LDE的字模,共阳数码管0-9uchar code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段码控制/*定义并初始化变量*/uchar seconde=15; //秒uchar minite=0; //分uchar hour=0; //时uchar mstcnt=0; //定时器计数,定时50ms,mstcnt满20,秒加1uchar shi=0; //闹铃功能uchar fen=0;uchar bjcs ; // 报警次数uchar c;sbit P10=P1^0; //second调整定义sbit P11=P1^1; //minite调整定义sbit P12=P1^2; //hour调整定义sbit P15=P1^5; //整点报时sbit P13=P1^3; //闹铃功能,调整时间sbit P16=P1^6; //调整时sbit P17=P1^7; //调整分sbit P14=P1^4; //关闭闹铃/*延时子程序 */void delay (uint k){uchar j;while((k--)!=0){for(j=0;j<200;j++){;}}}/*时间处理子程序*/void time(void){if(seconde==59){seconde=0;minite++;if(minite==59){minite=0;hour++;if(hour==24){hour=0;}}}}/*显示子程序*/void display(void){if(P13==1){P2=0x04;P0=dispcode[seconde%10];//秒个位delay(1);P2=0x08;P0=dispcode[seconde/10];//秒十位delay(1);// P2=0XFB;// P0=dispcode[10]; //间隔符// delay(1);//P2=0X10;P0=dispcode[minite%10]; //分个位delay(1);P2=0X20;P0=dispcode[minite/10]; //分十位delay(1);//// P2=0Xdf;// P0=dispcode[10]; //间隔符// delay(1);P2=0X40;P0=dispcode[hour%10]; //时个位delay(1);P2=0X80;P0=dispcode[hour/10]; //时十位delay(1);}}/*键盘扫描子程序*/ //设置倒计时时间void keyscan(void){if(P10==0)//秒位的调整{delay(30);if(P10==0){seconde++;if(seconde==59){seconde=0;}}delay(250);}if(P11==0)// 分位的调整 {delay(30);if(P11==0){minite++;if(minite==59){minite=0;}}delay(250);}if(P12==0) //时位的调整 {delay(30);if(P12==0){hour++;if(hour==24){hour=0;}}delay(250);}}/*倒计时*/void jian(void){if(P14==0){P14=0;{if(c==20){c=0;seconde--;if(seconde>59){seconde=59;minite--;if(minite>59){minite=59;hour-- ;if(hour>23){hour=0;minite=0;seconde=0;}} } } } } }/*定时闹钟*/void dingshi(void){if(P13==0) //按信P13不松,显示闹铃设置界面,分别按住P16、P17设置闹铃时间 {P2=0Xfb;P0=dispcode[seconde%10]; //秒个位delay(1);P2=0Xf7;P0=dispcode[seconde/10]; //秒十位delay(1);P2=0Xef;P0=dispcode[fen%10]; //分个位delay(1);P2=0Xdf;P0=dispcode[fen/10]; //分个位delay(1);P2=0Xbf;P0=dispcode[shi%10]; //时个位delay(1);P2=0Xd7f;P0=dispcode[shi/10]; //时十位delay(1);}if(P16==0) //设定时{delay(30);if(P16==0){shi++;if(shi==24){shi=0;}}delay(250);}if(P17==0) //设定分{delay(30);if(P17==0){fen++;if(fen==60){fen=0;}}delay(250);}if((hour==shi)&(minite==fen)&(seconde==0)) //闹铃时间到,报警十次 {for(bjcs=0;bjcs<2;bjcs++){P15=0;delay(10);jian();P15=1;// delay(500);}}}/*整点报警*/void zhengdian (void){if((seconde==0)&(minite==0)) //整点报时{P15=0;delay(10);jian();P15=1;}}/*主函数*/void main(void){P0=0xff;TMOD=0X11; //time0为定时器,方式1TH0=0X3C; //预置计数初值,50msTL0=0XB0;EA=1; //总中断开ET0=1; //允许定时器0中断TR0=1; //开启定时器0while(1){keyscan(); //按键扫描dingshi(); //定时闹钟zhengdian(); //整点报时jian();display(); //显示时间}}void timer0(void) interrupt 1 //定时器0方式1,50ms中断一次 {TH0=0X3C; //手动加载计数脉冲次数TL0=0XB0;c++;// mstcnt++; //用于计算时间,每隔50ms加1// if(mstcnt==20) //mstcnt满20即为一秒// {// seconde++; //秒加1// time(); //时间处理// mstcnt=0; //对计数单元的清零,重新开始计数// } }六、参考文献[1]·李群芳,肖看,张士军·单片微型计算机与接口技术·电子工业出版社·第四版[2]·钟富昭等·8051单片机典型模块设计与应用[M]·人民邮电出版社·2007[3]·陈海宴·51单片机原理及应用[M]·北京航空航天大学出版社·2010。