单片机电子时钟实验报告
单片机电子时钟实验报告
电子时钟预备知识:数码管:内部接线C语言程序:一、电子时钟(一)设计目的通过电子时钟综合设计,使学生学会利用8051定时器时间计时处理功能,了解按键扫描及控制LED数码管显示原理,掌握单片机和按键以及LED数码管硬件电路设计及控制程序的设计方法。
思考按键消除抖动、LED动态显示与静态显示的特点,从而提高学生解决实际问题的能力。
(二)设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1.在4位数码管上显示当前时间。
显示格式“时时分分”2.由LED闪动做秒显示。
3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。
当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。
(三)我采用的是TB-22766板子,单片机类型是STC89C52RC(四)软件设计思想:采用语言:C语言,主要中断:内部T0中断为唯一的中断,主程序大体分为两部分:无按键被按下时的显示,有按键被按下时,输入定时时间或者书输入当前时间,然后的显示软件,最后是一个蜂鸣器的控制程序。
前面是三个子程序:两个按键扫描和一个延时小程序。
N具体的C语言程序:/*---------------------------------------------------------------------------------------------------------------------=======================================基于JD51开发板的电子闹钟程序=======================================************************************程序功能说明********************************************************************* ***1、基础功能为计时,并显示当前时间。
单片机电子时钟实训报告
单片机实训报告题目:_电子时钟设计姓名:__侯元星__学号: 0502090229专业:_计算机控制0902班_所属系部:_电子工程系_指导老师:陆剑2011年6月25日前言单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。
由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。
这次毕业设计通过对它的学习、应用,以A T89S51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。
本系统是基于AT89C51单片机设计的一个具有六位LED显示的数字时实时钟,采用独立式按键进行时间调整,同时引入一个内部充电电源在停止外部供电时,仍具有内部计时的功能。
该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。
本文以对单片机的学习和认识,并通过本次课程设计加以应用,从而达到一个对所学知识的巩固、更深一步的理解,面对一个电子设计,应对出系统的方案,分析出各个板块来,再对各个板块进一步的具体的设计,先进行硬件电路设计,此时一定要考虑好要用什么元件、各个元件的具体参数、是否能实现应有功能,从而得到一个完整的硬件电路。
目录第一章设计任务 (1)1.1设计目的 (1)1.2设计要求 (1)第二章总体设计 (2)2.1 硬件部分 (2)2.2 电子时钟电路图 (5)2.3 电子时钟程序设计 (5)第三章电子时钟调试 (19)3.1 软件调试 (19)3.2硬件调试 (20)总结 (21)参考文献 (22)第一章设计任务1.1设计目的课程设计的主要目的是通过对电子时钟的设计实践,了解单片机系统控制过程、设计要求、应完成的工作内容和具体设计方法。
单片机电子时钟(LCD显示)综合实验报告
单片机综合实验报告题目:电子时钟(LCD)显示一、实验内容:以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间:●使用字符型LCD显示器显示当前时间。
●显示格式为“时时:分分:秒秒”。
●用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引脚上。
功能键K1~K4功能如下。
●K1—进入设置现在的时间。
●K2—设置小时。
●K3—设置分钟。
●K4—确认完成设置。
程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。
二、实验电路及功能说明1)单片机主控制模块以AT89C51单片机为核心进行一系列控制。
2)时钟显示模块用1602为LCD显示模块,把对应的引脚和最小系统上的引脚相连,连接后用初始化程序对其进行简单的功能测试。
测试成功后即可为实验所用,如图:3)时间调整电路用4个功能键操作来设置当前时间,4个功能键接在P1.0~P1.3引脚上。
功能键K1~K4功能如下。
K1—进入设置现在的时间。
K2—设置小时。
K3—设置分钟。
K4—确认完成设置。
如图:三、实验程序流程图:主程序:时钟主程序流程子程序:四、实验结果分析实验结果及分析:单片机的晶振可以根据要求设定。
6MHZ为和现实时间显示相同。
实验采用12MHZ晶振采用方式1定时,选取50ms采用20次中断达到一秒,采用查表方式控制LCD显示。
当烧入程序后开始运行,根据初始值设定可以观察到显示的时间,这里为了更明显观察显示数据变化把起始值设为23:59:50 运行后显示,K1为进入现在设置时间,当按下K1后显示,和实验要求相比较,实现了按下K1进入现在时间设置,按下K4确认完成时间设置的功能;不同之处: 当进入时间设置时在按下K1设置小时,再次按下K1是设置分钟。
增加功能:进入时间设置并选择设置位置后K2键位数字增加功能,K3键为数字减小功能。
根据仿真结果能够确定编程正确,基本实现了所有功能,而且有所改进。
单片机实训报告(电子时钟)
单片机实训报告课程名称:单片微型计算机原理与接口技术实验项目:电子时钟实验班级:09电本一设计人:于润婷学号:2009104143004指导老师:祁伟实验时间:2011.9.28~2011.9.12学校:广东技术师范学院目录第一章绪论 (2)1.1 电子时钟的概述 (2)1.2 电子时钟的发展现状及前景 (2)第二章控制系统的硬件设计 (3)2.1 电源模块 (3)2.2 处理器模块 (5)2.3 显示模块 (6)2.4 按键模块 (9)2.5 蜂鸣器模块 (10)第三章系统的的软件实现 (11)3.1 主程序流程图 (11)3.2 按键流程图 (13)3.3 时钟中断流程图 (15)3.4 显示流程图 (15)第四章系统的功能及性能测试 (19)心得体会 (21)参考文献 (22)附件:程序清单第一章:绪论1.1 电子时钟的概述1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速发展起来。
现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。
从而达到计时的功能,基于单片机设计的电子时钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。
从而,使电子时钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。
另外,程序较为简洁,具有可靠性和较好的可读性。
如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。
该电子时钟由AT89C51,SN74LS04N ,按键,数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天,满三十一天为一个月,满十二个月为一年。
电子时钟设计实验报告
编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 Data I/O2 VDD 电源正极10 D3 Data I/O3 V L 液晶显示偏压信号11 D4 Data I/O4 R S 数据/命令选择端12 D5 Data I/O5 R/W 读/写选择端13 D6 Data I/O6 E 使能信号14 D7 Data I/O7 D0 Data I/O 15 BLA背光源正极8 D1 Data I/O 16 BLK 背光源负极单片机电子时钟设计报告一、设计任务本次课程设计的电子时钟电路,是基于单片机STC89C52、时钟芯片和液晶显示,运用C语言编程实现。
电子时钟可以显示日期的年、月、日和时间的时、分、秒,具有复位功能。
二、系统硬件设备及芯片简介数字电子钟系统设计已经成熟,但是目前系统设计时基本都是采用 LED 作为显示电路,造成硬件电路复杂、功耗高、产品体积庞大等特点;液晶显示模块由于具有低功耗、寿命长、体积小、显示内容丰富、价格低、接口控制方便等优点,因此在各类电子产品中被极广泛地推广和应用。
字符型液晶显示模块是一类专门用于显示字母、数字、符号等点阵式液晶显示模块。
本系统设计采用字符型液品显示模块 LCD1602 作为显示器件,这样不仅简化了系统的硬件设计,而且极大地提高了系统的可靠性。
1 LCD1602 简介字符型液晶显示模块 LCD1602 已经是单片机应用设计中最常用的信息显示器件。
LCD1602 可以显示两行,每行16 个字符,采用+5V 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。
2 LCD1602 功能介绍2.1 引脚功能LCD1602 采用标准 14 脚(无背光)或 16 脚(带背光)接口,各引脚功能见表 1。
表1 引脚功能2.2 LCD1602 读写指令LCD1602 读写指令较多且较复杂,具体使用可以查相关资料,下面仅列出最常用的的一些命令:①写指令 38H:显示模式设置;②写指令 08H:显示关闭;③写指令 01H:显示清屏;④写指令 06H:显示光标移动设置;⑤写指令 0CH:显示开及光标设置。
51单片机电子时钟课程设计报告实验报告
《单片机原理与应用》课程设计总结报告题目:单片机电子时钟(带秒表)的设计设计人员:张保江江润洲学号:********** **********班级:自动化1211指导老师:***目录1.题目与主要功能要求 (2)2.整体设计框图及整机概述 (3)3.各硬件单元电路的设计、参数分析及原理说明 (3)4.软件流程图和流程说明 (4)5.总结设计及调试的体会 (10)附录1.图一:系统电路原理图 (11)2.图二:系统电路PCB (12)3.表一:元器件清单 (13)4.时钟程序源码 (14)题目:单片机电子时钟的设计与实现课程设计的目的和意义课程设计的目的与意义在于让我们将理论与实践相结合。
培养我们综合运用电子课程中的理论知识解决实际性问题的能力。
让我们对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。
课程设计的基本任务利用89C51单片机最小系统,综合应用单片机定时器、中断、数码显示、键盘输入等知识,设计一款单片机和简单外设控制的电子时钟。
主要功能要求最基本要求1)使用MCS-51单片机设计一个时钟。
要求具有6位LED显示、3个按键输入。
2)完成硬件实物制作或使用Pruteus仿真(注意位驱动应能提供足够的电流)。
3)6位LED数码管从左到右分别显示时、分、秒(各占用2位),采用24小时标准计时制。
开始计时时为000000,到235959后又变成000000。
4)使用3个键分别作为小时、分、秒的调校键。
每按一次键,对应的显示值便加1。
分、秒加到59后再按键即变为00;小时加到23后再按键即变为00。
在调校时均不向上一单位进位(例如分加到59后变为00,但小时不发生改变)。
5) 软件设计必须使用MCS-51片内定时器,采用定时中断结构,不得使用软件延时法,也不得使用其他时钟芯片。
单片机电子时钟课程设计实验报告(1)
单片机电子时钟课程设计实验报告(1)单片机电子时钟课程设计实验报告一、实验内容本次实验的主要内容是使用单片机设计一个电子时钟,通过编程控制单片机,实现时钟的显示、报时、闹钟等功能。
二、实验步骤1.硬件设计根据实验要求,搭建电子时钟的硬件电路,包括单片机、时钟模块、显示模块、按键模块等。
2.软件设计通过C语言编写单片机程序,用于实现时钟功能。
3.程序实现(1)时钟显示功能通过读取时钟模块的时间信息,在显示模块上显示当前时间。
(2)报时功能设置定时器,在每个整点时,通过发出对应的蜂鸣声,提示时间到达整点。
(3)闹钟功能设置闹钟时间和闹铃时间,在闹钟时间到达时,发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
(4)时间设置功能通过按键模块实现时间的设置,包括设置小时数、分钟数、秒数等。
(5)年月日设置功能通过按键模块实现年月日的设置,包括设置年份、月份、日期等。
三、实验结果经过调试,电子时钟的各项功能都能够正常实现。
在运行过程中,时钟能够准确、稳定地显示当前时间,并在整点时提示时间到达整点。
在设定的闹铃时间到达时,能够发出提示蜂鸣,并在屏幕上显示“闹钟时间到了”。
同时,在需要设置时间和年月日信息时,也能够通过按键进行相应的设置操作。
四、实验感悟通过本次实验,我深刻体会到了单片机在电子设备中的广泛应用以及C 语言在程序设计中的重要性。
通过实验,我不仅掌握了单片机的硬件设计与编程技术,还学会了在设计电子设备时,应重视系统的稳定性与可靠性,并善于寻找调试过程中的问题并解决。
在今后的学习和工作中,我将继续加强对单片机及其应用的学习与掌握,努力提升自己的实践能力,为未来的科研与工作做好充分准备。
单片机实验电子钟报告
实验四 电子钟(定时器、中断综合实验)一、实验目的熟悉MCS51类CPU 的定时器、中断系统编程方法, 了解定时器的应用、实时程序的设计和调试技巧。
二、实验内容编写一个时钟程序, 产生一个50ms 的定时中断, 对定时中断计数, 将时、分、秒显示在数码管上。
三、程序框图主程序中断处理电子钟程序框图四、实验步骤 1.连线说明: E5 区A0 ←→ A3 区A0 E5 区CS ←→ A3 区CS5 E5 区CLK ←→ B2 区2MHzE5 区A.B.C.D ←→ G5 区A.B.C.D (排线每个8 位, 注意高低位一致) 2.时间显示在数码管上五、程序清单 ms50 DATA 31H ;存放多少个50ms sec DATA 32H ;秒 min DATA 33H ;分hour DATA 34H ;时buffer DATA 35H ;显示缓冲区EXTRN CODE(Display8)ORG 0000HLJMP STARORG 000BH ;定时器T0中断处理入口地址LJMP INT_Timer0ORG 0100HSTAR: MOV SP,#60H ;堆栈MOV ms50,A ;清零ms50MOV hour,#12 ;设定初值: 12:59:50MOV min,#59MOV sec,#50MOV TH0,#60 ;定时中断计数器初值MOV TL0,#176 ;定时50msMOV TMOD,#1 ;定时器0: 方式一MOV IE,#82H ;允许定时器0中断SETB TR0 ;开定时器T0STAR1: LCALL Display ;调用显示JNB F0,$CLR F0SJMP STAR1 ;需要重新显示时间;中断服务程序INT_Timer0: MOV TL0,#176-5MOV TH0,#60PUSH 01HMOV R1,#ms50INC @R1 ;50ms单元加1CJNE @R1,#20,ExitIntMOV @R1,#0 ;恢复初值INC R1INC @R1 ;秒加1CJNE @R1,#60,ExitInt1MOV @R1,#0INC R1INC @R1 ;分加1CJNE @R1,#60,ExitInt1MOV @R1,#0INC R1INC @R1 ;时加1CJNE @R1,#24,ExitInt1MOV @R1,#0ExitInt1: SETB F0ExitInt: POP 01HRETIHexToBCD: MOV B,#10DIV ABMOV @R0,BINC R0MOV @R0,AINC R0RETDisplay: MOV R0,#bufferMOV A,secACALL HexToBCDMOV @R0,#10H ;第三位不显示INC R0MOV A,minACALL HexToBCDMOV @R0,#10H ;第六位不显示INC R0MOV A,hourACALL HexToBCDMOV R0,#bufferLCALL Display8RETENDEXTRN CODE (Display8)BUFFER DA TA 60HORG 0000HAJMP MAINORG 000BHAJMP IT0PMAIN: MOV TMOD,#01HMOV 20H,#20HCLR AMOV 52H,A ;计数和显示MOV 51H,A ;空间清零MOV 50H,#50HMOV 40H,AMOV 41H,AMOV 43H,AMOV 44H,AMOV 46H,AMOV 47H,ASETB ET0SETB EAMOV TH0,#9EH ;计数器赋初值MOV TL0,#58HSETB TR0MOV 45H,#11HMOV 42H,#11HMOV R0,#BUFFERLCALL Display8HERE: AJMP HEREIT0P: PUSH PSWPUSH ACCMOV TH0,#9EH ;重新转入计数值MOV TL0,#58HDJNZ 20H,RETURN ;计数不满20返回MOV 20H,#20H ;重置中断次数MOV A,#01H ;秒加1ADD A,50HDA A ;秒单元十进制调制PUSH ACCCJNE A,#60H,SWS ;是否到60秒, 否则返回MOV A,#00HSWS: MOV R5,ASW AP AANL A,#0FHMOV 41H,AMOV A,R5ANL A,#0FHMOV 40H,A ;满60秒, 秒单元清零LCALL AAAPOP ACCMOV 50H,ACJNE A,#60H,RETURNMOV 50H,#00HMOV A,#01H ;分单元加1ADD A,51H ;分单元十进制调整DA APUSH ACCCJNE A,#60H,SWS1;是否到60分, 否则返回MOV A,#00HSWS1: MOV R5,A·SW AP AANL A,#0FHMOV 44H,AMOV A,R5ANL A,#0FHMOV 43H,ALCALL AAAPOP ACCMOV 51H,ACJNE A,#60H,RETURNMOV 51H,#00H ;满60分, 分单元清零MOV A,#01H ;时单元加1ADD A,52HDA APUSH ACCCJNE A,#24H,SWS2 ;是否到24小时, 否则返回MOV A,#00HSWS2: MOV R5,ASW AP AANL A,#0FHMOV 47H,AMOV A,R5ANL A,#0FHMOV 46H,ALCALL AAAPOP ACCMOV 52H,ACJNE A,#24H,RETURNMOV 52H,#00H ;满24小时, 时单元清零RETURN:POP PSWPOP ACCRETIAAA: MOV R0,#40H ;计数器的值赋MOV R1,#60H ;给显示空间MOV R5,#08HABC: MOV A,@R0MOV @R1,AINC R1INC R0DJNZ R5,ABCMOV R0,#BUFFERLCALL Display8RETEND六、思考题1.电子钟走时精度与哪些有关系?中断程序中给TL0赋值为什么与初始化程序中不一样?2、使用定时器方式二, 重新编写程序。
单片机电子钟实训报告
单⽚机电⼦钟实训报告XXXXXXXX⼤学XXXXX学院《单⽚机》实训报告专业班级学号姓名组号实验室成绩评定⽼师签名20XX年XX⽉XX⽇实训⽬的:掌握汇编语⾔程序设计和调试⽅法,熟悉键盘操作。
掌握RAM中的数据操作。
掌握程序设计⽅法。
掌握简单的数值转换算法。
了解单⽚机的结构,能利⽤单⽚机的内部硬件资源和外围常⽤器件进⾏⼩型实验,体会利⽤单⽚机汇编语⾔开发系统的⼯作过程,达到与毕业后实际⼯作情况⼀致的效果,彻底完成与毕业后实际⼯作环境“接轨”的⽬的实训任务:1、选定题⽬:设计⼀个电⼦时钟,格式为:XX XX XX由左向右分别为时、分、秒,利⽤单⽚机的定时器和外围的数码显⽰电路,以便可以进⼀步掌握定时器的使⽤和编程⽅法,进⼀步掌握中断服务程序的编程⽅法,进⼀步掌握数码显⽰电路的编程⽅法;2、理清思路,定时器每100uS中断⼀次,对中断次数进⾏计数,100uS计数10000次就是1S,然后对秒计数得到分和⼩时值,画出主程序框图,画出定时中断服务程序的框图,从⽽领会中断服务程序的原理,并着⼿编写该⼦程序;3、学会⽤伟福软件调试程序,并⽤该软件菜单的各项调试⼯具和窗⼝;结合硬件和软件,进⾏整体调试;数据转化为BCD码并显⽰程序流程图4、流程图:(⾃⼰弄)实训要求:1、实训要求①通过系统设计和调试实训等,要求获得单⽚机熟练的操作维护技能,领会单⽚机开发的整个过程;②实训结束后,每⼈写出实训报告,通过⽂字⽅式总结出本门课程全部的所学、所得,以此达⾄加深巩固、提⾼的⽬的;③实训中处理各种软、硬件故障,特别要求学⽣具有良好的⼼理素质和吃苦耐劳精神,因此,本实训对培养学⽣正确的劳动观念、组织纪律性、团队合作精神和严谨的科学作风起到了⾄关重要的作⽤。
2、实训报告在实训过程中完成各实训任务的同时,写1份实训报告,即实训⼼得体会(要求⼿写)。
⼀、硬件部分AT89C51芯⽚ 7SEG-MPX8-CC-BLUE共阴极数码管试验⼀1、设计要求:①⽤AT89C51芯⽚、7SEG-MPX8-CC-BLUE共阴极数码管完成动态扫描②7SEG-MPX8-CC-BLUE共阴极数码管中显⽰的数字依次为765432102、硬件连接:确定连接⽅式,AT89C51的P1接7SEG-MPX8-CC-BLUE共阴极数码管的显⽰数据,P2接⽚选3、硬件电路:4、汇编语⾔:5、调试过程:在调试过程中出现⼀些问题,⽐如数码管⽆法正常显⽰数字,有的显⽰正确了,有的⽆法显⽰。
单片机电子钟实验报告
单片机电子钟实验报告单片机电子钟实验报告引言:单片机是一种集成电路,具有微处理器的功能。
它广泛应用于各种电子设备中,包括电子钟。
在这个实验中,我们通过使用单片机和其他电子元件,成功地制作了一台电子钟。
本报告将详细介绍我们的实验过程、结果和总结。
实验目的:我们的实验目的是设计和制作一台精确可靠的电子钟。
通过这个实验,我们希望了解单片机的基本原理和应用,同时提高我们的电路设计和焊接能力。
实验步骤:1. 准备工作:我们首先收集了所需的材料和工具,包括单片机、晶振、电容、电阻、显示器等。
然后,我们仔细阅读了单片机的技术规格和电路图。
2. 电路设计:根据单片机的技术规格和电路图,我们开始设计电路。
我们确定了电源电压、电路连接方式和元件数值。
然后,我们使用仿真软件验证了我们的设计。
3. 焊接电路板:在确认电路设计无误后,我们开始焊接电路板。
我们小心翼翼地将元件焊接到电路板上,并确保焊接点牢固可靠。
焊接完成后,我们使用万用表对焊接点进行了测试。
4. 编程:接下来,我们使用C语言编写了单片机的程序。
我们根据电路的功能需求,编写了显示时间、闹钟设置、闹钟响铃等功能的代码。
然后,我们使用编程器将程序烧录到单片机中。
5. 调试:在完成编程后,我们对电路进行了调试。
我们逐一测试了各个功能,确保电子钟的正常运行。
我们检查了显示、闹钟和时间设置等功能,并进行了一系列的测试。
实验结果:经过我们的不懈努力,我们成功地制作了一台功能完善的电子钟。
它能够精确显示时间,并具备闹钟功能。
在我们的测试中,电子钟的运行稳定,显示清晰可见。
实验总结:通过这个实验,我们深入了解了单片机的工作原理和应用。
我们学会了电路设计、焊接和编程等技能。
通过实际操作,我们提高了自己的动手能力和问题解决能力。
然而,我们也遇到了一些挑战。
在焊接电路板时,我们需要小心操作,以避免短路或焊接不牢固。
在编程过程中,我们需要仔细调试,以确保程序的正确性。
在未来的学习中,我们将进一步探索单片机的应用领域,并不断提高自己的技术水平。
单片机电子时钟实验报告
单片机电子时钟实验报告一、实验目的:1.了解单片机的基本知识和工作原理;2.掌握单片机的时钟生成方法;3.实现一个基本的电子时钟。
二、实验器材:1.STC89C52单片机开发板;2.LCD1602液晶显示屏;3.外部晶体振荡器;4.面包板、杜邦线等。
三、实验原理:单片机是由一个集成电路芯片组成的微型计算机系统。
它具有高度集成和灵活应用的特点,被广泛应用于各种电子设备中。
STC89C52是一种常见的单片机,具有可编程的特点,可以通过编写程序实现各种功能。
为了实现电子时钟功能,我们需要了解单片机的时钟生成方法。
单片机一般内部包含一个振荡器电路,通过外部晶体振荡器提供的时钟信号来控制单片机的工作速度。
具体实现时钟功能需要通过编写程序生成一个固定频率的脉冲信号,并通过控制液晶显示屏显示当前的时间。
四、实验步骤:1.将STC89C52单片机开发板、液晶显示屏、外部晶体振荡器等连接起来,按照电路图进行布线。
2.编写程序,通过设置定时器,生成1毫秒的定时中断信号。
在中断程序中,获取当前的系统时间,并进行相应的显示。
4.观察液晶显示屏,检查是否显示当前的时间,如正常显示,则实验成功。
五、实验结果与分析:经过实验,我们成功实现了一个简单的电子时钟。
液晶显示屏能够正常显示当前的时间,而且精度较高。
实验过程中,我们对单片机的工作原理和编程方法有了更深入的了解。
六、实验心得与体会:通过这次实验,我掌握了单片机的基本知识和工作原理,并实际编写了一个电子时钟程序。
通过实际操作,我对单片机的应用有了更深入的理解,也提高了动手能力和解决问题的能力。
在今后的学习和工作中,我将继续深入学习单片机的原理和应用,不断提高自己的技术水平。
单片机电子时钟实验报告
功能:通过数据口向液晶写数据
******************************/
voidlcd_wmd(uchar i)
{
P2=i;
rs=1;
rw=0;
e=0;
delay();
e=1;
}
/*****************************
函数名:液晶初始化
入口参数:
出口参数:
函数名:延时子函数
入口参数:
出口参数:
功能:延时
******************************/
void delay()
{
unsignedint j;
for(j=0;j<255;j++);
}
/*****************************
函数名:延时子函数
入口参数:
出口参数:
出口参数:
功能:通过数据口向液晶写命令
******************************/
void lcd_wmc(uchar i)//写命令
{
P2=i;
rs=0;
rw=0;
e=0;
delay();
e=1;
}
/*****************************
函数名:向液晶写数据
入口参数:i
功能:设定液晶显示初始化
******************************/
void lcd_init()//1602液晶初始化
{
lcd_wmc(0x01); //清屏
lcd_wmc(0x38); //
lcd_wmc(0x0c);
单片机实验报告(电子时钟)
一、课程设计的内容和要求:1了解单片机的种类,掌握单片机的工作原理;2 掌握利用单片机进行系统设计的方法;3掌握利用protel进行原理图设计和PCB设计的方法;4学会进行单片机硬件调试和软件调试;5 了解单片机系统整个设计开发流程。
二、设计装置功能1、用单片机实现设计要求(1)实现功能:①正常的24小时制的电子表功能显示(时/分/秒)。
②任意时间(时/分/秒)闹钟时刻的设置并在设定时刻响铃。
(2)所使用器件:STC 89C52RC单片机1个、2位共阳极数码管3个、蜂鸣器1个、74LS138一片、74LS47一片、74HC04一片、电阻、电容及其他辅助电子元件。
(3)显示时间与闹钟时刻的设置:单片机的人机操作部分由六个按钮组成。
从电子钟电路板上(从左到右)分别是:①单片机复位键②闹钟开关③小时位累加键④分钟位累加键⑤秒钟位累加键⑥闹钟/时间显示切换键按键说明:复位键——把3个2位数码管显示数字全部清零。
闹钟开关键——按下键,闹钟开关模式切换。
时针位累加键——按下键,则实现时针位的累加00-23(累加循环)。
分针位累加键——按下键,则实现分针位的累加00-59(累加循环)。
秒针位累加键——按下键,则实现秒针位的累加00-59(累加循环)。
闹钟/时间显示切换键——按下键,能够实现数码管闹钟和时间两种显示功能的切换。
三、设计问题分析面对的问题主要是两方面:一个是软件的设计,也就是实现计时定时的控制功能的程序编辑,在电脑上模拟需要实现的功能;另一个是硬件的设计,需要我们自己购买器件、设计并焊接电路板。
而更为重要的一步是将软件、硬件相结合,做好电路后,我们试着把程序写入芯片测试,然而没有获得应该有的显示,接着我们多次检查电路,修改程序,在不断调试中终于实现正确显示。
四、设计思路本次设计的系统以动态显示显示时分秒模块,它能显示正确的时间,而且所显示时间与北京时间相同,基本做到同步,显示清晰明亮,可读性强。
系统主程序开始后,首先是对系统环境初始化,设置好时分秒后系统开始运行;然后可打开闹钟,预设响铃的时刻,计时系统到该时刻后自动响设定铃声。
单片机汇编程序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电子时钟
一、实验内容:设计一个数字时钟,显示范围为00:00:00~23:59:59。
通过5个开关进行控制,其中开关K1用于切换时间设置(调节时钟)和时钟运行(正常运行)状态;开关K2用于切换修改时、分、秒数值;开关K3用于使相应数值加1调节;开关K4用于减1调节;开关K5用于设定闹钟,闹钟同样可以设定初值,并且设定好后到时间通过蜂鸣器发声作为闹铃。
选做增加项目:还可增加秒表功能(精确到0.01s)或年月日设定功能。
二、实验电路及功能说明1602显示器电路(不需接线)电子音响电路按键说明:按键键名功能说明K1切换键进入设定状态K2 校时依次进入闹钟功能是否启用,闹钟时,分秒,年,月,日及时间时,分,秒的设置,直到退出设置状态K3 加1键调整是否起用闹钟和调节闹钟时,分,秒,年,月,日,时间的时,分,秒的数字三、实验程序流程图:四、实验结果分析定时程序设计:单片机的定时功能也是通过计数器的计数来实现的,此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲,也就是每经过1个机器周期的时间,计数器加1。
如果MCS-51采用的12MHz晶体,则计数频率为1MHz,即每过1us的时间计数器加1。
这样可以根据计数值计算出定时时间,也可以根据定时时间的要求计算出计数器的初值。
MCS-51单片机的定时器/计数器具有4种工作方式,其控制字均在相应的特殊功能寄存器中,通过对特殊功能寄存器的编程,可以方便的选择定时器/计数器两种工作模式和4种工作方式。
定时器/计数器工作在方式0时,为13位的计数器,由TLX(X=0、1)的低5位和THX的高8位所构成。
TLX低5位溢出则向THX进位,THX计数溢出则置位TCON中的溢出标志位TFX.当定时器/计数器工作于方式1,为16位的计数器。
本设计师单片机多功能定时器,所以MCS-51内部的定时器/计数器被选定为定时器工作模式,计数输入信号是内部时钟脉冲,每个机器周期产生一个脉冲使计数器增1。
单片机实验报告--电子时钟制作
电子时钟制作学院计算机科学与技术专业计算机科学与技术(师范) 学号学生姓名一、设计内容与设计目的1、编写出一个电子钟,六个数码管每两个一组来分别显示小时、分和秒;一个蜂鸣器来实现报时或闹铃等声音功能;八个二极管玩花样设计,完美电子的整体设计。
2、熟悉整个电路图,练习一下焊接操作。
3、熟练掌握C51的编程方法与技巧。
4、能够有效地控制数码管、二极管、蜂鸣器和键盘的操作(可采用多种形式)。
5、能够根据原理图焊接电路板,经过调试,保证整个电路板没有虚焊点。
硬件设计要求1、根据项目要求,去选择相应的电路,比如MCU系统,输入输出驱动电路,电源供电电路。
2、整体布局合理,标注规范、明确、美观、不产生歧义。
3、列出完整的元件清单(标号、型号及大小、封装形式、数量)。
4、估算电路板的功耗,并对供电形式提出要求。
5、根据设计好的原理图,焊接实物。
软件设计要求1、所编代码要能够实现以下基本功能,当时时间的设定,定点闹铃,秒针走一下四个二极管同时向右移一位。
2、根据项目要求,设计软件整体规划,人机对话,各模块的关联,底层驱动模块。
3、程序在必要的地方进行注释。
每个函数的出入口要有输入输出参数的说明。
程序必须具有具有良好的可读性,可重用,容易调试和维护。
4、使用c语言进行编程。
二、硬件系统设计1.STC12C5A60S2控制模块考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、数码管的显示控制等,我们选择了学习过的12C5A60S2系列单片机,具有反应速度极快,工作效率特高的特点。
12C5A60S2是一种低功耗、高性能得微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
另外掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.键盘功能模块根据系统的基本的要求,基于时间的观看和设定等功能,采用由四个键构成的独立式键盘分别接在单片机的P3.2-P3.5口,非常的方便,同时相对于独立式键盘大大节省了空间,在软件的设计时带来了极大的方便,使程序简易明了,可读性强。
单片机_ 电子时钟实验报告[1]
单片机_ 电子时钟实验报告[1]
本次实验是使用单片机设计的电子时钟,它可以实现24小时的时间显示。
本次实验
的实现过程中,使用到了微处理器核心处理器8051,它具有运算能力强、指令结构简单等优点,是单片机的经典之作。
实验的完成过程中,首先需要安装实验所需的部件。
具体包括:微处理器核心处理器8051、七段数码管、5V电源模块和按键模块。
接下来需要连接电子组件,经过排序,电路原理图为:电池供电。
通过805单片机的定时,实现对时钟的运行。
接着就可以进行编程。
此处使用的编程语言是C语言。
在编程的过程中,首先要设定
主函数,确定程序的执行流程。
接着将要实现的功能分解为若干个子函数,完成编程工作。
接下来,编写完代码后,就可以验证本次实验。
实际运行时,将电子组件按照设计的
电路原理图进行对接,按指定的代码运行,程序会自动运行,最后显示出现电子时钟的数
字显示。
以上就是本次实验的全部过程。
在本次实验中,我们所学到的主要的内容是:微处理
器的基础和指令;使用C语言编写程序;电子时钟的设计原理;实现电子时钟的电路原理图。
整个实验过程锻炼了我们的动手能力,为我们今后接触更复杂的设计工作打下了基础。
单片机电子钟实习实训报告
单片机电子钟实习实训报告一、前言随着科技的不断发展,单片机技术在各个领域得到了广泛的应用。
为了更好地了解和掌握单片机原理及应用,提高我们的动手能力,学校组织了一次单片机电子钟实习实训。
本次实习实训的目标是设计并制作一个基于单片机的电子钟,实现小时、分钟和秒的显示,同时具备校时功能。
二、实习实训内容1. 了解单片机的基本原理和工作原理,熟悉单片机的编程环境和编程语言。
2. 学习电子钟的设计原理,掌握电子钟的显示方式、时间计算方法和校时功能实现方法。
3. 设计并制作电子钟的硬件电路,包括单片机、显示模块、按键模块等。
4. 编写电子钟的程序代码,实现小时、分钟和秒的显示,以及校时功能。
5. 进行电路仿真和实际制作,调试并优化电路性能。
三、实习实训过程1. 理论学习和准备:在实习实训开始前,我们学习了单片机的基本原理、编程环境和编程语言,了解了电子钟的设计原理和实现方法。
2. 硬件设计:根据设计要求,我们设计了一个简单的电子钟硬件电路,包括单片机、LCD显示模块、按键模块等。
其中,单片机作为核心控制器,负责时间计算和显示控制;LCD显示模块用于显示时间;按键模块用于实现校时功能。
3. 程序编写:根据硬件设计,我们编写了一个简单的电子钟程序,实现了小时、分钟和秒的显示,以及校时功能。
程序采用C语言编写,利用单片机的定时器进行时间计算,通过I/O口控制LCD显示模块和按键模块。
4. 电路仿真和实际制作:在完成程序编写后,我们使用Proteus软件对电路进行了仿真,验证了电路设计的正确性和可靠性。
随后,我们根据仿真结果实际制作了电子钟电路,并进行了调试和优化。
四、实习实训成果通过本次实习实训,我们成功地设计并制作了一个基于单片机的电子钟,实现了小时、分钟和秒的显示,以及校时功能。
在实习过程中,我们不仅学习了单片机原理和电子钟设计方法,还提高了动手实践能力,为以后的学习和工作打下了坚实的基础。
五、总结本次单片机电子钟实习实训让我们深刻体会到了理论与实践相结合的重要性。
单片机-电子时钟实验报告
一、实验任务及要求在焊接的电路板中,4个LED数码管,设计带有闹铃功能的数字时钟,要求:1、在4位数码管上显示当前时间。
显示格式“时时分分”;2、由LED闪动做秒显示;3、利用按键可对时间及闹玲进行设置,并可显示闹玲时间。
当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。
二、方案论证与比较数字时钟方案数字时钟是本设计的最主要的部分。
根据需要,可利用两种方案实现。
方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:本方案完全用软件实现数字时钟。
原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现5毫秒定时中断,每产生一次中断,存储器内相应的计数值加1;若计数值达到200,则将其清零,并将方案一:静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8 位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
方案二:动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度合适,字符才不闪烁。
显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O口,降低了能耗。
从节省I/O口和降低能耗出发,本设计采用方案二。
单片机制作时钟实训报告
随着科技的不断发展,单片机作为一种集计算机技术、微电子技术和自动控制技术于一体的综合性技术,已经在各个领域得到了广泛的应用。
为了提高我们的实践能力和创新意识,我们选择了单片机制作时钟这一实训项目,通过实际操作来深入了解单片机的应用和编程技巧。
二、实训目的1. 熟悉单片机的基本原理和结构。
2. 掌握单片机的编程方法和技巧。
3. 学会使用常用电子元器件,如数码管、按键等。
4. 培养团队合作精神和动手能力。
三、实训内容1. 硬件设计(1)选用MCS-51单片机作为核心控制器;(2)使用8位LED数码管显示时间,包括时、分、秒;(3)设计按键模块,实现时间设置、闹钟设定等功能;(4)设计电源模块,保证系统稳定运行。
2. 软件设计(1)编写时钟计数程序,实现时间的精确计数;(2)编写按键扫描程序,实现时间设置、闹钟设定等功能;(3)编写显示控制程序,实现时间信息的实时显示。
3. 系统调试(1)对硬件电路进行连接和调试,确保电路正常运行;(2)对软件程序进行调试,修正错误,优化性能;(3)进行功能测试,验证系统功能的正确性和稳定性。
1. 需求分析根据实训要求,分析时钟功能,确定硬件和软件设计方案。
2. 硬件选型与电路设计根据需求分析,选择合适的单片机、数码管、按键等元器件,并设计电路图。
3. 软件编程使用C语言编写时钟计数、按键扫描、显示控制等程序。
4. 实物制作与调试按照电路图焊接电路板,组装元器件,进行实物制作。
然后对硬件电路和软件程序进行调试,确保系统正常运行。
5. 功能测试与优化对系统进行功能测试,验证时钟的准确性、按键功能的可靠性、显示的清晰度等。
根据测试结果对系统进行优化,提高性能。
五、实训成果1. 成功制作了一款基于单片机的电子时钟,具有实时显示、时间设置、闹钟设定等功能;2. 掌握了单片机的基本原理和编程方法,提高了实践能力;3. 学会了使用常用电子元器件,为以后的学习和工作打下了基础。
六、实训总结通过本次单片机制作时钟实训,我们深入了解了单片机的应用和编程技巧,提高了实践能力和创新意识。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告设计题目: 电子时钟设计指导教师:姓名:学号:班级:专业:日期: 2012-1-5目录摘要 (3)第一章系统设计要求 (4)1.1基本功能 (4)1.2扩展功能 (4)第二章硬件总体设计方案 (4)2.1系统功能实现总体设计思路 (4)2.2各部分功能实现 (6)2.3系统工作原理 (6)2.4时钟各功能分析及图解 (6)2.4.1电路各功能图解分析 (7)2.4.2电路功能使用说明 (10)第三章软件总体设计方案 (1)控制电路的C语言源程序 (10)第四章课程设计结果分析 (19)第五章总结 (20)参考文献 (21)单片机电子时钟摘要:单片机即单片微型计算机。
(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。
他体积小,成本低,功能强,广泛应用于工业自动化上和智能产品。
时钟,自从它被发明的那天起,就成为了人类的好朋友,但随着时间的推移,科学技术的不断发展,时钟的应用越来越广范,人们对时间计量的精度要求也越来越高。
怎样让时钟更好的为人民服务,怎样让我们的老朋友再次焕发青春呢?这就要求我们不断设计出新型的时钟,来不断满足人们的日常生活需要。
然而市场上的时钟便宜的比较笨重,简单实用的又比较昂贵。
那么,有没有一款既简单实用价格又便宜的时钟呢?我们课程设计小组设想:可不可以利用单片机功能集成化高,价格又便宜的特点设计一款结构既简单,价格又便宜的单片机电子时钟呢?基于这种情况,我们课程设计小组成员多方查阅资料,反复论证设计出了这款既简单实用,又价格便宜的——单片机电子时钟。
关键词:单片机时钟计时第一章系统设计要求1.1 基本功能(1)能够显示时分秒(2)能够调整时分秒1.2 扩展功能(1)能够任意设置定时时间(2)定时时间到闹铃能够报警(3)实现了秒表功能第二章硬件总体设计方案本次设计时钟电路,使用了STC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易,这样通过四个模块:键盘、芯片、扬声器、显示屏即可满足设计要求。
2.1系统功能实现总体设计思路此设计原理框图如图2-1所示,此电路包括以下四个部分:单片机,键盘,闹铃电路及显示电路。
图2-1 设计原理框图经多方论证硬件我们小组采用AT89C51单片机和7SED 八位共阳极数码管等来实现单片机电子时钟的功能。
详细元器件列表如表2.1所示:表2.1 详细元器件列表2.2各部分功能实现(1)单片机发送的信号通过程序控制最终在数码管上显示出来。
(2)单片机通过输出各种电脉冲信号来驱动控制各部分正常工作。
(3)为使时钟走时与标准时间一致,校时电路是必不可少的,键盘用来校正数码管上显示的时间。
(4)单片机通过控制闹铃电路来完成定时闹钟的功能。
2.3系统工作原理设计的电路主要由四模块构成:单片机控制电路,显示电路、闹铃电路以及校正电路。
详细电路功能图如图2-2:本设计采用C语言程序设计,使单片机控制数码管显示时、分、秒,当秒计数计满60时就向分进位,分计数器计满60后向时计数器进位,小时计数器按“23翻0”规律计数。
时、分、秒的计数结果经过数据处理可直接送显示器显示。
当计时发生误差的时候可以用校时电路进行校正。
设计采用的是时、分、秒显示,单片机对数据进行处理同时在数码管上显示。
2.4时钟各功能分析及图解2.4.1电路各功能图解分析(1)时钟运行图仿真开始运行时,或按下key4键时,时钟从12:00:00开始运行,其中key2键对分进行调整,key3对小时进行调整,key6可以让时钟暂停。
时钟运行图如图2-3 所示:(2)秒表计时图当按下key1键进入秒表计时状态,key6是秒表暂停键,可按key4键跳出秒表计时状态。
如图2-4:(3)闹铃设置图及运行图当按下key5,开始定时,分别按key2调分,key3调时设置闹铃时间,然后按下key4键恢复时钟运行状态(图2-5)当闹铃设置时间到时,蜂鸣器将发出10秒中蜂鸣声(图2-6)。
该数字钟是用一片STC89C52单片机通过编程去驱动8个数码管实现的。
通过6个开关控制,从上到下6个开关KEY1-KEY6的功能分别为:KEY1,切换至秒表;KEY2,调节时间,每调一次时加1;KEY3, 调节时间,每调一次分加1;KEY4,从其它状态切换至时钟状态;KEY5,切换至闹钟设置状态,也可以对秒表清零;KEY6,秒表暂停.控制键分别与P1.0~P1.5口连接.其中:A通过P2口和P3口去控制数码管的显示如图所示P2口接数码管的a——g端,是控制输出编码,P3口接数码管的1——8端,是控制动态扫描输出.B从P0.0输出一个信号使二极管发光,二极管在设置的闹钟时间到了时候发光,若有乐曲可以去驱动扬声器实现。
2.4.2电路功能使用说明(1)各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。
STC89C51单片机,通过编写程序对数码显示进行控制。
(2)八个7段数码管显示时钟和秒表信号。
第三章软件总体设计方案控制电路的C语言源程序#include <reg52.h>#include <intrins.h>unsigned char data dis_digit;unsigned char key_s, key_v;unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xbf};// 4, 5, 6, 7, 8, 9,—unsigned char data dis_buf[8];unsigned char data dis_index;unsigned char hour,min,sec;unsigned char sec100;sbit K1 = P1^1;sbit K2 = P1^2;bit scan_key();void proc_key();void inc_sec();void inc_min();void inc_hour();void display();void delayms(unsigned char ms);void main(void){P2 = 0xff;P3 = 0xff;TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式TH1 = 0xdc;TL1 = 0;TH0 = 0xFC;TL0 = 0x17;hour = 12;min = 00;sec = 00;sec100 = 0;dis_buf[0] = dis_code[hour / 10]; // 时十位dis_buf[1] = dis_code[hour % 10]; // 时个位dis_buf[3] = dis_code[min / 10]; // 分十位dis_buf[4] = dis_code[min % 10]; // 分个位dis_buf[6] = dis_code[sec / 10]; // 秒十位dis_buf[7] = dis_code[sec % 10]; // 秒个位dis_buf[2] = 0xbf; // 显示"-"dis_buf[5] = 0xbf; // 显示"-"dis_digit = 0xfe;dis_index = 0;TCON = 0x01;IE = 0x8a; // 使能timer0,1 中断TR0 = 1;TR1 = 1;key_v = 0x03;while(1){if(scan_key()){delayms(10);if(scan_key()){key_v = key_s;proc_key();}}}}bit scan_key(){key_s = 0x00;key_s |= K2;key_s <<= 1;key_s |= K1;return(key_s ^ key_v); }void proc_key(){EA = 0;if((key_v & 0x01) == 0) // K1{inc_hour();// JJ=1;}else if((key_v & 0x02) == 0) // K2{min++;// JJ=0;if(min > 59){min = 0;}dis_buf[3] = dis_code[min / 10]; // 分十位dis_buf[4] = dis_code[min % 10]; // 分个位}EA = 1;}void timer0() interrupt 1// 定时器0中断服务程序, 用于数码管的动态扫描// dis_index --- 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量// dis_digit --- 位选通值, 传送到P2口用于选通当前数码管的数值, 如等于0xfe时,// 选通P2.0口数码管// dis_buf --- 显于缓冲区基地址{TH0 = 0xFC;TL0 = 0x17;P3 = 0xff; // 先关闭所有数码管P2 = dis_buf[dis_index]; // 显示代码传送到P0口P3= dis_digit; //dis_digit = _crol_(dis_digit,1); // 位选通值左移, 下次中断时选通下一位数码管dis_index++; //dis_index &= 0x07; // 8个数码管全部扫描完一遍之后,再回到第一个开始下一次扫描}void timer1() interrupt 3{TH1 = 0xdc;sec100++;if(sec100 >= 100){sec100 = 0;inc_sec();}}void inc_sec(){sec++;if(sec > 59){sec = 0;inc_min();}dis_buf[6] = dis_code[sec / 10]; // 秒十位dis_buf[7] = dis_code[sec % 10]; // 秒个位}void inc_min(){min++;if(min > 59){min = 0;inc_hour();}dis_buf[3] = dis_code[min / 10]; // 分十位dis_buf[4] = dis_code[min % 10]; // 分个位}void inc_hour(){hour++;if(hour > 23){hour = 0;}if(hour > 9)dis_buf[0] = dis_code[hour / 10]; // 时十位elsedis_buf[0] = 0xff; // 当小时的十位为0时不显示dis_buf[1] = dis_code[hour % 10]; // 时个位}void delayms(unsigned char ms)// 延时子程序{unsigned char i;while(ms--){for(i = 0; i < 120; i++);}}第四章课程设计结果分析此时钟设计是利用protues仿真软件进行仿真,基本上实现了课程设计要求实现的功能。