数字时钟1
fpga中的模拟时钟和数字时钟

fpga中的模拟时钟和数字时钟
在FPGA(现场可编程门阵列)中,模拟时钟和数字时钟是两
种不同的时钟信号。
1. 模拟时钟:
模拟时钟是连续变化的信号,它可以表示连续时间的变化。
在FPGA中,模拟时钟通常用于模拟信号处理(Analog Signal Processing)和模拟电路仿真。
模拟时钟通常以模拟时钟频率
定义,如100MHz或1GHz。
2. 数字时钟:
数字时钟是离散的信号,它用于同步数字电路操作。
在FPGA 中,数字时钟用于同步逻辑电路的操作和数据传输。
数字时钟通常以数字时钟频率定义,如50MHz或100MHz。
在FPGA设计中,模拟和数字时钟起到了不同的作用。
模拟
时钟主要用于处理和模拟连续信号,例如模拟滤波、混频等操作。
数字时钟用于同步FPGA中的数字逻辑电路,确保逻辑
电路按照预期的时序进行操作,并提供数据的正确传输和处理。
通常情况下,FPGA设计中会引入一个或多个数字时钟信号,
以确保系统的正确运行,并使用时钟分频器等技术来将数字时钟信号转换为模拟时钟信号供模拟电路使用。
总之,模拟时钟和数字时钟是FPGA设计中的两种不同的时
钟信号,用于处理连续信号和同步数字电路操作。
数学课时钟的秘密

数学课时钟的秘密数学课上,我们常常能够看到教室中挂着一块时钟。
这个时钟看似普通,但其实它蕴含了数学的奥秘。
让我们一起来揭开数学课时钟的秘密。
一、时钟的表盘──数学符号的殿堂时钟的表盘上有12个数字,这些数字不仅代表着小时的刻度,更是数学符号的殿堂。
先来看看这些数学符号藏在时钟表盘上的哪些数字上。
1. 时钟的一点位置代表数字1,它与圆形表盘形成了直角。
直角是一个重要的几何概念,代表两条线垂直相交。
2. 时钟的二点位置代表数字2,它与圆形表盘形成了30度的夹角。
这个夹角是三角函数中的一个重要角度,我们称之为正弦函数的特殊角度。
3. 时钟的三点位置代表数字3,这个数字坐落在表盘上的正下方,形成了一个90度的角度。
90度是直角,这个数字提醒我们在欧式几何中的形状。
4. 时钟的四点位置代表数字4,它与圆形表盘形成了60度的夹角。
这个夹角也是三角函数中的一个特殊角度,称之为余弦函数的特殊角度。
5. 时钟的五点位置代表数字5,它与圆形表盘形成了一个150度的夹角。
这个角度也是三角函数中的一个特殊角度。
6. 时钟的六点位置代表数字6,它位于表盘上的中心位置。
这个数字代表着模运算中的基数。
7. 时钟的七点位置代表数字7,它与圆形表盘形成了一个逆时针方向的角度,这是数学中经常出现的一个方向。
8. 时钟的八点位置代表数字8,它与圆形表盘形成了一个120度的夹角。
120度是三角函数中的一个特殊角度。
9. 时钟的九点位置代表数字9,这个数字坐落在表盘上的正上方。
九点位置代表了相同的角度,称之为平角。
10. 时钟的十点位置代表数字10,它与圆形表盘形成了150度的夹角。
它是三角函数中的又一个特殊角度。
11. 时钟的十一点位置代表数字11,它和圆形表盘之间形成了一个顺时针方向的角度。
12. 最后,时钟的十二点位置代表数字12,它与圆形表盘形成了360度的角度。
360度是一个完整的圆周。
通过这些数字的位置和角度,我们能够感受到数学与时钟的紧密关系。
数字钟的设计方法及步骤

