河南农业大学-10级电子时钟(汇编语言)实验报告
电子钟实验报告
电子钟前言单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本文讨论的单片机多功能定时器的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。
不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。
第1章电子钟功能及总体方案的介绍 .............. 错误!未定义书签。
1.1电子钟功能介绍 ............................. 错误!未定义书签。
1.1.1基本功能要求............................ 错误!未定义书签。
1.1.2扩展功能要求............................ 错误!未定义书签。
1.2方案介绍 ................................... 错误!未定义书签。
1.2.1计时方案................................ 错误!未定义书签。
1.2.2键盘/显示方案........................... 错误!未定义书签。
第2章电子钟的工作原理 ........................ 错误!未定义书签。
电子时钟实验报告
电⼦时钟实验报告综合实验报告(电⼦钟)⼀、实验⽬的主要⽬的是回顾《微机原理与应⽤》以及其他课程所学知识,并能灵活运⽤到实验当中。
掌握8253A、7段数码管,8259A、8255A的应⽤。
⼆、实验设备STAR 系列实验仪⼀套、PC 机⼀台。
三、实验内容利⽤STAR ES598PCI实验仪设计⼀个具有时、分、秒显⽰功能的电⼦时钟,并定义⼀个启动键,当按下该键时时钟从当前设定值开始⾛时,时间数据可⽤数码管显⽰。
(1) 利⽤8253计数器对标准时钟信号计数,分别实现时、分、秒计时(2) 键盘设定⼀个按键,当按键按下则从已设定的时间开始计时(已设定的时间值可在显⽰缓冲区中预置)(3) 时、分、秒的数值均显⽰在数码管上四、实验步骤1、主机连线说明:E5 区:CLK —— B2 区:2ME5 区:CS、A0 —— A3 区:CS5、A0E5 区:A、B、C、D —— G5 区:A、B、C、DB3 区:CS、A0 —— A3 区:CS1、A0B3 区:INT、INTA —— ES8088:INTR、INTAB3 区:IR0 —— C5 区:OUT0C5 区:CS(8253)、A0、A1 —— A3 区:CS2、A0、A1C5 区:GATE0 —— C1 区:VCCC5 区:CLK0 —— B2 区:62.5K2、运⾏程序,按G5 区的F 键,设置时钟初值;3、观察G5 区数码管上显⽰的时间是否正确。
五、实验流程图设置时间⼦程序:8253⼦程序:六、实验程序.MODEL TINYEXTRN Display8:NEAR, GetKeyA:NEAR, GetKeyB:NEAR IO8259_0 EQU 0F000HIO8259_1 EQU 0F001HCon_8253 EQU 0E003HT0_8253 EQU 0E000H.STACK 200.DATAhalfsec DB 0 ;0.5秒计数Sec DB 0 ;秒Min DB 0 ;分hour DB 0 ;时buffer DB 8 DUP(0) ;显⽰缓冲区,8个字节buffer1 DB 8 DUP(0) ;显⽰缓冲区,8个字节bNeedDisplay DB 0 ;需要刷新显⽰number DB 0 ;设置哪⼀位时间bFlash DB 0 ;设置时是否需要刷新.CODESTART: MOV AX,@DATAMOV DS,AXMOV ES,AXNOPmov sec,0 ;时分秒赋为00:00:00mov min,0mov hour,0MOV bNeedDisplay,1 ;显⽰初始值CALL Init8253CALL Init8259CALL WriIntverSTIMAIN: CALL GetKeyA ;按键扫描JNB Main1CMP AL,0FH ;设置时间JNZ Main1CALL SetTimeMain1: CMP bNeedDisplay,0JZ MAINCALL Display_LED ;显⽰时分秒MOV bNeedDisplay,0 ;1s定时到刷新转速Main2: JMP MAIN ;循环进⾏实验内容介绍与测速功能测试SetTime PROC NEAR LEA SI,buffer1CALL TimeToBufferMOV Number,0Key: CMP bFlash,0JZ Key2LEA SI,buffer1LEA DI,bufferMOV CX,8REP MOVSBCMP halfsec,0JNZ FLASHMOV BL,numberNOT BLAND BX,07HLEA SI,bufferMOV BYTE PTR [SI+BX],10H ;当前设置位置产⽣闪烁效果FLASH: LEA SI,buffer CALL Display8MOV bFlash,0Key2: CALL GetKeyAJNB KeyCMP AL,0EH ;放弃设置JNZ Key1JMP ExitKey1: CMP AL,0FHJZ SetTime8SetTime1: CMP AL,10JNB Key ;⽆效按键CMP number,0JNZ SetTime2CMP AL,3 ;调整时的⼗位数JNB KeyMOV buffer1 + 7,ALJMP SetTime7SetTime2: CMP number,1JNZ SetTime3CMP buffer1 + 7,2JB SetTime2_1 ;修改后可以在设置时间时,设置时钟为04到09之间的数值 CMP AL,4 JNB KeySetTime2_1: MOV buffer1 + 6,ALINC numberJMP SetTime7SetTime3: CMP number,3JNZ SetTime4CMP AL,6 ;调整分的⼗位数JNB KeyMOV buffer1 + 4,ALJMP SetTime7SetTime4: CMP number,4JNZ SetTime5MOV buffer1 + 3,AL ;调整分的个位数INC numberJMP SetTime7SetTime5: CMP number,6JNZ SetTime6CMP AL,6 ;调整秒的⼗位数JB SetTime5_1JMP KeySetTime5_1: MOV buffer1 + 1,ALJMP SetTime7SetTime6: MOV buffer1,AL ;调整秒的个位数SetTime7: INC numberCMP number,8JNB SetTime8MOV bFlash,1 ;需要刷新JMP KeySetTime8: MOV AL,buffer1 + 1 ;确认MOV BL,10MUL BLADD AL,buffer1MOV sec,AL ;秒MOV AL,buffer1 + 4MUL BLADD AL,buffer1 + 3MOV min,AL ;分MOV AL,buffer1 + 7MUL BLADD AL,buffer1 + 6CMP al,18h ;修改后可以解决时间设置时,时钟设置为24以上的数值 JNB exit MOV hour,AL ;时JMP ExitExit: RETSetTime ENDP;hour min sec转化成可显⽰格式TimeToBuffer PROC NEARMOV AL,secXOR AH,AHMOV BL,10DIV BLMOV [SI],AHMOV [SI + 1],AL ;秒MOV BYTE PTR [SI + 2],10H ;这位不显⽰MOV AL,minXOR AH,AHDIV BLMOV [SI + 3],AHMOV [SI + 4],AL ;分MOV BYTE PTR [SI + 5],10H ;这位不显⽰MOV AL,hourXOR AH,AHDIV BLMOV [SI + 6],AHMOV [SI + 7],AL ;时RETTimeToBuffer ENDP;显⽰时分秒Display_LED PROC NEAR LEA SI,bufferCALL TimeToBufferLEA SI,bufferCALL Display8 ;显⽰RETDisplay_LED ENDP;0.5s产⽣⼀次中断Timer0Int: PUSH AXPUSH DXMOV bFlash,1INC halfsecCMP halfsec,2JNZ Timer0Int1MOV bNeedDisplay,1MOV halfsec,0INC secCMP sec,60JNZ Timer0Int1MOV sec,0INC minCMP min,60JNZ Timer0Int1MOV min,0INC hourCMP hour,24JNZ Timer0Int1MOV hour,0Timer0Int1: MOV DX,IO8259_0 MOV AL,20HOUT DX,ALPOP DXPOP AXIRETInit8253 PROC NEARMOV DX,Con_8253MOV AL,34HOUT DX,AL ;计数器T0设置在模式2状态,HEX计数 MOV DX,T0_8253 MOV AL,12HOUT DX,ALMOV AL,7AHOUT DX,AL ;CLK0=62.5kHz,0.5s定时RETInit8253 ENDPInit8259 PROC NEARMOV DX,IO8259_0MOV AL,13HOUT DX,ALMOV DX,IO8259_1MOV AL,08HOUT DX,ALMOV AL,09HOUT DX,ALMOV AL,0FEHOUT DX,ALRETInit8259 ENDPWriIntver PROC NEARPUSH ESMOV AX,0MOV ES,AXMOV DI,20HLEA AX,Timer0IntSTOSWMOV AX,CSSTOSWPOP ESRETWriIntver ENDPEND START七、实验结果⼋、实验⼼得通过这两天的实习使我对微机原理有了更深⼊的了解,原来只是停留在想象中的,就像⼀些编写的程序也只是通过⾃我检查来看程序是否错误,有些问题很难发现,但是通过这两天的实习,使原本空洞的知识进⼊了实际的操作中,特别是对对电⼦钟的实验发现微机原理可以实验很多东西,我们现实中的很多东西都是通过微机原理的编程实现的,⽐如⼗字路⼝的红绿灯、数字式温度计、语⾳模块、光照强度的测试……,切实体验到了微机原理的功能强⼤以及它的重要性。
《汇编语言》实验报告
《汇编语言》实验报告实验名称:汇编语言实验报告实验目的:通过实验了解汇编语言的基本概念、语法结构和程序设计方法,掌握汇编语言的编写方法。
实验时间:2024年1月1日实验地点:实验室一、实验背景汇编语言是计算机硬件和软件之间的桥梁,通过汇编语言可以直接操作计算机的底层硬件。
汇编语言是一种低级语言,使用汇编语言可以实现对计算机内存、寄存器等硬件资源的直接操作,从而实现程序的功能。
本实验通过编写汇编语言程序,加深对汇编语言的理解。
二、实验过程1. 确定实验环境:使用DOSBox模拟DOS环境进行汇编程序编写和调试。
2. 编写第一个汇编程序:编写一个简单的汇编程序,将字符串“Hello, World!”输出到屏幕上。
3.程序分析:a.定义要输出的字符串,将字符串存储在数据段中。
b.设置段寄存器,将数据段地址加载到DS寄存器中。
c.设置显示模式和光标位置。
d.将字符串逐个字符输出到屏幕上。
e.关闭显示模式。
4. 编译运行:使用汇编语言的编译器将汇编程序转换成机器码,并在DOSBox中运行程序。
5.调试程序:根据程序运行结果和分析,调试程序中存在的错误,并进行改正。
三、实验结果与分析经过多次编写和调试,我们成功实现了将字符串“Hello, World!”输出到屏幕上的功能。
通过程序分析和调试过程,加深了对汇编语言的理解和掌握。
四、实验总结通过本次实验,我们深入了解了汇编语言的基本概念、语法结构和程序设计方法。
通过实际编写汇编语言程序,对汇编语言的编写方法有了更加深入的认识。
同时,通过调试程序的过程,我们也提高了自身的问题解决能力和分析能力。
在今后的学习和工作中,我们将继续学习和深入研究汇编语言,提高自己的编程能力和创新思维能力。
总体而言,本次实验给我们带来了很大的收获,我们以后将更加努力地学习汇编语言,提高自己的编程水平,为以后的学习和工作做好充分的准备。
电子时钟设计实验报告
编号符号引脚说明编号符号引脚说明1 VSS 电源地9 D2 Data I/O2 VDD 电源正极10 D3 Data I/O3 V L 液晶显示偏压信号11 D4 Data I/O4 R S 数据/命令选择端12 D5 Data I/O5 R/W 读/写选择端13 D6 Data I/O6 E 使能信号14 D7 Data I/O7 D0 Data I/O 15 BLA背光源正极8 D1 Data I/O 16 BLK 背光源负极单片机电子时钟设计报告一、设计任务本次课程设计的电子时钟电路,是基于单片机STC89C52、时钟芯片和液晶显示,运用C语言编程实现。
电子时钟可以显示日期的年、月、日和时间的时、分、秒,具有复位功能。
二、系统硬件设备及芯片简介数字电子钟系统设计已经成熟,但是目前系统设计时基本都是采用 LED 作为显示电路,造成硬件电路复杂、功耗高、产品体积庞大等特点;液晶显示模块由于具有低功耗、寿命长、体积小、显示内容丰富、价格低、接口控制方便等优点,因此在各类电子产品中被极广泛地推广和应用。
字符型液晶显示模块是一类专门用于显示字母、数字、符号等点阵式液晶显示模块。
本系统设计采用字符型液品显示模块 LCD1602 作为显示器件,这样不仅简化了系统的硬件设计,而且极大地提高了系统的可靠性。
1 LCD1602 简介字符型液晶显示模块 LCD1602 已经是单片机应用设计中最常用的信息显示器件。
LCD1602 可以显示两行,每行16 个字符,采用+5V 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。
2 LCD1602 功能介绍2.1 引脚功能LCD1602 采用标准 14 脚(无背光)或 16 脚(带背光)接口,各引脚功能见表 1。
表1 引脚功能2.2 LCD1602 读写指令LCD1602 读写指令较多且较复杂,具体使用可以查相关资料,下面仅列出最常用的的一些命令:①写指令 38H:显示模式设置;②写指令 08H:显示关闭;③写指令 01H:显示清屏;④写指令 06H:显示光标移动设置;⑤写指令 0CH:显示开及光标设置。
VHD语言数字时钟实验设计
河南农业大学课程设计报告设计题目:VHD语言实现数字钟实验报告学院:理学院专业:电子信息科学与技术学号:08班级:07级电科(2)班姓名:贾秋峰电子邮件日期:2011年01月成绩:指导教师:河南农业大学理学院课程设计任务书学生姓名贾秋峰指导教师贾树恒林爱英学生学号08 专业电子信息科学与技术题目VHD语言实现数字钟实验报告任务与要求一、设计实验说明:1、数字时钟主要由:分频器、扫描显示译码器、六十进制计数器(或十进制计数器与6进制计数器组成)、六十进制计数器(或十进制计数器与6进制计数器组成)、十二进制计数器(或二十四进制计数器)电路组成。
在整个时钟中最关键的是如何获得一个精确的1H Z计时脉冲,2、数字时钟显示由时(12或24进制任选)、分(60进制)、秒(60进制)组成,利用扫描显示译码电路在六个数码管显示。
二、数字时钟组成及功能:1、分频率器:用来产生1H Z计时脉冲;2、十二或二十四进制计数器:对时进行计数3、六十进制计数器:对分和秒进行计数;4、六进制计数器:分别对秒十位和分十位进行计数;5、十进制计数器:分别对秒个位和分个位进行计数;6、扫描显示译码器:完成对7字段数码管显示的控制;三、系统硬件要求:1、时钟信号为5MHz;2、FPGA芯片型号EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3(根据实验箱上FPGA芯片具体选择);3、8个7段扫描共阴级数码显示管;4、按键开关(清零、启动、保持);四、硬件实现将时序仿真正确的文件下载到实验箱中的EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3中,通过合适的管脚分配,将相应的管脚连接起来,验证设计是否完成设计要求;五、要求1、精确显示时、分、秒。
2、数字时钟要求:具有对时、分、秒置数功能(利用秒脉冲置数或利用拨码开关、键盘直接置数);3、能够完成整点报时功能。
(选作)开始日期年月日完成日期年月日课程设计所在单位理学院电子科学系VHD语言实现数字钟实验报告一.实验目的在MAX+plusII软件平台上,熟练运用VHDL语言。
电子时钟实验报告
电子时钟实验报告电子时钟实验报告_电子时钟电子时钟实验报告一、实验目的学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法。
二、设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1.在4位数码管上显示当前时间,显示格式为“时时分分”;2.由LED闪动做秒显示;3.利用按键可对时间及闹玲进行设置,并可显示闹玲时间。
当闹玲时间到蜂鸣器发出音乐,按停止键使可使闹玲声停止。
三、工作原理及设计思路利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示。
闹铃声由交流蜂鸣器产生,电路如右图,当P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。
四、电路设计及描述(1) 硬件连接部分:在ZKS-03单片机综合实验仪上有四位共阳LED数码管,其标号分别为LED1~LED4。
为了节省MCU的I/O口,采用串行接口方式,它仅占用系统2个I/O口,即P1.0口和P1.1口,一个用作数据线SDA,另一个用作时钟信号线CLK,它们都通过跳线选择器JP1相连。
由于采用共阳LED数码管,它的阴极分别通过限流电阻R20~R27连接到控制KD_0~KD_Q7。
这样控制8个发光二极管,就需要8个I/O口。
但由于单片机的I/O口资源是有限的,因此常采用实验电路所示的串并转换电路来扩充系统资源。
串并转换电路其实质是一个串入并处的移位寄存器,串行数据再同步移位脉冲CLK的作用下经串行数据线SDA把数据移位到KD_0~KD_Q7端,这样仅需2根线就可以分别控制8个发光二极管的亮灭。
而P0口只能作地址/数据总线,P2口只能作地址总线高8位,P3.0、P3.1作为串行输入、输出接口,实验仪上单片机可用作I/O的口仅有:P1.0--P1.7 ,8位;P3.2、P3.3、P3.4、P3.5 ,4位。
汇编语言课程设计-电子闹钟教学总结
电子闹钟一、课题内容和要求题目描述:利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能提供整点报时功能。
基本要求:(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. 准备工作首先,我们需要准备好所需的电子元件和设备,并将它们连接在面包板上。
确保连接正确无误后,将面包板连接到电源上。
2. 时钟电路设计我们设计的电子时钟采用了数字时分秒的显示方式。
为了实现这一功能,我们使用了一个集成电路来控制时钟的计时和显示功能。
通过连接电阻和电容,我们可以调整时钟的频率和精度。
3. 时钟电路测试在完成时钟电路的设计后,我们需要进行测试以确保其正常工作。
首先,我们使用示波器来观察时钟信号的波形,并检查其频率和稳定性。
然后,我们使用万用表来测量电压和电流,确保电路中没有异常。
4. 时钟显示改进为了提高时钟的显示效果,我们可以对电子时钟进行改进。
例如,我们可以增加背光功能,使时钟在光线较暗的环境下也能清晰可见。
此外,我们还可以增加闹钟功能,使时钟能够发出声音提醒我们。
5. 结果分析通过实验,我们成功制作了一个简单的电子时钟,并对其进行了测试和改进。
我们发现,该时钟具有较高的准确性和稳定性,能够准确显示时间。
同时,通过添加背光和闹钟功能,我们提高了时钟的实用性和便利性。
6. 实验总结本次实验使我们更加深入地了解了电子时钟的工作原理和构造。
通过实践,我们不仅学会了如何制作一个简单的电子时钟,还了解了如何测试和改进它。
这对我们理解电子时钟的应用和发展具有重要意义。
结论:通过本次实验,我们成功制作了一个简单的电子时钟,并对其进行了测试和改进。
我们深入了解了电子时钟的工作原理和构造,并发现其具有较高的准确性和稳定性。
通过实践,我们不仅学会了如何制作一个电子时钟,还了解了如何测试和改进它。
电子钟编程实验报告
《电子钟编程实验》课程设计报告专业:应用电子技术班级:09应(5)姓名:XXX指导教师:XXX2011年4月24日目录1实验目的 (3)2实验设备 (3)3实验步骤 (3)4实验内容 (3)5总结 (7)参考文献 (8)1.实验目的1.1 熟悉CX-P编程软件的使用方法。
1.2 掌握定时器、计数器、单字减法运算指令的使用方法,和EB500软件的使用基础。
1.3 学会定时器、计数器、中间继电器和单字减法运算指令的综合应用,设计出可在PLC实验箱运行的数字电子钟与指针电子钟的编程。
2.实验设备2.1 电脑一台;试验箱一台;AB接口的USB连线一条;电源线两条。
3.实验步骤3.1 把实验箱的电源及各个输入端的拨动按钮置于“OFF”位,即向下拨动,再用AB接口的USB连线把PLC与电脑连接起来,然后给PLC上面。
3.2 启动CX-P软件和EB500软件,分别新建工程并命名为“电子钟编程实验”进入CX-P软件编程环境和EB500软件编程环境。
3.3 根据实验目的和内容,在CX-P软件编程环境里进行编程,然后运行调试并修改CX-P程序。
3.4 根据CX-P程序在EB500软件编程环境里进行相应的编程,然后下载到PLC实验箱在线调试运行, 并修改EB500程序。
3.5 保存好文件,做好各项记录。
3.6 把实验箱的电源及各个输入端的拨动按钮置于“OFF”位,切断试验箱的电源,盖好试验箱的盖子。
3.7 写实验报告。
4.实验内容4.1 TIM与CNT的级联运用根据实验内容编好CX-P梯形图后,编译并下载到PLC中运行。
观察图①,看CNT0的当前值是如何根据TIM0的变化而变化的,同时观察CNT0是如何复位的。
(CNT与CNT的级联运用与此类似,在此略去验证)图① TIM与CNT的级联4.2 分和时的报时设计如图②,在分计数器下加入一个具有自锁功能的线圈100.00,当新的1分钟到来时,C0就会瞬间闭合并随即断开,100.00自锁点亮整分报时灯,同时接通TIM1,TIM1定时5秒后将切断100.00,熄灭报时灯。
多功能电子时钟设计(汇编语言完美版)
多功能电⼦时钟设计(汇编语⾔完美版)电⼦时钟实验报告⼀,实验⽬的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引脚结构。
电子实习数字钟实验报告
数字钟实验报告一、实验目的1. 学习数字电路的设计与实践,提高动手能力。
2. 了解和掌握数字电子钟的工作原理及制作方法。
3. 培养严谨的科学态度和良好的团队协作精神。
二、实验任务及要求1. 设计并制作一个具有时、分、秒显示功能的数字电子钟。
2. 电子钟应具备校时功能,能手动调整时、分。
3. 电子钟在24小时内整点报时,从59分50秒开始,每2秒钟响一声,共响5次。
4. 电子钟在6--22点之间每整点报时,23--5点之间整点不报时。
三、实验原理及设计思路1. 实验原理数字电子钟主要由石英晶体振荡器、分频器、计数器、译码器、显示器等组成。
石英晶体振荡器产生1Hz的基准信号,分频器将1Hz信号分频得到秒信号,计数器对秒信号进行计数实现时、分、秒的显示,译码器将计数器的输出信号转换为显示器所需的信号,显示器以数字形式显示时间。
2. 设计思路(1)选用合适的石英晶体振荡器,确保电子钟的走时准确。
(2)设计分频器,将1Hz信号分频得到秒信号。
(3)设计计数器,实现时、分、秒的计数功能。
(4)设计译码器,将计数器的输出信号转换为显示器所需的信号。
(5)设计显示器,以数字形式显示时间。
(6)设计校时电路,实现手动调整时、分功能。
(7)设计整点报时电路,实现整点报时功能。
四、实验步骤1. 搭建石英晶体振荡器电路,确保输出1Hz的基准信号。
2. 设计并搭建分频器电路,将1Hz信号分频得到秒信号。
3. 设计并搭建计数器电路,实现时、分、秒的计数功能。
4. 设计并搭建译码器电路,将计数器的输出信号转换为显示器所需的信号。
5. 设计并搭建显示器电路,以数字形式显示时间。
6. 设计并搭建校时电路,实现手动调整时、分功能。
7. 设计并搭建整点报时电路,实现整点报时功能。
8. 调试并优化电路,确保电子钟的正常运行。
五、实验结果与分析1. 实验结果经过以上步骤,我们成功制作了一个具有时、分、秒显示功能的数字电子钟。
实验结果显示,电子钟走时准确,能手动调整时、分,整点报时功能正常,符合实验要求。
电子时钟实验报告
实验6 数字电子钟的设计一、实验目的1、学会综合运用常用电路单元设计数字系统2、学会组装调试技术3、完成数字钟的基本功能及扩展电路的设计任务二、实验原理数字钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。
它的计时周期为12小时,显示满刻度为12时59分59秒,另外有报时功能。
因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、报时电路和振荡器组成。
干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、整点报时电路组成。
秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。
将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发现胡一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。
“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
“时计数器”采用12进制计时器,可实现对12小时的累计。
译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过六位LED 七段显示器显示出来。
整点报时电路时根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时。
1、振荡器振荡器的作用是产生时间标准信号。
数字钟的精度就是主要取决于时间标准信的频率和稳定度。
2、计数器根据计数周期分别组成两个60进制(秒、分)和一个12进制(时)的计数器。
把它们适当连接可以构成秒、分、时的计数,实现计时功能。
3、译码和数码显示电路译码和数码显示电路是将数字钟的计时状态直观清晰地反映出来。
可被人们的视觉器官所接受。
显示器件选用LED七段数码管。
在译码显示电路输出信号的驱动下,显示出清晰直观的数字符号。
4、报时电路当数字钟显示整点时,应能报时。
要求当数字钟的“分”和“秒”计数器计到59分50秒时,驱动音响电路。
5、原理框图6、实现方案自行选择芯片,例如74LS90、74LS192、74LS160、74LS161、555、晶振等常用数字电路集成电路,来完成电路的设计与调试,并最终完成设计。
数字电子钟 实验报告
课题一数字电子钟电子钟是一种高精度的计时工具,它采用了集成电路和石英技术,因此走时精度高,稳定性能好,使用方便,且不需要经常调校。
电子钟根据显示方式不同,分为指针式电子钟和数字式电子钟。
指针式电子钟采用机械传动带动指针显示;而数字式电子钟则是采用译码电路驱动数码显示器件,以数字形式显示。
这些译码显示器件,利用集成技术可以做的非常小巧,也可以另加一定的驱动电路,推动霓红灯或白炽灯显示系统,制做成大型电子钟表。
因此,数字式电子钟用途非常广泛。
一、课程设计(综合实验)的目的与要求设计一个具有如下功能的数字电子钟:1.基本功能(1)能直接显示时、分、秒;(2)能正确计时,小时采用二十四进制,分和秒采用60进制;(3)有校时功能,手动调整时、分;2.扩展功能(1)能进行24小时整点报时,要求从59分50秒开始,每2秒钟响一声,共响5次;每响一次声音持续0.5秒。
(2)要求只在6--22点之间每整点报时,23--5点之间整点不报时;(3)具有任意几点几分均可响铃的闹钟控制电路。
响铃1分钟,可人为通过开关使响铃提前终止;二、设计(实验)正文数字电子钟实际上是一个对标准频率(1HZ)进行计数并通过数码管显示的计数电路,由于计数的起始时间与标准时间(如北京时间)不一致,故需要在电路上加一个校时电路。
标准的1HZ时间信号必须准确稳定,可以使用555定时器设计1HZ的振荡电路。
时间计数电路由秒计数器(个位,十位)、分计数器(个位,十位)电路构成,秒个位和秒十位计数器、分个位和分十位计数器均为60进制计数器,而根据设计要求,时个位和时十位计数器为24进制计数器。
1.系统原理框图如下:2.1 分、秒计时器分、秒计时器均为60进制计数器,当秒计时器接受到一个秒脉冲时,秒计数器个位开始从1计数到9,同时在个位计数产生进位时将进位接秒计数器的十位计数器CLK,此时秒显示器将显示00、01、02、...、59、00;每当秒计数器数到00时,就会产生一个脉冲输出送至分计时器,此时分计数器数值在原有基础上加1,其显示器将显示00、01、02、...、59、00,当分计数器产生进位时,将会在进位端产生高电平,进而触发电路,驱动蜂鸣器,起到整点报时的功能。
电子钟课程设计实验报告
电子钟课程设计实验报告实验报告:电子钟课程设计一、实验目的:1. 掌握电子时钟的硬件设计和软件编程方法。
2. 熟悉数字电路的设计和实现。
3. 提高电路设计和实验能力。
二、实验设备和材料:1. FPGA 开发板。
2. 七段数码管。
3. 按钮开关。
4. 时钟电路。
三、实验原理:本电子钟的基本原理是通过 FPGA 芯片实时计数,并将计数结果转化为时间的显示。
时钟电路提供一个恒定的时钟信号,FPGA 芯片在每个时钟脉冲到来时进行计数,并将计数结果转化为显示在七段数码管上。
按钮开关用于设置时间。
四、实验步骤:1. 确定时钟信号的频率,并设计时钟电路,将时钟信号连接到FPGA 开发板上的时钟输入引脚。
2. 将七段数码管分别连接到 FPGA 开发板上的输出引脚。
3. 设计计数模块,包括计数器和时钟信号的同步控制。
4. 设计显示模块,将计数结果转化为七段数码管的控制信号。
5. 设计按钮开关控制模块,用于设置时间和调整闹钟参数等功能。
6. 将上述模块整合在一起,并进行综合和实现。
7. 进行电路调试和测试,检查电子钟的功能是否正常。
五、实验结果:经过调试和测试,实验电子钟正常工作,能够实时显示当前时间,并且可以通过按钮开关进行时间设置和闹钟调整。
六、实验总结:通过本次实验,我掌握了电子时钟的硬件设计和软件编程方法,提高了数字电路设计和实验能力。
通过学习和实践,我深刻理解了数字电路和时序控制的基本原理,并能够将其应用到实际项目中。
我还发现,在设计和实现电子钟的过程中,需要注意时序控制的正确性,以确保信号的稳定和正确传递。
电子时钟实验报告
单片机原理及应用设计报告题目电子时钟的设计专业物理学院部物理与电子工程学院学号-----------姓名-----------指导教师-----------答辩时间二0一二年五月工作时间:2012年5月基于单片机的电子时钟系统的设计指导教师:---学生:---关键词:单片机;电子时钟;键盘控制器;目录第一章总体设计2第二章系统硬件设计32.1 硬件电路32.1.1 单片机最小系统52.1.2 键盘电路62.1.3 显示电路7第三章系统软件设计73.1主程序流程图73.2 主要子程序的流程图9第四章系统仿真10第五章综合调试与问题的解决115.1 硬件调试115.2 软件调试问题及解决11结论12参考文献12附录13第一章 总体设计1.1 设计要求电子时钟的计时X 围00时00分00秒至23时59分59秒,由按键来调节时钟时间,时分秒都可以调整。
1.2 设计思路根据设计的要求可确定如下的设计思路:利用AT89C52系统单片机,LCD 液晶显示器,键盘等一些辅助元件来生成时钟电路已达到设计要求,然后通过编写相应的程序来实现对时钟的调试和控制。
1.3 电路的设计方案随着单片机技术的飞速发展,通过单片机对控制对象的控制日益成为今后自动控制领域的一个发展方向 。
采用MCS--52单片机来对时间进行控制,不仅具有控时方便,组太简单和灵和性大等优点,而且可以大幅度的提高控制时间的技术指标。
从而可以大大提高产品的质量和数量,因此单片机对时间的控制问题是一个工业生产上经常会遇到的问题。
经过设计和元器件的功能,设计要求和设计思路,确定相应的设计方案,该电路有多部分组成,如控制键盘的输入电路,单片机的时钟电路,LCD 液晶显示时间电路等。
所以根据上述条件作出相应的实时时钟电路总的框图,然后开始设计内部驱动程序,是各种芯片按照相应的程序实现特定的功能,之后按照程序的设计,将相应的管脚连接调试,看是够能实现特定的功能。
电子时钟课程设计实验报告
《单片机实践报告》题目电子时钟设计专业电子信息工程学生姓名王健吉准考证号指导教师201—年」0_月一,课程设计的目的和意义课程设计的目的与意义在于让咱们将理论与实践相结合。
培育咱们综合运用电子课程中的理论知识解决实际性问题的能力。
让咱们对电子电路、电子元器件、印制电路板等方而的知识进一步加深熟悉,同时在软件编程、排错调试、焊接技术、相关仪器设备的利用技术等方而取得较全而的锻炼和提高,为此后能够独立完成某些单片机应用系统的开发和设计打下一个坚实的基础。
二,课程设计的大体任务利用89S51单片机最小系统,综合应用单片机按时器、中断、数码显示、键盘输入、蜂鸣报警等知识,设计一款单片机和简单外设控制的电子时钟。
三,主要功能要求1)利用6位数码管,前两位显示小时(24小时制),中间两位显示分钟,后两位显示秒。
时钟每走1秒,秒数码管加1显示,60秒后分钟数码管加1显示,60分钟后小时数码管加1显示。
2)设计89S51单片机最小系统3)掌握利用Protel99绘制原理图和布板的进程、方式和技能。
4)掌握单片机开发软件(Keil C51或Wave)的利用和调试。
5)编写并调试单片机按时及其中断程序,以实现电子时钟的功能。
6)设计八段数码管显示电路并编写驱动程序,输入并调试拆字程序和数码显示程序。
7)掌握硬件和软件联合调试的方式。
8)完成系统硬件电路的设计和制作。
9)完成系统程序的设计。
10)完成整个系统的设计、调试和制作。
11)完成课程设计报告。
四, 整体设计框图及整机概述整体设计框图整机概述:1)开机为走时模式,正常显示时刻。
在此模式下整点闹时,定点闹时有效。
2)共设置3个按键,别离为模式键、功能键一、功能键2o按动模式键,模式将在'走时/调时/日期显示及调整/闹钟显示及调整' 4个模式下切换。
3)走时模式下,按动功能键1/功能键2停止闹时。
4)调时模式下,功能键1调整分钟数值,功能键2调整小时数值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名成绩LLGKFGS河南农业大学课程设计报告题目:电子时钟显示设计课程:微型计算机原理专业:电子信息工程班级: 10电信(1)班学生姓名: LL GKF GS学号:指导教师: ZJH完成日期: 2012.12.30机电工程学院目 录第一章 前言 (3)1.1实习目的…………………………………………………………………………………31.2实习要求 (3)1.3设计所需设备 (3)第二章 软件系统介绍 (4)2.1 DOS及BIOS功能调用 (4)2.2 DOS及BIOS功能中断的用途和好处 (4)2.3 DOS及BIOS功能中断的调用方法 (4)2.4介绍中断技术 (4)第三章 系统介绍…………………………………………………………………………………53.1流程图 (5)3.2程序设计原理 (5)第四章 实习设计分析 (7)第五章 系统实现………………………………………………………………………………85.1程序源代码清单及详细注释 (8)5.2实验结果…………………………………………………………………………………第六章总结................................................................................................参考文献 (14)第一章前言1.1实习目的汇编语言是面向机器的程序设计语言。
在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。
这样用符号代替机器语言的二进制代码,就把机器语言变成了汇编语言。
汇编语言能够最大限度的发挥硬件的性能。
本次实习主要是为了了解定时/计数器和中断的使用。
掌握微机常用的输入输出方式及接口技术。
掌握一定的汇编语言,增强自己动手的能力。
掌握程序设计的一般方法和步骤,能调试和修改程序。
1.2实习要求根据实习的要求,可知需要设计的计算机时钟模拟显示程序是基于汇编语言的WINDOWS应用程序设计,程序运行成功后,页面出现数字式的时钟。
首先在数据段开辟一显示缓冲区,用来存储系统时间。
调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。
分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。
调用DOS字符串显示功能将时间显示出来。
并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。
由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。
时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序,屏幕显示延迟一段时间后再跳回到初始位置,再显示,由此循环下去。
程序的最后还设计一了个按“ESC”键就退出的功能,采取了判断键值的方法。
为了显示的美观,还设计一个字符图界面,通过显示字符串的方法显示出来。
本程序具有很强的扩展功能,我们可以在此基础上进行一些输入、输出扩展,显示的扩展,比如可以做成计时器,并设计一个精美的运动的图形界面,时间到了会自动调用PC喇叭发出报警声等等。
但是由于时间的原因,所以只做了核心的部分,这不得不说是一个遗憾。
此模拟时钟外观简洁明了,功能和实际运用到的时钟的基本功能一样,用起来非常方便、快捷。
1.3设计所需设备PC机 emu8086模拟仿真软件第二章 软件系统介绍一、DOS及BIOS功能调用系统软件中提供的功能调用有两种,一种称为DOS功能调用(也叫低级调用)。
用户程序在调用这些系统服务程序时,不是用CALL命令,而是采用软中断指令INT n来实现。
另外,用户程序也不必与这些服务程序代码连接,因为这些系统服务程序在系统启动时已被加载到内存中,程序入口也被放到中断向量表中。
DOS和BIOS功能调用,会使编写的程序简单、清晰,可读性好 而且代码紧凑,调试方便。
通过调用DOS系统的8好功能实现控制字符的输入,通过调用延时程序实现十分之一秒的定时。
通过调用DOS系统的2号功能实现光标定位,调用DOS系统的2号实现符号输出,通过调用DOS系统的9号功能实现字符串的输出。
二、DOS及BIOS功能中断的用途和好处DOS是PC机上最重要的操作系统,它和BIOS一样包括有近百个设备管理、目录管理和文件管理程序,是一个功能齐全、使用方便的中断例行程序的集合。
使用DOS操作比使用相应功能的BIOS操作更简易,而且对硬件的依赖性更少些。
BIOS是系统提供的基本输入输出例行程序,它包括系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块。
BIOS有两个基本用途:一是给不同系列的微处理器提供兼容的I/O服务,使程序员在编程时不必考虑不同型号机器的具体差别。
二是给程序员提供文件化的,直接对硬件进行操作的子功能,程序员可不必了解硬件操作的具体细节。
所以利用BIOS功能编写程序简单方便,可读性好。
三、DOS及BIOS功能中断的调用方法BIOS功能与DOS功能都是通过软件中断调用的。
在中断调用前需要把功能号装入AH寄存器,把子功能号装入AL寄存器,除此而外,通常还需在CPU寄存器中提供专门的调用参数。
一般地说,调用DOS或BIOS功能时,有以下几个基本步骤:(1)把调用参数装入指定的寄存器中;(2)如需功能号,把它装入AH;(3)如需子功能号,把它装入AL;(4)按中断号调用DOS或BIOS中断;(5)检查返回参数是否正确。
四、介绍中断技术简单来说,中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。
这些引起中断的事件称为中断源,它们可能是来自外设的输入输出请求,也可能是计算机的一些异常事故或其它内部原因。
更具体地,我们定义CPU中断为这样一个过程:在特定的事件(中断源,也称中断请求信号)触发下引起CPU暂停正在运行的程序(主程序),转而先去处理一段为特定事件而编写的处理程序(中断处理程序),等中断处理程序处理完成后,再回到主程序被打断的地方继续运行。
一方面,有了中断功能,PC系统就可以使CPU和外设同时工作,使系统可以及时地响应外部事件。
而且有了中断功能,CPU可允许多个外设同时工作。
这样就大大提高了CPU的利用率,也提高了数据输入、输出的速度。
另一方面,有了中断功能,就可以使CPU及时处理各种软硬件故障。
计算机在运行过程中,往往会出现事先预料不到的情况或出现一些故障,如电源掉电、存储出错,运算溢出等等。
计算机可以利用中断系统自行处理,而不必停机或报告工作人。
第三章系统介绍(1)流程图清屏调用DOS中断取系统时间2进制转ACSII码将转换好的系统时间存入时间显示缓冲区显示时间与界面ESC键按下?调用延时子程序返回DOS程序结束YN(二).程序设计原理:调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。
分别将来小时数、分钟数、秒数存入显示缓冲区,并最终存入一结束字符号’$’。
调用DOS字符串显示功能将时间显示出来。
并调用屏幕I/O中断,定位光标的起始位置,结合着将时间显示在我们预先定义好的位置上。
由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。
时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序,屏幕显示延迟一段时间后再跳回到初始位置,再显示,由此循环下去。
程序的最后还设计一了个按“ESC”键就退出的功能,采取了判断键值的方法。
为了显示的美观,还设计一个字符图界面,通过显示字符串的方法显示出来。
本程序具有很强的扩展功能,我们可以在此基础上进行一些输入、输出扩展,显示的扩展,比如可以做成计时器,并设计一个精美的运动的图形界面,时间到了会自动调用PC喇叭发出报警声等等。
但是由于时间的原因,所以只做了核心的部分,这不得不说是一个遗憾。
本设计借用EMU 8086仿真平台。
第四章:实习设计分析(一)程序原理:程序先调用系统时间,然后将返回的二进制数转化成ASCII码,再通过dos显示功能显示出来,并通过循环不断刷新显示的时间。
在二进制转化成ASCII码的过程中,我进一步地了解到,在转化过程中,二进制数首先转化为双四位的BCD码,再将高四位低四位分别相加30H,从而转化为ASCII码,此时要对照书本的附录了解电脑cup如何将ASCII码的信息转换成显示字符。
(二)时间刷新:我们的程序是不断对显示屏进行刷新的,所以我们调用了bctd程序,这是一个精确的计时程序,计数时间约为1秒,然后我们用了jmp display指令,刷新显示屏,从而达到时间的每秒显示。
(三)屏幕显示:开始做完程序的时候由于采用了光标定位的方法,发现运行了程序后显示光标不停地在不同的位置上跳动,严重影响了程序的可看性。
检查了解到光标的跳动跟程序的刷新频率还有人眼的视觉残象成影原理有关,只要系统的刷新频率大于1/25秒,那么人眼就会认为图象在改变,这跟电影为什么要设成25帧/秒的播放速率的原理是一样的。
这样一来,就必须设计一较为精确的延时程序来改善画面的显示了,只要不让屏幕刷新得太快就可以打到要求,具体的显示时间是通过延时程序里的DX值决定的,通过调整DX的值,我们发现当DX等于04FF的时候显示效果是最好的。
(四)系统退出:开始本程序是使用了DOS中断的键盘功能调用,可是当加了比较跳转指令后整个程序就停了在那里,最后换成了键盘I/O功能调用,问题得到解决。
5第五章:系统实现一、程序源代码清单及详细注释;name: ELECTRONIC CLOCK;design by lianglong gongshuai gaokefandata segmentmess1 db 'Press ESC button to quit ',0ah,0dhdb ' ',0ah,0dhdb ' ',0ah,0dhdb ' ',0ah,0dhdb ' ELECTRONIC CLOCK ',0ah,0dhdb ' ********** ',0ah,0dh db ' ********** ',0ah,0dhdb ' Henan Agricultural University',0ah,0dhdb ' design by lianglong gongshuai gaokefan ',0ah,0dhdb ' ',0ah,0dhdb ' ',0ah,0dhdb ' ','$'mess2 db '',0ah,0dh,'$'t_buff db 20 ;在数据段开辟一时间显示缓冲区data endsstack segmentdb 100 dup(?)stack endscode segmentassume cs:code,ss:stack,ds:datamain:call clear ;调用清屏子程序display: ;----------------------------时间显示部分--------------mov ax, datamov ds,axmov bx,offset t_buff ;送t_buff的偏移地址到BXmov ah,2ch ;调用DOS时间调用功能,功能号:2cH,小时,分钟,秒数分别保存在CH,CL,DH中int 21hmov al,ch ;小时数设定mov ah,0call bctd ;调用进制转换子程序push axand al,0f0h ;选取al高四位mov cl,4 ;设置右循环的次数rol al,cl ;右循环or al,30h ;加30h得到ACSII码mov [bx],al ;将得到的结果送到t_buff缓冲区inc bx ;BX自加1,指针指向下一个缓冲区的下一个地址pop axand al,0fh ;选取低四位,道理同上or al,30hmov [bx],al ;将转换后的低四位值送入缓冲区的第二个地址inc bx;----------------------------------------------------------mov al,':' ;显示分号mov [bx],alinc bx;-------------------------------------------------------mov ah,2chint 21hmov al,cl ;分钟数设定mov ah,0call bctdpush axand al,0f0hmov cl,4rol al,clor al,30hmov [bx],alinc bxpop axand al,0fhor al,30hmov [bx],alinc bx;-------------------------------------------------------------------------mov al,':' ;显示;号mov [bx],alinc bx;-------------------------------------------------------------------------mov ah,2ch ;秒设定int 21hmov al,dhmov ah,0call bctdpush axand al,0f0hmov cl,4rol al,clor al,30hmov [bx],alinc bxpop axand al,0fhor al,30hmov [bx],alinc bx;----------------------------------------------------------------------mov al,'$' ;将字符串的结束位送至显示缓冲区的最后一位mov [bx],al;------------------------------------------------------------------------push bx ;置光标位置 ,AH=2,BH=0,DH跟DL分别为行号与列号,并入栈保护BXmov ah,2mov bh,0mov dh,11mov dl,33int 10hpop bxlea dx,t_buff ;送t_buff偏移地址到DX,并调用DOS显示功能,功能号为9 mov ah,9int 21hpush bx ;置光标位置mov ah,2mov bh,0mov dh,0mov dl,0int 10hpop bxlea dx,mess1mov ah,9int 21hpush bx ;置光标位置mov ah,2mov bh,0mov dh,17mov dl,21int 10hpop bxlea dx,mess2mov ah,9int 21h;-----------------------------call delay1mov ah,1 ;按任意键结束,调用键盘I/O中断功能号1,获取键值到AL int 16hcmp al,1bhjz quit ;是ESC键的话就跳转jmp displayquit:mov ah,4chint 21hret;-------------------------------bctd proc near;二进制转BCD码子程序;AX输入参数;AX输出参数,存放调整过的BCD码;mov dx,axmov ax,0mov cx,16 ;设循环次数bctd1:clc ;清进位标志Crcl dx,1 ;通过进位的循环右移adc al,al ;带进位加法daa ;加法的十进制调整xchg al,ah ;交换高,低八位adc al,aldaaxchg al,ahloop bctd1 ;循环,次数保存在CX里retbctd endp;-------------------------------------------clear proc nearpush ax ;入栈保护现场push bxpush cxpush dxmov ax,0600h;ah=06(滚动)al=00(全屏空白) mov bh,6ah ;背景颜色(6),绿色前景(a)sub cx,cxmov dx,5f5fhint 10hpop dx ;出栈恢复现场pop cxpop bxpop axretclear endp;-----------------------------------------delay1 PROC ;精确延迟时间子程序MOV DX,04ffh ;循环次数up: XOR CX,CXa: NOPLOOP aDEC DXJNZ upRETdelay1 ENDP;----------------------------code endsend main二、实验结果点击运行后,出现运行结果如下:第六章总结心得体会:经过以上步骤,课程设计所要求设计的电子钟显示设计软件便成功完成了,它能显示数字式的时钟,并且能设置初值和时钟进制。