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

ORG 00H

AJMP START ;程序开始

ORG 0BH ;TimEr0中断向量地址

AJMP TimEInt ;跳到中断处理程序

ORG 0020H

START: MOV sp,#70H

SETB P3.0 ;输出高电平,闹钟服务程序驱动口

SETB P3.5 ;输出高电平,闹钟服务程序驱动口

MOV 39H,#40 ;1秒钟中断次数

MOV 3AH,#00 ;开机时间

MOV 3BH,#00

MOV 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 ,#01H

MOV TH0,#9EH

MOV TL0,#58H

MOV IE,#82H ;开全局中断

SETB TR0 ;开定时中断,启动定时器

;*****************************************

; 以下为主程序,按键扫描

;*****************************************

MainLoop:

JB P3.2,CheckPP ;闹时设置键按下了吗?没有则转去检测秒设置键篇p3.2 LCALL Delay2

JB P3.2,CheckPP

SETB 20H.0 ;置为闹时设置模式

CALL AlarmSet

CheckPP:

JB P3.4,CheckPQ ;分设置键按下了吗?没有则转去检测小时设置键

CALL Delay2

JB P3.4,CheckPQ

MOV A,3BH

ADD A,#1 ; 如果按下则将分钟加一

MOV 3BH,A;

CJNE A,#3CH,NotOver1 ;到60分钟了吗?

MOV 3BH,#0

NotOver1: ;以下等待按键释放及防抖动

JNB P3.4,$

CheckPQ:

JB P3.3,CheckAlarm ;小时设置键按下了吗?没有则转去闹时状态检测

CALL Delay2

JB P3.3,CheckAlarm ;按下的时间超过15ms吗?如按下调用蜂鸣器发音程序

MOV A,3AH

ADD A,#1 ;如果按下则将小时加1

MOV 3AH,A

CJNE A,#18H,NotOver2

MOV 3AH,#0 ;到24小时则将小时清0

NotOver2: ;以下等待按键释放及防抖动

JNB P3.3,$

CheckAlarm:

JNB 20H.2,ToReturn ;闹钟时间到没有

CALL AlarmProcess ;闹钟子程序

ToReturn:

AJMP MainLoop

;**********************************************

; 定时器TimEr0中断服务程序(此程序每8ms执行一次)

;**********************************************

TimeInt:

MOV TH0,#9EH ;重新加载定时参数

MOV TL0,#58H

PUSH ACC

PUSH PSW ;保护累加器及程序状态字的内容

SETB RS0

CLR RS1

DJNZ 39H,Notone3CH ;中断了40次了吗?即够1秒了吗?

MOV 39H,#40 ;如够1秒则重新设置"39H"计数器

CALL Clock ;调用将时钟内容加1秒的子程序

CALL ConvertoBuffer ;调用将时钟内容转换到显示缓冲区子程序

Notone3CH:

CALL ScanDisplay ;调用扫描显示子程序

POP PSW

POP ACC ;恢复累加器及程序状态字的内容

RETI

;*********************************************

;扫描显示子程序,将缓冲区的数值显示在对应的数码管上

;*********************************************

ScanDisplay:

MOV R1,#30H ;指向显示数据首址,利用c语言指针原理读取缓冲区的数值

;子程序ConvErtoBuffEr已经将相应的值存放在30H的缓冲区中MOV R4,#10111111b ;扫描控制字初值,显示右边第一个数码管

PLAY: MOV A,R4 ;扫描字放入A

MOV P2,A ;从P2口输出,p2口的低六位分别控制对应的六个数码管的显示MOV A,@R1 ;取显示数据到A

MOV DPTR,#TAB ;取段码表地址

MOVC A,@A+DPTR ;查显示数据对应段码

MOV P0,A ;段码放入P0口,具体显示位

INC R1 ;指向下一地址

MOV A,R4 ;扫描控制字放入A

;显示时分秒分隔位

JB ACC.1,LPP1 ;显示时分位

CLR P0.7

CALL Delay

SETB P0.7

LPP1:JB ACC.3,LPP2 ;显示秒分位

CLR P0.7

CALL Delay

SETB P0.7

LPP2: JNB ACC.7,ENDOUT ;扫到第六位时结束

RR A ;A中数据循环左移

MOV R4,A ;放回R4内

LCALL Delay ;每位数码管显示间隔时间为2ms

SETB P0.7 ;关闭分位显示点

AJMP PLAY ;跳回PLAY循环

ENDOUT:

MOV P0,#0FFH ;P0口复位

RET

TAB: 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 ;将原秒值送入a

ADD A,#1 ;加1秒

MOV 3CH,a

CJNE A,#3CH,NotOverFlow

MOV 3CH,#0

MOV A,3BH

ADD A,#1

MOV 3BH,A;

CJNE A,#3CH,NotOverFlow

MOV 3BH,#0

MOV A,3AH

ADD A,#1

MOV 3AH,A

CJNE A,#18H,NotOverFlow

MOV 3AH,#0

NotOverFlow:

JNB 20H.1,NotAlarm ;闹钟开启了吗?如没有开启则无需理会是否到闹时时间

MOV A,3CH

JNZ NotAlarm ;秒为零吗?

MOV A,3BH

CJNE A,2FH,NotAlarm ;时间分钟值和闹时设置分钟值相等吗?

MOV A,3AH

CJNE A,2EH,NotAlarm ;时间小时值和闹时设置小时值相等吗?

SETB 20H.2 ;到了闹时时间则将"闹时时间到"标志设为1