四川机电职业技术学院数字电子课程设计说明书题目:数字电子钟院系名称:电子电气工程系专业班级:09电气6班学生姓名:姚瑶学号:0907041114指导教师:刘惠兰、刘廷敏、徐贵仁教师职称:2010年12月15日摘要数字电子钟是采用数字电路实现对“时”、“分”、“秒”数字显示的设计装置。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度、稳定度远远超过了老式机械钟表。
在数字显示方面,目前还可以直接采用CMOS-LED 光电组合器件,构成模块式石英晶体数字钟。
为了帮助同学们了解数字钟的组成,运用已学过的数字电路基本知识,掌握设计简单数字系统的方法,本课题介绍数字钟的设计制作方法。
关键词:数字集成电路计数器七段数码显示校时电路1设计题目数字电子钟A 纸,页边距为2.5cm数字电子钟是采用数字电路实现对“时”、“分”、“秒”数字显示的设计装置。
由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度、稳定度远远超过了老式机械钟表。
在数字显示方面,目前还可以直接采用CMOS-LED 光电组合器件,构成模块式石英晶体数字钟。
为了帮助同学们了解数字钟的组成,运用已学过的数字电路基本知识,掌握设计简单数字系统的方法,本课题介绍数字钟的设计制作方法。
1.1数字钟的组成和工作原理一个简单的数字钟,主要由六部分组成。
整机电路方框图如图1-1所示。
图1-1数字钟整机方框图(宋体,5号)1.1.1石英晶体振荡器模块振荡器主要用来产生时间标准信号。
因为数字钟的精度,主要取决于时间标准信号的频率及其稳定度,所以要产生稳定的时标信号,一般是采用石英晶体多谐振荡器,从数字钟的精度考虑,晶振频率愈高,钏表的计时准确度就愈高。
但这会使振荡器的耗电量增大,分频器的级数也要增多。
所以在确定频率时应考虑两方面的因素,然后再选定石英晶体的型号。
图1-2晶体振荡器之一100kΩ1.1.2分频器模块因为振荡器产生的时标信号频率很高,要使它变成能用来计时的“秒”信号,需要一定级数的分频电路。
数电课设--数字钟的设计

数电课设--数字钟的设计摘要:该设计主要是设计一种基于数字电路实现的数字钟,用于显示当前时间,同时设计一个简单的时间调整系统来实现对数字钟的时间调整。
本设计实现了数字钟的时间显示、时间调整等功能,具有简单、实用等优点。
关键词:数字钟、计数器、时间调整系统一、引言数字钟是一种时钟显示设备,它可以在显示面板上显示当前时间,数字钟的普及改变了人们观念上的关于时间知识的变革。
本课设就是要通过设计一个数字钟,来综合应用我们所学的数字电路知识,通过数字电路的设计实现时间的显示及调整。
二、数字钟的设计原理数字钟的设计离不开计数器和定时器,计数器的作用是进行计数操作,进而对时间进行处理,定时器的作用是用来控制计数器的计数和复位,使其能够按照固定的时间序列不断进行计数。
数字钟的显示部分采用数码显示管显示当前时间,数码显示管显示的时间单位有小时、分钟和秒。
三、数字钟的设计方案数字钟的设计方案可以分为两部分,一部分是计数器及定时器的设计,另一部分是时间调整系统的设计。
下面分别进行介绍。
(一)计数器及定时器的设计计数器采用7474型D触发器进行设计,二进制计数器采用模8计数模式,带有异步复位功能。
其中,D触发器的Vcc接+5V电源,GND接地,CLK接定时器的输出,D接Q的输出,Q接下一级触发器D端。
计数器采用8253/8254型定时器,应该根据标准时钟的频率和预置值计算计数器的频率和复位时间。
时间调整功能通常是通过8255接口芯片实现。
(二)时间调整系统的设计时间调整系统通过单片机实现,主要实现以下功能:上下键切换修改时间单位、按键快速调整修改时间数字、按键高频稳定范围设置、判断闹钟是否开启、日历选择等。
四、数字钟的实现数字钟的实现可以参考实验教材进行,实现前需要明确以下几点:1. 根据实际需求确定数字钟的参数:例如显示的时间格式,以及是否需要设置闹钟等。
2. 设计好数字钟的原理图,并选择适合的元件进行接线。
3. 进行电路调试和测试,对电路进行稳定性测试等。
多功能数字钟的设计和制作

目录摘要 (1)1数字钟的结构设计及方案选择 (2)1.1振荡器的选择 (2)1.2计数单元的构成及选择 (3)1.3译码显示单元的构成选择 (3)1.4校时单元电路设计及选择 (4)2 数字钟单元电路的设计 (4)2.1振荡器电路设计 (4)2.2时间计数单元设计 (4)2.2.1集成异步计数器74LS390 (5)2.2.2 用74LS390构成秒和分计数器电路 (5)2.2.3用74LS390构成时计数器电路 (6)2.2.4 时间计数单元总电路 (7)2.3译码显示单元电路设计 (7)2.4 校时单元电路设计 (7)2.5整点报时单元电路设计 (1)3 数字钟的实现电路及其工作原理 (9)4电路的搭建与调试 (10)5结束语 (10)参考文献 (11)附录1: (12)摘要数字钟被广泛用于个人家庭及公共场所,成为人们日常生活中的必需品。
诸如定时自动报警、按时自动打铃、定时广播、自动起闭路灯、定时开关烘箱、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意。
数字电子钟,从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
数字电子钟有以下几部分组成:振荡器,分频器,60进制的秒、分计时器和12进制计时计数器,秒、分、时的译码显示部分及校正电路等。
关键词:数字钟 555多谐振荡器计数器 74LS390 74LS48数字电子时钟的设计及制作1数字钟的结构设计及方案选择数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
主要由振荡器、分频器、计数器、译码器显示器和校时电路组成。
振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,通常使用石英晶体震荡器,然后经过分频器输出标准秒脉冲,或者由555构成的多谐振荡器来直接产生1HZ的脉冲信号。
秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“12翻1”规律计数。
数字钟说明书

