多功能电子时钟设计(汇编语言完美版)

合集下载

多功能电子时钟设计

多功能电子时钟设计

多功能电子时钟设计设计一个多功能电子时钟可以使用汇编语言来实现。

电子时钟应包括以下功能:1.显示当前时间2.显示当前日期3.显示当前星期几4.闹钟设置和提醒5.24小时制和12小时制的切换6.定时器功能整体设计思路如下:1.初始化显示屏和设置相关寄存器,包括时钟控制和中断配置寄存器。

2.设置时钟中断,以确保时钟可以按照设定的时间间隔更新时间。

3.初始化闹钟和定时器的相关变量。

4.进入主循环,在循环中读取按键输入并处理各种功能。

5.根据按键输入进行相应的处理:-如果是设置时间按键,进入时间设置模式,等待用户输入。

通过设置小时和分钟变量来修改时间,并在显示屏上更新时间。

-如果是设置日期按键,进入日期设置模式,等待用户输入。

通过设置年、月和日变量来修改日期,并在显示屏上更新日期。

-如果是设置闹钟按键,进入闹钟设置模式,等待用户输入。

通过设置闹钟小时和分钟变量来修改闹钟时间。

-如果是闹钟启动按键,开启或关闭闹钟功能。

-如果是设定定时器按键,进入定时器设置模式,等待用户输入。

通过设置定时器小时和分钟变量来修改定时器时间。

-如果是定时器启动按键,开启或关闭定时器功能。

-如果是24小时制和12小时制的切换按键,切换时钟显示模式。

6.每次闹钟中断,检查当前时间是否与设定闹钟时间相匹配,如果匹配则触发闹钟,并在显示屏上显示提醒信息。

7.每次定时器中断,检查当前时间是否与设定定时器时间相匹配,并触发定时器提醒,并在显示屏上显示提醒信息。

此外,还需要编写相应的子程序来处理时钟中断和定时器中断的逻辑。

总之,这是一个简单的多功能电子时钟的设计,可以使用汇编语言来实现。

通过以上步骤,可以实现时钟的基本功能,并且可以通过按键进行设置和切换不同的功能。

通过设置闹钟和定时器,可以实现提醒功能。

汇编语言数字时钟设计【范本模板】

汇编语言数字时钟设计【范本模板】

福建工程学院课程设计课程: 微机原理及接口课程设计题目:数字时钟专业:软件工程班级: 1101座号: 3110305110姓名:程康2013 年9 月18 日一、设计任务数字时钟:实时显示时间于LED数码管,并可以修改时间,包括上调,下调,复位等。

二、总体方案设计与方案论证1、时钟,前提需要脉冲的产生,根据8253能产生稳定的方波,故时钟脉冲的产生将由8253芯片实现.2、此实验只需要精确到秒,所以,产生的方波,将是频率为1HZ。

3、时间显示采用实验箱上的6个LED数码管分别显示时、分、秒,采用动态扫描方式实现.3、因为涉及到时钟显示和控制两大功能,还有对到来的时钟脉冲接收和处理,在这里,将选用8255芯片,作为中间介质,对用户要求和接收到的脉冲信号进行处理,设置时间通过开关产生单脉冲8255的PC0~PC2输入,通过PC0控制时间的暂停与继续,通过PC1控制时加1,通过PC2控制分加1,通过PC4控制秒加1,通过PC5控制复位。

最终产生达到用户要求的数字时钟,在微机接口实验台上模拟调试实现24小时走时的时钟,并将时间以HH。

MM。

SS显示在6位数码管上。

系统硬件设计主要利用微机实验箱上的电路模块,硬件电路主要有按键电路,单脉冲产生单元、8253定时计数、8255并行接口单元、LED显示电路。

三、总框图及总体软件设计说明四、接口电路逻辑图及硬件设计说明,或系统资源使用说明1、硬件整体电路图五、局部程序框图及其设计说明1、主入口2、时钟运行正常流程图六、源程序清单CODE SEGMENTASSUME CS:CODE,DS:CODE START:MOV AX,CSMOV DX,20BH ;8253MOV AL,36h ;0号定时器,方式3,二进制OUT DX,ALMOV DX,208HMOV AX,1000 ;1000 分频OUT DX,AL ;0号数据口MOV AL,AHOUT DX,ALMOV DX,20BH ;8253MOV AL,76h ;1号定时器,方式3,二进制OUT DX,ALMOV DX,209HMOV AX,1000 ;1000 分频OUT DX,AL ;1号数据口.3MOV AL,AHOUT DX,ALMOV AL,89H ;A。

多功能电子时钟汇编语言

多功能电子时钟汇编语言

;...............功能:正计时、倒计时、暂停计时、预计时、整分报时........................................ORG 0000HLJMP MAINORG 0003HLJMP INT0PORG 000BHLJMP IT0PORG 0013HLJMP INT1PORG 0030HMAIN: MOV TMOD,#01HMOV 20H,#0AHSETB EASETB ET0MOV TH0,#3CHMOV TL0,#0B0HCLEAR: MOV 40H,#0 ;时MOV 41H,#0 ;分MOV 42H,#0 ;秒MOV 43H,#0 ;时MOV 44H,#1 ;分MOV 45H,#0 ;秒;设定预计时时间为1分钟MOV 46H,#2 ;正计时时利用46H和44H确定蜂鸣器报时时间的长短MOV 47H,#59 ;倒计时时利用47H和44H确定蜂鸣器报时时间的长短SETB P0.3 ;关蜂鸣器SETB P0.4 ;灭led灯SETB TR0SS: LCALL DIS ;初始化,数码管显示00-00-00,等待键的按下JNB P0.0,CLEAR ;时钟清零JNB P0.1,PUSE ;时钟暂停JB P0.1,REMOVE ;时钟继续PUSE: CLR TR0 ;时钟暂停显示程序SETB IT0 ;采用边沿触发SETB EX0 ;开中断SETB IT1SETB EX1LJMP SSREMOVE: SETB TR0 ;时钟继续显示程序CLR EX0 ;关中断CLR EX1LJMP SSRET;..................显示子程序........................................DIS: MOV A,#0FEHMOV P2,#0FFH ;将A的循环值传给P2来确定数码管的位选MOV R0,#40HMOV R3,#03HDISS: MOV P2,AMOV 21H,A ;利用21H保存A的循环值MOV A,@R0MOV B,#10DIV ABMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,A ;P1实现数码管段选LCALL D1MSMOV A,21HRL AMOV 21H,AMOV P2,AMOV A,BMOV DPTR,#TABMOVC A,@A+DPTRMOV P1,ALCALL D1MSMOV A,21HRL AINC R0DJNZ R3,DISSRET;.....................利用定时器进行正常的正、倒计时.....IT0P:PUSH ACCPUSH BMOV TH0,#3CHMOV TL0,#0B0HMOV A,45HCJNE A,42H,S1MOV A,44HCJNE A,41H,S1MOV A,43HCJNE A,40H,S1 ;判断时间是否与预计时时间相等CLR P0.3 ;利用蜂鸣器响来响应计时时间到S1: JNB P0.2,DAO ;判断正、倒计时MOV A,41H ;正计时CJNE A,46H,S2SETB P0.3 ;蜂鸣器响一分钟S2: DJNZ 20H,RETURNMOV 20H,#10INC 42HMOV A,42HCJNE A,#5,S3 ;led亮5秒SETB P0.4S3: CJNE A,#60,RETURNCLR P0.4 ;利用led亮来响应整分时间到MOV 42H,#0INT0P: INC 41H ;外部中断0调整分钟入口MOV A,41HCJNE A,#60,RETURNMOV 41H,#0INT1P: INC 40H ;外部中断1调整时钟入口MOV A,40HCJNE A,#24,RETURNMOV 40H,#0SJMP RETURNDAO: MOV A,41H ;倒计时CJNE A,47H,S4SETB P0.3 ;蜂鸣器响一分钟S4: DJNZ 20H,RETURNMOV 20H,#10MOV A,42HCJNE A,#55,S5 ;led亮5秒SETB P0.4S5: CJNE A,#0,S6CLR P0.4MOV 42H,#59MOV A,41HCJNE A,#0,S7MOV 41H,#59MOV A,40HCJNE A,#0,S8MOV 40H,#23SJMP RETURNS6: DEC 42HSJMP RETURNS7: DEC 41HSJMP RETURNS8: DEC 40HRETURN: POP ACCPOP BRETI;...................延时1ms子程序.......................D1MS: MOV A,#02H ;1μsLOOP: MOV R2,#02H ;1μsDJNZ R2,$ ;2×48μsDJNZ R1,LOOP ;(1+2×48+2)×10NOP ;1μsNOP ;1μsNOP ;1μsNOP ;1μsNOP ;1μsRET ;2μs 总的延时时间为:1+(1+2×48+2)×10+7=998μs,;若再加上调用本子程序的调用指令所用的时间2μs共1000μs,即1msTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND。