NotAlarm:

RET

;**************************************************************************

; 将时钟内容或闹时设置值转换到显示缓冲区子程序

;************************************************************************** ConvertoBuffer:

MOV R1,#30H

JB 20H.0,DispAlarmSet ;判断时钟模式,以决定是显示实时时间还是闹时时间,20H.0,0为正常走时,1为闹钟设定

MOV A,3CH

MOV 23H,A

MOV A,3BH

MOV 22H,A

MOV A,3AH

MOV 21H,A

AJMP Convert ;在数码管显示缓冲区的数值

DispAlarmSet: ;闹钟设定

JB 20H.1,AlarmOn ;闹钟开关,0为关,1为开

MOV 23H,#00H

AJMP Next

AlarmOn:

MOV 23H,#1 ;显示闹时时间及显示闹钟状态:显示"00"表示关闭闹钟,

NExt: ;"01"表示开启闹钟

MOV a,2FH;

MOV 22H,A;

MOV A,2EH;

MOV 21H,A ;将数值显示到数码管

Convert:

MOV A,23H ;取秒值,将待显示的数值存储到缓冲区

MOV B,#10

DIV AB

MOV @R1,B

INC R1 ;缓冲寄存器的地址加1

MOV @R1,A

INC R1

MOV A,22H

MOV B,#10

DIV AB

MOV @R1,B;

INC R1 ;缓冲寄存器的地址加1

MOV @R1,A ;将秒值的十位值存入缓冲区

INC R1

MOV A,21H

MOV B,#10

DIV AB

MOV @R1,B;

INC R1 ;缓冲寄存器的地址加1

MOV @R1,A ;将秒值的十位值存入缓冲区

RET

;**************************************************

; 闹钟时间设置子程序

;**************************************************

AlarmSet:

JNB P3.2,$

CALL Delay2 ;等待"P3.2"键释放

CheckArmPM: ;

JB P3.4,CheckArmPN ;分设置键按下了吗?没有则转去检测小时设置键p3.5 CALL Delay2

JB P3.4,CheckArmPN

SETB 20H.1 ;闹钟开

MOV A,2FH

ADD A,#1 ;如果按下则将分钟加1,

MOV 2FH,A

CJNE A,#3CH,ArmNotOver1 ;到60分钟了吗?

MOV 2FH,#0 ;到60分钟则将分钟清0

ArmNotOver1: ;以下等待按键释放及防抖动

JNB P3.4,$ ;等待对应设置时间的按键释放

CheckArmPN:

JB P3.3,AlarmSetEnd ;小时设置键按下了吗?没有则返回反复检测

CALL Delay2

JB P3.3,AlarmSetEnd

SETB 20H.1

MOV A ,2EH

ADD A,#1 ;如果按下则将小时加1

MOV 2EH,A

CJNE A,#18H,ArmNotOver2

MOV 2EH,#0 ;到24小时则将小时清0

ArmNotOver2: ;以下等待按键释放及防抖动

JNB P3.3,$

AlarmSetEnd:

JB P3.2,AlarmSet ;闹钟设置完毕了吗?

CALL Delay2

JB P3.2,AlarmSet

JNB P3.2,$

CLR 20H.0 ;从设置模式转为走时模式

RET

;**************************************************

; 闹时服务子程序

;************************************************** AlarmProcess:

MOV R2,#10

loop2:

CPL P3.0

CPL P3.5

CALL Delay1

JB P3.2,AlarmReturn ;停止闹时键(即闹时设置键)按下了吗?

CALL Delay2

JB P3.2,AlarmReturn

CLR 20H.1 ;关闭闹钟

JNB P3.2,$

SETB P3.0 ;如停止闹时键按下则停止闹时

SETB P3.5

CLR 20H.2

AJMP loop6

AlarmReturn:

DEC R2

MOV A,R2

CJNE A,#00H,loop2

SETB P3.0 ;如停止闹时键按下则停止闹时

SETB P3.5

CLR 20H.1 ;关闭闹钟

CLR 20H.2

loop6:RET

;**************************************************

; 延时子程序

;**************************************************

Delay:

MOV R6,#2 ;延时产生1ms,数码管动态显示间隔时间

del: MOV R7,#249

DJNZ R7,$

DJNZ R6,del

RET

Delay1:

MOV R5,#2 ;延时间产生1s,扬声器的震动间隔时间de3:MOV R6,#200

de2:MOV R7,#250

DJNZ R7,$

DJNZ R6,dE2

DJNZ R5,dE3

RET

Delay2:

MOV R6,#10 ;延时产生15ms,按键防止抖动时间de4:MOV R7,#245

DJNZ R7,$

DJNZ r6,de4

RET

End

单片机电子时钟设计

单片机在多功能数字电子钟中的应用已是非常普遍,人们对电子时钟的功能及工作顺序都已非常熟悉了,但是却很少知道它的内部结构以及工作原理。由单片机作为电子时钟的核心控制器,可以通过它的时钟信号来实现计时功能,将时间数据由单片机输出,利用显示器将时间显示出来。通过键盘可以进行时间的设定。输出设备显示器可以用液晶显示技术或数码管来显示技术。 本系统利用单片机实现具有计时、校时等功能的数字电子时钟,是以单片机AT89C51 为核心元件同时采用LED数码管显示器动态显示“时”,“分” “秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。另外具有校时功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。

