单片机课程设计电子时钟

合集下载

单片机课程设计电子时钟

单片机课程设计电子时钟

单片机课程设计电子时钟一、课程目标知识目标:1. 让学生理解单片机的基本原理和编程方法,掌握单片机在电子时钟设计中的应用。

2. 使学生掌握电子时钟的组成和工作原理,包括时、分、秒的显示与计时功能。

3. 帮助学生了解电子时钟设计中涉及的硬件知识,如晶振、计数器、显示器件等。

技能目标:1. 培养学生运用单片机编程实现电子时钟功能的能力,提高学生的动手实践能力。

2. 培养学生分析问题、解决问题的能力,能够针对电子时钟设计过程中遇到的问题进行调试和优化。

3. 培养学生团队协作能力,通过分组合作完成课程设计任务。

情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养学生主动学习的积极性。

2. 培养学生严谨的科学态度,注重实验数据的真实性,养成良好的实验习惯。

3. 增强学生的创新意识,鼓励学生在课程设计中发挥想象力和创造力,提高学生的创新能力。

课程性质:本课程为实践性课程,注重培养学生的动手能力和实际应用能力。

学生特点:学生已具备一定的单片机基础知识和编程技能,对电子制作有较高的兴趣。

教学要求:结合课本内容,注重理论与实践相结合,通过课程设计提高学生的综合应用能力。

将课程目标分解为具体的学习成果,以便在教学设计和评估过程中有针对性地指导学生。

二、教学内容1. 理论知识:- 单片机原理与编程:复习课本第三章内容,重点掌握单片机的内部结构、工作原理、指令系统及编程方法。

- 电子时钟原理:学习课本第四章关于时钟电路的设计,了解时、分、秒的计数原理及显示技术。

2. 实践操作:- 硬件设计:根据课本第五章内容,选用51单片机及相关元器件,设计电子时钟的硬件电路,包括晶振、计数器、显示器件等。

- 软件编程:运用C语言或汇编语言,编写电子时钟的程序代码,实现时、分、秒的显示与计时功能。

3. 教学大纲:- 第一周:复习单片机基础知识,讲解电子时钟原理,分配课程设计任务。

- 第二周:进行硬件电路设计,学习并选用合适的元器件,绘制原理图。

单片机课程设计--电子时钟

单片机课程设计--电子时钟

单片机课程设计一、设计内容该课程设计是利用MCS-51单片机内部的定时/计数器、中断系统、以及外围的按键和LED显示器等部件,设计一个单片机电子时钟。

设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制等。

二、电子时钟设计思想:用定时/计数器T0,工作于定时,采用方式1,对12MHZ 的系统时钟进行定时计数,初值设为XXYY(自己计算)。

形成定时时间为50ms。

用片内RAM的7BH单元对50ms计数,计20次1秒钟到,然后对秒计数器78H单元加1,秒计数器加到60后向分进位,则分计数器79H单元加1而秒计数器78H单元清零;分计数器加到60后又向时进位,则时计数器7AH单元加1而分计数器79H单元清零;时计数器加到24则时计数器清零。

然后把秒、分、时计数器分成十位和个位放到8个数码管的显示缓冲区,通过数码管显示出来。

显示格式为小时十位、小时个位---分十位、分个位---秒十位、秒个位。

在处理过程中加上了按键判断程序,能对按键处理。

三、电子时钟硬件图四、软件程序:;采用8位LED软件译码动态显示程序;使用AT89C51单片机,12MHZ晶振,P0输出字段码,P2口输出位选码,用共阳;LED数码管,P1.0为调时位选择按键,P1.1为加1键,P1.2为减1键。