目录引言..............................................................................................错误!未定义书签。
1EDA技术介绍 (2)2Verilog HDL介绍 (3)3QuartusII软件简介 (4)3.1软件介绍 (4)3.2界面介绍 (5)3.2.1代码输入界面 (5)3.2.2功能仿真界面 (5)3.2.3波形仿真界面 (6)4系统总体设计 (7)4.1设计思路 (7)4.2系统设计总体框图 (7)5各模块详细设计 (8)5.1计时模块 (8)5.1.124进制计数器的设计 (8)5.1.260进制分计数器 (9)5.1.260进制秒计数器 (11)5.2校时校分模块设计 (12)5.3报时模块设计 (13)5.4分频模块设计................................................................错误!未定义书签。
5.5显示模块设计 (16)5.6顶层模块设计 (16)6硬件测试 (17)7总结 (19)参考文献 (20)引言电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子钟。
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、集成电路有体积小、功耗小、功能多、携带方便等优点,因此在许多电子设备中被广泛使用。
数字电子钟的设计

数字电子钟的设计数字电子钟的设计随着科技的不断发展,数字电子钟已经成为人们生活中不可或缺的一部分。
它不仅可以告诉我们时间,还可以让我们随时随地掌握时间。
本文将从数字电子钟的功能、设计要素和实现过程三个方面探讨数字电子钟的设计。
一、数字电子钟的功能数字电子钟最基本的功能是显示当前时间。
同时,数字电子钟还可以有多种附加功能,例如显示当前日期、闹钟定时、倒计时、秒表计时等等。
这些功能可以根据用户的需求进行扩展和定制。
数字电子钟还可以根据个人偏好设定显示模式。
比如,可以设定12小时还是24小时制显示,可以选择显示中文还是英文,可以选择不同的背景颜色和字体大小等等。
二、数字电子钟的设计要素数字电子钟的设计要素包括时钟芯片、数字显示器、主芯片、功率模块等多个组成部分。
下面我们来分别介绍一下。
1. 时钟芯片时钟芯片是数字电子钟的核心部件。
它可以提供高精度的时间信号,控制数字显示器显示时间。
常见的时钟芯片有DS1302和DS3231等。
其中,DS3231是一款高精度时钟芯片,可以达到非常高的精度要求。
2. 数字显示器数字显示器是数字电子钟最显著的部分。
常见的数字显示器有LED、LCD和OLED三种类型。
LED数字显示器是最常见的数字显示器,具有显著的视觉效果。
LCD数字显示器可以显示更多的信息,而且更加柔和。
OLED数字显示器颜色更加丰富,显示效果更加真实。
3. 主芯片主芯片是数字电子钟的中央处理器,负责控制各个组成部分间的通讯和协同。
常见的主芯片有STM32和ATMega328P等。
其中,STM32性能比较出色,可以满足高性能要求。
4. 功率模块数字电子钟的功率模块负责提供电源。
常见的功率模块有锂电池和AC/DC适配器两种。
锂电池电量长,使用方便,但是需要经常充电。
AC/DC适配器可以提供长期稳定的电源,但是需要连续供电。
三、数字电子钟的实现过程数字电子钟的实现过程需要进行硬件设计和软件开发两个步骤。
硬件设计包括电路设计和PCB设计两个方面。
数字时钟的工作原理