第一章概述 1.1课题研究的目的和意义 数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。由于电子集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域,因此进行电子钟的设计是必要的。尽管目前市场上已有现成的电子钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机定时器的功能也可以完成电子钟电路的设计,因此进行电子钟的设计是可行的。在这里我们将已学过的比较零散的数字电路和单片机的知识有机的、系统的联系、组织起来应用于实际,来培养我们的综合分析和设计电路,写程序,调试电路、程序的能力。 单片机具有体积小、功能强、可靠性高、价格低廉等一系列优点,不仅已成为工业测控领域普遍采用的智能化控制工具,而且已渗入到人们工作和和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,应用前景广阔。 1.2国内外研究的现状及发展趋势 从单片机电子时钟近年的发展趋势来看,正朝着多层次用户、多品种、多规格、高精度、小体积、低能耗等方面发展。在这种趋势下,时钟的数字化,智能化已经成为现代时钟生产研究的主导设计方向。带有时钟功能的电子产品和电子设备进年来广泛地出现在国内外市场中,例如奥运会倒计时显示屏、铁路安全显示屏、生产线看板、体育比赛记时屏、大型室外高亮度时钟等,这类产品覆盖银行、医院、地铁车站、体育运动、电视台、监控系统、高大建筑物等行业。作为一种人机接口方式,语音比显示屏,鼠标键盘等设备更易于使用。而在设计里加上语音提示、音乐或者其他语音功能,还使得设计显得既人性化又有趣,不但能提高开发者的兴趣和积极性,同时也能让设计作品与众不同,从而得到了各界领域的广泛应用所以对语音的研究有很大的实际意义。

毕业设计(论文)-基于单片机多功能电子时钟的设计与仿真(含程序仿真)[管理资料]

程序仿真等全套设计,联系153893706 第1章绪论 二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步…… 我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。 本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主

要器件的基本功能和作用。 除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。AT89C52是由ATMEL公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。 本文介绍了基于AT89C52单片机设计的电子万年历。 选题背景及研究的目的与意义 设计的目的 电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。随着技术的发展人们已经不再满足于钟表原先简单的计时功能,希望出现一些新的功能,诸如日历的显示闹钟的应用等,以带来更大的方便,而所有这些,又都以数字化的电子时钟为基础的。因此,研究实用电子时钟及其扩展应用,有着非常现实的意义,具有很大的实用价值。 研究的意义 由于数字集成电路的发展采用了先进的石英技术,现代电子时钟具有走时准确性能稳定制作维修简单等优点,弥补了传统钟表的许多不足之处。我们利用单片机技术设计制作的电子万年历,可以很方便的由软件编程进行功能的调整和改进,使其能够准确显示年月日时间星期的同时,还能具有很多其他功能。如设置闹钟语音报时阴阳历的转换二十四节气的显示等,有一定的新颖性和实用性,同时体积小携带方便,使用也更为方便,具有技术更新周期短成本低开放灵活等优点,具备一定的市场前景。这里介绍的就是一款可满足使用者特殊要求,输出方式灵活计时准确性能稳定维护方便的使用电子万年历。采用单片机进行遥控系统的应用设计,具有硬件接口简单方便,变成灵活多样,操作码个数可随意设定等优点。 研究内容 1、选用电子万年历芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、

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

目录 第一章电子时钟功能及设计方案 (1) 1.1电子时钟功能 (1) 1.1.1时钟简介 (1) 1.1.2时钟的基本特点及原理 (1) 1.2设计方案 (2) 1.2.1计时方案 (2) 1.2.2显示方案 (2) 第二章硬件介绍 (3) 2.1单片机简介 (3) 2.1.1单片机的特点 (3) 2.1.2 89C51单片机介绍 (3) 2.2LED数码管 (6) 2.3晶振电路 (7) 第三章软件仿真 (8) 3.1 PROTUES软件 (8) 3.1.1protues软件简介 (8) 3.1.2电路功能仿真 (8) 3.2电路原理图 (9) 3.3流程图 (9) 第四章调试结果 (10) 4.1使用说明 (10) 4.1.1 时间显示 (10) 4.1.2时间调整 (11) 第五章心得体会 (12) 附录: (13) 电子钟总体程序清单: (13)

第一章电子时钟功能及设计方案 1.1电子时钟功能 1.1.1时钟简介 现代的电子时钟是基于单片机的一种计时工具,采用延时程序产生一定的时间中断,用于一秒的定义,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。从而达到计时的功能,是人民日常生活补课缺少的工具。 1.1.2时钟的基本特点及原理 现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。 该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。

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

单片机汇编语言电子时钟设计 随着科技的快速发展,单片机技术已经成为了现代电子工程中不可或缺的一部分。使用单片机设计电子时钟,可以通过编程语言对单片机进行控制,从而实现精确的时间显示和时间控制。本文将介绍一种基于单片机汇编语言的电子时钟设计方案。 一、设计原理 电子时钟是一种以数字形式显示时间的装置,它通常由单片机、显示模块、电源模块等组成。其中,单片机作为核心控制单元,负责处理各种信号和指令,并控制显示模块显示时间。在这个系统中,单片机的任务包括读取时钟芯片的时间数据、处理按键输入、控制显示模块等。 二、硬件设计 1、单片机选择 在单片机选择方面,我们选用AT89S52型号的单片机。该单片机具有低功耗、高性能的特点,内部含有8K字节的Flash存储器和256字节的RAM,同时具有丰富的外设接口,如UART、SPI、I2C等。