;片内RAM的70H到77H单元为LED数码管的显示缓冲区;78H,79H,7AH分别为秒、分、小时计数单元;7BH为50ms计数器,7CH为调时按键计数器ORG 0000HLJMP STARTORG 000BH ;定时器/计数器T0中断程序入口LJMP INTT0;主程序START:MOV R0,#70HMOV R7,#0CHINIT: MOV @R0,#00H ;存储单元清零INC R0DJNZ R7,INITMOV 72H,#10 ;时、分、秒之间的短横显示MOV 75H,#10MOV TMOD,#01HMOV TL0,#0B0H ;50ms定时初值MOV TH0,#03CHSETB EASETB ET0SETB TR0START1: LCALL SCANLCALL KEYSCANSJMP START1;延时1MS子程序DL1MS: MOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2DJNZ R6,DL1RET;延时20MS子程序DL20MS: ACALL SCANACALL SCANACALL SCANRET;数码管显示程序SCAN: MOV A,78H ;秒计数值由二进制转十进制后MOV B,#0AH ; 送入显示缓冲区相应位置DIV ABMOV 71H,AMOV 70H,BMOV A,79H ;分计数值由二进制转十进制后MOV B,#0AH ; 送入显示缓冲区相应位置DIV ABMOV 74H,AMOV 73H,BMOV A,7AH ;时计数值由二进制转十进制后MOV B,#0AH ; 送入显示缓冲区相应位置DIV ABMOV 77H,AMOV 76H,BMOV R1,#70H ;循环扫描显示MOV R5,#80H ;显示秒个位的位码(LED共阳)MOV R3,#08HSCAN1: MOV A,R5MOV P2,A ;位码从P2口送出MOV A,@R1MOV DPTR,#TABMOVC A,@A+DPTRMOV P0,A ;字段码从P0口送出MOV A,R5LCALL DL1MS ;延时1msINC R1MOV A,R5RR AMOV R5,ADJNZ R3,SCAN1MOV P2,#00HMOV P0,#0FFHRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH ;“0~9”,“-”的共阳极字段码;定时器/计数器T0中断服务程序INTT0: PUSH ACCPUSH PSWCLR ET0CLR TR0MOV TL0,#0B0HMOV TH0,#03CHSETB TR0INC 7BHMOV A,7BHCJNE A,#14H,OUTT0MOV 7BH,#00INC 78HMOV A,78HCJNE A,#3CH,OUTT0MOV 78H,#00INC 79HMOV A,79HCJNE A,#3CH,OUTT0MOV 79H,#00INC 7AHMOV A,7AHCJNE A,#18H,OUTT0MOV 7AH,#00OUTT0:SETB ET0pop pswpop accRETI;按键处理程序KEYSCAN: CLR EAJNB P1.0,KEYSCAN0JNB P1.1,KEYSCAN1JNB P1.2,KEYSCAN2 KEYOUT: SETB EARETKEYSCAN0: LCALL DL20MS JB P1.0,KEYOUTWAIT0: JNB P1.0,WAIT0INC 7CHMOV A,7CHCLR TR0CLR ET0CJNE A,#03H,KEYOUTMOV 7CH,#00SETB TR0 ;K0按3次后又恢复走时SETB ET0SJMP KEYOUTKEYSCAN1: LCALL DL20MSJB P1.1,KEYOUTWAIT1: JNB P1.1,WAIT1MOV A,7CHCJNE A,#02H,KSCAN11INC 79H ;分计数器加1MOV A,79HCJNE A,#3CH,KEYOUTMOV 79H,#00SJMP KEYOUTKSCAN11: INC 7AH ;时计数器加1MOV A,7AHCJNE A,#18H,KEYOUTMOV 7AH,#00SJMP KEYOUTKEYSCAN2: LCALL DL20MSJB P1.2,KEYOUTWAIT2: JNB P1.2,WAIT2MOV A,7CHCJNE A,#02H,KSCAN21DEC 79HMOV A,79HCJNE A,#0FFH,KEYOUTMOV 79H,#3BH ;把59给分计数器SJMP KEYOUTKSCAN21: DEC 7AHMOV A,7AHCJNE A,#0FFH,KEYOUTMOV 7AH,#17H ;把23给时计数器SJMP KEYOUTEND五、要求:1、在PROTEUS中设计硬件,在KEIL51中编写软件,在PROTEUS中运行程序仿真实现。

单片机课程设计报告单片机的电子钟设计

单片机课程设计报告单片机的电子钟设计

单片机课程设计报告---单片机的电子钟设计单片机课程设计报告---单片机的电子钟设计一、设计简介本课程设计是以单片机为核心,设计一个具有显示时间和闹钟功能的电子钟。

电子钟是人们日常生活中必备的计时工具,其精度和稳定性直接影响到人们的时间安排和生活质量。

因此,本设计的目的是通过学习和实践,掌握单片机的应用和电子钟的设计方法,提高我们的实践能力和理论知识水平。