数字时钟的工作原理
数字时钟是一种通过数字显示时间的设备。
它的工作原理基于电子技术和计数原理。
下面是数字时钟的工作原理:
1. 音频信号处理:数字时钟会通过收音机或者其他方式接收到来自国家授时中心发出的准确时间信号。
这个信号是经过调制和编码处理的。
2. 信号解码:通过解码电路将接收到的时间信号转换为数字信号。
解码电路采用数字逻辑门电路,根据输入的不同的电信号状况,输出相应的电信号。
3. 计数:数字时钟中会有一个计数器电路,它接收来自解码电路的数字信号并进行计数。
计数器电路的设计可以是二进制,即通过几个存储单元分别计数0-9。
当计数达到9时,存储单元会归零并将进位信号发送到高位的计数单元。
4. 时钟控制:数字时钟还包括一个时钟电路,它通过一个稳定的时钟振荡器来提供稳定的时钟信号给计数器电路。
时钟信号控制计数器的计数速度,使其按照正确的时间间隔进行计数。
5. 数字显示:数字时钟使用数字显示器来显示时间。
常见的数字显示器有LED和LCD两种。
LED数字显示器通过控制发光二极管的亮暗显示数字,LCD数字显示器则是通过液晶屏幕来显示。
数字时钟将计数器电路的输出信号传送到数字显示器上,显示出时间。
通过以上步骤,数字时钟能够准确地计时并通过数字显示器向人们展示时间。
它具有显示清晰、精确度高的特点,适用于各种场景中的时间显示需求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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:MOV R5, MONCJNE R5,#11, MON_BBMOV R5,DAYCJNE R5,#31,L5INC MONMOV DAY , #1L5: LJMP OUTMON_BB:MOV R5, DAYCJNE R5 ,#32,L6INC YEARMOV MON, #1MOV DAY , #1L6:LJMP OUT;-------按SB2\定时器年单元加1 子程序SB3_2: LJMP SHOW_2 ;二路没编返回SB3_3: LJMP SHOW_3 ;三路没编返回SB3_1:MOV A , YEAR_1 ; 调时年单元MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H, SB3_1CJNE A, #0FBH, KEY2_7 ;按SB2 转年调整LJMP MON_111 ;按SB1 往下调月单元KEY2_7:CJNE A, #0FDH, SB3_1INC YEAR_1 ; 1 路年单元加1MOV R5,YEAR_1CJNE R5,#09,SB3_1 ;益出MOV YEAR_1, #00HAJMP SB3_1 ;;-------月单元加1 子程序MON_111:MOV A , MON_1 ; 调时月单元显示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, A MOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H, MON_111CJNE A, #0FBH, KEY2_8 ;按SB2 转月调整LJMP DAY_111KEY2_8:CJNE A,#0FDH,MON_111INC MON_1 ;1 路月单元加1MOV R5,MON_1CJNE R5,#13,MON_111;益出MOV MON_1, #01HAJMP MON_111 ; 转到月显;_------日单元加1 子程序DAY_111:MOV A , DAY_1 ; 调时日单元显示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #04HLCALL READLCALL DE250SMCJNE A, 01H,DAY_111CJNE A, #0FBH, KEY2_9 ;按SB2 转日调整LJMP HOUR_111KEY2_9: CJNE A,#0FDH,DAY_111INC DAY_1 ;1 组日单元加1MOV R5, DAY_1CJNE R5,#32,DAY_111;益出MOV DAY_1, #01HAJMP DAY_111 ; 转到日显;-------按SB2 时单元加1 子程序HOUR_111:MOV A , HOUR_1 ; 调时时单元显示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H,HOUR_111CJNE A, #0FBH, KEY2_10 ; 按SB2 转时调整LJMP MIN_111KEY2_10:CJNE A,#0FDH,HOUR_111INC HOUR_1MOV R5,HOUR_1CJNE R5,#24,HOUR_111;益出MOV HOUR_1, #00HAJMP HOUR_111 ; 转到时显;-------分单元加1 子程序MIN_111:MOV A , MIN_1 ; 调时分单元、并显示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H,MIN_111CJNE A, #0FBH, KEY2_11 ;按SB2 转分调整AJMP OFF_CH ;按SB3 往下调定时:关单元KEY2_11: CJNE A, #0FDH, MIN_111INC MIN_1 ;1 路分单元加1MOV R5, MIN_1CJNE R5,#60,MIN_111;益处MOV MIN_1, #00HAJMP MIN_111 ; 转到分显年单元调整OFF_CH: MOV A , YEAR_11 ; 调时年单元MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H, OFF_CHCJNE A, #0FBH, KEY2_F7 ;按SB2 转年调整LJMP MON_OFF ;按SB1 往下调月单元KEY2_F7:CJNE A, #0FDH, OFF_CHINC YEAR_11 ; 1 路年单元加1 MOV R5,YEAR_11CJNE R5,#09,OFF_CH ;益出MOV YEAR_11, #00HAJMP OFF_CH ;;-------月单元加1 子程序MON_OFF:MOV A , MON_11 ; 调时月单元显示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H, MON_OFFCJNE A, #0FBH, KEY2_F8 ;按SB2 转月调整LJMP DAY_OFFKEY2_F8:CJNE A,#0FDH,MON_OFFINC MON_11 ;1 路月单元加1MOV R5,MON_11CJNE R5,#13,MON_OFF;益出MOV MON_11, #01HAJMP MON_OFF ; 转到月显;_------日单元加1 子程序DAY_OFF:MOV A , DAY_11 ; 调时日单元显示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #04HLCALL READLCALL DE250SMCJNE A, 01H,DAY_OFFCJNE A, #0FBH, KEY2_F9 ;按SB2 转日调整LJMP HOUR_OFFKEY2_F9: CJNE A,#0FDH,DAY_OFFINC DAY_11 ;1 组日单元加1MOV R5, DAY_11CJNE R5,#32,DAY_OFF;益出MOV DAY_11, #01HAJMP DAY_OFF ; 转到日显;-------按SB2 时单元加1 子程序HOUR_OFF:MOV A , HOUR_11 ; 调时时单元显示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #01HLCALL READLCALL DE250SMCJNE A, 01H,HOUR_OFFCJNE A, #0FBH, KEY2_F10 ; 按SB2 转时调整LJMP MIN_OFFKEY2_F10:CJNE A,#0FDH,HOUR_OFFINC HOUR_11MOV R5,HOUR_11CJNE R5,#24,HOUR_OFF;益出MOV HOUR_11, #00HAJMP HOUR_OFF ; 转到时显;-------分单元加1 子程序MIN_OFF:MOV A , MIN_11 ; 调时分单元、并显示提示MOV B ,#10DIV ABSWAP AORL A,BMOV P0, AMOV P2, #02HLCALL READLCALL DE250SMCJNE A, 01H,MIN_OFFCJNE A, #0FBH, KEY2_F11 ;按SB2 转分调整LJMP ON_1 ;按SB3 往下调定时:开与关KEY2_F11: CJNE A, #0FDH, MIN_OFFINC MIN_11 ;1 路分单元加1MOV R5, MIN_11CJNE R5,#60,MIN_OFF;益处MOV MIN_11, #00HLJMP MIN_OFF ; 转到分显;-------开、关定时ON_1:CJNE A, #0FBH, MIN_OFFK1: MOV A, #88H MOV R7, AMOV P0, AMOV P2, #0FFH;三组都显示开LCALL READLCALL DE250SMCJNE A, 01H, ON_1;去抖后比较CJNE A, #0FBH,KEY2_12 ;按SB2 转关LJMP OUT_A ;按SB3 调出、处于开状态KEY2_12: CJNE A, #0FDH, K1k2: MOV A, #00H; 显示0 关MOV R7, AMOV P0, AMOV P2, #0FFH;LCALL READLCALL DE250SMCJNE A, 01H, K2;去抖后比较CJNE A, #0FBH,KEY2_13 ;按SB2 转开LJMP OUT_A ;SB3 调出、处关状态KEY2_13:CJNE A, #0FDH, K2 ; 比较按了没LJMP K1 ; 按了SB2、转开OUT_A:POP 00HPOP BPOP ACCPOP PSWRETI;_------读取按键程序READ:MOV A , P1;读取按键MOV R1, ALCALL DE10MSMOV A, P1RET;_----延时程序DE5SM:PUSH 01HMOV R1, #0FFHDJNZ R1,$POP 01HRETDE10MS: PUSH 04HPUSH 05HMOV R4, #0AHDl1: MOV R5, #0FFHdl2: DJNZ R5,$ DJNZ R4,dl1POP 05HPOP 04HRETDE250SM:PUSH 02H PUSH 00HMOV R0, #0FFH DEL:MOV R2, #0FFH DJNZ R2,$DJNZ R0, DELPOP 00HPOP 02HRET;_---调整时间进位程序MIN_AD:INC MINMOV R6, MINCJNE R6, #60, OU1 MOV MIN , #00OU1: RETHOUR_AD:INC HOUR MOV R6 , HOURCJNE R6 , #25 , OU2MOV HOUR ,#00OU2: RETDAY_AD:INC DAYMOV R6, DAYCJNE R6 , #32, OU3 ; 是否益出MOV DAY ,#01HOU3: RETMON_AD:INC MONMOV R6, MONCJNE R6, #13, OU4 ; 是否益出MOV MON ,#01HOU4: RETYEAR_AD:INC YEARMOV R6, YEARCJNE R6, #09, OU5;是否益出MOV YEAR ,#00HOU5: RETEND六:附录实验设计电路图1流程图1:实验主程序流程图流程图2:定时中断程序流程图流程图3:调时功能流程图七:实验心得学了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。