基于汇编语言的数字时钟

合集下载

数字时钟设计方案

数字时钟设计方案

数字时钟设计方案数字时钟是一种以数字形式显示时间的钟表。

它主要由时钟芯片、显示模块和控制电路等组成。

下面将介绍一种数字时钟的设计方案。

首先,时钟芯片是数字时钟的核心部件,其主要功能是实时计时,并提供时间信号给显示模块。

在设计中,可以选用一款精度较高的实时时钟芯片,如DS1302或DS3231,并通过SPI 或I2C等接口与其他器件进行通信。

其次,显示模块是数字时钟的输出设备,它将时钟芯片提供的时间信号转换成数字形式显示。

常见的数字时钟显示模块有七段数码管、液晶显示屏等。

在此方案中,我们选用四位共阳极的七段数码管。

然后,控制电路是数字时钟的逻辑控制部分,它通过控制模块将时钟芯片的时间信号经逻辑处理后发送给显示模块,并实现其他功能。

在此方案中,控制电路可以采用单片机或FPGA等器件实现。

以STM32单片机为例,通过编程控制GPIO口的电平改变,可以实现对七段数码管的动态显示。

具体实现方案如下:1. 硬件设计:选择合适的时钟芯片和显示模块,并完成其与控制电路的连接。

时钟芯片与控制电路的连接方式主要是通过SPI或I2C接口,而显示模块与控制电路的连接方式主要是通过GPIO口。

2. 软件设计:使用C语言或汇编语言编写控制电路的程序。

程序的主要任务是读取时钟芯片的时间信号,进行逻辑处理后控制七段数码管的显示。

3. 功能扩展:除了基本的时分秒显示外,还可以添加其他附加功能,如日期显示、闹钟设置、温度显示等。

这些功能可以通过增加相应的硬件模块和对应的软件控制实现。

4. 调试和测试:完成硬件和软件的设计后,需要进行调试和测试。

可以通过调试工具实时查看七段数码管的显示结果,并对代码进行正确性和稳定性测试。

5. PCB设计和制作:完成电路设计后,需要进行PCB的设计和制作。

在设计PCB时,要考虑电路的布局、信号线的走向和层间连接等因素,保证电路的稳定性和可靠性。

6. 组装和调试:完成PCB制作后,进行组装和调试。

将制作好的电路板和其他组件进行连接,进行最后的调试和测试。

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

基于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)一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

单片机(汇编语言)秒表课程设计设计

单片机(汇编语言)秒表课程设计设计

题目名称:秒表电路设计姓名:班级:学号:指导教师:日期:2016年7月13日《单片机原理及接口技术课程设计》教学大纲课程代码:课程名称:单片机原理及接口技术课程设计周数: 2 学分:1.0学分一、课程设计的性质、任务与目的单片机原理及接口技术课程设计是在学生学习完理论课和实验课的基础上开设的,通过完成一个涉及MCS-51或其他系列单片机多种资源应用并具有综合功能的设计与编程应用,使学生能够将课堂上学到的理论知识与实际应用结合起来,同时在软件编程、仿真调试及相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的设计开发工作打下一定的基础。

本课程设计的主要目的如下:1、增进对单片机的感性认识,加深对单片机理论知识的理解,掌握单片机内部功能模块(如定时/计数器、中断、片内外存贮器、I/O口、串行口等)的应用;2、掌握单片机应用系统的软硬件设计过程及实现方法,为以后设计和实现单片机应用系统打下良好基础;3、提高综合应用所学理论知识独立分析和解决实际问题的能力。

二、本课程设计的基本理论本课程设计的基本理论是单片机原理及接口技术的基本理论,主要包括单片机的硬件结构原理、指令系统、汇编语言、中断系统、定时/计数器、串行接口、I/O接口等。

在学习掌握单片机原理及接口技术课程的前提下,利用实验室提供的单片机实验条件或基于仿真软件,采用汇编语言或C51编程,设计实现一个具体的单片机应用系统项目,熟悉单片机系统设计开发的完整过程。

三、课程设计的方式与基本要求课程设计的方式:每个班级学生按2~3人分为一组,以组为单位进行课程设计(也可一人独立进行),课程设计的题目从教师给定的题目中选取,也可以是指导教师审核通过的学生自选题目。