二、硬件设计1.单片机选择本设计选用AT89C51单片机作为主控制器。

AT89C51是一种低功耗、高性能的8位单片机,具有丰富的I/O口和片内资源,适合用于各种嵌入式系统开发。

2.显示模块显示模块采用LED数码管,用于显示时间、日期和闹钟状态。

为了方便调试和编程,我们选用4位一体式数码管。

3.按键模块按键模块包括功能键和调整键,用于设置时间、日期和闹钟。

我们选用4个独立式按键,分别实现上调、下调、设置和闹钟功能。

4.蜂鸣器模块蜂鸣器模块用于发出闹钟声音。

我们选用一款常见的无源蜂鸣器,通过单片机的一个IO口控制其频率,实现声音提示功能。

三、软件设计1.时钟芯片驱动本设计选用DS1302时钟芯片,用于提供实时时间和日期的信息。

DS1302与单片机通过I2C协议进行通信,需要编写相应的驱动程序。

驱动程序包括时钟芯片的初始化、数据读写和中断处理等。

2.显示驱动显示驱动程序负责控制数码管的显示。

驱动程序包括延时函数、位选函数和段选函数等。

通过调用这些函数,我们可以实现时间、日期和闹钟状态的动态显示。

3.按键驱动按键驱动程序负责识别用户的按键操作。

驱动程序通过检测独立式按键的状态变化,识别出不同的按键操作,并执行相应的功能。

例如,当用户按下上调键时,驱动程序将调用时钟芯片的读秒函数,并将时间的小时数加1。

4.蜂鸣器驱动蜂鸣器驱动程序负责控制蜂鸣器的声音频率。

驱动程序通过设置单片机的定时器寄存器,产生一定频率的方波信号,驱动蜂鸣器发声。

为了实现不同的声音效果,我们可以通过改变方波信号的频率和持续时间来实现。

单片机电子时钟课程设计设计报告

单片机电子时钟课程设计设计报告

单片机电子时钟设计一、作品功能介绍该作品是个性化电子钟设计,技术上主要用单片机(AT89S52)主控,6位LED数码显示,分别显示“小时:分钟:秒”。

该作品主要用于24小时计时显示,能整时报时,能作为秒表使用,能定时闹铃1分钟。

功能介绍:(1)上电以后自动进入计时状态,起始于00:00:00。

(2)设计键盘调整时间,完成时间设计,并设置闹钟。

(3)定时时间为1/100秒,可采用定时器实现。

(4)采用LED数码管显示,时、分,秒采用数字显示。

(5)采用24小时制,具有方便的时间调校功能。

(6)具有时钟和秒表的切换功能。

使用方法:开机后时钟在00:00:00起开始计时。

(1)长按进入调分状态:分单元闪烁,按加1,按减1.再长按进入时调整状态,时单元闪烁,加减调整同调分.按长按退出调整状态。

(2)(2)按进入设定闹时状态: 12:00: ,可进行分设定,按分加1,再按为时调整,按时加1,按调闹钟结束.在闹铃时可按停闹,不按闹铃1分钟。

(3)按下进入秒表状态:再按秒表又启动,按暂停,再按秒表清零,按退出秒表回到时钟状态。

二、电路原理图如原理图所示,硬件系统主要由单片机最小应用系统、LED数码管显示模块、电源模块、晶振模块、按键模块等组成。

电子时钟原理图各个模块设计1.单片机系统 AT89S52 AT89S52概述:是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。

AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

单片机课程设计电子时钟

单片机课程设计电子时钟

单片机课程设计 电子时钟一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解电子时钟的工作流程;2. 使学生了解并掌握电子时钟各模块的功能,如时钟芯片、显示模块等;3. 帮助学生掌握C语言编程在单片机开发中的应用。

技能目标:1. 培养学生运用单片机进行电子时钟设计与制作的能力;2. 培养学生分析问题、解决问题的能力,能够针对电子时钟的故障进行排查和修复;3. 提高学生的团队协作能力和沟通能力,能够与他人共同完成课程项目。

情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养其创新精神和实践能力;2. 培养学生严谨、踏实的科学态度,注重实验操作的规范性和安全性;3. 引导学生关注科技发展,认识到单片机技术在实际应用中的重要性。