多功能数字电子时钟设计

多功能数字电子时钟设计

多功能数字式电子时钟设计说明:本设计内容是利用51单片机最小系统设计一个电子时钟,时钟采用24小时制,时、分、秒各采用2个共阳极LED数码管显示。

具体实现的的功能如下:(1)能够正常显示时钟。

六个LED数码管依次显示时钟的时、分、秒位。

(2)可以完成键盘采样,实现键值判断;(3)实现简单的键盘功能,例如运行键、暂停键处理。

(4)每当整点时,所有LED闪烁显示,显示次数等于整点数。

若为0点钟,则显示正常;(5)实现键盘功能,包括运行键、暂停键、上升键、下降键、切换健、校准健处理。

通过键盘来实现时钟的暂停、运行、调时等功能。

该电子时钟主要由硬件和软件两部分组成,其中硬件部分主要包括:六个七段LED显示器,用来显示时钟的时、分、秒、位。

集成电路74LS240(反相器)和PNP型三极管9012,用于增加驱动电流的目的.还有AT89S51单片机以及RC组成的振荡电路。

软件部分则是通过软件编程利用51单片机来控制时钟,使其正常走动及按照我们的设计想法实现上述的:暂停、运行、调时及校准等功能。

设计完成后的电子钟可实现以下功能:当通电后,时钟开始正常走动。

当按下键后,时钟暂停运行、再按键时钟开始正常走动。

按下键(六)设计思路1、显示电路51单片机与七段LED显示器的接口为动态接口,需使用2组寄存器进行控制。

其中,一组寄存器控制几个显示器的七段发光二极管,该寄存器称为段选寄存器;另一组寄存器控制这几个七段显示器的公共端,控制这几个显示器逐个循环点亮。

适当的选择循环速度,利用人眼的“视觉暂留”效应,使其看上去好像这几个显示器同时在显示一样,该寄存器称为位选寄存器。

时钟的时、分、秒各用两个共阳极的七段LED显示器来显示,因此共需外接6个七段显示器。

所有显示器相同的段并接在一起,由P1口控制。

每个显示器的公共端分别由P3口的某一位控制。

集成电路74LS240(反相器)只起到增加驱动电流的目的,PNP型三极管9012也是为了增加驱动能力。

单片机汇编语言电子时钟设计

单片机汇编语言电子时钟设计

单片机汇编语言电子时钟设计随着科技的快速发展,单片机技术已经成为了现代电子工程中不可或缺的一部分。

使用单片机设计电子时钟,可以通过编程语言对单片机进行控制,从而实现精确的时间显示和时间控制。

本文将介绍一种基于单片机汇编语言的电子时钟设计方案。

一、设计原理电子时钟是一种以数字形式显示时间的装置,它通常由单片机、显示模块、电源模块等组成。

其中,单片机作为核心控制单元,负责处理各种信号和指令,并控制显示模块显示时间。

在这个系统中,单片机的任务包括读取时钟芯片的时间数据、处理按键输入、控制显示模块等。

二、硬件设计1、单片机选择在单片机选择方面,我们选用AT89S52型号的单片机。

该单片机具有低功耗、高性能的特点,内部含有8K字节的Flash存储器和256字节的RAM,同时具有丰富的外设接口,如UART、SPI、I2C等。

2、时钟芯片选择时钟芯片选用DS1302型号,该芯片具有精度高、稳定性好的优点,可以提供年、月、日、时、分、秒等时间信息。

DS1302芯片通过SPI 接口与单片机进行通信。

3、显示模块选择显示模块选用LCD1602型号,该模块具有体积小、功耗低、显示内容丰富的优点,可以同时显示时间、日期和星期几等信息。

LCD1602模块通过并行接口与单片机进行通信。

4、按键模块选择按键模块选用四个独立按键,分别实现小时加、小时减、分钟加、分钟减功能。

按键通过单片机的外部中断引脚与单片机进行通信。

三、软件设计1、程序流程程序流程主要包括以下几个部分:系统初始化、读取DS1302芯片的时间数据、处理按键输入、控制LCD1602模块显示时间等。

具体流程如图1所示。

图1程序流程图2、关键代码实现在程序的关键部分,我们需要实现读取DS1302芯片的时间数据、处理按键输入、控制LCD1602模块显示时间等功能。

下面是一些关键代码的实现:(1)读取DS1302芯片的时间数据:MOV DPTR, #0x68 ; DPTR指向DS1302的空间MOV R7, #0x00 ;设置寄存器R7为0x00,用于读取时间数据MOV A, R7 ;将R7的值存入A寄存器MOVC A, @A+DPTR ;从DS1302中读取一个字节的数据,存入A寄存器中MOV B, A ;将A寄存器的值存入B寄存器,准备送入LCD1602模块中显示本文…(省略其他代码)…… ;处理其他数据和指令SJMP $ ;无限循环,等待下一次中断或指令执行完毕后再次回到此处执行下一轮循环。

多功能电子时钟设计

多功能电子时钟设计

多功能电子时钟设计多功能电子钟的设计与实现—硬件部分摘要电子时钟主要是利用电子技术将时钟电子化、数字化,拥有时钟精确、体积小、界面友好、可扩展性能强等特点,被广泛应用于生活和工作当中。

本设计主要为实现一款可正常显示时钟/日历、带有定时闹铃的多功能电子时钟。

本文对当前电子钟开发手段进行了比较和分析,最终确定了采用单片机技术实现多功能电子时钟。

本设计应用AT89C51芯片作为核心,7位LED数码管显示,使用DS1302实时时钟日历芯片完成时钟/日历的基本功能,这种实现方法的优点是电路简单,性能可靠,实时性好,时间精度高,操作简单,编程容易。

该电子时钟可以应用于一般的生活和工作中,也可通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。