基本要求:每组选定题目后,按题目要求,首先进行方案论证,通过查阅资料、集体讨论,确定设计方案;然后进行具体的硬件和软件设计;完成设计后,进行硬件/软件调试;最后撰写课程设计报告。

(完整)基于STC单片机的电子时钟毕业设计(DOC)

(完整)基于STC单片机的电子时钟毕业设计(DOC)

电子时钟[摘要] 本设计是基于STC单片机的电子时钟技术,由STC12C5A16S2芯片和LCD1602液晶显示屏,DS18B20进行温度测量,辅以必要的的电路,构成一个单片机定时闹钟。

电子钟可采用数字电路实现,也可以采用单片机来完成.LCD显示“时”,“分”,LED闪动来做秒计数,定时时间到能发出警报声或者启动继电器,从而控制电器的启停。

现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。

在这次设计中主要是用STC12C5A16S2来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。

[关键词] 定时闹钟STC12C5A16S2 LCD1602Time clock[Abstract] The regular alarm clock designers design, by the microcontroller STC12C5A16S2 chip and LCD1602 display、 DS18B20 , combined with the necessary circuitry to form a single—chip timer alarm clock. Clock can be digital circuit,the microcontroller can also be used to complete。

LCD display "when”, "sub”,LED flash to do the second count, regular time to be able to sound an alarm or start relay to control the electrical start and stop. Now is the era of highly developed automation, especially electronic products are relying on the internal control circuitry to achieve control of the product to achieve the purpose of automatic operation, which requires us to do the design of electrical components and circuits to support 。

运用汇编语言设计的数字钟

运用汇编语言设计的数字钟

微机原理课程设计题目名称:数字钟姓名:学号:专业:指导老师:同组者:江汉大学物理与信息工程学院一.设计目的和意义:1.熟悉集成电路的引脚安排.2.掌握各芯片的逻辑功能及使用方法.3.了解面包板结构及其接线方法.4.了解数字钟的组成及工作原理.5.熟悉数字钟的设计与制作.二.系统设计框架:系统硬件设计主要利用微机实验平台上的电路模块。

硬件电路主要由键盘电路、单脉冲产生单元、8254定时计数器、8255并行接口单元、8259中断控制器和LED显示电路等等。

系统设计框图如图1所示。

图1 系统设计框图三.工作原理1)计时单元由定时/计数器8254的通道0来实现。

定时采用硬件计数和软件技术相结合的方式,即通过8254产生一定的定时时间,然后再利用软件进行计数,从而实现1小时制定时。

8254定时时间到了之后产生中断信号,8254在中断服务程序中实现分、秒的累加。

2)时间显示采用实验平台上的4个LED数码管分别显示分、秒,采用动态扫描方式实现。

3)校时和闹铃定时通过键盘电路和单脉冲产生单元来输入。

按键包括校时键、闹钟定时键、加1键和减1键等。

四.硬件设计根据设计思路,硬件电路可通过实验平台上的一些功能模块电路组成,由于实验平台上的各个功能模块已经设计好,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。

完整系统的硬件连接如图2所示。

硬件电路由定时模块、按键模块、数码管显示模块和蜂鸣器模块组成。

图2 硬件连接图各个模块的详细说明:1.定时模块定时模块主要是实现硬件定时1s,由8254的计数器0来实现。

Clk0接实验平台分频电路输出IRQ,f=1hz。

GATE0接+5V,由8255的PA0输出来控制计数器的起停。

OUT0接8259的IRQ2,定时完成请求中断,进入中断服务程序。

软件在中断服务程序中实现时分秒的累加。

2.LED数码管模块实验平台上提供一组4个LED数码管。

插孔A-G用于数码管段选的输出选通,插孔X1-X4用于数码管位选信号的输出选通。

单片机课程设计--电子秒表与闹钟的设计

单片机课程设计--电子秒表与闹钟的设计

目录摘要 (Ⅰ)1 电子秒表与闹钟系统概述 (1)1.1 课程设计基本要求 (1)1.2 系统实现功能 (1)1.3 系统应用价值展望 (2)2 仿真软件Proteus和Keil简介 (3)2.1 Proteus简介 (3)2.2 Keil简介 (3)3 系统工作原理分析 (4)3.1AT89C2051模块 (4)3.2 显示驱动模块 (6)3.3 数码管显示模块 (8)4 程序流程图设计 (9)5 Proteus仿真原理图 (12)6 课程设计体会 (14)参考文献 (15)附:源程序代码 (16)摘要随着科学技术的不断发展 , 人们对时间计量的要求越来越高。