分析课程性质、学生特点和教学要求,本课程将目标分解为以下具体学习成果:1. 学生能够独立完成电子时钟的硬件设计和程序编写;2. 学生能够通过调试,使电子时钟正常运行,并进行功能展示;3. 学生能够撰写课程报告,总结电子时钟设计与制作过程中的经验教训;4. 学生能够在课程项目中积极与他人合作,共同解决问题,提高团队协作能力。

二、教学内容1. 单片机基础知识:介绍单片机的组成、工作原理和编程语言,对应教材第1章内容;- 单片机硬件结构- 单片机工作原理- C语言编程基础2. 电子时钟原理及设计:讲解电子时钟的各模块功能及连接方式,对应教材第2章内容;- 时钟芯片原理及应用- 显示模块原理及应用- 硬件电路设计与连接3. 单片机编程实践:教授单片机编程技巧,以实现电子时钟功能,对应教材第3章内容;- 编程环境搭建- 程序结构设计- 代码编写与调试4. 电子时钟制作与调试:指导学生完成电子时钟的组装、编程和调试,对应教材第4章内容;- 硬件电路搭建- 软件编程与下载- 系统调试与优化5. 课程项目与实践:组织学生进行课程项目,提高实际操作能力,对应教材第5章内容;- 项目任务分配- 团队合作与沟通- 成果展示与评价教学内容安排与进度:1. 第1周:单片机基础知识学习;2. 第2周:电子时钟原理及设计;3. 第3周:单片机编程实践;4. 第4周:电子时钟制作与调试;5. 第5周:课程项目与实践。

单片机课程设计电子钟

单片机课程设计电子钟

单片机课程设计电子钟一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解其内部结构及工作流程;2. 使学生掌握电子时钟的基本原理,包括时、分、秒的计算与显示;3. 引导学生了解并运用编程语言(如C语言)实现对单片机的控制。

技能目标:1. 培养学生运用所学知识,独立设计并制作一个简单的电子时钟;2. 提高学生动手实践能力,学会使用编程软件、调试程序;3. 培养学生团队协作能力,共同完成课程设计任务。

情感态度价值观目标:1. 激发学生对单片机及电子制作的兴趣,培养其创新意识;2. 培养学生面对问题主动思考、积极探究的良好习惯;3. 培养学生具备耐心、细心的品质,提高其克服困难的自信心。

课程性质:本课程属于实践性较强的课程,要求学生将理论知识与实际操作相结合,完成电子钟的设计与制作。

学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对于综合运用知识进行实践尚需引导。

教学要求:注重理论与实践相结合,引导学生通过自主探究、动手实践掌握知识,关注学生的个体差异,提供有针对性的指导。

在教学过程中,注重培养学生团队协作、创新精神和解决问题的能力。

通过课程目标的实现,使学生在知识、技能和情感态度价值观方面得到全面提升。

二、教学内容1. 单片机基础理论:- 单片机的内部结构及工作原理;- 单片机的指令系统及编程方法。

2. 电子时钟原理:- 电子时钟的基本构成,包括时钟芯片、显示模块等;- 时、分、秒的计算与显示方法。

3. 编程语言应用:- C语言基础,包括数据类型、运算符、控制结构等;- 单片机编程技巧,如中断处理、定时器应用等。

4. 实践操作:- 电子时钟的设计与制作,包括硬件电路搭建、程序编写及调试;- 熟悉编程软件(如Keil)的使用,完成程序下载与调试。

教学大纲安排:1. 第一周:单片机基础理论,电子时钟原理学习;2. 第二周:C语言基础知识学习,编程技巧讲解;3. 第三周:实践操作,分组进行电子时钟设计与制作;4. 第四周:课程总结与展示,学生汇报作品,教师点评。

单片机电子时钟课程设计报告

单片机电子时钟课程设计报告一、设计目的。

本课程设计旨在通过单片机技术的应用,设计并制作一个简单的电子时钟。

通过这一设计,学生将能够掌握单片机的基本原理和应用,培养学生的动手能力和创新意识,提高学生的实际操作能力。

二、设计原理。

本电子时钟采用单片机作为控制核心,通过晶振产生的时钟信号来实现时间的计时和显示。

利用数码管来显示小时和分钟,通过按键来调整时间。

同时,通过蜂鸣器发出报时信号,实现基本的闹钟功能。

三、设计方案。

1. 硬件设计。