关键词:电子时钟;多功能;AT89C51;时钟日历芯片The Design with Investigation of the Multi-functionElectron Clock-The Design of the HardwareAbstractThe electronic clock mainly uses the electronic technology make the clock computerization, the digitization, with the clock precision, small size, friendly interface, scalable performance and other characteristics, was widely used in life and work.The design for the main implementing a clock/calendar can be displayed normal, collecting personal ambient temperature, with the timing alarm of the multi-function electronic clock.Comparing and analysising the development technology of the electron clock, the design determines to use the MCU technology to realize the multi-functional electron clock. This design application AT89C51 as a core chips, 7 LED digital displaying, using DS1302 real-time clock chip to complete the basic function of the clock/calendar. The method has the advantage of being simple circuit, reliable performance, good real-time, high precision of the time, simply operation, easy programming.The electronic clock can be applied to the general living and working ,can also be modified to improve performance, add new functions, and brings more convenient to people’s life and work.Key words: Electronic clock; Multi-function; AT89C51; DS1302第一章绪论时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。

多功能电子时钟系统设计设计34506284

多功能电子时钟系统设计设计34506284

多功能电子时钟系统设计设计34506284JIANGSU UNIVERSITY OF TECHNOLOGY 电子系统设计综合训练多功能电子时钟系统设计多功能电子时钟系统设计摘要在快节奏的当今社会,时间是一个很重要的工具,为了更高效率的完成工作,为了社会的进步与发展,把握和控制时间更是尤为重要。

人们对数字钟的要求也越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。

数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。

这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。

但这里为了学习数字电路,包括对组合逻辑电路与时序电路的学习,采用中小规模集成电路组成数字钟。

因此本系统采用单片机作为数字钟的核心控制器,读取时钟芯片的值,并通过显示器显示出来,而且,可以通过按键电路给单片机执行信号,实现正常显示,时钟校准和秒表的切换。

采用AT89S52作为主控单片机,时钟模块选用DS1302作为时钟芯片,显示模块选用LCD1602,设置部分选用按键电路。

本设计是以单片机为核心,附加必要的外围电路,通过编写C语言将存储在DS1302芯片中的年、月、日、时、分、秒,经过串行输入到单片机内部,对其进行数制的转换在DS1602上显现出来。

关键词:LCD160;DS1302;STC89C52;电子钟Multifunction electronic clock system designAbstractWith the fast-paced development of society , time becomes a essential tool which to be used in our daily routine , in order to complete the work more efficiently, in order to accelerate progress and development of society, it is particularly important to grasp and control the time. multi-functional digital clock regardless of the style or performance on both a qualitative change . Digital clock design There are many ways , for example , canbe composed of small and medium- scale integrated circuits electronic bell ; also be used with a dedicated chip electronic clock display circuit and its peripheral circuit required electronic bell ; chip can also be used to implement electronic bell and so on. These methods have their own characteristics , including the use of electronic clock with MCU programming flexibility , functionality and ease of expansion. But here in order to learn digital circuits, including combinational logic circuits and sequential circuits of study, using small and medium scale integrated circuits digital clock . Therefore, the system uses the MCU as the core controller digital clock , clock chip to read the values displayed by the display , and can be performed through the key signal to the microcontroller circuit to achieve normal display, clock and stopwatch calibration switch . Using AT89S52 microcontroller as the master clock module selection as the DS1302 clock chip, display module selection LCD1602, setting part of the selection key circuit .This design is a microcontroller as the core , the additional necessary peripheral circuits , through the preparation of the C language will be stored in the DS1302 chip year, month, day, hour, minute, second, through the serial input to the internal microcontroller , its number system conversion apparent on the DS1602 .Keywords:LCD1602;DS1302;STC89C52;Clock目录第1章绪论 (2)1.1 课题的意义和目的 (2)1.2 课题的研究内容 (2)1.3 课题的任务要求 (2)第2章系统方案设计 (3)2.1系统方案设计 (3)2.2 方案的选择与论证 (4)2.2.1 方案的比较与论证 (4)2.2.2 系统结构实现框图设计 (4)第3章系统各模块的硬件设计 (6)3.1 单片机控制模块设计 (4)3.1.1单片机的应用及发展现状 (4)3.1.2 STC89C52单片机模块 (5)3.1.3 单片机晶振模块设计 (8)3.1.4 单片机复位电路设计 (8)3.2 显示电路模块设计 (9)3.2.1 LCD1602介绍 (9)3.2.2 LCD1602字符液晶使用方法 (10)3.2.3LCD1602液晶显示电路设计 (12)3.3时钟电路DS1302 (13)3.3.1 DS1302的性能特性 (13)3.3.2 DS1302使用方法 (13)3.3.3 时钟电路设计 (15)3.4 按键模块的设计 (15)3.4.1模式选择按键 (15)3.4.2按键设置电路 (16)3.5 蜂鸣报警电路模块设计 (16)第4章系统软件设计 (9)4.1 软件设计总体思路 (18)4.2主程序流程图 (19)第5章系统调试与数据分析 (12)5.1 硬件电路的制作和调试 (12)5.2 软硬件功能分析 (12)5.3 测试结果分析 (12)第6章总结与展望 (14)参考文献 (15)致谢 (16)附录1 电路原理图 (17)附录2 程序 (19)附录3 元器件清单 (21)前言近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域。

汇编语言实现电子闹钟思路详解

汇编语言实现电子闹钟思路详解

汇编语⾔实现电⼦闹钟思路详解2.1 设计思路⾸先使⽤8255、8254、8259 三个芯⽚实现电⼦时钟的功能,让闹钟可以正常⾛时;其次,在时钟的基础上添加闹铃功能、整点报时功能、设置当前时间功能;完成设计。

2.2 设计⽅案1. 电⼦时钟部分:此次设计是通过对计数器8254设定计数值对脉冲进⾏计数,在程序⾥,8254⼯作于计数器0,⽅式3。

接⼊的CLK为1MHz,设计数初值为10000,每100次中断计数⼀次,产⽣的记数时间正好是时钟每秒⾛过的时间。

通过对中断控制器8259设置初始化命令字初值来控制中断。

程序中通过移位指令来实现时、秒、分的个位和⼗位的独⾃存储,将分、秒的个位⼗位分别存⼊指定的寄存器中。

⽐较转移指令来完成秒和分的累加。

七段数码管由8255并⾏接⼝的A⼝进⾏位的选择,通过B⼝输出要显⽰的段码。

这样就在6个七段数码管上分别显⽰时、分和秒。

当1S时间到时,修改当前数码管数值,10秒时将秒的低位清零,⾼位加1,分和时亦是如此;到达60秒时,将秒清零,分加1,到达60分时,将分清零,⼩时加1,到达24⼩时则全部清零。

2. 闹钟响铃部分:对于闹钟部分,我们⾸先要完成数码管显⽰单元按键的连接和设计,让16个按键分别为0-F;再利⽤实验平台的单次脉冲输⼊KK1产⽣⼀次中断,这样就可以设置时间了。

将设置好的时间储存起来,时刻与当前的时间进⾏⽐较,当时间⼀样时,计数器1⼯作,蜂鸣器蜂鸣,播放⾳乐,这就完成了闹钟响铃功能。

3. 整点报时部分:整点报时,就是在整时的时候响⼀次铃,当时钟整点时,⽆论是⼏点,时钟的分和秒部分都为零,所以,只要让时钟的分和秒部分与零进⾏⽐较,当他们都相等时,就代表到达整点了,可以响铃了。