2、时钟芯片选择 时钟芯片选用DS1302型号,该芯片具有精度高、稳定性好的优点,可以提供年、月、日、时、分、秒等时间信息。DS1302芯片通过SPI 接口与单片机进行通信。 3、显示模块选择 显示模块选用LCD1602型号,该模块具有体积小、功耗低、显示内容丰富的优点,可以同时显示时间、日期和星期几等信息。LCD1602模块通过并行接口与单片机进行通信。 4、按键模块选择 按键模块选用四个独立按键,分别实现小时加、小时减、分钟加、分钟减功能。按键通过单片机的外部中断引脚与单片机进行通信。 三、软件设计 1、程序流程 程序流程主要包括以下几个部分:系统初始化、读取DS1302芯片的时间数据、处理按键输入、控制LCD1602模块显示时间等。具体流程如图1所示。

单片机课程设计电子时钟

单片机课程设计电子时钟 一、选题意义电子时钟是一款基于单片机的智能时钟,具备控制显示时间、闹钟提醒等功能,广泛应用于家庭、办公室、学校和工厂等场合。学习单片机课程设计电子时钟,不仅可以更深入地了解单片机的编程原理和应用技巧,还可以提高学生的动手能力,培养学生独立思考和解决问题的能力。 二、设计思路电子时钟的设计思路主要包括时钟的显示、时钟的控制和闹钟的提醒三个方面。时钟的显示采用数码管显示时间,时钟的控制包括设置时间、显示时间、时间修改等功能,闹钟的提醒则采用蜂鸣器声音提示。下面分别介绍各个模块的实现方案。 1. 数码管显示模块数码管显示模块主要用于显示当前时间,需要用到7位共阴数码管,通过原理图连接数码管和单片机端口,根据单片机输出的信号来控制数码管的选通和数值显示。数码管显示时间的格式可以有24小时制和12小时制两种,24小时制显示格式为“时:分:秒”,12小时制显示格式为“AM/P M 时:分:秒”。 2. 时钟控制模块时钟控制模块主要用于设置并控制时钟 的运行和显示,包括时钟的开关、时间的设置和修改、时间的显示等功能。时钟开关的控制可以通过单片机IO口控制,时 钟的时间设置和修改需要由用户输入时钟的时间信息,并对单片机中的寄存器进行相应的存储操作,时间的显示也需要通过单片机读取寄存器的信息,并将其转换为数码管的显示信号。

3. 闹钟提醒模块闹钟提醒模块主要通过蜂鸣器的声音提 示来提醒用户已到设置时间。闹钟的设置需要由用户输入提醒时间,单片机负责将提醒时间和当前时间进行比较,并在提醒时间之后发出蜂鸣器的声音信号。 三、硬件设计硬件设计包括原理图设计和PCB布局设计两个部分。原理图设计需要根据电子时钟的功能模块,绘制出各个模块的连接关系图,确定各个元器件和单片机的引脚连接方式。PCB布局设计需要根据原理图的设计,在PCB板上布置各个元器件,并连接各个元器件和单片机的引脚。硬件设计需要注意尽量缩小电路板面积,优化PCB 布局,避免线路交叉和 信号干扰等问题。 四、软件设计软件设计主要包括单片机的程序设计和调试。程序设计需要采用 C 语言编写,实现各个模块的功能。程序 的调试需要通过单片机仿真软件或单片机下载设备进行,对程序进行断点调试和单步调试,检查程序的正确性,并调试出硬件和软件的问题。 五、实验结果电子时钟是一款简单而实用的单片机应用设计,完成之后可以实现按键设置时间、24小时和12小时制显 示切换、时间的正常流动和修正、长响蜂鸣器提醒用户等功能。通过设计电子时钟,可以更深入地了解单片机的编程原理和应用技巧,掌握实际电路设计和调试技能,为今后的应用开发提供更加扎实的基础。

基于52单片机电子时钟的设计论文(纯汇编语言编写)

编号 单片机课程设计 (2013级) 题目:基于52单片机电子时钟的设计 学院:物理与机电工程学院 专业:电子信息科学与技术 作者姓名:陈??党??杜?? 指导教师:张??职称:教授 完成日期:2016 年7月2日 二〇一六年七月

基于52单片机电子时钟的设计 摘要 本次设计的多功能时钟系统采用STC89C52单片机为核心器件,利用其定时器/计数器定时和记数的原理,结合液晶显示电路、时钟芯片DS1302电路、电源电路以及按键电路来设计计时器。将软硬件有机地结合起来,使得系统能够实现液晶显示,显示有年、月、日、时、分、秒以及星期,还可以设置闹钟和整点报时。其中软件系统采用单片机汇编语言编写程序,包括显示程序、闹钟程序、中断、延时程序,按键消抖程序等,并在keil中调试运行,硬件系统利用PROTEUS 强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。 关键词:STC89C52芯片;时钟芯片DS1302;单片机汇编语言;液晶显示电路

1 设计任务及要求分析 1.1 设计任务:基于单片机的电子时钟设计 1.2 要求: 1.2.1 用LCD液晶作为显示设备 1.2.2 可以分别设定小时、分钟和秒,复位后时间为 00 00 00 1.2.3 能实现日期的设置年、月、日 1.3 扩展要求:如闹钟功能、显示星期、整点音乐报时等 2 系统方案 2.1 系统整体方案的论证 电路原理设计是基于小系统板包括电源电路、复位电路、按键电路、DS1302时钟电路、液晶显示驱动电路、输出控制电路。电源部分是用电池来提供的3v-5v,晶体振荡器采用的是12MHz的石英晶体振荡器。 整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。系统设有4个独立式按键可以对时间年、月、日和星期进行调整,还可以设置闹钟。具体如图2.1所示: 图2.1 系统整体框图