(1)单片机选择,本设计选用常见的51单片机作为控制核心,具有成本低、易于编程的特点。

(2)时钟电路,采用晶振作为时钟信号源,通过单片机的定时器来实现时间的计时。

(3)显示模块,采用数码管来显示小时和分钟,通过数码管的扫描显示来实现时间的动态显示。

(4)按键输入,设计按键来调整时间,包括调整小时和分钟。

(5)报时功能,通过蜂鸣器来实现基本的报时功能,可以设置闹钟时间。

2. 软件设计。

(1)时钟控制,通过单片机的定时器来实现时间的计时和更新。

(2)显示控制,设计数码管的扫描显示程序,实现时间的动态显示。

(3)按键处理,设计按键扫描程序,实现对时间的调整。

(4)报时功能,设计蜂鸣器的报时程序,实现基本的闹钟功能。

四、设计实现。

1. 硬件实现。

根据上述设计方案,完成了电子时钟的硬件连接和布线,保证各个模块之间的正常通讯和工作。

2. 软件实现。

编写了单片机的程序,实现了时钟的计时、显示和控制功能,保证了电子时钟的正常运行。

五、实验结果。

经过调试,电子时钟能够准确显示当前的时间,并能够通过按键调整时间和设置闹钟功能,报时功能也能够正常工作。

六、总结与展望。

通过本课程设计,学生掌握了单片机的基本原理和应用,培养了动手能力和创新意识。

在今后的学习和工作中,学生将能够更好地应用单片机技术,设计和制作更加复杂的电子产品。

同时,也为学生今后的科研和创新工作奠定了良好的基础。

单片机课程设计电子钟

单片机课程设计 电子钟一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握单片机编程的基础知识。

2. 学生能掌握电子时钟的工作原理,理解时、分、秒的显示方式及其换算关系。

3. 学生能描述单片机在电子时钟中的应用,了解中断、定时器等概念。

技能目标:1. 学生能运用所学知识,设计并实现一个简单的电子时钟程序,具备初步的编程能力。

2. 学生能够通过实验操作,学会使用编程软件和烧录工具,完成程序的编写和下载。

3. 学生能够分析并解决电子时钟程序运行过程中出现的问题,提高问题解决能力。

情感态度价值观目标:1. 学生通过单片机课程的学习,培养对电子工程的兴趣,激发创新意识。

2. 学生在团队协作中学会沟通、分享和合作,培养良好的团队精神。

3. 学生在学习过程中,培养耐心、细致、严谨的科学态度,树立正确的价值观。

课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握单片机编程和电子时钟的设计。

学生特点:学生为初中生,具备一定的物理知识和数学基础,对电子技术和编程有浓厚兴趣。

教学要求:教师需注重理论与实践相结合,引导学生通过动手实践,提高编程能力和问题解决能力。

在教学过程中,关注学生的个体差异,给予个性化指导。

同时,强调团队合作,培养学生的沟通与协作能力。

通过课程学习,使学生在知识、技能和情感态度价值观方面均取得具体的学习成果。

二、教学内容1. 单片机基本原理:介绍51单片机的内部结构、工作原理,重点讲解CPU、内存、I/O口等基础知识。

相关教材章节:第一章 单片机概述2. 单片机编程基础:讲解单片机编程语言(C语言),包括数据类型、运算符、控制语句等。

相关教材章节:第二章 单片机编程语言3. 电子时钟原理:介绍电子时钟的组成、工作原理,重点讲解时、分、秒的显示方式及换算关系。

相关教材章节:第三章 电子时钟原理4. 中断和定时器:讲解中断的概念、原理和应用,以及定时器的工作原理和编程方法。

相关教材章节:第四章 中断与定时器5. 电子时钟程序设计:结合以上知识,设计并实现一个简单的电子时钟程序,包括显示、计时等功能。

单片机电子时钟课程设计

单片机电子时钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握电子时钟的工作原理;2. 使学生掌握单片机编程技术,能独立完成电子时钟的程序编写;3. 帮助学生了解电子时钟的设计过程,掌握相关电子元器件的使用。

技能目标:1. 培养学生运用单片机解决实际问题的能力,提高编程和调试技巧;2. 培养学生动手实践能力,能独立完成电子时钟的组装和调试;3. 提高学生的团队协作和沟通能力,能在小组项目中发挥积极作用。