整点报时就完成了,本闹钟设置的整点报时时长为5秒。

4. 设置当前时间:本部分也⽤到了数码管显⽰单元的按键部分,只要利⽤之前的设计就好了,这次使⽤单次脉冲输⼊的KK2产⽣中断设置时间,再将设置的时间存储在时间变量中,时间就设置好了。

汇编语言课程设计-电子闹钟教学总结

汇编语言课程设计-电子闹钟教学总结

电子闹钟一、课题内容和要求题目描述:利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供整点报时功能。

基本要求:(1)设计一个基本的具有显示时、分、秒的电子时钟。

(2)到整点或预定的报警时间,能够以不同的音乐进行报时,可以自行设置闹钟报警时间;(3)实物演示时要求讲出程序原理和设计思想;(4)程序运行良好、界面清晰。

提高要求:设计一个具有钟面、分针、秒针的指针式钟表,在圆盘上有均匀分布的60 根刻度,对应小时的刻度用不同颜色的长刻度区别,并且将12、3、6、9 对应的拉丁文绘制于表盘外。

设计提示:(1)指针式钟表的绘制。

将屏幕设置成图形显示方式,通过画点、画线,画圆等基本程序完成钟表的绘制。

表盘圆周上刻度线段两端点坐标计算是钟表绘制的核心部分。

(2)秒针、分针、时针的转动。

是经过一定的延时时间,通过在下一位置重新画一个,在原来的位置用背景色覆盖的方法实现。

(3)音乐的演奏。

利用CPU支持的外围电路8254与8255,通过汇编程序改变8255 的PB0,PB1 口,接通扬声器,使得计算机能够发出一定频率的声音, 同时通过8254的与8255连接的2号计数器控制指定频率, 从而达到控制扬声器的音乐的效果。

通过建立适当的延时程序达到一定时间后则改变2号计数器产生的方波的频率,实现音乐程序的演奏。

二、需求和思路分析经分析本次程序设计的主要内容主要分为如下的几个模块:当前时间的获取并显示, 码制转换,设定闹钟报鸣的时间, 不同频率的闹铃声,钟表的绘制和并实现动态等模块。

其中钟表的绘制和动态走动部分比较难是本次课程设计的提高部分, 且改模块可单独形成一个模块, 所以放到最后进行考虑1时间的获取可以用INT 21H的2CH功能,该功能调用DOS寸间调用功能, 功能号:2CH,小时,分钟,秒数分别保存在,保存的形式是以二进制的形式,故显示时要2码制转化利用ASCII码与二进制码的关系ASCII==进制+30H3闹钟鸣叫主要利用8254的二号计数器和8255的PB0和PB1来设定4 闹钟的表盘,指针的绘制,并实现时针,分针,秒针的走动。

汇编语言实现的电子时钟的设计

汇编语言实现的电子时钟的设计

目录第1章、概述1.1 设计目的 (1)设计要求 (1)第2章、系统总体方案设计2.1 设计方案 (2)2.2 硬件设计 (2)2.3 电子时钟程序流程图 (5)第3章、方案实施3.1 单片机简介 (6)3.2 动态LCD液晶显示器显示 (7)3.3 软件调试及调试方法 (8)第4章、总结 (10)附录、源代码及电路原理图 (14)第1章概述、设计目的1熟悉整个项目的流程即单片机系统设计过程2 学会使用各种仿真软件3熟练的使用汇编语言编写小的应用程序4 掌握系统的调试与安装5提高学生的自学能力和动手能力、设计要求1、主电路系统由秒信号发生器、“时、分、秒”计数器、显示器、校时电路组成。

2、秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。

将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。

“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。

“时计数器”采用24进制计时器,可实现对一天24小时的累计3、软件程序通过单片机将“时”、“分”、“秒”计数器的输出状态通过液晶显示器显示出来。

4、整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时5、校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。

第2章、系统总体方案设计2.1设计方案1)方案讨论和设计:倒计时数字秒表的设计主要考虑以下几个问题:一,LCD液晶显示器如何显示数字0—9;二,如何用单片机来控制LCD的显示;三,单片机最小模式下的设计。

处理好这些问题此设计才能完整,为此必须先了解LCD的显示原理和接线方法,再了解单片机的组成原理和控制方法。

硬件电路的绘制和软件程序的编写是此次设计的关键和基础,只有硬件电路的设计是正确的、合理的,软件设计才可以根据硬件电路编程,以下的设计才能够进行。

C51多功能电子时钟

C51多功能电子时钟

~~~~~~目录~~~~~~一、设计任务 (2)二、总体方案设计与方案论证 (3)2.1总体方案设计 (3)2.2方案论证 (4)三、总框图及总体软件设计说明 (7)四、系统资源分配说明 (10)五、局部设计说明 (12)六、系统功能与操作说明 (14)6.1系统功能 (14)6.2 操作说明 (15)七、调试记录及调试结果 (19)八、课程设计总结 (21)九、程序附录清单 (26)一、设计任务整体设计任务:本电多功能子时钟设计首要的工作是结合以往所学的单片机程序编写理论和编写规则来编写电子时钟的软件部分,编写时要结合所配的AT89S52芯片的管脚功能和其他硬件电路,该部分运用keil单片机软件来完成。

在编写完软件并检测完正确后再编译成.hex载入实验板中,并调试。

电子多功能万年历是一种非常广泛日常计时工具,对现代社会越来越流行。

它可以对年、月、日、周日、时、分、秒进行计时,温度显示,还具有闰年补偿,闹铃等多种功能。

对于数字电子万年历采用直观的数字显示,可以循环显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。

该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

二、总体方案设计与方案论证1、总体方案设计根据设计要求,总体方案我划分为如下几个模块:(1)自检模块(2)显示更新子程序(3)显示内容送显示缓冲单元的拆字子程序(4)显示定时切换子程序(5)手动切换进程子程序(6)温度滚动采集存储子程序(7)键盘扫描子程序(8)定时切换设定子程序(9)时钟日期设定子程序(10)无操作处理子程序(11)按键操作子程序(12)温度计算模块(13)星期计算模块(部分蔡勒公式汇编程序)(14)正点报时模块(15)闹铃判断模块(16)消抖动子程序(17)定时中断子程序(17)数码管闪烁模块(18)小数点模块(19)双字节压缩二进制码转BCD码模块以上各个模块进行有效地串接与组合,就可以完成本次多功能电子时钟的设计。

多功能电子时钟

多功能电子时钟

摘要随着科学技术的不断发展,电子时钟已经成为一种普遍的工艺了。

日常生活中到处可见。

电子时钟的设计有很多种,普遍的电子时钟是基于单片机用汇编语言做成的扩展。

ARM功能也一样且更精确。

本文是详细介绍基于ARM上做成的电子时钟。

这个电子时钟的硬件是用LPC2103板, 8个按键和8个数码管组成的键盘显示板,还有LED灯当成闹铃使用。

此时钟还可以当成秒表使用。

这是一个基于ARM实现多功能的电子时钟。

关键词:ARM;数码显示管;按键;LED灯;目录前言3第一章概述 4 电子时钟概述 4第二章工作原理 5 系统框图 5时钟的工作原理与功能 5第三章硬件电路设计 6 键盘显示板的电路设计 6数码管的电路设计 8键盘电路设计 8蜂鸣器电路的设计 8的电路设计 9第四章软件设计 11 软件设计 11第五章调试过程 18 调试过程 18总结 18附录 18参考文献 20 谢辞 20前言时钟是人们生活中必不可少的一种工具,更是更是在人类生产,生活,学习等多个领域得到广泛的应用。