单片机闹钟程序设计

单片机闹钟程序设计 这个是在之前的电子时钟上功能的扩展,主要加入闹钟模块。即到达预定时间响铃一分钟,一分钟后自动停止,也可以按下已设定的键实现手动停止。 数码管方面的学习就到此为此吧,下一步是对液晶显示的学习。 单片机闹钟程序设计如下: #i nclude;#define uchar unsigned charunsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管数字编码uchar i,j,k,second,tcount,minute,hour,tminute,thour,rin g;sbit beep=P2^6;sbit S2=P3^4;//---------------------------------------------------延时子程序,大约延时 n MSdelay(uchar n){for(j=n;j>;0;j--) for(k=125;k>;0;k--);}//---------------------------------------------------中断子程序void timer0() interrupt 1 using 0{TH0=(65536-50000)/256; //中断设置初始化

TL0=(65536-50000)%256; tcount++; if(tcount==20) //满1秒{tcount=0;second++;beep=0; //秒数加1 if(second==60) //满1分 {second=0;minute++; //分数加1,秒数归零 if(minute==60) //满1小时 { minute=0;hour++; //小时数加1,分数归零 if(hour==24) {hour=0;} } } }}void timer1() interrupt 3 using 1{TH1=0x3c; //中断设置初始化 TL1=0xb0;

基于51单片机实现的简单闹钟设计

基于51单片机实现的简单闹钟设计 引言 闹钟是一种非常实用的计时工具,它在我们的日常生活中扮演着重要的角色。无论是早上起床,晚上定时睡觉,还是约会、会议等重要事件的提醒,闹钟都是我们的好帮手。基于51单片机实现的简单闹钟设计,不仅可以帮助我们更好地管理时间,还能锻炼我们的编程和电子设计能力。本文将向大家介绍如何使用51单片机来实现一个简单的闹钟设计。 原理分析 51单片机是一种微控制器,它内部集成了一些常用的外围设备,如定时器、中断控制器、串口等,这些设备使得51单片机能够实现各种不同的应用。闹钟的设计主要需要实现定时、计数、中断等功能,这些功能都可以通过51单片机来实现。 在闹钟设计中,我们需要用到51单片机的定时器和外部中断功能。首先,我们使用定时器来实现时间的计数,当达到设定时间时,触发外部中断。在中断服务程序中,我们控制蜂鸣器发出声音来提醒用户。另外,我们还需要使用按键来设置时间和闹钟的开启/关闭。 设计方案 基于以上分析,我们可以设计一个简单的闹钟电路。以下是具体的电

路设计: 1、电源部分:使用一个直流电源模块为51单片机供电。 2、按键部分:使用三个按键分别实现小时、分钟和开关的设置。 3、显示部分:使用四位LED数码管来显示时间。 4、蜂鸣器部分:使用一个蜂鸣器作为闹钟的声音提醒。 5、单片机部分:使用51单片机来控制整个电路。 程序编写 在程序编写方面,我们需要实现以下几个功能: 1、初始化:初始化单片机的各个设备,包括定时器、外部中断、数码管等。 2、设置时间:通过按键设置时间和闹钟的开启/关闭。 3、计时:使用定时器来计时,当达到设定时间时触发外部中断。 4、中断服务程序:在中断服务程序中,控制蜂鸣器发出声音来提醒用户。 实验测试 完成电路设计和程序编写后,我们需要对闹钟进行实验测试,以确保

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

ORG 00H AJMP START ;程序开始 ORG 0BH ;TimEr0中断向量地址 AJMP TimEInt ;跳到中断处理程序 ORG 0020H START: MOV sp,#70H SETB P3.0 ;输出高电平,闹钟服务程序驱动口 SETB P3.5 ;输出高电平,闹钟服务程序驱动口 MOV 39H,#40 ;1秒钟中断次数 MOV 3AH,#00 ;开机时间 MOV 3BH,#00 MOV 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 ,#01H MOV TH0,#9EH MOV TL0,#58H MOV IE,#82H ;开全局中断 SETB TR0 ;开定时中断,启动定时器 ;***************************************** ; 以下为主程序,按键扫描 ;***************************************** MainLoop: JB P3.2,CheckPP ;闹时设置键按下了吗?没有则转去检测秒设置键篇p3.2 LCALL Delay2 JB P3.2,CheckPP SETB 20H.0 ;置为闹时设置模式 CALL AlarmSet CheckPP: JB P3.4,CheckPQ ;分设置键按下了吗?没有则转去检测小时设置键 CALL Delay2 JB P3.4,CheckPQ MOV A,3BH ADD A,#1 ; 如果按下则将分钟加一 MOV 3BH,A;

数字钟基于51单片机汇编语言设计

目录 前言 (Ⅲ) 摘要 (Ⅳ) 一、单片机数字时钟设计的概述 (1) 1.1设计目的 (1) 1.2题目描述 (1) 1.3单片机基础知识 (1) 1.4 MCS-51单片机介绍及分类 (3) 1.5数字钟基本原理 (3) 二、单片机数字时钟的硬件系统 (4) 2.1单片机最小系统的电路原理 (4) 2.2 MCS-51单片机AT89C51芯片介绍 (5) 2.2.1 AT89C51芯片引脚功能介绍 (5) 2.2.2 AT89C51芯片的内存结构 (6) 2.2.3复位电路 (8) 2.2.4时钟震荡电路 (9) 2.3七段数码管的引脚图及使用 (10) 2.4 驱动器74LS245芯片 (11) 三、单片机数字时钟的程序设计 (12) 3.1系统开发环境、汇编语言 (12)