情感态度价值观目标:1. 激发学生对电子技术和单片机编程的兴趣,培养创新意识;2. 培养学生严谨、细致的学习态度,养成良好的学习习惯;3. 增强学生的自信心和责任感,使其在项目实践中勇于面对挑战。

课程性质:本课程为实践性较强的课程,旨在通过项目实践,让学生掌握单片机编程和应用,培养实际操作能力。

学生特点:学生具备一定的单片机基础知识和编程技能,对电子技术有一定了解。

教学要求:注重理论与实践相结合,强调动手实践,鼓励学生创新和团队协作。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 单片机基础:回顾单片机的基本原理、结构、工作方式,重点掌握时钟电路、I/O 口编程、中断系统等基础知识。

教材章节:《单片机原理与应用》第1-3章2. 电子时钟原理:学习电子时钟的基本构成、工作原理,分析时钟芯片DS1302的功能和应用。

教材章节:《单片机原理与应用》第6章3. 程序设计:学习C语言编程,编写电子时钟程序,掌握定时器、中断处理、数据存储等编程方法。

教材章节:《单片机C语言程序设计》第4-6章4. 硬件设计:学习电子时钟硬件电路设计,包括单片机、时钟芯片、显示模块、按键模块等。

教材章节:《电子电路设计》第2-3章5. 调试与优化:学习电子时钟系统的调试方法,分析常见问题,进行程序和硬件优化。

教材章节:《单片机原理与应用》第8章6. 项目实践:分组进行电子时钟项目实践,从硬件组装、编程调试到产品展示,全面锻炼学生的动手能力。

单片机电子时钟课程设计报告

单片机课程设计报告姓名:学号:班级:日期:嘉兴学院电子信息工程题目:用单片机实现数字钟一、设计目的1、通过单片机课程设计,加深对单片机的更深层次的理解,熟悉单片机的内部硬件资源,掌握单片机的编程方法,要学会对单片机的各部硬件资源的控制,特别是掌握单片机中断,定时器的编程方法。

2、通过课程设计,进一步学会怎么利用所学单片机知识独立设计系统的能力,达到学于致用的目的,要学会发创设计编程思想,要学会开发系统的一般过程,并不断创新。

二、设计要求利用单片机实现数字钟,各功能如下:1、能显示年、月、日及时间;2、闹铃提示;3、能设置年、月、日,时间及闹铃提示时间;4、用8个共阳极7段数码管交替显示时间和年、月、日。

三、设计方案和论证本次设计数字钟,使用了ATC89C51单片机芯片控制电路,单片机控制电路简单且省去了很多复杂的线路,使得电路简明易懂,使用键盘键上的按键来调整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用C语言程序来控制整个时钟显示,使得编程变得更容易。

(一)、总原理框图如下图所示:图1 数字钟总原理框图(二)、设计方案的选择1.计时方案方案1:采用实时时钟芯片现在市场上有很多实时时钟集成电路,如DS1287、DS12887、DS1302等。

这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需要程序干预。

因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。

方案2:使用单片机内部的可编程定时器。

利用单片机内部的定时计数器进行中端定时,配合软件延时实现时、分、秒的计时。

该方案节省硬件成本,但程序设计较为复杂。

2.显示方案对于实时时钟而言,显示显然是另一个重要的环节。

通常LED显示有两种方式:动态显示和静态显示。

静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。

但占有I/O口线多,每一个LED都要占有一个I/O口,硬件开销大,电路复杂。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

湖南工程学院课程设计课程名称单片机原理与应用课题名称电子时钟专业电气工程及其自动化班级电气1005班学号姓名指导教师20133年6月21日201湖南工程学院课程设计任务书课程名称单片机原理与应用课题电子时钟专业班级电气1005班学生姓名学号指导老师审批任务书下达日期2013年6月7日任务完成日期2013年6月21日设计内容与设计要求设计内容本课题以单片机为核心,利用其定时器和8位数码管,设计一个电子时钟。

要求有以下功能:1、开机时,显示00-00-00的时间开始计时;2、要求有秒,分,时的调节。

3、具有秒表的启动、停止、复位功能。

设计要求1、确定系统设计方案;2、进行系统的硬件设计;3、完成必要的参数计算与元器件选择;4、完成应用程序设计;5、进行单元电路及应用程序的调试;6、写出使用说明书。