在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。

本作品是以STC89C51单片机作为主控芯片,使用12MHZ的晶振,使用专用时钟日历芯片DS12C887产生时间信息,时间精确。

软件部分以C语言为主体,用1602LCD 液晶屏显示输出信息,输出信息量多,更直观、人性化。

该时钟可实现人机交互,可通过提供的键盘对其进行调整。

系统具有以下功能:年、月、日、时、分、秒显示;12小时/24小时模式切换,在12小时模式中,用AM和PM区分上午和下午;秒表功能;整点闹铃和报时功能,且闹钟可设置多组。

本次设计的电子时钟系统由单片机最小系统,1602LCD液晶屏,时钟芯片,调整按键,蜂鸣器,电源五大部分组成。

关键词:定时器中断闹钟电子时钟1 电子秒表与闹钟系统概述1.1 课程设计基本要求(1) 用并行口设计一个具有显示功能的秒表,显示准确的北京时间(时、分、秒),可用24小时制式;(2) 有时间校准功能;(3) 允许通过转换功能键转换显示时间,用定时器实现一个电子闹钟,能设定和修改定时的时间,并能到时响铃通知;(4) 所有按键需要通过串口自发自收来调校各种功能。

1.2 系统实现功能本系统是基于单片机AT89S52制作的数字电子钟。

根据实验要求,在完成实验所要求的基本功能外,扩展了几个功能。

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

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

单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。

所以设计一个简易数字电子钟很有必要。

本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。

具有时间显示、整点报时、校正等功能。

走时准确、显示直观、运行稳定等优点。

具有极高的推广应用价值。

关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。

具有时间显示,并有时间设定,时间调整功能。

1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。

该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。

1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。

键盘采用动态扫描方式。

利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

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

基于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 001.2.3 能实现日期的设置年、月、日1.3 扩展要求:如闹钟功能、显示星期、整点音乐报时等2 系统方案2.1 系统整体方案的论证电路原理设计是基于小系统板包括电源电路、复位电路、按键电路、DS1302时钟电路、液晶显示驱动电路、输出控制电路。

电源部分是用电池来提供的3v-5v,晶体振荡器采用的是12MHz的石英晶体振荡器。

整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。

时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。

系统设有4个独立式按键可以对时间年、月、日和星期进行调整,还可以设置闹钟。

具体如图2.1所示:图2.1 系统整体框图3硬件设计与实现3.1单片机最小系统STC89C52是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。

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

一摘要单片计算机即单片微型计算机。