3.1.1系统开发环境 (12) 3.1.2汇编语言 (12) 3.2数字时钟设计的思路及流程 (14) 3.2.1主程序 (14) 3.2.2定时中断(走时)子程序流程 (15) 3.2.3按键调试子程序 (16) 3.3定时器、计数器功能 (16) 3.4中断系统功能 (18) 四、数字时钟系统的仿真及运行 (19) 4.1 WAVE6000仿真软件介绍 (19) 4.2程序设计及运行结果 (21) 4.2.1数字时钟源程序 (21) 4.2.2Wave6000仿真程序运行调试结果 (25) 4.2.3 Proteus仿真电路运行调试结果 (25) 五、心得体会 (26) 六、参考文献 (28)

随着生活水平的提高,人们越来越追求人性化的事物,传统的时钟已不能满足人们的需求。现代的数字钟不仅需要数字电路技术而且需要模拟电路技术和单片机技术,增加了数字钟的功能。其电路可以由实时时钟模块、环境温度检测模块、人机接口模块、报警模块等部分组成。利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,充分发挥软件编程的优点,减小因元器件精度不够引起的误差,但是数字钟还是可以改进和提高如选用更精密的元器件。但与机械式时钟相比已经具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。 数字钟是采用数字电路实现对、时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。

51单片机设置的电子闹钟(可调时间和闹钟)

#include #define uint unsigned int #define uchar unsigned char #define LED P0 // 数码管 的段选 #define LIGHT P1 // 时分秒 位的指示灯 #define WS P2 // 数码管 的位选 sbit key1=P3^0; // 时间暂停/ 开始 sbit key2=P3^1; // 时间/闹钟设置 sbit key3=P3^2; // 增加 sbit key4=P3^3; // 减少 sbit alarm=P3^6; // 闹铃 uchar tab[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 0-9 uchar tab_dp[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; // 0.-9.(带小数点) uchar data1[]={0,0,0,0,0,0}; uchar data2[]={0,0,0,0,0,0}; uint t,k,kk,k1,flag; uint bbh,bbm,bbs,bbh1,bbm1,bbs1; uint sec,min,hour,sec1,min1,hour1; // 定义秒,分,时 void init(); void display(); void display_bb(); void delay( uint ); void keyscan(); void main() { init(); while(1) { keyscan(); if(k1==0||k1==1||k1==2||k1==3) // 显示调节时间 { display();

定时闹钟_C51单片机课程设计

题目:定时闹钟 目录 一、概述 (1) 1.1设计目的及意义 (1) 1.2设计任务 (1) 1.3设计系统的主要功能 (1) 二、系统总体方案及硬件设计 (1) 2.1系统总体方案 (1) 2.2系统设计总框图 (2) 2.3硬件设计 (2) 2.3.1单片机最小系统设计 (2) 2.3.2报警模块设计 (6) 2.3.3显示模块设计 (7) 2.3.4调时模块设计 (9) 三、软件设计 (10) 3.1主程序流程图 (10) 3.2定时中断子程序流程图 (11) 3.3程序设计 (11) 四、系统的仿真与调试 (14) 4.1 proteus软件仿真 (12) 4.2系统的调试 (13) 五、设计总结与体会 (15) 参考文献 (15)

附录1:源程序代码 (17) 附录2:系统原理图 (24)

一、概述 1.1设计目的及意义 学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过的基础知识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯。 1.2设计任务 完成所选题目的分析与设计,达到技术性能要求。提交正式课程设计总结报告一份。 本文设计的定时闹钟的核心模块采用AT89C51芯片,时、分、秒用6位LED数码管显示。在电路中通过四个按键S1、S2、S3和S4来进行定时、调时和复位,定时时间到通过蜂鸣器发出报警声。 1.3设计系统的主要功能 (1) 能显示时时-分分-秒秒。 (2) 能够设置定时时间、修改定时时间。 (3) 定时时间到能发出报警声。 二、系统总体方案及硬件设计 2.1系统总体方案 (1) 由于LED显示器相对于其它显示器(如LCD显示器)来说其价格要便宜许多,而且亮度更高,耐温范围较广,所以采用6位数码管来显示“时时-分分-秒秒”。 (2) 时间的定时用单片机内部时钟电路,在一定的时间内能使其误差较小,如经过一年其误差才仅有数秒。修改时间和定时用手动按键控制,报警声通过蜂鸣器发出。这样可以使得硬件电路设计较为简单,且软件设计也易于实现,并能够降低成本。

基于单片机的简易电子时钟设计

基于单片机的简易电子时钟设计 电子时钟是一种以数字形式显示时间的设备,它使用电子元件来实现计时和显示功能。基于单片机的简易电子时钟设计是一种使用单片机芯片作为核心控制器的时钟设备。本文将介绍一个基于单片机的简易电子时钟设计的方案,并详细讨论其硬件和软件实现。 一、硬件设计 基于单片机的电子时钟设计的核心是单片机芯片,这里我们选择 AT89C51作为控制器。AT89C51是一款典型的80C51系列单片机,具有高速、低功耗和强大的计数和定时功能。此外,还需要以下硬件元件实现电子时钟设计: 1.电源模块:提供电源给单片机和其他电路元件。 2.晶振:用于提供时钟信号给单片机。 3.液晶显示模块:用于显示时间。 4.按键模块:用于设置和调节时间,以及其他功能操作。 5.蜂鸣器:用于发出小时、分钟和秒的提示音。 二、软件设计 基于AT89C51的电子时钟设计需要编写相应的嵌入式软件程序。以下是设计思路和主要功能点: 1.初始化设置:在电子时钟启动时,进行一些初始化设置,如设置系统时钟、显示模式和其他参数。