然而随着时间的推移,尤其是在现在科技的发达,生活水平高,什么都讲究效率的年代。

人们不仅对时钟的精度要求高,而且对时钟的功能的要求也越来越多。

时钟已不仅仅是一种用来显示时间的工具,而是在很多实际应用中它还需要能够实更多的其他功能。

比如日历显示功能,秒表功能,闹钟功能,温度或湿度的测量电压测量等。

时钟数字化给人们的生活带来了极大的方便,而且也大大地扩展了钟表原先的保湿功能。

诸如定时自动报警,按时自动闹铃,定时广播,各种定时电气的自动启用等。

这些功能都是一钟表数字化为基础的。

可以说设计多功能数字时钟的意义已不不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。

在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实施控制的实用系统,从而应用到实际工作与生产中去。

因此,研究数字时钟及扩大其应用,有着非常现实的意义。

多功能电子时钟设计(汇编语言完美版)

多功能电子时钟设计(汇编语言完美版)

多功能电⼦时钟设计(汇编语⾔完美版)电⼦时钟实验报告⼀,实验⽬的1. 学习8051定时器时间计时处理、按键扫描及LED数码管显⽰的设计⽅法。

2. 设计任务及要求利⽤实验平台上4个LED数码管,设计带有闹铃功能的数字时钟⼆,实验要求A.基本要求:1. 在4位数码管上显⽰当前时间。

显⽰格式“时时分分”2. 由LED闪动做秒显⽰。

3. 利⽤按键可对时间及闹玲进⾏设置,并可显⽰闹玲时间。

当闹玲时间到蜂鸣器发出声响,按停⽌键使可使闹玲声停⽌。

4.实现秒表功能(百分之⼀秒显⽰)B.扩展部分:1.⽇历功能(能对年,⽉,⽇,星期进⾏显⽰,分辨平年,闰年以及各⽉天数,并调整)2.⾳乐闹铃(铃⾳可选择,闹铃被停⽌后,闪烁显⽰当前时刻8秒后,或按键跳⼊正常时间显⽰状态)3.定时功能(设定⼀段时间长度,定时到后,闪烁提⽰)4.倒计时功能(设定⼀段时间长度,能实现倒计时显⽰,时间长减到0时,闪烁提⽰)5.闹铃重响功能(闹铃被停⽌后,以停⽌时刻开始,⼀段时间后闹铃重响,且重响时间的间隔可调)三,实验基本原理利⽤单⽚机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断⼀次并当作⼀个计数,设定定时1秒的中断计数初值为100,每中断⼀次中断计数初值减1,当减到0时,则表⽰1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

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

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

四,实验设计分析针对要实现的功能,采⽤AT89S51单⽚机进⾏设计,AT89S51 单⽚机是⼀款低功耗,⾼性能CMOS8位单⽚机,⽚内含4KB 在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采⽤⾼密度、⾮易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。

单片机电子闹钟的设计汇编语言

单片机电子闹钟的设计汇编语言