主要设计条件1、MCS-51单片机实验操作台1台;2、PC机及单片机调试软件;3、单片机应用系统板1套;4、制作工具1套;5、系统设计所需的元器件。

说明书格式1、封面2、课程设计任务书3、目录4、系统总体方案选择与说明5、系统结构框图与工作原理6、各单元硬件设计说明及计算方法7、软件设计与说明(包括流程图)8、调试结果与必要的调试说明9、使用说明10、程序清单11、总结12、参考文献附录附录A电路原理图附录B源代码评分表进度安排设计时间为两周第一周星期一、上午:布置课题任务,讲课及课题介绍下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五、各硬件模块设计第二周星期一、各硬件模块设计星期二、各软件模块设计星期三、各软件模块设计星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资料,答辩目录第1章总体设计方案选择与说明 (1)1.1设计方案 (1)第2章系统结构框图与工作原理 (2)2.1系统结构框图: (2)2.2系统工作原理 (2)第3章硬件电路设计及说明 (3)3.1键盘接口电路 (3)3.2显示电路 (4)第4章软件设计与说明 (5)4.1初始化子程序 (5)4.2延时子函数 (5)4.3键盘扫描函数 (6)4.4按键服务函数 (6)4.5数码管显示函数 (8)4.6中断服务函数 (10)4.7主程序流程图 (12)第5章调试结果与调试说明 (13)设计总结 (14)参考文献 (15)附录 (16)附录A:设计电路图 (16)附录B:源程序清单 (17)第1章总体设计方案选择与说明1.1设计方案本系统的硬件主要包括单片机芯片、数码管显示、按键开关电路,它的硬件电路如原理图,单片机采用广泛的AT89C51,系统时钟采用12MHz 的晶振,8个数码管显示,小时与分钟、分钟与秒钟之间用短横线间隔,采用共阳极七段式数码管,P0口为段选码输出端与数码管相连,P2口为位选码输出端,分别与数码管阳极相连。

按键开关设定了6个,通过P1口相连。

分别为启动、停止、复位、设置、加、减。