2.时钟计时:使用定时器和计数器模块,实现时钟的计数功能。根据时钟信号逐秒递增,并根据设定的模式进行小时、分钟和秒的更新。 3.时间显示:将当前的小时、分钟和秒数转化成对应的数字,在液晶显示模块上显示出来。 4.时间调整:通过按键模块,实现时间的调整功能。可以通过按键设置、递增和递减来调整小时、分钟和秒。 5.其他功能:可以添加一些其他功能,如闹钟设置、闹铃功能等,以增强电子时钟的实用性。 三、实施步骤 1.硬件搭建:按照上述硬件设计需求,搭建电子时钟的硬件电路。注意连接正确的引脚,提供稳定的电源。 2.软件编写:根据设计思路和功能点,编写相应的嵌入式软件程序。使用C语言或汇编语言编写代码,并调试和测试程序。 4.测试和优化:将电源连接到电子时钟,进行测试和优化。检查时钟的计时和显示功能是否正常,是否可以调整时间。 四、实际应用 总结: 基于单片机的简易电子时钟设计是一种使用单片机芯片作为核心控制器的时钟设备。通过硬件和软件的设计,可以实现计时、显示和调整时间的功能。这种设计在实际应用中具有广泛的用途,可以提供准确的时间和其他有用的功能。

单片机课程设计——定时闹钟的设计

1 概述 1.1设计目的 本设计是一个定时闹钟,它仅使用单片的40引脚单片机完成闹钟的全部功能。设计目的是为了学习和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。 1.2设计任务 本文设计的定时闹钟采用80c51芯片,用汇编语言进行编程,时、分、秒用6位LED数码管显示。在电路中通过四个按键S1、S2、S3和S4来进行定时和调时,定时时间到通过喇叭发出报警声。 1.3设计系统的主要功能 ·能显示时时-分分-秒秒。 ·能够设置定时时间、修改定时时间。 ·到定时时间能发出报警 2 系统总体方案及硬件设计 2.1 系统总体方案 1)由于要显示数字时间,所以需要6位数码管。 2)时间的定时用时钟电路,修改时间和定时用手动按键控制,报警声通过喇叭发出。 3)80c51单片机加上外围器件(2个3位共阳数码管,8个限流电阻和一个蜂鸣器)和应用程序(ISIS 7 Professional软件和KEIL编译软件),构成相应的应用系统。 2.2系统设计方框图 图1系统设计方框图

2.3硬件设计 2.3.1芯片:80c51 80c51芯片内不包含一个8位中央处理器cpu,4kb程序存储器ROM,128B随机存取存储器,RAM,4个8位并行I/O接口,1个全双工串行通信接口,2个16 位定时器、计数器级及21个特殊功能寄存器。外部具有64KB程序存储器寻址能力和64KB数据存储器寻址能力。指令系统中增加了乘法指令,提高了运算及数据处理能力,且具有位操作能力。由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12 时钟和6 时钟操作P89C51X2 和P89C52X2/54X2/58X2 分别包含128 字节和256 字节RAM 32 条I/O 口线 3 个16 位定时/计数器 6 输入4 优先级嵌套中断结构 1 个串行I/O 口可用于多机通信I/O 扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0 。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复。 80c51管脚说明: VCC:供电电压,接+5V. GND:接地。 P0口:P0口是一个8位三态双 向I/O口。作为输出口,每位 能驱动8个TTL逻辑电平。对 P0端口写“1”时,引脚用作 高阻抗输入。当访问外部程序 和数据存储器时,P0口也被作 为低8位地址/数据复用。在这 种模式下,P0具有内部上拉电 阻。在flash编程时,P0口也 用来接收指令字节;在程序校 验时,输出指令字节。程序校 验时,需要外部上拉电阻。图2 80c51管脚图

基于C51单片机的数字时钟课程设计(C语言,带闹钟).

单片机技术课程设计 数字电子钟 学院: 班级: 姓名: 学号: 教师:

摘要 电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。具有极高的推广应用价值。 关键词: 电子钟 AT89C52 硬件设计软件设计

目录 一、数字电子钟设计任务、功能要求说明及方案介绍 (4) 1.1 设计课题设计任务 (4) 1.2 设计课题的功能要求说明 (4) 1.3 设计课的设计总体方案介绍及工作原理说明 (4) 二、设计课题的硬件系统的设计 (5) 2.1硬件系统各模块功能简要介绍 (5) 2.1.1 AT89C52简介 (5) 2.1.2 按键电路 (6) 三、设计课题的软件系统的设计 (6) 3.1 使用单片机资源的情况 (6) 3.2 软件系统个模块功能简要介绍 (7) 3.3 软件系统程序流程框图 (7) 3.4 软件系统程序清单 (7) 四、设计课题的设计结论、仿真结果、误差分析 (9) 4.1 设计结论及使用说明 (9) 4.2 仿真结果 (10) 结束语 (12) 参考文献 (12) 附录 (13) 附录A:程序清单 (13)

基于单片机智能闹钟设计