ORG 00HAJMP START ;程序开始ORG 0BH ;TimEr0中断向量地址AJMP TimEInt ;跳到中断处理程序ORG 0020HSTART: MOV sp,#70HSETB P3.0 ;输出高电平,闹钟服务程序驱动口SETB P3.5 ;输出高电平,闹钟服务程序驱动口MOV 39H,#40 ;1秒钟中断次数MOV 3AH,#00 ;开机时间MOV 3BH,#00MOV 3CH,#00 ;设置上电时时钟显示的初值MOV 2EH,#06 ;开机时闹钟默认时间MOV 2FH,#00 ;设置上电时闹时时间的初值CLR 20H.1 ;上点复位后闹时功能处于关闭状态CLR 20H.0 ;正常走时模式CLR 20H.2 ;闹钟时间还没有到SETB P3.0; 清闹时输出SETB P3.5; 清闹时输出;************************************; 定时器初始化,定时器0方式1,25ms;TH0=9EH TL0=58H;************************************MOV TMOD ,#01HMOV TH0,#9EHMOV TL0,#58HMOV IE,#82H ;开全局中断SETB TR0 ;开定时中断,启动定时器;*****************************************; 以下为主程序,按键扫描;*****************************************MainLoop:JB P3.2,CheckPP ;闹时设置键按下了吗?没有则转去检测秒设置键篇p3.2 LCALL Delay2JB P3.2,CheckPPSETB 20H.0 ;置为闹时设置模式CALL AlarmSetCheckPP:JB P3.4,CheckPQ ;分设置键按下了吗?没有则转去检测小时设置键CALL Delay2JB P3.4,CheckPQMOV A,3BHADD A,#1 ; 如果按下则将分钟加一MOV 3BH,A;CJNE A,#3CH,NotOver1 ;到60分钟了吗?MOV 3BH,#0NotOver1: ;以下等待按键释放及防抖动JNB P3.4,$CheckPQ:JB P3.3,CheckAlarm ;小时设置键按下了吗?没有则转去闹时状态检测CALL Delay2JB P3.3,CheckAlarm ;按下的时间超过15ms吗?如按下调用蜂鸣器发音程序MOV A,3AHADD A,#1 ;如果按下则将小时加1MOV 3AH,ACJNE A,#18H,NotOver2MOV 3AH,#0 ;到24小时则将小时清0NotOver2: ;以下等待按键释放及防抖动JNB P3.3,$CheckAlarm:JNB 20H.2,ToReturn ;闹钟时间到没有CALL AlarmProcess ;闹钟子程序ToReturn:AJMP MainLoop;**********************************************; 定时器TimEr0中断服务程序(此程序每8ms执行一次);**********************************************TimeInt:MOV TH0,#9EH ;重新加载定时参数MOV TL0,#58HPUSH ACCPUSH PSW ;保护累加器及程序状态字的内容SETB RS0CLR RS1DJNZ 39H,Notone3CH ;中断了40次了吗?即够1秒了吗?MOV 39H,#40 ;如够1秒则重新设置"39H"计数器CALL Clock ;调用将时钟内容加1秒的子程序CALL ConvertoBuffer ;调用将时钟内容转换到显示缓冲区子程序Notone3CH:CALL ScanDisplay ;调用扫描显示子程序POP PSWPOP ACC ;恢复累加器及程序状态字的内容RETI;*********************************************;扫描显示子程序,将缓冲区的数值显示在对应的数码管上;*********************************************ScanDisplay:MOV R1,#30H ;指向显示数据首址,利用c语言指针原理读取缓冲区的数值;子程序ConvErtoBuffEr已经将相应的值存放在30H的缓冲区中MOV R4,#10111111b ;扫描控制字初值,显示右边第一个数码管PLAY: MOV A,R4 ;扫描字放入AMOV P2,A ;从P2口输出,p2口的低六位分别控制对应的六个数码管的显示MOV A,@R1 ;取显示数据到AMOV DPTR,#TAB ;取段码表地址MOVC A,@A+DPTR ;查显示数据对应段码MOV P0,A ;段码放入P0口,具体显示位INC R1 ;指向下一地址MOV A,R4 ;扫描控制字放入A;显示时分秒分隔位JB ACC.1,LPP1 ;显示时分位CLR P0.7CALL DelaySETB P0.7LPP1:JB ACC.3,LPP2 ;显示秒分位CLR P0.7CALL DelaySETB P0.7LPP2: JNB ACC.7,ENDOUT ;扫到第六位时结束RR A ;A中数据循环左移MOV R4,A ;放回R4内LCALL Delay ;每位数码管显示间隔时间为2msSETB P0.7 ;关闭分位显示点AJMP PLAY ;跳回PLAY循环ENDOUT:MOV P0,#0FFH ;P0口复位RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,7FH,0B7H,0FFH;共阳段码表"0""1""2" "3""4""5""6""7" "8""9"".""=""不亮";****************************************************; 时钟内容加1秒的子程序(1秒时间到);****************************************************Clock:MOV A,3CH ;将原秒值送入aADD A,#1 ;加1秒MOV 3CH,aCJNE A,#3CH,NotOverFlowMOV 3CH,#0MOV A,3BHADD A,#1MOV 3BH,A;CJNE A,#3CH,NotOverFlowMOV 3BH,#0MOV A,3AHADD A,#1MOV 3AH,ACJNE A,#18H,NotOverFlowMOV 3AH,#0NotOverFlow:JNB 20H.1,NotAlarm ;闹钟开启了吗?如没有开启则无需理会是否到闹时时间MOV A,3CHJNZ NotAlarm ;秒为零吗?MOV A,3BHCJNE A,2FH,NotAlarm ;时间分钟值和闹时设置分钟值相等吗?MOV A,3AHCJNE A,2EH,NotAlarm ;时间小时值和闹时设置小时值相等吗?SETB 20H.2 ;到了闹时时间则将"闹时时间到"标志设为1NotAlarm:RET;**************************************************************************; 将时钟内容或闹时设置值转换到显示缓冲区子程序;************************************************************************** ConvertoBuffer:MOV R1,#30HJB 20H.0,DispAlarmSet ;判断时钟模式,以决定是显示实时时间还是闹时时间,20H.0,0为正常走时,1为闹钟设定MOV A,3CHMOV 23H,AMOV A,3BHMOV 22H,AMOV A,3AHMOV 21H,AAJMP Convert ;在数码管显示缓冲区的数值DispAlarmSet: ;闹钟设定JB 20H.1,AlarmOn ;闹钟开关,0为关,1为开MOV 23H,#00HAJMP NextAlarmOn:MOV 23H,#1 ;显示闹时时间及显示闹钟状态:显示"00"表示关闭闹钟,NExt: ;"01"表示开启闹钟MOV a,2FH;MOV 22H,A;MOV A,2EH;MOV 21H,A ;将数值显示到数码管Convert:MOV A,23H ;取秒值,将待显示的数值存储到缓冲区MOV B,#10DIV ABMOV @R1,BINC R1 ;缓冲寄存器的地址加1MOV @R1,AINC R1MOV A,22HMOV B,#10DIV ABMOV @R1,B;INC R1 ;缓冲寄存器的地址加1MOV @R1,A ;将秒值的十位值存入缓冲区INC R1MOV A,21HMOV B,#10DIV ABMOV @R1,B;INC R1 ;缓冲寄存器的地址加1MOV @R1,A ;将秒值的十位值存入缓冲区RET;**************************************************; 闹钟时间设置子程序;**************************************************AlarmSet:JNB P3.2,$CALL Delay2 ;等待"P3.2"键释放CheckArmPM: ;JB P3.4,CheckArmPN ;分设置键按下了吗?没有则转去检测小时设置键p3.5 CALL Delay2JB P3.4,CheckArmPNSETB 20H.1 ;闹钟开MOV A,2FHADD A,#1 ;如果按下则将分钟加1,MOV 2FH,ACJNE A,#3CH,ArmNotOver1 ;到60分钟了吗?MOV 2FH,#0 ;到60分钟则将分钟清0ArmNotOver1: ;以下等待按键释放及防抖动JNB P3.4,$ ;等待对应设置时间的按键释放CheckArmPN:JB P3.3,AlarmSetEnd ;小时设置键按下了吗?没有则返回反复检测CALL Delay2JB P3.3,AlarmSetEndSETB 20H.1MOV A ,2EHADD A,#1 ;如果按下则将小时加1MOV 2EH,ACJNE A,#18H,ArmNotOver2MOV 2EH,#0 ;到24小时则将小时清0ArmNotOver2: ;以下等待按键释放及防抖动JNB P3.3,$AlarmSetEnd:JB P3.2,AlarmSet ;闹钟设置完毕了吗?CALL Delay2JB P3.2,AlarmSetJNB P3.2,$CLR 20H.0 ;从设置模式转为走时模式RET;**************************************************; 闹时服务子程序;************************************************** AlarmProcess:MOV R2,#10loop2:CPL P3.0CPL P3.5CALL Delay1JB P3.2,AlarmReturn ;停止闹时键(即闹时设置键)按下了吗?CALL Delay2JB P3.2,AlarmReturnCLR 20H.1 ;关闭闹钟JNB P3.2,$SETB P3.0 ;如停止闹时键按下则停止闹时SETB P3.5CLR 20H.2AJMP loop6AlarmReturn:DEC R2MOV A,R2CJNE A,#00H,loop2SETB P3.0 ;如停止闹时键按下则停止闹时SETB P3.5CLR 20H.1 ;关闭闹钟CLR 20H.2loop6:RET;**************************************************; 延时子程序;**************************************************Delay:MOV R6,#2 ;延时产生1ms,数码管动态显示间隔时间del: MOV R7,#249DJNZ R7,$DJNZ R6,delRETDelay1:MOV R5,#2 ;延时间产生1s,扬声器的震动间隔时间de3:MOV R6,#200de2:MOV R7,#250DJNZ R7,$DJNZ R6,dE2DJNZ R5,dE3RETDelay2:MOV R6,#10 ;延时产生15ms,按键防止抖动时间de4:MOV R7,#245DJNZ R7,$DJNZ r6,de4RETEnd。

(完整版)基于8086的电子时钟设计(汇编语音)

(完整版)基于8086的电子时钟设计(汇编语音)

(完整版)基于8086的电子时钟设计(汇编语音)目录摘要 (1)Abstract (1)第一章电子钟设计总体方案设计 (2)1.1 设计目的 (2)1.2 设计要求 (2)1.3 方案比较 (2)1.3.1 非中断方式与中断方式的比较 (2)1.3.2 LED显示与液晶显的比较 (3)1.4 总体方案设计思路 (3)第二章系统硬件设计 (4)2.1 8255与CPU之间的连接关系 (4)2.2 8253与周边电路的连接关系 (4)2.3 8259与周边电路连接关系 (5)2.4 液晶显示模块与8255之间的连线关系 (5)2.5 地址译码器与按键 (6)2.6 系统总体硬件电路图 (6)第三章系统软件设计 (7)3.1 编址及控制字的确定 (7)3.1.1 编址 (7)3.1.2 控制字 (7)3.2 分块子程序 (7)3.2.1 1602读写操作子程序 (7)3.2.2中断子程序 (9)3.3 主程序设计 (11)总结与致谢: (13)参考文献: (14)附录: (15)摘要本设计以微机原理与接口技术为基础,以8086CPU为核心,利用INTER 8253可编程定时/计数器,通过引入时钟发生器产生标准时钟进行精准定时;经定时器产生中断源,采用可编程中断控制器8259A进行中断扩展,用可屏蔽中断方式进行时间的采集;以可编程并行I/O接口芯片8255A扩展接口,驱动MSC1602液晶模块进行时间显示。

