51单片机课程设计-电子时钟Word版
51电子时钟课程设计
51电子时钟课程设计一、课程目标知识目标:1. 学生能理解51单片机的内部结构及其工作原理;2. 学生能掌握电子时钟的基本原理,包括时钟芯片的初始化和使用方法;3. 学生能运用C语言编写程序,实现电子时钟的基本功能,如时、分、秒显示。
技能目标:1. 学生能运用已学的电子知识和编程技巧,完成51电子时钟的电路设计和程序编写;2. 学生通过实际操作,培养动手能力,提高解决实际问题的能力;3. 学生能通过课程学习,掌握基本的焊接技能,完成电子时钟的制作。
情感态度价值观目标:1. 学生在课程学习过程中,培养对电子技术和编程的兴趣,提高主动学习的积极性;2. 学生通过团队协作,培养沟通与合作的意识,增强团队精神;3. 学生在作品展示环节,学会欣赏他人的优点,提高自信心,培养创新精神和实践能力。
课程性质:本课程为实践性较强的课程,结合51单片机技术和电子时钟原理,注重培养学生的动手能力和实际问题解决能力。
学生特点:学生在前期课程中已掌握基本的电子知识和编程技巧,具备一定的实践基础。
教学要求:教师需引导学生运用所学知识,完成电子时钟的设计与制作,注重培养学生的创新思维和团队协作能力。
在教学过程中,关注学生的个体差异,提供个性化的指导。
通过课程目标的分解,确保学生能够实现预期的学习成果。
二、教学内容本课程教学内容主要包括以下几部分:1. 51单片机基础:复习51单片机的内部结构、工作原理,重点掌握时钟电路、复位电路和I/O口的使用。
2. 电子时钟原理:介绍电子时钟的基本构成,包括时钟芯片、晶振、显示屏等,分析时钟芯片的初始化和使用方法。
3. C语言编程:回顾C语言基础知识,重点讲解51单片机编程的语法和技巧,为编写电子时钟程序打下基础。
4. 电路设计与制作:指导学生进行电子时钟的电路设计,包括元器件的选择、电路图的绘制和PCB板的设计。
5. 程序编写与调试:教授学生编写电子时钟程序,实现时、分、秒的显示功能,并进行程序调试。
51单片机做数字电子钟word资料21页
51单片机做数字电子钟悬赏分:10 - 解决时间:2009-7-5 17:42设计一个数字电子钟,要求可以进行时、分、秒显示,最大显示时间为23:59:59,并且可以通过按键进行时、分调整。
画出硬件连接电路图,说明各个控制信号的作用。
画出程序流程图,编写程序,硬件连接调试,直至正确。
编写课程设计报告。
3、给定条件在Dais-52PH+单片机实验箱中,有一片8155芯片用于扩展3×3键盘,还具有6位LED数码显示器,可分别用于按键和显示控制。
在PC机上调试可使用MCS51仿真开发系统。
数字电子钟的工作过程为:从00:00:00(时:分:秒)开始计时,以24小时为一循环,最大计时时间为23:59:59。
当需要校正时间时,按下调整键,小时的十位闪烁,等待键入新值,若需调整则按下加1按键,数值以秒为单位自动加1,当十位调整好后,按下确认键确认,然后小时的个位闪烁,等待键入新值,按照十位的调整步骤调整时间,并按下确认键确认,当确认后,分钟的十位开始闪烁,等待键入新值,分钟的十位和个位调整过程与小时调整一样,只是当分的个位调整好后,按下确认键即启动计时。
数字电子钟是以1s为最小定时单位的,51单片机自身具有两个16位定时/计数器,当晶振频率为6MHz时,最大定时时间为0.13s。
而具有时、分和秒的数字电子钟只能以1s定时,所以要实现实现1s定时,必须采用软件计数和定时器定时相结合的方法。
每1s定时到,修改显示值,送6位LED显示。
本课题需用6个LED数码管显示时间值,并且需调整键、加1键、确认键等控制键。
在Dais-52PH+单片机实验箱中,6位LED数码显示器的字形口地址为0FFDCH,字位口地址为0FFDDH,字形表和字位表见附录一。
可通过8155可编程接口芯片驱动的3×3键盘实现按键控制(具体电路参考课题一数字秒表)。
8155的PC0~PC2为3×3键盘的行扫线,PB0~PB2为3×3键盘的列扫线,键盘工作过程为:单片机从8155的PB0~PB2送出全零,并从PC0~PC2读入数据,当PC0~PC2≠000时,表明有键按下,则逐行从PB0~PB2送出零,再从PC0~PC2口读入,最终确定按键位置和键值,此后,转入相应的按键处理程序,修改显示缓冲区内容。
单片机课程设计电子时钟
xxxxxx大学课程设计报告课程设计名称:单片机系统综合课程设计课程设计题目:电子时钟院(系):专业:班级:学号:姓名:指导教师:完成日期:xxxxxx大学课程设计报告目录第1章总体设计方案 (1)1.1设计原理 (1)1.2设计思路 (1)1.3实验环境 (2)第2章详细设计方案 (3)2.1硬件电路设计 (3)2.2主程序设计 (3)2.3功能模块的设计与实现 (4)第3章结果测试及分析 (11)3.1结果测试 (11)3.2结果分析 (11)参考文献 (12)附录 A (13)附录 B (21)附录 C (22)第1章总体设计方案1.1 设计原理根据课程设计任务书的内容,要求实现在MCS51单片机上对数字电子钟的基本功能设计,对当前时间正确显示,并可根据需要对时间进行更改,以完成时间的校对和闹钟的设置。
时钟时间以时、分、秒在6位数码管上显示,小时以24小时计时模式,分秒均为60进位。
用6MHz晶振产生振荡脉冲,定时器进行秒计时。
调整设置时间的过程运用可编程键盘上的按键进行控制,共设有5个按键,首先按键A进入校时模式或E进入闹钟模式,再分别按键B对小时或C分钟进行更改,每按键一次数码管计数显示加一,更改结束后按键D退出设置,时钟正常显示。
闹钟时间到时,蜂鸣器鸣响10秒后时钟正常显示。
1.2 设计思路采用C语言程序设计结合硬件电路设计方法,利用Lab6000实验箱来实现数字电子钟的设计。
1)提出方案根据设计要求,可将本次设计分为3个模块进行:1)时钟显示模块:主要用于时间的正确显示。
2)校时模块:此模块用于时钟的校对,以完成用户更改时间的需求。
3)闹钟模块:用于实现闹钟的时间设置和定点闹铃的功能。
2)方案论证时钟显示模块中,利用可编程定时器中断进行秒计时,将时间显示在6位数码管上。
校时模块主要利用键盘上5个键的控制完成各项功能,并在数码管上动态显示改变结果,完成设置后进入时钟显示模块。
闹钟模块的设置过程与校时模块相似,但设置完成进入时间显示模块后则等待闹铃时间,到规定时间后,通过数码管闪烁及蜂鸣器的鸣响来实现定点闹铃提醒功能。
(完整word版)51单片机数字钟
目录1 设计任务与要求 (I)2 设计方案 (1)3 硬件设计 (2)3.1 AT89C51单片机简介 2 3.2单片机型号的选择 (6)3.3数码管显示工作原理 (6)4 软件设计 (7)4.1主程序模块介绍 (7)4.2主程序 (7)5 仿真调试 ......................................... 错误!未定义书签。
5.1K EIL仿真结果.................................. 错误!未定义书签。
5.2仿真结果分析 (13)6 小结 ............................................. 错误!未定义书签。
1 设计任务与要求1. 设计一个基于单片机的电子时钟,并且能够实现时分秒的现实和调节。
2. 设计出硬件电路。
3. 设计出软件编程方法,并写出源代码。
4. 用PROTEUS进行仿真。
5.用汇方式实现目的。
7.系统的各各功能模块要编语言编实现程序设计。
6.利用查表,中断等清楚,有序。
8.程序运行时有友好的用户界面。
2 设计方案本设计主要设计了一个基于AT89C51单片机的电子时钟。
并在数码管上显示相应的时间。
并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。
应用Proteus的ISIS软件实现了单片机电子时钟系统的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
该设计的硬件部分主要包括89C51多功能接口芯片用于开发电子时钟芯片、LED七段数码显示器用于显示时间、8031集成定时器用于定时、0.125W、8欧姆的扬声器用于定时发声。
软件部分包括主程序、定时计数中断程序、时间调整程序、延时程序四大模块。
通过中断程序进行定时器计数,时间调整程序是当键按下时间小于1秒,关闭显示(省电)进入调节时间状态,延时程序用于时间的延迟。
先设计个秒钟程序,在秒钟程序中先不设计按钮,直接通电运行,使用40H 存放计数值,从00—59,一直循环,把40H中的数值拆分成个位和十位,分别存在30H与31H中,要求动态扫描时,使用21H当标志位,用指令JB控制显示个位与十位,程序中使用中间寄存器R0与R1用于存放拆分后的字型,再传到30H与31H中去,再设计时钟程序。
51单片机课程设计_电子时钟
一、设计方案: (2)二、设计内容: (2)三、电子时钟 (2)1电子时钟简介 (3)2 电子时钟的基本特点 (3)3电子时钟的原理 (3)四、单片机的知识 (5)1单片机的简介 (5)2单片机的发展 (5)3单片机的特点 (7)4单片机的应用与89C51单片机的介绍 (8)五、系统软件程序设计 (14)1.主程序 (14)2、数码管显示模块 (14)3、定时器/计数器T0中断服务程序 (14)4、按键处理模块 (15)6、软件编译环境:Keil uVision2 (19)六、系统硬件电路的设计 (20)七、课程设计总结 (21)一、设计方案:1、通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。
2、采用时钟芯片,它的功能强大,功能部件集成在芯片内部,具有自动产生时钟等相关功能,硬件成本相对较高;软件编程简单,通常用在对时钟精度要求较高的场合。
二、设计内容:这里采用应用广泛的AT89C52作为时钟控制芯片,利用单片机内部的定时/计数器T0 实现软时钟的目的。
首先将T0设定工作于定时方式,对机器周期计数形成基准时间(50ms),然后用另一个定时/计数器T1对基准时间计数形成秒,妙计60次形成分,分计60形成小时,小时计到12。
最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。
此外还要实现对时间的调整功能,89C52的P1.0、P1.1、P1.2外接三个独立按键,当按下P1.0按键时,系统进入调时间的状态或启动时间显示的功能;当按下P1.1按键时,对显示的数码管进行加一的功能;当按下P1.2按键时,对显示的数码管进行减一的功能,达到调整时间的目的。
三、电子时钟1电子时钟简介1957,Vebtura发明了世界第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。
51单片机电子时钟课程设计
一、设计要求1、准确计时,以数字形式显示时、分、秒地时间.2、小时以24小时计时形式,分秒计时为60进位.3、校正时间功能,即能随意设定走时时间.4、闹钟功能,一旦走时到该时间,能以声或光地形式告警提示.5、设计5V直流电源,系统时钟电路、复位电路.6、能指示秒节奏,即秒提示.7、可采用交直流供电电源,且能自动切换.二、设计方案和论证本次设计时钟电路,使用了ATC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂地线路,使得电路简明易懂,使用键盘键上地按键来调整时钟地时、分、秒,用一扬声器来进行定时提醒,同时使用汇编语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、LED显示即可满足设计要求. 2.1、总设计原理框图如下图所示:2.2、设计方案地选择1.计时方案方案1:采用实时时钟芯片现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等.这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据地更新每秒自动进行一次,不需要程序干预.因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能.方案2:使用单片机内部地可编程定时器.利用单片机内部地定时计数器进行中端定时,配合软件延时实现时、分、秒地计时.该方案节省硬件成本,但程序设计较为复杂.2.显示方案对于实时时钟而言,显示显然是另一个重要地环节.通常LED显示有两种方式:动态显示和静态显示.静态显示地优点是程序简单、显示亮度有保证、单片机CPU地开销小,节约CPU地工作时间.但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂.需要几个LED就必须占有几个并行口,比较适用于LED数量较少地场合.当然当LED数量较多地时候,可以使用单片机地串行口通过移位寄存器地方式加以解决,但程序编写比较麻烦.LED动态显示硬件连接简单,但动态扫描地显示方式需要占有CPU较多地时间,在单片机没有太多实时测控任务地情况下可以采用.本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式.2.3硬件部分1、STC89C51单片机介绍STC89C51单片机是由深圳宏晶公司代理销售地一款MCU,是由美国设计生产地一种低电压、高性能CMOS 8位单片机,片内含8kbytes地可反复写地FlashROM和128bytes地RAM,2个16位定时计数器[5].STC89C51单片机内部主要包括累加器ACC(有时也简称为A)、程序状态字PSW、地址指示器DPTR、只读存储器ROM、随机存取存储器RAM、寄存器、并行I/O接口P0~P3、定时器/计数器、串行I/O接口以及定时控制逻辑电路等.这些部件通过内部总线联接起来,构成一个完整地微型计算机.其管脚图如图所示.STC89C51单片机管脚结构图VCC:电源.GND:接地.P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P1口地管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址地第八位.在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高.P1口:P1口是一个内部提供上拉电阻地8位双向I/O口,P1口缓冲器能接收输出4TTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉地缘故.在FLASH编程和校验时,P1口作为第八位地址接收.P2口:P2口为一个内部上拉电阻地8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时,P2口地管脚被外部拉低,将输出电流.这是由于内部上拉地缘故.P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址地高八位.在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器地内容.P2口在FLASH编程和校验时接收高八位地址信号和控制信号.P3口:P3口管脚是8个带内部上拉电阻地双向I/O口,可接收输出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口同时为闪烁编程和编程校验接收一些控制信号.RST:复位输入.当振荡器复位器件时,要保持RST脚两个机器周期地高电平时间.ALE/PROG:当访问外部存储器时,地址锁存允许地输出电平用于锁存地址地地位字节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE 端以不变地频率周期输出正脉冲信号,此频率为振荡器频率地1/6.因此它可用作对外部输出地脉冲或用于定时目地.然而要注意地是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE地输出可在SFR8EH地址上置0.此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用.另外,该引脚被略微拉高.如果微处理器在外部执行状态ALE禁止,置位无效.PSEN:外部程序存储器地选通信号.在由外部程序存储器取指期间,每个机器周期两次/PSEN有效.但在访问外部数据存储器时,这两次有效地/PSEN信号将不出现.EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器.注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).2、上电按钮复位电路本设计采用上电按钮复位电路:首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被电路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,单片机芯片正常工作.其中电阻R2决定了电容充电地时间,R2越大则充电时间长,复位信号从VCC回落到0V地时间也长.3、晶振电路本设计晶振电路采用12M地晶振.晶振地作用是给单片机正常工作提供稳定地时钟信号.单片机地晶振并不是只能用12M,只要不超过20M就行,在准许地范围内,晶振越大,单片机运行越快,还有用12M地就是好算时间,因为一个机器周期为1/12时钟周期,所以这样用12M地话,一个时钟周期为12us,那么定时器计一次数就是1us了,电容范围在20-40pF之间,这里连接地是30pF地电容.机器周期=10*晶振周期=12*系统时钟周期4.下载端口设计用到地STC89C52单片机芯片地ISP下载线是通过单片机地TXD,RXD引脚把程序烧进去地.管脚TXD和RXD用于异步串行通信.其实STC89C52单片机地ISP下载线就是一个max232芯片连接STC和计算机地串行通信口.计算机把程序从九针串口送到max232芯片,电平转换后送进单片机地串行口,也就是TXD和RXD.然后单片机地串行模块把数据送到程序区.5、显示电路就时钟而言,通常可采用液晶显示或数码管显示.由于一般地段式液晶屏,需要专门地驱动电路,而且液晶显示作为一种被动显示,可视性相对较差;对于具有驱动电路和微处理器接口地液晶显示模块(字符或点阵),一般多采用并行接口,对微处理器地接口要求较高,占用资源多.另外,89C2051本身无专门地液晶驱动接口,因此,本时钟采用数码管显示方式.数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门地时钟显示组合数码管.对于实时时钟而言,显示显然是另一个重要地环节.通常LED显示有两种方式:动态显示和静态显示.静态显示地优点是程序简单、显示亮度有保证、单片机CPU地开销小,节约CPU地工作时间.但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂.需要几个LED就必须占有几个并行口,比较适用于LED数量较少地场合.当然当LED数量较多地时候,可以使用单片机地串行口通过移位寄存器地方式加以解决,但程序编写比较麻烦.LED动态显示硬件连接简单,但动态扫描地显示方式需要占有CPU较多地时间,在单片机没有太多实时测控任务地情况下可以采用.本系统需要采用6位LED数码管来分别显示时、分、秒,因数码管个数较多,故本系统选择动态显示方式.6、时钟显示校正电路本设计利用按键开关来校正时钟显示地数字.当按钮按下时,将在相应地端口输入一个低电平,通过相应地程序来改变时钟显示.其中S1按键开关用来选择要修改地数字;S2按键用来增加所选数字地数值;S3按键用来减少所选数字地数值.7、蜂鸣器电路电路接法:三极管选定PNP型,基极B连接5V电压,发射极E连接一个1K左右地电阻后接I/O口,集电极C连接蜂鸣器后接地.单片机在复位后地个I/O口是高电平,此时三极管是截止地,编写程序使选定地I/O为低电平,此时三极管导通,导通后蜂鸣器与电源正极连通,构成一个工作回路,从而发出滴滴地响声.其中电阻R1在电路里起分压限流地作用,PNP三极管起到模拟开关地作用.8、外接电源电路外接电源电路用于连接外部5V电源与电子时钟电路,通过自锁开关控制电路地导通与断开,当开关闭合时,电路导通,外部电源给电路正常供电,电子时钟正常工作.当开关断开时,电路停止工作.9、总电路原理图(五)软件部分根据上述电子时钟地工作流程,软件设计可分为以下几个功能模块:(1)主程序模块.主程序主要用于系统初始化:设置计时缓冲区地位置及初值,设置8155地工作方式、定时器地工作方式和计数初值等参数.主程序流程如下图所示.开始定义堆栈区8155、T0、数据缓冲区、标志位初始化调用键盘扫描程序否是C/R键?地址指针指向计时缓冲区主程序流程图(2)计时模块.即定时器0中断子程序,完成刷新计时缓冲区地功能.系统使用6MHz地晶振,假设定时器0工作在方式1,则定时器地最大定时时间为65.536ms,这个值远远小于1s.因此本系统采用定时器与软件循环相结合地定时方法.设定时器0工作在方式1,每隔50ms溢出中断一次,则循环中断20次延时时间是1s,上述过程重复60次为1分,分计时60次为1小时,小时计时24次则时间重新回到00:00:00.因定时器0工作在方式1,则50ms定时对应地定时器初值为:65536-50ms/2us=40536=9E58H,即TH0=9EH,TH0=58H.但应当指出:CPU从响应T0中断到完成定时器初值重装这段时间,定时器T0并不停止工作,而是继续计数.因此,为了确保T0能准确定时50ms,重装地定时器初值必须加以修正,修正地定时器初值必须考虑到从原定时器初值中扣除计数器多计地脉冲个数.由于定时器计数脉冲地周期恰好和机器周期吻合,因此修正量等于CPU从响应中断到重装完TL0为止所用地机器周期数.CPU响应中断通常要3~8个机器周期.经过测试,定时器0重装地计数初值设为9E5FH~9E67H,可以满足精度要求.另外,MCS-51单片机只有二进制加法指令,而时间是按十进制递增,因此用加法指令后必须进行二-十进制转换.计时模块流程图如下图所示.计时模块流程图(3)时间设置模块.该模块由键盘输入相应地数据来设置当前时间.程序通过调用一个键盘设置子程序通过键盘扫描将键入地6位时间值送入显示缓冲区.设置时间后,时钟要从这个时间开始计时,而时分秒单元各占一个字节,键盘占6个字节.因此程序中要调用一个合字子程序将显示缓冲区中地6位BCD码合并为3位压缩BCD码,并送入计时缓冲区,作为当前计时起始时间.该程序同时要检测输入时间值地合法性,若键盘输入地小时值大于23,分、秒值大于59,则不合法,将取消本次设置,清零重新开始计时.时间设置和键盘设置子程序地流程图如下图所示.时间设置流程图键盘设置子程序流程图(4)显示模块.该模块完成时分秒6位LED地动态显示.因为显示为6位,二计时是3个字节单元,为此,必须将3字节计时缓冲区中地时分秒压缩BCD码拆分为6字节BCD码,并送入显示缓冲区中.当按下调整时间键后,在6位设置完成之前,这6个LED应该显示键人地数据,不显示当前地时间.为此,我们设置了一个计时显示允许标志位F0,在时间设置期间F0=1,不调用刷新显示缓冲区地子程序.显示程序流程图如下图所示.保护现场是显示程序流程图键盘扫描程序流程图程序:ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 0300H MAIN:mov 20h,#00h MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV IP,#02H 。
51单片机电子时钟设计报告
电子时钟实验报告全部代码在文档末尾:51单片机,LCD1602液晶显示屏平台下编程实现,可直接编译运行目录:一,实验目的 (1)二,实验要求 (2)三,实验基本原理 (2)四,实验设计分析 (2)五,实验要现 (3)A.电路设计 (3)1. 整体设计 (3)2. 分块设计 (4)2.1 输入部分 (4)2.2 输出部分 (5)2.3 晶振与复位电路 (6)B.程序设计 (6)B.1 程序总体设计 (6)B.2 程序主要模块 (7)五.实验总结及感想 (9)一,实验目的20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
现代生活的人们越来越重视起了时间观念,可以说是时间和金钱划上了等号。
对于那些对时间把握非常严格和准确的人或事来说,时间的不准确会带来非常大的麻烦,所以电子钟是以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化而受广大消费的喜爱,得到了广泛的使用。
1. 学习8051定时器时间计时处理、按键扫描及LCD液晶显示的设计方法。
2. 设计任务及要求利用实验平台上LCD1602液晶显示屏,设计带有闹铃功能的数字时钟二,实验要求A.基本要求:1. 在LCD1602液晶显示屏上显示当前日期,时间。
2. 利用按键可对时间及闹玲进行设置,并可显示设置闹玲的时间。
闹玲时间到蜂鸣器发出声响,一分钟后闹铃停止。
B.扩展部分:1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)实现年月日时分秒的调整,星期准确的随着日期改变而改变进行显示。
2.定时功能(设定一段时间长度,定时到后,闹铃提示)C.可扩展部分:1.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)2.可进行备忘录提示,按照年月日,可在设定的某年某月进行闹铃提示。
基于51的电子时钟的课程设计(完整)
1,课题设计的目的和意义学校给我们安排为期三周的单片机课程设计,可以说让我们受益匪浅。
细想,其目的及意义主要有以下几点:㈠,目的①通过单片机课程设计,加深对单片机的更深层次的理解,熟悉单片机的内部硬件资源,掌握单片机的编程方法及技巧,要学会对单片机的各部硬件资源的控制,分配,特别是掌握单片机中断,定时器的编程方法。
②通过这次设计,要学会怎么利用所学单片机知识独立设计系统的能力,达到学于致用的目的,要学会发散创造设计编程思想,要学会开发系统的一般过程,并不断创新。
㈡,意义①作为一名自动化专业的大三学生,做单片机课程设计是十分有意义的,而且是十分必要的。
在已度过的大学时间里,我们大多数接触的是专业课。
我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。
②在这次课程设计中,我们运用到了以前所学的专业课知识以及一些实践性很强的软件和工具,如:Protel制图、Proteus仿真,WAWE仿真设备,汇编语言编译软件keil、单片机的原理等。
虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一很大收获。
2,系统方案设计及确定㈠,设计思路其中硬件由AT89S51单片机、六位LED驱动及显示电路、独立式键盘电路、蜂鸣器组成,其中显示采用动态显。
时钟的定时用定时器T0以50MS中断20次,从而实现一秒准确记时。
秒表的定时用定时器T1以10ms 中断1次记时。
精度达到0.01秒。
键盘将采用查询的方式判别。
最终成品是以可整电报时,调时,省电模式的时钟为主体,另外还可切换到秒表的电子钟系统。
①时钟功能利用单片机片内定时器(如T0)产生1s计时,自行设定时钟计数单元地址,包括秒单元、分单元、时单元,最大计数值为23时59分59秒。
用6位LED数码管显示时、分、秒,以24<小>时计时方式运行;使用按键可实现时、分调整,可增加“熄灭符”用于时间调整时的闪烁功能②秒表功能能通过按键实现秒表/时钟功能之间的转换;利用单片机内部定时器(如T1)实现秒表的计时,自行设定秒表计数单元地址,包括10ms单元、秒单元、分单元,通过4位LED数码管显示,最大计数值为99.99秒。
51单片机电子时钟课程设计报告
第一部分设计任务和要求1.1单片机课程设计内容 (2)1.2单片机课程设计要求 (2)1.3系统运行流程 (2)第二部分设计方案2.1总体设计方案说明 (2)2.2系统方框图 (3)2.3系统流程图 (3)第三部分主要器材及基本简介3.1主要器材 (4)3.2主要器材简介 (4)第四部分系统硬件设计4.1最小系统 (6)4.2LCD显示电路 (6)4.3键盘输入电路 (7)4.4蜂鸣器和LED灯电路 (7)第五部分仿真电路图与仿真结果 (8)第六部分课程设计总结 (8)第七部分参考文献 (9)附录A 实物图附录B 系统源程序第一部分设计任务和要求1.1单片机课程设计内容利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。
1.2单片机课程设计要求1.能实现年、月、日、星期、时、分、秒的显示;2.能实现调时功能;3.能实现12/24小时制切换;4.能实现8 : 00—22 : 00整点报时功能。
1.3系统运行流程程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。
若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。
若没到则循环执行。
计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。
调时闪烁中断服务程序用于被调单元的闪烁显示。
调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。
实现了对时间的设置和修改、LCD显示数值等主要功能。
相关的调整是靠对功能键的判断来实现的。
第二部分设计方案2.1总体设计方案说明1.程序设计及调试根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。
2.硬件焊接及调试根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。
3.后期处理对设计过程进行总结,完成设计报告。
单片机汇编程序51电子时钟.doc
单片机汇编程序 51电子时钟电子钟设计实验报告一)实验目的:1、进一步掌握定时器的使用和编程方法。
2、进一步掌握中断处理程序的编程方法。
3、进一步掌握数码显示电路的驱动方法。
4、进一步掌握键盘电路的驱动方法。
5、进一步掌握软件数据处理的方法。
二)内容要求:1、利用CPU的定时器和数码显示电路,设计一个电子时钟。
格式如下:XX XX XX 由左向右分别为:时、分、秒。
2、电子时钟有秒表功能。
3、并能用键盘调整时钟时间。
4、电子时钟能整点报时、整点对时功能。
5、能设定电子时钟的闹铃。
三)主要元件:电阻4.7K 10个 2K 1个四位共阳数码管1个二位共阳数码管1个按钮开关4个万用板(中板)1个 9012PNP 7个排线排阵若干电线一捆蜂鸣器1个最小系统一个四)系统说明:按P1.0键,如果按下的时间小于1秒进入省电模式(数码管不显示,开T0计时器),如果按下的时间大于1秒则进入时间调整.。
在时间调整状态:再按P1.0,如果按下时间大于0.5秒转调小时状态,按下时间小于0.5秒加1分钟操作。
在小时调整状态再按P1.0键,如果按下时间大于0.5秒退出时间调整,如果按下时间小于0.5秒加1小时操作。
按P1.1键,进入闹铃调分状态,按P1.2分加1,按P1.0分减1。
若再按P1.3,则进入调整状态,按P1.2时加1,按P1.0分时。
按P1.1键,闹铃有效,显示式样变为00:00:—0;再按P1.1键,闹铃无效,显示式样变为00:00:—。
按P1.3键,调整闹钟时间结束。
按P1.2键,进入秒表计时功能,按P1.2键暂停或清零,按P1.1键退出秒表回到时钟状态。
而且本系统还有整点报时功能,以及按键伴有声音提示。
五)程序流程图:开始 TO中断初始化保护现场进入功能调用显示定时初值校正程序子程序N Y键按下, 1S到,Y N加1S处理整点到NY恢复现场,中断返回按时间鸣叫次数主程序流程图 T0中断计时程序流程图T1中断保护现场T1中断服务程序流程图秒表/闪烁,时钟调时闪烁加10MS处理闪烁处理恢复现场,中断返回六)电路图七)程序清单:中断入口程序 ;; DISPFIRST EQU 30H BELL EQU P1.4CONBS EQU 2FHOUTPX EQU P2 ;P2位选OUTPY EQU P0 ;P0段选INP0 BIT P1.0INP1 BIT P1.1INP2 BIT P1.2ORG 0000H ;程序执行开始地址LJMP START ;跳到标号START执行ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMP INTT0 ;跳至INTTO执行ORG 0013H ;外中断1中断程序入口RETI ;外中断1中断返回ORG 001BH ;定时器T1中断程序入口LJMP INTT1 ;跳至INTT1执行ORG 0023H ;串行中断程序入口地址RETI ;串行中断程序返回;QQQQ:MOV A,#10HMOV B,79HMUL ABADD A,78HMOV CONBS,ABSLOOP:LCALL DS20MSLCALL DL1SLCALL DL1SLCALL DL1SDJNZ CONBS,BSLOOPCLR 08HAJMP START;; 主程序 ;;START:MOV R0,#00H ;清70H-7AH共11个内存单元MOV R7,#80H ;CLEARDISP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARDISP ;MOV 20H,#00H ;清20H(标志用)MOV 7AH,#0AH ;放入"熄灭符"数据MOV 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秒定时用初值(50MS×20)MOV DISPFIRST ,#70HSTART1: LCALL DISPLAY ;调用显示子程序JNB INP0,SETMM1 ;P1.0口为0时转时间调整程序JNB INP1,FUNSS ; 秒表功能,P1.1按键调时时作减1加能JNB INP2,FUNPT ;STOP,PUSE,CLRJNB P1.3,TSFUNSJMP START1 ;P1.0口为1时跳回START1SETMM1: LJMP SETMM ;转到时间调整程序SETMM FUNSS: LCALL DS20MSJB INP1,START1WAIT11: JNB INP1,WAIT11CPL 03HMOV DISPFIRST,#00H :显示秒表数据单元MOV 70H,#00HMOV 71H,#00HMOV 76H,#00HMOV 77H,#00HMOV 78H,#00HMOV 79H,#00HAJMP START1FUNPT: LCALL DS20MSJB INP2,START1WAIT22: JNB INP2,WAIT21CLR ET0CLR TR0WAIT33: JB INP2,WAIT31 LCALL DS20MSJB INP2,WAIT33WAIT66: JNB INP2,WAIT61 MOV R0,#70H ;清70H-79H共10 个内存单元MOV R7,#0AH ;CLEARP: MOV @R0,#00H ;INC R0 ;DJNZ R7,CLEARP ;WAIT44: JB INP2,WAIT41 LCALL DS20MSJB INP2,WAIT44WAIT55: JNB INP2,WAIT51 SETB ET0SETB TR0AJMP START1WAIT21: LCALL DISPLAY AJMP WAIT22WAIT31: LCALL DISPLAY AJMP WAIT33WAIT41: LCALL DISPLAYAJMP WAIT44WAIT51: LCALL DISPLAYAJMP WAIT55WAIT61: LCALL DISPLAYAJMP WAIT66 TSFUN:LCALL DS20MSWAIT113:JNB P1.3,WAIT113JB 05H,CLOSESPMOV DISPFIRST,#50HMOV 50H,#0CHMOV 51H,#0AHDSWAIT:SETB EALCALL DISPLAYJNB P1.2,DSFINCJNB P1.0,DSDECJNB P1.3,DSSFU AJMP DSWAITCLOSESP:CLR 05HCLR BELLAJMP START1 DSSFU:LCALL DS20MS JB P1.3,DSWAIT LJMP DSSFUNN DSFINC:LCALL DS20MS JB P1.2,DSWAIT DSWAIT12:LCALL DISPLAY JNB P1.2,DSWAIT12 CLR EAMOV R0,#53H LCALL ADD1MOV A,R3CLR CCJNE A,#60H,ADDHH22ADDHH22:JC DSWAITACALL CLR0AJMP DSWAITDSDEC:LCALL DS20MSLCALL DISPLAYDSWAITEE:LCALL DISPLAYJNB P1.0,DSWAITEECLR EAMOV R0,#53HLCALL SUB1LJMP DSWAIT ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 1秒计时程序 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;T0中断服务程序INTT0: PUSH ACC ;累加器入栈保护PUSH PSW ;状态字入栈保护CLR ET0 ;关T0中断允许CLR TR0 ;关闭定时器T0JB 03H,FSSMOV 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, OUTT0 ;20次中断未到中断退出ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值MOV R0,#71H ;指向秒计时单元(71H-72H)ACALL ADD1 ;调用加1程序(加1秒操作)MOV A,R3 ;秒数据放入A(R3为2位十进制数组合)CLR C ;清进位标志CJNE A,#60H,ADDMM ;ADDMM: JC OUTT0 ;小于60秒时中断退出ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H)ACALL ADD1 ;分计时单元加1分钟MOV A,R3 ;分数据放入ACLR C ;清进位标志CJNE A,#60H,ADDHH ;ADDHH: JC OUTT0 ;小于60分时中断退出ACALL CLR0 ;大于或等于60分时分计时单元清0MOV R0,#79H ;指向小时计时单元(78H-79H)ACALL ADD1 ;小时计时单元加1小时MOV A,R3 ;时数据放入ACLR C ;清进位标志JB 03H,OUTT0 ;秒表时最大数为99CJNE A,#24H,HOUR ;HOUR: JC OUTT0 ;小于24小时中断退出ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV 72H,76H ;中断退出时将分、时计时单元数据移MOV 73H,77H ;入对应显示单元MOV 74H,78H ;MOV 75H,79H ;LCALL BAOJPOP PSW ;恢复状态字(出栈)POP ACC ;恢复累加器SETB ET0 ;开放T0中断RETI ;中断返回 ;秒表计时程序(10MS加1),低2位为0.1、0.01秒,中间2位为秒,最高位为分。
电子时钟课程设计51
电子时钟课程设计51一、教学目标本课程旨在让学生了解和掌握电子时钟的工作原理和设计方法。
通过本课程的学习,学生将能够:1.知识目标:理解电子时钟的基本构成,包括时钟芯片、显示器、按键等;掌握电子时钟的编程方法,包括定时器、中断、I/O口控制等。
2.技能目标:能够独立完成电子时钟的电路设计,包括元器件的选择、电路连接等;能够使用编程语言进行电子时钟的编程,实现基本功能。
3.情感态度价值观目标:培养学生的创新意识和团队合作精神,提高学生对电子科技的兴趣和热情。
二、教学内容本课程的教学内容主要包括以下几个部分:1.电子时钟的基本构成和工作原理;2.电子时钟的编程方法,包括定时器、中断、I/O口控制等;3.电子时钟的电路设计,包括元器件的选择、电路连接等;4.电子时钟的实际应用案例分析。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括:1.讲授法:讲解电子时钟的基本原理和编程方法;2.讨论法:引导学生进行思考和讨论,提高学生的理解能力;3.案例分析法:分析电子时钟的实际应用案例,帮助学生了解电子时钟的应用场景;4.实验法:让学生动手设计电子时钟电路,提高学生的实践能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:电子时钟设计的相关教材,用于引导学生学习;2.参考书:提供电子时钟设计的详细资料,帮助学生深入理解;3.多媒体资料:包括电子时钟的设计视频、图片等,丰富学生的学习体验;4.实验设备:提供电子时钟设计所需的电路板、元器件等,让学生动手实践。
五、教学评估本课程的评估方式包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占总评的30%;2.作业:评估学生完成的作业质量,包括电路设计、编程等,占总评的30%;3.考试:进行一次电子时钟设计相关的考试,评估学生的知识掌握程度,占总评的40%。
六、教学安排本课程的教学安排如下:1.教学进度:共10次课,每次课2小时;2.教学时间:每周六上午9:00-11:00;3.教学地点:学校实验室。
电子时钟课程设计51
电子时钟课程设计51一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的组成和功能。
2. 学生能够描述电子时钟中数字显示技术的基本原理,如LED、LCD显示。
3. 学生能够解释电子时钟中时间计算和校准的方法。
技能目标:1. 学生能够运用所学知识,设计简单的电子时钟电路,并进行组装和调试。
2. 学生能够运用编程语言,编写简单的电子时钟程序,实现时间显示和校准功能。
3. 学生能够通过实际操作,培养动手能力和问题解决能力。
情感态度价值观目标:1. 学生能够培养对电子技术的兴趣,提高对科学探究的热情。
2. 学生能够认识到电子时钟在生活中的广泛应用,增强学以致用的意识。
3. 学生能够养成团队协作、沟通交流的良好习惯,培养合作精神。
分析课程性质、学生特点和教学要求:本课程为电子技术相关课程,结合学生所在年级的知识深度,注重理论联系实际,提高学生的动手实践能力。
课程针对的学生群体具有一定物理基础和编程能力,对电子技术有一定了解。
教学要求注重培养学生的创新能力、问题解决能力和团队协作能力。
二、教学内容1. 电子时钟原理及组成- 介绍电子时钟的基本工作原理,包括时钟振荡器、分频器、计数器、显示器等组成部分。
- 分析电子时钟中晶振的作用,探讨如何实现精确的时间计数。
2. 数字显示技术- 介绍LED和LCD显示技术的基本原理,对比分析两种显示技术的优缺点。
- 学习数字显示电路的设计,掌握如何驱动LED和LCD显示数字。
3. 时间计算与校准- 学习电子时钟中时间计算的方法,如秒、分、时的计算。
- 探讨电子时钟校准的原理和方法,了解实时时钟芯片(RTC)的应用。
4. 电子时钟电路设计与组装- 制定电子时钟电路设计方案,选择合适的元器件。
- 学习电路图的绘制,进行电路组装和调试。
5. 电子时钟编程- 使用编程语言(如C语言)编写电子时钟程序,实现时间显示和校准功能。
- 学习如何在微控制器上运行程序,实现电子时钟的实时显示。
课程设计51单片机电子时钟
课程设计51单片机电子时钟姓名:学号:指点教员:2010 年06 月05 日课程设计〔论文〕义务书指点教员〔签字〕:先生〔签字〕:课程设计〔论文〕评阅表先生姓名学号系别电气工程系专业班级标题称号电子时钟课程称号单片机原理与接口技术一、先生自我总结二、指点教员评定目录单片机电子时钟的设计摘要单片机自20世纪70年代问世以来,以其极高的功用价钱比,遭到人们的注重和关注,运用很广、开展很快。
单片机体积小、重量轻、抗搅扰才干强、环境要求不高、价钱昂贵、牢靠性高、灵敏性好、开发较为容易。
由于具有上述优点,在我国,单片机已普遍地运用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计经过对它的学习、运用,以A T89S51芯片为中心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,经过数码管可以准确显示时间,调整时间,从而抵达学习、设计、开发软、硬件的才干。
Design of the singlechip electronics clockAbstractSingle slice machine from published in 70's for 20 centuries, is compare with its very high function price, is value by people and pay attention to, apply very widely, develop very quickly. Single slice the machine physical volume is small,the weight is light,the anti- interference ability is strong,the environment haven't high request,the price is cheap,the credibility is high,vivid good,develop more easy. In order to having an above-mentioned advantage, at the our country, single slice the machine is broadly applied already to turn an equipment at industrial automation control,automatic examination,intelligence instrument appearance,home appliances,electric power electronics,the machine electricity integral whole etc. each aspect, but 51 machines is is a typical model most and have a representative most in each machine of a kind. This graduation design passes to its study and application, Take the AT89S51 chips as core, assist with the electric circuit of the necessity, design a simple electronics clock, it from the 4.5 V direct current power supply power supply, pass the figures tube can accurate manifestation time, adjust time。
(完整word版)51单片机可调时钟c程序
#include "reg52.h" //单片机头文件#define uchar unsigned char //定义uchar 代替unsigned char#define uint unsigned intsbit duan=P2^6; //位定义sbit wei=P2^7;sbit k1=P3^4;sbit k2=P3^5;sbit k3=P3^6;sbit k4=P3^7;void display(uchar a0,uchar a1,uchar a2,uchar a3,uchar a4,uchar a5); //函数声明void delay(uchar mss);uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x 00}; //共阴数码管显示数字uchar ms=0,mg=0,fs=0,fg=0,ss=0,sg=0,m=0,f=0,s=0; //定义变量//主函数main(){ P0=0x00;duan=1;duan=0;P0=0xc0;wei=1;wei=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TMOD=0x01; //设置定时器工作方式---定时器0在工作模式1下工作,即一个16位的计时器TR0=1; //开定时器0ET0=1; //开中断1即定时器中断0EA=1; //开总中断while(1){if(k1==0) //按键k1为低电频{delay(40); //延时去抖if(k1==0) //判断k1是否按下{ //等待按键释放while(k1!=1);f++; //分钟自加m=0; //秒置0if(f==60) //分钟为60,自动置0,小时自加1{f=0;s++;if(s==24){s=0;}}}}if(k2==0){ delay(40);if(k2==0){while(k2!=1);f--;m=0;if(f==-1){f=59;s--;if(s==-1){s=0;}}}}if(k3==0){ delay(40);if(k3==0){while(k3!=1);s++;m=0;if(s==24){{s=0;}}}}if(k4==0){ delay(40);if(k4==0){ while(k4!=1);s--;m=0;if(s==-1){{s=23;}}}}mg=m%10; //秒个位是秒数除以10的余数ms=m/10; //秒十位是秒数除以十的商fg=f%10;fs=f/10;sg=s%10;ss=s/10;display(mg,ms,fg,fs,sg,ss); //调用显示函数,实参为秒的十位个位...}}void timer0() interrupt 1 //中断函数{int num; //num是个标志TH0=(65536-50000)/256; //计时器赋初值TL0=(65536-50000)%256;num++; //当num==20即1s 进入秒自加,num 清0if(num==20){m++;num=0;if(m==60) //秒自加到60自动清0,分自加{m=0;f++;if(f==60){f=0;s++;if(s==24){s=0;}}}}}void display(uchar a0,uchar a1,uchar a2,uchar a3,uchar a4,uchar a5) //显示函数{P0=tab[a0]; //P0口赋值tab[a0]即对应实参tab[mg]秒个位显示duan=1; //开段选即读到tab[mg]到数码管上duan=0; //关段选P0=0xdf; //P0赋0xdf即1101 1111wei=1; //开位选,即第六个数码管被选通wei=0; //关位选// delay(10);delay(5); //延时P0=tab[a1];duan=1;duan=0;P0=0xef;wei=1;wei=0;delay(5);P0=0xf7;wei=1;wei=0;P0=tab[a2];duan=1;duan=0;delay(5);P0=0xfb;wei=1;wei=0;P0=tab[a3];duan=1;duan=0;delay(15);P0=0xfd;wei=1;wei=0;P0=tab[a4];duan=1;duan=0;delay(5);P0=0xfe;wei=1;wei=0;P0=tab[a5];duan=1;duan=0;delay(5);}void delay(uchar mss) //延时函数{int i,j;for(i=mss;i>0;i--){for(j=30;j>0;j--);}}。
基于51单片机的多功能电子时钟设计
单片机应用设计入门课程设计尹康2012029010010一. 题目利用51单片机设计一个电子时钟要求:能够用数码管显示小时、分钟、秒,各2位数字;系统应具有复位电路、电源电路等基本组成部分;能够进行时间设定;能够进行日期设定。
二. 方案设计1.系统框图直流电源复位电路独立按键控制部分STC89C51显示部分(8位共阴数码管)2.设计说明用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h 到了。
采用动态显示法实现LED显示:通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
该电子时钟由STC89C51,BUTTON,共阴数码管等构成,采用晶振电路作为驱动电路,晶振电路的晶振频率为12MHZ。
60秒为一分钟,60分钟为一小时,24小时为一天,又重00:00:00开始计时。
没有按键按键按下时,时钟正常运行。
当按下调节时钟按键change,时钟就会进入设置时间界面(时钟不会停止工作),重复按下change 键,系统状态在调整小时、调整分钟、正常显示之间切换。
按add或reduce键,就可以数值进行加1或减1操作。
三. 电路设计1.整体电路:2.8位共阴数码管电路:3.单片机系统:4.独立按键电路:5.晶振6.复位电路:7.电源电路:四. 程序设计#include<reg52.h> //包含单片机寄存的头文件sbit led1=P1^0; sbit led2=P1^2; sbit led5=P1^5; sbit du=P2^6;//段选sbit we=P2^7;//位选sbit s1=P3^4;sbit s2=P3^5;sbit s3=P3^6;sbit s4=P3^7;sbit beep=P2^3; sbit dot=P0^7; unsigned char shi,fen,miao,unit,keyv,key,av,ashi,afen,ami ao;void delay() //1ms{unsigned char a,b;for(b=102;b>0;b--)for(a=3;a>0;a--);}void delay5(void) //误差5ms{unsigned char a,b;for(b=15;b>0;b--)for(a=152;a>0;a--);}void delayhalf (void) //误差0.5s{unsigned char a,b,c;for(c=23;c>0;c--)for(b=152;b>0;b--)for(a=70;a>0;a--);}void display( unsigned char h,f,s){unsigned char codeduma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x38}; unsigned char codemawei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0 xbf,0x7f};unsigned char shiwan,wan,qian,bai,shi,ge;shiwan=h/10;wan=h%10;qian=f/10;bai=f%10;shi=s/10;ge=s%10;P0=duma[shiwan];du=1;du=0;P0=mawei[0];we=1;we=0;delay();P0=duma[wan];dot=1;du=1;du=0;dot=0;P0=mawei[1];we=1;we=0;delay();P0=duma[qian]; du=1;du=0;P0=mawei[2];we=1;we=0;delay();P0=duma[bai]; dot=1;du=1;du=0;dot=0;P0=mawei[3];we=1;we=0;delay();if(key!=1&&key!=2) {P0=duma[shi];du=1;du=0;P0=mawei[4];we=1;we=0;delay();P0=duma[ge];du=1;du=0;P0=mawei[5];we=1;we=0;delay();}if(key==1||key==2) {P0=duma[10];du=1;du=0;P0=mawei[4]; we=1;we=0;delay();P0=duma[11]; du=1;du=0;P0=mawei[5]; we=1;we=0;delay();}P0=0xff;we=1;we=0;}passtime(){if(unit==100) {miao++;unit=0;led1=!led1;led2=!led2; }if(miao==60) {fen++;miao=0;}if(fen==60) {shi++;fen=0;}if(shi==24) {shi=0;} }void InitTimer0(void)//10ms{TMOD = 0x01;TH0 = 0x0DC;TL0 = 0x00;EA = 1;ET0 = 1;TR0 = 1;unit=0;}void Timer0Interrupt(void) interrupt 1 {TH0 = 0x0DC;TL0 = 0x00;unit++ ;//add your code here! passtime();}void adjustment(void){if(s1==0){delay5();if(s1==0){while(!s1);amiao=0;key++;led5=0;if(key==5){key=0;TR0=1;led5=1;}}}//s1 countif(s2==0){delay5();if(s2==0){while(!s2);if(key==1)//alram{ashi++;if(ashi==24){ashi=0;}}if(key==2){afen++;if(afen==60){afen=0;}}//alramif(key==4)/////{miao=0;TR0=0;fen++;if(fen==60){fen=0;}}if(key==3)///{miao=0;TR0=0;shi++;if(shi==24){shi=0;}}}}//adj +///////////////////adj-if(s3==0) {delay5();if(s3==0){while(!s3);if(key==1)//alram{ashi--;if(ashi==-1){ashi=23;}}if(key==2){afen--;if(afen==-1){afen=59;}}//alramif(key==4)//{miao=0;TR0=0;fen--;if(fen==-1){fen=59;}}if(key==3)///{miao=0;TR0=0;shi--;if(shi==-1){shi=23;}}}}//adj -}void alarm(void){if(fen!=afen){av=0;}if(av==0){if(shi==ashi&&fen==afen){beep=0;delayhalf();beep=1;delayhalf();beep=0;delayhalf();beep=1;delayhalf();}}//av==0}********************************* 主函数*********************************void main(void){ashi=7;afen=0;InitTimer0();led2=0;while(1){if(keyv==0)//close display{if(s4==0){delay5();if(s4==0){while(!s4);keyv=1;av=1;}}}if(keyv==1){if(s4==0){delay5();if(s4==0){while(!s4); keyv=0; } }}//close displayif(keyv==0){adjustment();if(key!=1&&key!=2){display(shi,fen,miao);}if(key==1||key==2){display(ashi,afen,amiao);}}if(key==0||key==3||key==4){alarm();}}//while}五. 实物仿真六. 心得体会1.单片机,是集CPU ,RAM ,ROM ,定时器,计数器和多种接口于一体的微控制器,自20世纪70年代问世以来,以其极高的性价比,受到人们的重视和关注,应用很广、发展很快。
51电子钟课程设计
51电子钟课程设计一、课程目标知识目标:1. 让学生理解51单片机的原理及其在电子钟设计中的应用。
2. 使学生掌握电子钟的基本组成部分,包括时钟芯片、显示模块、按键等。
3. 帮助学生掌握定时器、中断等单片机技术的使用。
技能目标:1. 培养学生运用51单片机进行电子钟设计的能力,学会编写程序、调试电路。
2. 提高学生动手实践能力,能独立完成电子钟的组装和调试。
3. 培养学生分析问题和解决问题的能力,能够对电子钟进行故障排查和优化。
情感态度价值观目标:1. 培养学生对电子制作的兴趣,激发创新意识。
2. 培养学生团队合作精神,学会在团队中发挥自己的优势,共同完成任务。
3. 培养学生严谨的学习态度,养成良好的学习习惯。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握51单片机及其周边器件的基础上,运用所学知识完成一个具有实际应用价值的电子钟项目。
通过课程学习,使学生将理论知识与实际操作相结合,提高综合运用知识的能力,培养创新精神和实践能力。
同时,注重培养学生的情感态度价值观,使他们在学习过程中形成良好的学习习惯和团队协作精神。
二、教学内容1. 理论知识学习:- 51单片机基本原理及结构- 定时器、中断等技术的应用- 时钟芯片的原理与使用- 显示模块的工作原理及其与单片机的连接方法- 按键输入原理及电路设计2. 实践操作环节:- 电子钟电路图的绘制- 51单片机程序的编写与调试- 电子钟的组装与调试- 故障分析与优化3. 教学内容安排与进度:- 第一周:51单片机基本原理及结构学习,熟悉开发环境- 第二周:定时器、中断技术学习,时钟芯片原理介绍- 第三周:显示模块及按键输入学习,设计初步电路图- 第四周:编写程序,进行电子钟的组装与调试- 第五周:对电子钟进行故障分析与优化,撰写实验报告教材章节关联:本教学内容与教材中以下章节相关:- 第四章:51单片机原理与结构- 第五章:定时器与中断技术- 第六章:显示与键盘接口技术- 第七章:单片机应用实例三、教学方法为了提高教学效果,激发学生的学习兴趣和主动性,本课程将采用以下多样化的教学方法:1. 讲授法:教师通过生动的语言、丰富的案例,为学生讲解51单片机的基础知识、电子钟的设计原理等理论内容。
单片机课程设计--- 基于51单片机的简约电子钟
单片机课程设计项目名称基于51单片机的简约电子钟专业班级通信091班学生姓名指导教师2012 年12 月21 日摘要单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次课程设计通过对它的学习、应用,以STC11F02E芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由4.5V直流电源供电,通过数码管能够准确显示时间,调整时间,从而到达学习、设计、开发软、硬件的能力。
关键词:STC11F02E;单片机;电子时钟;AbstractSCM since its introduction in the 1970s, with its high performance and low cost, the attention and concern of the people of the very wide application microcontroller since its introduction in the 1970s, with its high performance and low cost, by the peoplewide attention and concern, has developed rapidly. Microcontroller small size, light weight, strong anti-interference ability, the environment less demanding, low price, high reliability, good flexibility, easier development. Due to the above advantages, in our country, the microcontroller has been widely used in all aspects of industrial automation and control, automatic detection, intelligent instruments, household appliances, power electronics, electromechanical integration equipment, etc., and 51 microcontroller each MCU most typical and most a representative. This course designed by its learning, application, STC11F02E chip as the core, supplemented by the necessary circuitry to design a simple electronic clock, it is powered by 4.5V DC power supply through digital tube display time be able to accurately adjust time, so as to reach the study, design, development software, the capabilities of the hardware.The keywords: STC11F02E;microcontroller;electronic clock;目录摘要 (I)Abstract (II)第1章绪论 (1)1.1 概述 (1)1.2 单片机技术的研究现状 (1)1.3 总体设计方案 (2)1.3.1 设计思路 (2)第2章系统硬件原理及设计 (4)2.1 核心器件STC11F02E介绍 (4)2.2 主要设计软件介绍 (6)2.2.1 PROTEUS软件简介 (6)2.2.2 KEIL简介 (6)2.3 硬件电路 (7)2.3.1 总体设计框图及设计原理图 (7)第3章系统软件设计 (8)3.1 软件设计分析 (8)3.2 软件程序设计 (8)结论 (19)参考文献 (20)附录 1 (21)附录 2 (22)项目创新及特色 (23)第1章绪论1.1 概述单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
51单片机课程设计电子时钟
课程设计课程名称:单片机课程设计题目名称:单片机电子时钟学院:电信学院专业:电子工程姓名:曾代科学号: 202120313201指导教师:杨加国2021年11月7日一、课程设计名称:51 单片机电子时钟二、设计方案:1、经过单片机内部的计数/ 准时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,平时用在对时间精度要求不高的场合。
2、采用时钟芯片,它的功能富强,功能部件集成在芯片内部,拥有自动产生时钟等相关功能,硬件本钱相对较高;软件编程简单,平时用在对时钟精度要求较高的场合。
三、设计内容:这里采用应用广泛的AT89C52作为时钟控制芯片,利用单片机内部的准时 / 计数器 T0 实现软时钟的目的。
第一将 T0 设定工作于准时方式,对机器周期计数形成基准时间〔50ms〕,尔后用另一个准时 / 计数器 T1 对基准时间计数形成秒,妙计60 次形成分,分计60 形成小时,小时计到12。
最后经过数码管把它们的内容在相应的地址显示出来,到达时、分、秒计时的功能。
其他还要实现对时间的调整功能,89C52 的、、P1.2 外接三个独立按键,当按下按键时,系统进入调时间的状态或启动时间显示的功能;当按下P1.1 按键时,对显示的数码管进行加一的功能;当按下 P1.2 按键时,对显示的数码管进行减一的功能,到达调整时间的目的。
四、系统软件程序设计1.主程序先对显示单元和准时器 / 计数器初始化,尔后重复调用数码管显示模块和按键办理模块,当有按键按下时,那么转入相应的功能程序。
2、数码管显示模块本实验有 8 个数码管,从右到左为妙、横线、分、横线、时。
在本系统中数码管显示采用软件译码动向显示。
在储藏器中第一建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,尔后经过查表程序在字段表中查出所显示的信息的断码,从P0 端口输出,同时在 P2 端口进行数码管显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计课程名称:单片机课程设计题目名称:单片机电子时钟学院:电信学院专业:电子工程姓名:曾代科学号: 200820313201指导教师:杨加国2010年11月7日一、课程设计名称:51单片机电子时钟二、设计方案:1、通过单片机内部的计数/定时器,采用软件编程来实现时钟计数,一般称为软时钟,这种方法的硬件线路简单,系统的功能一般与软件设计相关,通常用在对时间精度要求不高的场合。
2、采用时钟芯片,它的功能强大,功能部件集成在芯片内部,具有自动产生时钟等相关功能,硬件成本相对较高;软件编程简单,通常用在对时钟精度要求较高的场合。
三、设计内容:这里采用应用广泛的AT89C52作为时钟控制芯片,利用单片机内部的定时/计数器T0 实现软时钟的目的。
首先将T0设定工作于定时方式,对机器周期计数形成基准时间(50ms),然后用另一个定时/计数器T1对基准时间计数形成秒,妙计60次形成分,分计60形成小时,小时计到12。
最后通过数码管把它们的内容在相应的位置显示出来,达到时、分、秒计时的功能。
此外还要实现对时间的调整功能,89C52的P1.0、P1.1、P1.2外接三个独立按键,当按下P1.0按键时,系统进入调时间的状态或启动时间显示的功能;当按下P1.1按键时,对显示的数码管进行加一的功能;当按下P1.2按键时,对显示的数码管进行减一的功能,达到调整时间的目的。
四、系统软件程序设计1.主程序先对显示单元和定时器/计数器初始化,然后重复调用数码管显示模块和按键处理模块,当有按键按下时,则转入相应的功能程序。
2、数码管显示模块本实验有8个数码管,从右到左为妙、横线、分、横线、时。
在本系统中数码管显示采用软件译码动态显示。
在存储器中首先建立一张显示信息的字段码表,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段表中查出所显示的信息的断码,从P0端口输出,同时在P2端口进行数码管显示。
3、定时器/计数器T0中断服务程序T0用于计时,选中方式一,重复定时,定时时间设为50ms,定时时间到则中断,在中断服务程序中用一个计数器对50ms计数,计20次则对秒单元加一。
秒单元加到60则对分单元加一,同时秒单元清0;分单元加到60则对时单元加一,同时分单元清0;时单元加到24则对时单元清0,标志一天时间计满。
在对各单元计数的同时,把他们的值放到存储器单元的指定位置。
流程图如下:4、按键处理模块按键设置为:如果没有按键吗,则时钟正常走时。
当按下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 TR0START1: 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,KEYOUTWAIT0: JNB P1.0,WAIT0 ;判断按键是否松手,松手就往下执行程序INC 7CHMOV A,7CHCLR ET0CLR TR0CJNE A,#03H,KEYOUT ;按下第一次和第二次对时、分选定MOV 7CH,#00 ;按下第三次时就启动计时SETB ET0SETB TR0SJMP KEYOUTKEYSCAN1:LCALL DL20MS ;按键加一的程序JB P1.1,KEYOUTWAIT1: JNB P1.1,WAIT1MOV 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,KEYOUTWAIT2: JNB P1.2,WAIT2 ;判断是否放开按键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口为位选码输出端。
硬件电路如图所示:六、课程设计总结经过一周的时间以及对整本教材的知识总结,把课程设计分成了硬件和软件两大模块。
总的来说,硬件部分很好入手,电路也教简单,主要涉及的是简单的按键、电容、电阻、晶振和数码管。
在软件部分,细分为了按键模块、显示模块、定时/计数模块,最后把几个模块整合在主程序模块中,使得程序简单明了。
整个设计过程中遇到的最大问题是软件的编写,由于采用的是汇编语言,其间使用到的各种寄存器、存储器地址、变量很多,很难对程序的整体把握。
通过电子钟的设计,对单片机的原理、结构、外围电路进一步的了解。
在整个设计过程中学到了团体精神和独立解决问题的重要性。
为以后的求职之路打下了基础。
七、参考资料[1]《单片机原理与应用》谢维成杨加国编著[2] 《单片机应用与仿真调试》严天峰编著[3]《模拟电子技术(第三版)》胡宴如耿苏燕编著[4]《数字电子技术(第三版)》杨志忠卫桦林编著(注:可编辑下载,若有不当之处,请指正,谢谢!)。