基于单片机的智能闹钟设计 摘要:本文通过单片机来实现电子打铃系统。基于单片机的智能闹钟设计包括:电源电路,单片机最小系统与扩展LCD显示电路,4*4矩阵键盘电路,打铃系统电路。本设计采用C语言编程,使用模拟软件驱动电路以实现其设计的各项功能。本文主要介绍了在设计过程中智能数字闹钟的软、硬件部分与在设计调试过程中遇到的一些问题以与解决方法。 关键词:单片机;智能数字闹钟;电子打铃系统

Intelligent alarm clock design based on MCU Abstract:In this paper, through the microcontroller to achieve electronic bell system. Includes a smart alarm clockdesign based on SCM: power supply circuit, MCU minimum system and the expansion of LCD display circuit,4*4 matrix keyboard circuit, bell system circuit. This design uses the C language programming, the use of simulation software with the driving circuit designed to achieve the various functions. This paper mainly introduces the soft,hardware part of intelligent digital alarm clock in the design process and some problems in the design of the process of debugging and solutions. Keywords: Single-Chip Microcomputer; Intelligent digital alarm clock; bell system

51单片机数字钟汇编程序

SEC EQU 32H ;秒即时时间\伪指令 MIN EQU 31H ;分 HOUR EQU 30H ;时 DAY EQU 35H ;日 MON EQU 34H ;月 YEAR EQU 33H ;年 MIN_1 EQU 41H ;分定时器1路、开存储单元 HOUR_1 E QU 42H ;时 DAY_1 EQU 43H ; MON_1 EQU 44H ; YEAR_1 EQU 45H ; MIN_11 EQU 40H ;分定时器1路、关存储单元 HOUR_11 EQU 46H ;时 DAY_11 EQU 47H ;日 MON_11 EQU 48H ;月 YEAR_11 EQU 49H ;年 ORG 0000H LJMP MAIN ORG 0003H ;中断转换显示年月日、INT0(SB4键)LJMP WB0 ORG 000BH ;计数中断T0、方式1 LJMP TT0 ORG 0013H LJMP WB1; 调整时间、定时、INT1(SB0键) ;------主程序 ORG 0030H MAIN: MOV YEAR,#02;初始化付值 MOV MON,#05 MOV DAY,#01 MOV HOUR,#00 MOV MIN,#00 MOV SEC,#00 CLR 40H ;定时单元1路清零 CLR 41H CLR 42H CLR 43H CLR 44H CLR 45H CLR 46H CLR 47H CLR 48H CLR 49H ;-------开中断

MOV TMOD,#01H ;计数、模式1、T0 MOV TL0,#0B0H ;100SM 计数定时 MOV TH0,#3CH ; CLR P3.0 MOV 20H,#0AH ;10次*100SM SETB PT0 ;T0为最高级 SETB TR0 ;允许计数 SETB ET0 ;允许T0中断 SETB EX0 ;允许INT0中断 SETB EX1 ;允许INT1中断 SETB EA ;开总中断 ;------显示、定时器启动判断 LOOP: MOV R1,#30H; 存储单元 MOV R4,#01H; 位选通 MOV R3,#03H; 三组显示 NEXT: MOV A,@R1 ; MOV B,#10 ;将存储单元转换成两高低两组的BCD码DIV AB SWAP A ORL A,B MOV P0,A;输出 MOV P2,R4 INC R1 ;下一单元 MOV A,R4 ; RL A ;位移 MOV R4,A LCALL DE5SM ;延时0.5SM DJNZ R3,NEXT ;全扫描显示一偏 ;------判断定时输出(只编写了一路) CJNE R7,#88H,LOOP ;是8则开,否则、定时已关、转 ;---------开 MOV A,YEAR CJNE A,YEAR_1,LOOP_1;年比较,不等转关 MOV A,MON CJNE A,MON_1,LOOP_1 MOV A,DAY CJNE A,DAY_1,LOOP_1 MOV A,HOUR CJNE A,HOUR_1,LOOP_1 MOV A,MIN CJNE A,MIN_1,LOOP_1 CPL P3.0 ;---------关 LOOP_1:

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

目录 第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的显示原理和接线方法,再了解单片机的组成原理和控制方法。硬件电路的绘制和软件程序的编写是此次设计的关键和基础,只有硬件电路的设计是正确的、合理的,软件设计才可以根据硬件电路编程,以下的设计才能够进行。 2)主要任务:软件的调试和烧录 2.2硬件设计 1)CPU部分 “时间”按键,即是调时分秒端口 “加”按键,可以是时分秒加一 “减”按键,可以使时分秒减一

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

电子闹钟 一、课题容和要求 题目描述:利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供整点报时功能。 根本要求:〔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=二进制+30H 3闹钟鸣叫主要利用8254的二号计数器和8255的PB0和PB1来设定 4 闹钟的表盘,指针的绘制,并实现时针,分针,秒针的走动。主要通过过图形的画点进展操作,并通过在固定的区域不断的刷屏来实现。 三、概要设计 (一)算法设计及重要程序流程图 1)程序整体流程 2)edittime子程序流程图 2〕editmusic子程序 3〕翻开和关闭扬声器 此处重要用到了8254和8255的相关知识,书中P238有相关代码 首先,应该读出8255的PB端口当前的状态,将PB0和PB1分别置1,以读修改写的方式修改PB0和PB1接通扬声器。 其次,利用8254的2号计数器产生*** Hz 的方波,此处计数初值利用公式

相关主题
相关文档
最新文档