整个系统分为:主程序、数码管显示模块(在本系统中数码管采用软件译码动态显示,在存储器中首先建立一张显示信息的字段码管,显示时,先从显示缓冲区中取出显示的信息,然后通过查表程序在字段码中查出显示所显示的信息的字段码,从P0口将对应的位选码输出,选中显示的数码管,就能在相应的数码管上显示显示缓冲区的内容。

)、定时器/计数器T1中断服务程序、按键处理模块(按键处理设置为:在时钟正常显示时,按下【设置】键进入秒表模式,若不按秒表的控制键启动、停止、复位,则在再次按下【设置】键是转入调秒状态,再按进入调分,再按进入调时,再按回到正常显示时钟状态。

否则会直接回到正常状态。

在调秒、调时、调分状态下按下【加】或【减】可进行单个加1或单个减1操作,若按下不松1s后会连续加或连续减。

第2章系统结构框图与工作原理2.1系统结构框图:图2.1系统结构框图2.2系统工作原理利用单片机定时器完成计时功能,定时器1计时中断程序每隔10ms 中断一次并当作一个计数,设定定时1秒的中断计数初值阀值为100,每中断一次中断计数加1,当加到100时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。

由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。

第3章硬件电路设计及说明3.1键盘接口电路独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。

I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低,I/O口内部有上拉电阻时,外部可不接上拉电阻。

图3.1键盘接口电路图3.2显示电路它的连接方式为7段共阳LED显示器的公共端分别接单片机的P2口。

相应的P0口接LED显示器的a、b、c、d、e、f、g和dp引脚,利用程序进行动态的扫描实现显示功能。

图3.2硬件显示电路图LED数码管的原理与接口:八段LED显示器与单片机的接口比较简单,只要将一个8位并行口与显示器的引脚对应相接即可,由8位并行口输出不同的字节数据,显示出不同的数字或字符。

控制LED显示出不同的数字或字符的8位字节数据称为“段选码”,共阴极LED与共阳极LED的段选码互为补码。

数码管的接口有静态和动态接口两种,静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数码管,数码管的公共端按共阴或共阳分别接地或接电源。

动态接口采用各数码管循环轮流显示的方法,当循环显示的频率教高时,利用人眼的视觉暂留性,看不出闪烁显示现象,这种显示与要一个接口完成字形码的输出,另一接口完成各数码管的轮流点亮。

第4章软件设计与说明4.1初始化子程序对所用到的存储单元和寄存器单元进行初始化,同时对要使用到的定时器进行清零并赋初始值。

初始化子程序:void InitTimer1(void)//系统初始化函数{TMOD=0x10;//定时器T1,工作方式1TH1=0x0D8;//赋初值TL1=0x0F0;EA=1;//开总中断ET1=1;//开定时器T1中断TR1=1;//开定时器T1}4.2延时子函数void delay1(unsigned int de)//延时函数由于数码管暂留{unsigned int t;for(t=0;t<de;t++);}4.3键盘扫描函数void key_scan()//按键扫描函数{if(key_sr1==1)//第一个按键松开{key_lock1=0;//解锁delay_cnt1=0;//延时计数清零}else if(key_lock1==0)//是否按下,避免重复触发{++delay_cnt1;if(delay_cnt1>cnt_delay_cnt1)//消抖动{delay_cnt1=0;key_lock1=1;//上锁key_sec=1;//触发1号键}}......具体请看附录B源代码}4.4按键服务函数void key_service()//按键服务函数{static unsigned char x=0;//用于连发频率控制变量switch(key_sec){case1://开始键switch(wd_sec){case2://秒表模式start=1;//启动秒表sec_sec=1;//秒表执行标志用于窗口转换选择break;}key_sec=0;break;case2://停止键switch(wd_sec){case2://秒表模式start=0;sec_sec=1;//秒表执行标志用于窗口转换选择break;}key_sec=0;//清除键值break;case3://复位键switch(wd_sec){case2://秒表模式//qing dong miao biaoif(!start)//秒表在停止状态下才允许复位{time_sec=0;time_min=0;timesec=0;}sec_sec=1;//秒表执行标志用于窗口转换选择break;}key_sec=0;//清除键值break;......具体请看附录B源代码}4.5数码管显示函数void display()//显示函数{static unsigned char i;switch(wd_sec)//不同模式(窗口)下给显示缓冲区的值不同{case1://正常显示时间temp[7]=sec%10;temp[6]=sec/10;temp[4]=min%10;temp[3]=min/10;temp[1]=hour%10;temp[0]=hour/10;break;case2://显示秒表模式temp[7]=timesec%10;temp[6]=timesec/10;temp[4]=time_sec%10;temp[3]=time_sec/10;temp[1]=time_min%10;temp[0]=time_min/10;break;case3://时间调整秒temp[4]=min%10;temp[3]=min/10;if(biaozhi)//闪烁标志{temp[7]=sec%10;//显示temp[6]=sec/10;}else{temp[7]=11;//灭temp[6]=11;}temp[1]=hour%10;//分离个位temp[0]=hour/10;//分离十位break;case4://时间调整分......break;case5://时间调整时......break;}delay1(1);//小延时P0=0xff;//关段码P2=0x00;//关位码用于消影delay1(1);//小延时P2=wele[i];//位选控制P0=table[temp[i]];//段选控制delay1(50);//延时视觉暂留if(++i>8)i=0;}4.6中断服务函数void Timer1Interrupt(void)interrupt3//10ms中断函数{static unsigned char time1;TH1=0x0D8;//重新装入初值TL1=0x0F0;if(!(wd_sec==3|wd_sec==4|wd_sec==5)){//时间在调整过程中不允许走时if(++time==100)//一秒时间到{time=0;if(++sec==60)//一分钟时间到{sec=0;if(++min==60)//一小时时间到{min=0;if(++hour==24)//一天时间到{hour=0;}}}}}if(wd_sec==2&&start==1){//秒表开始计时条件(在秒表模式且秒表启动) if(++timesec==100)//1秒时间到{timesec=0;if(++time_sec==60)//1分钟时间到{time_sec=0;time_min++;}}}if(++time1>=25)//时间调整的闪烁标志{time1=0;biaozhi=~biaozhi;}key_scan();//按键扫描}4.4.77主程序流程图图4.1主程序流程图第5章调试结果与调试说明通过proteus7.7SP2仿真,开始后数码管可以正常显示时间,此时按下【设置】键,可切换到秒表模式,在秒表模式下按【启动】键开始计时,最小值为10ms。

相关文档
最新文档