第一章电子钟设计总体方案设计1.1 设计目的电子钟是一种基于微电子技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

通过该题目的设计和分析,学习微机软、硬件系统设计开发的过程,加深微机原理及其应用课程基础知识的理解和综合运用能力,熟悉集成电路芯片的使用方法,熟悉微机编程及接口电路,学会体会工程实际设计过程,培养学生独立解决实际工程问题的综合能力。

汇编语言课程设计电子闹钟

汇编语言课程设计电子闹钟

电子闹钟一、课题容和要求题目描述:利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供整点报时功能。

基本要求:(1)设计一个基本的具有显示时、分、秒的电子时钟。

(2)到整点或预定的报警时间,能够以不同的音乐进行报时,可以自行设置闹钟报警时间;(3)实物演示时要求讲出程序原理和设计思想;(4)程序运行良好、界面清晰。

提高要求:设计一个具有钟面、分针、秒针的指针式钟表,在圆盘上有均匀分布的60根刻度,对应小时的刻度用不同颜色的长刻度区别,并且将12、3、6、9对应的拉丁文绘制于表盘外。

设计提示:(1)指针式钟表的绘制。

将屏幕设置成图形显示方式,通过画点、画线,画圆等基本程序完成钟表的绘制。

表盘圆周上刻度线段两端点坐标计算是钟表绘制的核心部分。

(2)秒针、分针、时针的转动。

是经过一定的延时时间,通过在下一位置重新画一个,在原来的位置用背景色覆盖的方法实现。

(3)音乐的演奏。

利用CPU支持的外围电路8254与8255,通过汇编程序改变8255的PB0,PB1口,接通扬声器,使得计算机能够发出一定频率的声音,同时通过8254的与8255连接的2号计数器控制指定频率,从而达到控制扬声器的音乐的效果。

通过建立适当的延时程序达到一定时间后则改变2号计数器产生的方波的频率,实现音乐程序的演奏。

二、需求和思路分析经分析本次程序设计的主要容主要分为如下的几个模块:当前时间的获取并显示,码制转换,设定闹钟报鸣的时间,不同频率的闹铃声,钟表的绘制和并实现动态等模块。

其中钟表的绘制和动态走动部分比较难是本次课程设计的提高部分,且改模块可单独形成一个模块,所以放到最后进行考虑1时间的获取可以用INT 21H的2CH功能,该功能调用DOS时间调用功能,功能号:2CH,小时,分钟,秒数分别保存在,保存的形式是以二进制的形式,故显示时要2码制转化利用ASCII码与二进制码的关系ASCII=二进制+30H3闹钟鸣叫主要利用8254的二号计数器和8255的PB0和PB1来设定4 闹钟的表盘,指针的绘制,并实现时针,分针,秒针的走动。

多功能电子时钟的设计

多功能电子时钟的设计

4.1 多功能电子时钟的设计一、技术指标1.设计一台能准确计时,以十进制数形式显示“时”、“分”、“秒”的多功能电子时钟钟;2.小时为24进制,分和秒均为60进制;3.有校时功能,可以分别对“时”、“分”信号进行单独校对;4.能整点报时。

要求报时声为四低一高,最后一响为整点。

二、基本原理说明多功能电子时钟实际上是一个对标准频率(1Hz )进行计数的计数电路。

多功能电子时钟是采用数字电路实现“时”、“分”、“秒”数字显示的计时装置。

具体实现为:用石英晶体振荡器或555振荡器产生1秒的标准“秒”信号;设计60进制计数器,即60秒累计为1分;同样设计,60分为1小时,并以24小时为一计时周期;各自引到显示器能显示“时”、“分”、“秒”;具有整点报时功能,要求报时声音四低一高,最后一响为整点;由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1Hz 时间信号必须做到准确稳定。

如果数字钟走时有误差,应由校时电路校正;通过本课程设计,使学生巩固和加强“数字电子技术”课程的理论知识;掌握电子电路一般的设计方法,并了解电子产品研制开发过程;基本掌握电子电路安装和调试的方法;培养独立分析问题和解决问题的能力以及创新能力和创新思维。

通常使用石英晶体振荡器电路或555定时器构成多功能电子时钟。

图 4-1所示为多功能电子时钟的一般构成框图。

1.振荡器555定时器可接成多谐振荡器,多谐振荡器也称无稳态触发器,它没有稳定状态,同时毋须外加触发脉冲,就 能输出一定频率的矩形脉冲 (自激振荡)。

用555实现 多谐振荡,需要外接电阻R 1R 2和电容C ,并外接+5V 的 使555定时器给数字钟提供 图4-1 多功能电子时钟原理框图一个频率稳定准确的1k Hz 的方波信号,可保证数字钟 的走时准确及稳定。