(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM , 定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

而51 单片机是各单片机中最为典型和最有代表性的一种。

这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

二说明系统由AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定时时间的设定,输出等功能。

系统的功能选择由SB0、SB1、SB2、SB3、SB4 完成。

其中SB0为时间校对,定时器调整功能键,按SB 0 进入调整状态。

SB1 为功能切换键。

第一轮按动SB1 依次进入一路、二路、三路定时时间设臵提示程序,按SB3 进入各路定时调整状态。

定时时间到,二极管发亮。

到了关断时间后灭掉。

如果不进入继续按SB1 键,依次进入时间¡年¡位校对、¡月¡位校对、¡日¡位校对、¡时¡位校对、¡分¡位校对、¡秒¡位校对状态。

不管是进入那种状态,按动SB2 皆可以使被调整位进行不进位增量加1 变化。

各预臵量设臵完成后,系统将所有的设臵存入RAM 中,按SB1 退出调整状态。

上电后,系统自动进入计时状态,起始于¡ 00¡时¡ 00¡分。

SB4 为年月日显示转换键,可使原来显示时分秒转换显示年月日。

三、电路原理分析1. 显示原理电原理图见附图1。

由6 个共阴极的数码管组成时、分、秒的显示。

P0 口的8 条数据线P0.0 至P0.7 分别与两个CD4511 译码的ABCD 口相接,P2 口的P2.0 至P2.2 分别通过电阻R10 至R13 与VT1 至VT3 的基极相连接。

这样通过P0 口送出一个存储单元的高位、低位BCD显示代码,通过P2 口送出扫描选通代码轮流点亮LED1 至LED6,就会将要显示的数据在数码管中显示出来。

从P0 口输出的代码是BCD 码,从P2 口输出的就是位选码。

这是扫描显示原理。

2 键盘及读数原理键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。

可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms.3 连击功能的实现按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则执行下一条对应程序。

利用连击功能,能实现快速调时操作。

四、程序设计思想和相关指令介绍本系统的主程序主要完成时间显示和定时输出判断功能。

而年月日显示和各时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。

1.数据与代码转换。

由前述可知,从P2 口输出位选码,从P0 口输出段选码,LED 就会显示出数字来。

但P0 口的输出的数据是要BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。

可见,将要显示的存储单元的数据直接送到P0 口去驱动LED 数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD 码行转换后,将各个单元数据的段选代码送入P0 口,给CD4511 译码后去驱动数码管显示。

具体转换过程如下:我们先将要显示的数据装入累加器A 中,再将A 中的数据转换成高低两位的BCD 码,再放回A 中,然后将A 中的值输出。

如:有一个单元存储了45 这样一位数,则需转换成四位的BCD 码:(0100)(0101)然后放入A 中。

A 中BCD 码,高位四位代表¡4¡低四位代表¡5¡同时送给两个译码器中,译码后¡ 45¡字就在两个LED 中显示出来。

2.计时功能的实现与中断服务程序时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。

计数器T0 打开后,进入计时,满100 毫秒后,重装定时。

中断一次,满一秒后秒进位,满60 秒后即为1 分钟,分钟单元进位,60 分到了后,时单元进位,24 小时满后,天单元进位。

这样然后根据进率,得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED 中显示出来,实现时钟计时功能。

累加是用指令INC 来实现的。

进入中断服务程序以后,执行PUSH PSW 和PUSH A 将程序状态寄存器PSW 的内容和累加器A 中的数据保存起来,这便是所谓的¡保护现场¡ . 以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。

在软件的控制之下,堆栈可在片内RAM 中的任一区间设定,而堆栈的数据存取与一般的RAM 存取又有区别,对它的操作,要遵循¡后进先出¡的原则。

3 时间控制功能与比较指令系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:先将执行设备开启的时间和关闭时间臵入RAM 某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR 指令,将对应的那路P3 臵为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB对应的P3 臵低电位,二极管截止,。

实现此控制功能用到的比较指令为CJNE A,#direct,rel,其转移条件是累加器A 中的值与立即数不等则转移。

参考文献1、谢自美,《电子线路设计、实验、测试》武汉:华中理工大学出版社,20002、何书森、何华斌《实用数字电路原理与设计速成》福州:福建科学技术出版社,2000.63、白驹衍,《单片计算机及应用》北京:电子工业出版社,1999.2五:程序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 EQU 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 0000Hljmp MAINORG 0003H ;中断转换显示年月日、INT0(SB4 键)LJMP SHOWORG 000BH ;计数中断T0、方式1LJMP TIMEORG 0013HLJMP CHANGE; 调整时间、定时、INT1(SB0 键);------主程序ORG 0030HMAIN:;--------初始化付值MOV YEAR , #02MOV MON , #05MOV DAY , #01MOV HOUR , #00MOV MIN , #00MOV SEC , #00CLR 40H ;定时单元1 路清零CLR 41HCLR 42HCLR 43HCLR 44HCLR 45HCLR 46H CLR 47HCLR 48HCLR 49H;-------开中断MOV TMOD , #01H ;计数、模式1、T0MOV TL0, #0B0H ;100SM 计数定时MOV TH0, #3CH ;clr p3.0MOV 20H, #0AH ;10 次*100SMSETB 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 ABSWAP AORL A, BMOV P0, A;输出MOV P2, R4INC R1 ;下一单元MOV A, R4 ;RL A ;位移MOV R4, ALCALL DE5SM ;延时0.5SMDJNZ R3, NEXT ;全扫描显示一偏;------判断定时输出(只编写了一路)CJNE R7, #88H,LOOP ;是8 则开,否则、定时已关、转;---------开MOV A, YEARCJNE A, YEAR_1, LOOP_1;年比较,不等转关MOV A, MONCJNE A, MON_1, LOOP_1MOV A, DAYCJNE A , DAY_1,LOOP_1MOV A, HOURCJNE A, HOUR_1,LOOP_1 MOV A, MINCJNE A, MIN_1, LOOP_1CPL P3.0;---------关LOOP_1:MOV A, YEARCJNE A, YEAR_11, LOOP;年比较MOV A, MONCJNE A, MON_11, LOOPMOV A, DAYCJNE A , DAY_11,LOOPMOV A, HOURCJNE A, HOUR_11,LOOPMOV A, MINCJNE A, MIN_11, LOOPCPL P3.0LJMP LOOP;-----年月日显示中断子程序SHOW:PUSH PSWpush ACCPUSH BPUSH 01HPUSH 02HPUSH 03HPUSH 04HMOV R2, #0FFH ;中断扫描次数TURN: MOV R1 , #33HMOV R4 , #01HMOV R3 , #03HNEXT_1:MOV A, @R1MOV B , #10DIV ABSWAP AORL A, BMOV P0, AMOV P2, R4INC R1RL AMOV R4 ,A LCALL DE5SMDJNZ R3, NEXT_1DJNZ R2, TURN ;反复显示一定时间后返回POP 04HPOP 03HPOP 02HPOP 01HPOP BPOP ACCPOP PSWRETI;-----计数中断服务子程序TIME:PUSH PSWPUSH ACCPUSH BPUSH 06HMOV TH0 , #3CH;重装计数MOV TL0 , #0BH;DJNZ 20H, OUT ;转到中断跳出pop 程序MOV 20H, #0AH ; 重装:100*10=1000;-----进位程序INC SECMOV R6, SEC ;CJNE R6, #60, OUT;比较MOV SEC , #00 ;INC MINMOV R6, MINCJNE R6, #60, OUTMOV MIN , #00INC HOURMOV R6 , HOURCJNE R6 , #25 , OUTMOV HOUR ,#00INC DAYMOV R5, MONCJNE R5, #1, MON_22;是否1 月、不是转2 月MOV R5, DAYCJNE R5, #32, OUT ; 本月是否益出INC MONMOV DAY,#1LJMP OUTOUT:POP 06HPOP BPOP ACCPOP PSWRETIMON_22:MOV R5, MONCJNE R5 , #2 , MON_33;是否2 月、不是转3 月MOV A, YEAR ;判断是否瑞年MOV B, #4DIV ABMOV A , BJNZ OUT_1;不是则转(A 不为零则转)MOV R5 ,DAYCJNE R5,#30, OUT;如是瑞年、判断是否到29 天INC MONMOV DAY ,#1LJMP OUTOUT_1:MOV R5, DAYCJNE R5, #29, OUT ;平年二月判断INC MONMOV DAY , #1LJMP OUTMON_33:MOV R5, MONCJNE R5, #3 , MON_44MOV R5, DAYCJNE R5 , #32, OUTINC MONMOV DAY , #1LJMP OUTMON_44:MOV R5, MONCJNE R5,#4, MON_55MOV R5, DAYCJNE R5 ,#31,OUTINC MONMOV DAY , #1LJMP OUTMON_55:MOV R5,MONCJNE R5,#5, MON_66MOV R5,DAYCJNE R5,#32,OUT INC MONMOV DAY,#1LJMP OUTMON_66:MOV R5, MONCJNE R5,#6, MON_77 MOV R5, DAYCJNE R5 ,#31,OUT INC MONMOV DAY , #1LJMP OUTMON_77:MOV R5, MONCJNE R5,#7, MON_88 MOV R5, DAYCJNE R5,#32,L1INC MONMOV DAY , #1L1: LJMP OUTMON_88:MOV R5, MONCJNE R5,#8, MON_99 MOV R5, DAYCJNE R5 ,#32,L2INC MONMOV DAY , #1L2: LJMP OUTMON_99:MOV R5, MONCJNE R5,#9, MON_00 MOV R5,DAYCJNE R5 ,#31,L3INC MONMOV DAY , #1L3: LJMP OUTMON_00:MOV R5, MONCJNE R5,#10, MON_AA MOV R5, DAYCJNE R5 ,#32,L4INC MONMOV DAY , #1L4: LJMP OUTMON_AA:。

相关文档
最新文档