555定 时器的内部结构电路图、外部接线图、c u 及o u 波形图,图4-2 (b) 555外部接线图图4-2 (c) c u 及o u 波形图 第一个暂稳状态的脉冲宽度PHt ,即c u 从CC V 1充电上升到CC U 32所需的时间: C R R t PH )(7.021+=第二个暂稳状态的脉冲宽度PL t ,即c u 从CC U 32放电下降到CC U 31所需的时间: C R t PL 27.0=振荡周期: C R R t t T PL PH )2(7.021+=+= 振荡频率: CR R T f )2(43.1121+==为得到1k Hz 的方波信号可选择:W =k R 1.51、W =k R 7.42、F C μ1.0=。

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

电子时钟实验报告一,实验目的1. 学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。

2. 设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟二,实验要求A.基本要求:1. 在4位数码管上显示当前时间。

显示格式“时时分分”2. 由LED闪动做秒显示。

3. 利用按键可对时间及闹玲进行设置,并可显示闹玲时间。

当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止。

4.实现秒表功能(百分之一秒显示)B.扩展部分:1.日历功能(能对年,月,日,星期进行显示,分辨平年,闰年以及各月天数,并调整)2.音乐闹铃(铃音可选择,闹铃被停止后,闪烁显示当前时刻8秒后,或按键跳入正常时间显示状态)3.定时功能(设定一段时间长度,定时到后,闪烁提示)4.倒计时功能(设定一段时间长度,能实现倒计时显示,时间长减到0时,闪烁提示)5.闹铃重响功能(闹铃被停止后,以停止时刻开始,一段时间后闹铃重响,且重响时间的间隔可调)三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.01s中断一次并当作一个计数,设定定时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。

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

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

四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。

运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。

这是前期准备工作。

第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。

第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。

第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。

第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。

第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。

最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!五,实验要求实现A.电路设计1. 整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用8个共阴数码管分别显示,星期(年份),小时、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,同时节约了I/0端口,使电路更加简单。

单片机采用AT89S51系列,这种单片机应用简单,适合电子钟设计。

电路的总体设计框架如下:2. 分块设计模块电路主要分为:输入部分、输出部分、复位和晶振电路。

2.1 输入部分输入信号主要是各种模式选择和调整信号,由按键开关提供。

以下为输入部分样例:在本实验中主要用用P3口输入按键信号,还用到了特殊的P0口。

对于P0口,由于其存在高阻状态,为了实现开关功能,给其添加上拉电阻,具体如下图所示:单片机输入部分晶振和复位输出部分2.2 输出部分本电路的输出信号为7段数码管的位选和段选信号,闹铃脉冲信号,提示灯信号。

本实验的数码管是共阴的,为了防止段选信号不能驱动数码管,故在P1口连接上拉电阻后,再送段选信号,以提高驱动,位选信号直接从P2口接入,如下图:闹铃由P2.6端输出,模块如下:2.3 晶振与复位电路本实验单片机时钟用内部时钟,模块如下:复位电路为手动复位构成,模块如下:各模块拼接组合,电路总体设计图如下:B.程序设计B.1 程序总体设计本实验用汇编程序完成.结合电路图,程序设计的整体思路为:接通电源,数码管显示星期数,时,分,秒。

并且走时显示LED灯每隔1秒改变一次明暗,此为正常工作模式。

以下为在该工作方式下模式选择的按键方式:1. 按1键——日期模式。

显示年月日且可调整,调整状态指示灯亮。

日期调整对应键如下:6键——年(千位,百位),按一次该位加15键——年(十位,个位),按一次该位加14键——月,按一次该位加13键——日,按一次该位加10键——调整状态指示灯灭,返回主程序,显示时间2. 按2键——调时模式。

显示时分秒且可调整,调整状态指示灯亮。

时间调整对应键如下:6键——时,按一次该位加15键——分,按一次该位加14键——秒,按一次该位清00键——调整状态指示灯灭,返回主程序,显示时间3. 按3键——闹铃调整模式。

显示闹铃时刻且可调整,调整状态指示灯亮。

闹铃调整对应键如下:5键——时,按一次该位加14键——分,按一次该位加10键——调整状态指示灯灭,返回主程序,显示时间4. 长按4键——定时调整(倒计时)模式。

显示定时长度且可调整,调整状态显示灯亮。

定时调整对应键如下:6键——分,按一次该位加15键——秒,按一次该位加14键——开启定时功能,并显示倒计时0键——调整状态指示灯灭,返回主程序,显示时间5. 按5键铃声测试,扬声器播放音乐。

6. 按下7键,进入秒表模式,显示秒表走时。

拨上7键,秒表暂停;按下7键,秒表又继续走时。

按下8键,秒表清零。

0键——调整状态指示灯灭,返回主程序,显示时间7. 按下8键,数码管熄灭,时钟仍在走时,进入节能模式。

拨上8键,数码管亮,恢复普通工作模式。

8. 9键为闹铃启动(停止)键,按下可以选择是否要闹铃,以及在闹铃响起时,按此键可以停止闹铃。

9. 10键为铃声选择开关,按下与否,可以选择两手音乐。

10. 11键为闹铃重响控制开关,重响功能开启时,从闹铃随音乐结束而结束的时刻开始,或从手动按9键停止闹铃的时刻开始定时,一段时间后闹铃重响。

11. 12键为闹铃重响间隔选择开关,可选两个定时长度,以便在闹铃重响功能开启时,闹铃初次响后,过一段时间闹铃继续响。

B.2 程序主要模块B.2.1 延时模块数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序需要反复调用程序如下:D_1MS:MOV R7,#2D_5:MOV R2,#250DJNZ R2,$DJNZ R7,D_5RET除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了,在此不再赘述。

B.2.2中断服务程序本实验中,计数器T0,T1中断都有运用,其中T0中断为时钟定时所用,T1中断用于音乐播放。

T0的定时长度为0.01s,工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为65536-10000=55536=#0D8F0,装满定时器需要0.01s的时间,从而100次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。

包括日期显示的功能也是如此。

另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。

基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。

以下为定时中断流程图:计数器T1工作于方式1,当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。

其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句 CPL实现。

中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。

具体的逻辑判断方法为:首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。

只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。

其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。

日历进位判断流程图如下:本实验用8个数码管,刚好能显示年,月,日,扫描显示与时间的扫描显示类似。

年比较特殊,由两个寄存器存储,个位,十位为0时,表明年数能被100整除,若此时千位,百位组成两位数能被4整除,则年数被400整除,为闰年。

若十位,个位组成两位数能被4整除,则年数能被4整除,为闰年。

B.2.3主程序主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用相关程序,该段程序如下:MAIN:JNB P3.0,DATETZ ;按下0键,显示日期并可对日期进行调整JNB P3.1,ZSTZ1 ;按下1键,显示时间,并可调时JNB P3.2,NLTZZ ;按下2键,进行闹铃设置JNB P3.3,DSTZ ;按下3键,进行定时设置JNB P3.4,CESHI ;闹铃测试JNB P3.6,STOPWATCHTZ ;按下6键,进入秒表方式ACALL DISP ;调用时钟显示子程序JNB P0.6,RERING ;判断是否开启闹铃重响功能RE: JNB P2.7,DSPDKQ ;判断是否开启闹铃功能,没开则去判断定时FMQPD: ;判断定时值R4,R3是否到零、闹铃时刻是否已到MOV A,HOUR;SUBB A,38H;JZ FEN ;判断小时数是否到闹铃所定时间,若到,则对分进行判断;若不到,则对定时进行判断AJMP DSPDKQFEN:MOV A,MINUTE;SUBB A,37H;JZ MIAO ;判断分是否到闹铃所定时间,若到,则对秒进行判断;若不到,则对定时进行判断AJMP DSPDKQMIAO:MOV A,SECONDSUBB A,#0JZ SHENGYIN1 ;判断秒是否到闹铃所定时间,若到,则时,分,秒都到达闹铃时刻,进入响铃子程序;若不到则判断定时AJMP DSPDKQRERING: ;闹铃重响判断程序JNB F0, RE ;标志位F0为0,不进行闹铃重响设定CPL F0MOV 3CH,#1 ;定时判断标志位赋1,定时判断功能开启JNB P0.7,M1 ;闹铃重响间隔时间选取MOV R4,#0 ;闹铃重响间隔30秒MOV R3,#30AJMP MAINM1: ;闹铃重响间隔60秒MOV R4,#1MOV R3,#0AJMP MAINDSPDKQ: ;判断是否应该进行定时判断MOV A,3CH ;3CH是引入的判断因子,当其为0时,不对定时时间是否到0进行判断AJMP MAINDSPD2:MOV A,R4;JZ S_PD ;R4所存定时分数为0,则转而判断R3所存定时秒数AJMP MAIN;S_PD:MOV A,R3;JNZ MAIN ;R4,R3所存参数减为0,定时长度已到JNB P0.6,SHENGYIN2 ;闹铃重响功能开启时,跳入响铃程序AJMP TISHI ;不是闹铃重响定时,则定时时间到时,跳入提示程序AJMP MAINCESHI:ACALL RINGAJMP MAINSHENGYIN1: ;调用响铃子程序LCALL RINGAJMP MAINSHENGYIN2:SETB F0 ;闹铃重响标志位设定LCALL RING ;响铃CLR F0 ;标志位复位AJMP MAINNLTZZ:AJMP NLTZ1 ;跳入闹铃调整程序AJMP DSTZ1 ;跳入定时调整程序DATETZ:AJMP DATETZ1 ;跳入日期调整程序STOPWATCHTZ:AJMP STOPWATCHTZ1 ;跳入秒表程序B.2.4 显示子程序8个数码管轮流进行显示,分别显示1ms,依赖人的视觉暂留效应,给人以数码管持续高亮的错觉。

相关文档
最新文档