微机原理数字钟的实现 (1)

合集下载

微机原理课程设计电子闹钟

微机原理课程设计电子闹钟

电子钟设计1任务要求1.1显示位置:屏幕中央.1.2日期显示格式"时:分:秒.1.312/24时制可调.1.4在显示屏上显示提示语“CURRENT TIME IS:”和当前时间.2工作原理1时钟起始时间的设置先调用DOS操作系统模块9,在显示屏上显示提示语“TIME SYSTEM IS:”,输入时制12或24后,显示“CURRENT TIME IS:”,再调用DOS操作系统模块10,提示要输入时钟的起始时间,输入时间的格式是“时:分:秒”。

输入的时间以字符串形式存放在已定义的存储器缓存区内,继而调用TRAN1转换子程序和MUL10乘10子程序,将存放在存储器缓存区内的ASCII字符转换为压缩BCD码,并将时、分、秒的值放在寄存器CH、DH、DL中。

2延时程序调用延时TIME延时中断服务程序,累加到存放秒值的寄存器DL中,并进行十进制调整。

在累加的过程中,不断地对时、分、秒值进行比较,秒不能等于60,分不能等于60,时不能等于24。

秒等于限制值时,则使秒值为0分值加1;分等于限制值时,则使分值为0时值加1;时等于限制值时,则使时值为0;时、分、秒值都不超过限制值时,就转显示屏输出。

3时间显示调用DOS操作系统模块9,可用来显示存储器内字符串。

由于显示的字符必须为ASCII码,因为要调用TRAN2转换子程序将寄存器CH、DH、DL内压缩BCD码字符串转换成ASCII字符串,字符串最后以字符“$”结束,并按时、分、秒的顺序送存储器缓冲区内。

调用DOS 操作系统模块9,(DS:DX)应指向字符串首址。

程序一旦进入运行,就将不间断地在显示屏显示时间,要想程序停止运行,可同时在键盘按下CTRL和BREAK二键。

4程序堆图5程序清单DATA SEGMENTBUFFER DB 10 ;设置输入字符串用缓冲区 DB ?DB 10 DUP(?)TS DB 'TIME SYSTEM IS:$'CT DB 'CURRENT TIME IS:$'PM DB 'PM $'AM DB 'AM $'KEEPIP DW 0KEEPCS DW 0SR DB ?HOUR DB ?DAT ENDSSTA SEGMENT PARA STACK 'STACK'STAPN DB 100 DUP(?)TOP EQU LENGTH STAPNSTA ENDSCOD SEGMENTSTART PROC FARASSUME CS:COD,DS:DAT,SS:STAMOV AX,DATAMOV DS,AXMOV AX,STAMOV SS,AXMOV AX,TOPMOV SP,AXMOV AH,35H ;设置1CH中断MOV AL,1CHINT 21H ;段地址放入ES,偏移地址放入BXMOV KEEPIP,BX ;保偏移地址存MOV KEEPCS,ES ;保存段地址PUSH DSMOV DX,OFFSET TIMEMOV AX,SEG TIMEMOV DS,AXMOV AL,1CHMOV AH,25H ;设置中断功能调用INT 21HPOP DSMOV DX,OFFSET TS ;DOS功能模块,显示字符串MOV AH,9INT 21HMOV AH,1 ;DOS功能模块,从键盘输入字符INT 21HMOV AH,1INT 21HMOV SR,ALMOV DL,0AH ;"换行"MOV AH,2INT 21HMOV DL,0DH ;"回车"MOV AH,2INT 21HMOV DX,OFFSET CT ;DOS功能模块,显示字符串,提示从键盘输入MOV AH,9INT 21HMOV DX,OFFSET BUFFERMOV AH,10 ;DOS功能模块,从键盘输入字符串到缓冲区INT 21HMOV BX,OFFSET BUFFER+2CALL TRAN1 ;将输入的ASCII码转换为BCD码INC BXINC BXCALL TRAN1INC BXINC BXCALL TRAN1MOV BX,OFFSET BUFFER+2MOV AL,[BX]CALL MUL10 ;将BCD码转换为压缩的BCD码MOV CH,ALINC BXINC BXMOV AL,[BX]CALL MUL10MOV DH,ALINC BXINC BXMOV AL,[BX]CALL MUL10MOV DL,ALAGAIN: PUSH CXMOV CX,18STI ;开中断W: CMP CX,0JNE WCLIPOP CXMOV AL,DLADD AL,1 ;"秒"加1DAAMOV DL,ALCMP AL,60H ;"秒"与60比较JNE DISPY ;小于60S,转显示程序MOV DL,0 ;等于60S, "秒"值为0,"分"+1MOV AL,DHADD AL,1DAAMOV DH,ALCMP AL,60H ;"分"于60比较JNE DISPYMOV DH,0MOV AL,CHADD AL,1DAAMOV CH,ALMOV AL, SRCMP AL,32HJNE NEXTJMP DISPYNEXT: MOV AL,CHMOV HOUR,CHCMP AL,24HJNE DISPYMOV CH,0DISPY: CALL IOCLRCALL IOSET1CALL STARCALL IOSET2CALL STARCALL IOSETMOV BX,OFFSET BUFFERMOV AL,SRCMP AL,32HJNE NEXT2CALL AD12MOV AL,HOURJMP NEXT1NEXT2: MOV AL,CH ;"时"值转换成ASCII码NEXT1: CALL TRAN2 ;将压缩BCD码转换成ASCII码MOV AL,':'MOV [BX],ALINC BXMOV AL,DH ;"分"值转换成ASCII码CALL TRAN2INC BXMOV AL,':'MOV [BX],ALINC BXMOV AL,DL ;"秒"值转换成ASCII码CALL TRAN2INC BXMOV AL,'$' ;显示字符串结束码MOV [BX],ALPUSH BXPUSH CXPUSH DXMOV DX,OFFSET BUFFERMOV AH,9 ;DOS功能模块,显示字符串INT 21HPOP DXPOP CXPOP BXJMP AGAINCLIPUSH DSMOV DX,KEEPIPMOV AX,KEEPCSMOV DS,AXMOV AH,25HMOV AL,1CHINT 21HPOP DSSTIRETSTART ENDPMUL10 PROC ;将BCD码转换为压缩的BCD码ADD AL,ALDAAMOV CL,ALADD AL,ALDAAADD AL,ALADD AL,CLDAAMOV CL,ALINC BXMOV AL,[BX]ADD AL,CLRETMUL10 ENDPTRAN1 PROC ;ASCII码转换成BCD码MOV AL,[BX]AND AL,0FHMOV [BX],ALINC BXMOV AL,[BX]AND AL,0FHMOV [BX],ALRETTRAN1 ENDPTRAN2 PROC ;将压缩BCD码转换成ASCII码MOV CL,ALSHR AL,1SHR AL,1SHR AL,1SHR AL,1OR AL,30HMOV [BX],ALINC BXMOV AL,CLAND AL,0FHOR AL,30HMOV [BX],ALRETTRAN2 ENDPIOCLR PROC ;调用BIOS,清除全屏幕PUSH CXPUSH DXPUSH BXPUSH AXMOV AX,0600HMOV BH,02SUB CX,CXMOV DX,184FHINT 10HPOP BXPOP DXPOP CXRETIOCLR ENDPTIME PROCDEC CXIRETTIME ENDP ;调用BIOS,设置屏幕光标在中央PUSH DXPUSH BXPUSH AXMOV AH,02SUB BH,BHMOV DX, 0C23HINT 10HPOP AXPOP BXPOP DXRETIOSET ENDPIOSET1 PROCPUSH AXPUSH BXPUSH DXMOV DX,0A1AHMOV BH,00MOV AH,02INT 10HPOP DXPOP BXPOP AXRETIOSET1 ENDPIOSET2 PROCPUSH AXPUSH BXPUSH DXMOV DX,0E1AHMOV BH,00MOV AH,02INT 10HPOP BXPOP AXRETIOSET2 ENDPSTAR PROCPUSH AXPUSH BXPUSH CXPUSH DXMOV AL,3DHMOV BH,0MOV BL,0CHCMP HOUR,24HJNZ XMOV HOUR,0HX: MOV CX,WORD PTR HOUR INT 10HPOP DXPOP CXPOP BXPOP AXRETSTAR ENDPAD12 PROCPUSH DXMOV HOUR,CH MOV AL,SRCMP AL,32HJNE ZHMOV AL,HOURCMP AL,24HJNE NEXT3MOV CH,0MOV HOUR,CHJMP S12NEXT3: CMP AL,12HJBE S12MOV DX,OFFSET PMMOV AH,9INT 21HMOV AL,HOURMOV DH,12HSUB AL,DHDASMOV HOUR,ALJMP ZHS12: CMP AL,12HJNE ZMOV DX,OFFSET PMMOV AH,9INT 21HJMP ZHZ: MOV DX,OFFSET AMMOV AH,9INT 21HZH: POP DXRETAD12 ENDPCOD ENDSEND STAR6设计时遇到的问题及解决方法在课程设计中遇到的最大的困难是如何利用软、硬件配合的方式产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断返回还不是很清楚,程序设计一度陷入停滞状态,不知如何是好.于是我又重新翻阅了我们的学习课本,也就是电子工业出版社的《微机原理与接口技术(基于16位机)》,重点研究了第9章《中断》,通过对这一章的学习,我终于对中断有了详细的认识,在设计程序时也容易了很多。

微机原理课程设计-数字时钟

微机原理课程设计-数字时钟

微机原理课程设计设计题目:电子时钟班级:08电信系机电五班姓名及学号:薛鹏(***********)目录一、摘要二、引言三、电子时钟的设计:1.设计目的2.设计任务3.电路原理图四、程序设计(1)设计思路(2)设计流程图(3) 源代码五、软件调试六、设计总结和心得体会摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。

一、引言单片机是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。

单片机是把主要计算机功能部件都集成在一块芯片上的微型计算机。

它是一种集计数和多中接口于一体的微控制器,被广泛应用在智能产品和工业自动化中。

现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。

8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。

微机原理课程设计电子闹钟

微机原理课程设计电子闹钟

电子闹钟学院:姓名:学号:班级:一.系统的硬件设计和软件设计1.总体设计本系统采用单片机AT89S51作为本设计的核心控制元件,使得电路的可靠性比较高,功能也比较强大,利用7段共阴LED作为显示器件。

接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间到,从而控制电器的起停。

电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89S51 单片机。

系统基本框图:2.硬件设计(1).单片机AT89C51AT89C51是一个低电压,高性能CMOS型 8位单片机,片内含4KB的可反复擦写的Flash只读程序存储器(ROM)和128 B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。

AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

主要功能特性:兼容MCS-51指令系统可编程UARL通道两个16位可编程定时/计数器1个串行中断两个外部中断源共6个中断源可直接驱动LED51单片机引脚图()时钟电路单片机的时钟产生方法有两种内部时钟方式和外部时钟方式。

本系统中单片机采用内部时钟方式。

最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。

振荡晶体可在~之间。

电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在~之间取值。

单片机的时钟电路如图()数码管显示电路单片机中通常使用7段LED,LED是发光二极管显示器的缩写。

微机原理与接口技术课程设计报告电子钟

微机原理与接口技术课程设计报告电子钟

微机原理与接口技术课程设计报告——电子钟实验学院:计算机学院指导教师:***一实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。

要求设计一个定时显示装置,用实验仪左侧的六个LED数码管显示时间,时间显示格式为24小时制。

分秒值为59分55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。

用小键盘控制时钟的启停和时钟的设置,键的定义参见上图键值具体定义如下:G键(启停键)——程序启动后,按下该键时钟启动;再次按下该键,暂停计时,显示当前时间。

S键(设置键)——按下S键后,为时钟设置时、分、秒初始值。

二硬件连线键盘的控制、LED显示模块:采用74系列模块控制键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0、P_1、P_2和开放的输出信号P0、P1、P2相连。

74芯片的片选信号CS1接地址译码信号340H, CS2接地址译码信号360H。

时间的精确定时:用8254定时器0产生25ms的中断信号;8254的片选CS连地址输出端320H,A0,A1分别连地址总线A2,A3,GATE0连+5V,CLK0连74LS393分频输出的47K输出端,OUT0连接到8259的IRQ0整点报时控制:由8255模块控制;PC0直接与蜂鸣器相连,CS_4连接到实验仪中部的地址输出端CS_4中断处理模块:由8259控制8259的片选CS-1连地址输出300H,INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V, 8259的IRQ0连接到8254的OUT0。

三、程序流程图主程序初始化各阶段寄存器及相关变量初始化8254、8259、8255芯片设置中断向量、开放8259中断屏蔽开放处理器中断中断服务程序保护现场判断时间是否不小于59分55秒报时扫描键盘G 键?调用启停子程序S COUNT COUNT=40? ADDONE 子程序COUNT 清0显示时间,调用显示时间子程序结束中断(发EOI 命令)恢复现场中断返回四、实验源代码.486pDATA SEGMENT AT 0 USE16ORG 1000HHOUR DW ?Y YN YMIN DW ?SEC DW ?SLL DB ?COUNT DB ?DATA ENDSCODE SEGMENT USE16ASSUME CS:CODE,DS:DATAORG 1500HBEG:JMP STARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0~F 的共阴极七段译码表00H表示不显示任何东西KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值KEYV AL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值PORT1 EQU 340H ;数码管段选端口PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000HMOV CR0,EAXMOV AX,DATAMOV DS,AXMOV HOUR,0203H ;小时分钟以及秒的初始化MOV MIN,0509HMOV SEC,0502HLEA BX,TABMOV SLL,0 ;开始暂停标志位置0MOV COUNT ,0 ;中断次数计数初始值为0;8255初始化,用于产生报时的脉冲MOV EAX,80808080H;控制字MOV DX,20CH ;后面的是4个8255的控制端口20C-20F (这个地址由实验台决定)OUT DX,EAX ;初始化8255,A、B、C口均为方式0输出MOV DX,20BHMOV AL,0FFHOUT DX,AL;8254初始化,用于产生周期为25ms的中断MOV AL,00110110B ;计数器0,先低后高,方式三,二进制MOV DX,32cH ;写往控制口OUT DX,ALMOV DX,320H ;计数器0写初值:47KHz*25msMOV AX,1175OUT DX,ALMOV AL,AHOUT DX,AL;8259初始化CLI :关中断MOV DX,300H ;ICW1MOV AL,00010011BOUT DX,ALMOV DX,308H ;ICW2MOV AL,08H ;IR0中断类型号为08HOUT DX,ALMOV AL,00000001B ;ICW4OUT DX,ALMOV AL,0FEH ;IR0开屏蔽OUT DX,ALXOR AX,AX ;装载中断向量MOV ES,AXMOV DI,08H*4MOV AX,OFFSET INTSRMOV ES:[DI],AXMOV AX,SEG INTSRMOV ES:[DI+2],AXSTI ;开中断JMP $INTSR PROC ;中断服务程序CMP MIN,0509H ;比较当前时间是否在59分55秒~00分00秒之间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT3: MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT2: CMP COUNT,20 ;用8255产生0.5ms的蜂鸣JLE NEXT4MOV DX,20BHMOV AL,0FFHOUT DX,ALNEXT4:CMP SLL,0JZ LOBCALL TSTARTLOB: CALL KEYCHECK ;检测有无键按下CMP AL,0AH ;启停键按下,调用启停程序JNZ NEXT5CALL TSTARTJMP NEXT6NEXT5: CMP AL,0BH ;设置键按下,调用设置时间程序JNZ NEXT6CALL SETTIMENEXT6: INC COUNT ;当COUNT直为40时,加一秒,之后置0 CMP COUNT,40 ;25ms*40=1sJB NEXT7CALL ADDONEMOV COUNT,0NEXT7: CALL SHOW ;显示时间MOV AL,20H ;发EOI命令,结束中断MOV DX,300HOUT DX,ALIRETINTSR ENDPTSTART PROC ;控制时间暂停和开始。

微机原理课程设计--数字时钟

微机原理课程设计--数字时钟

课程设计报告课程设计名称:数字时钟系:三系学生姓名:梁文化阿龙班级:通信班学号: ************ 成绩: 100 指导教师: * * 开课时间: 2013-2014 学年 1 学期一.设计题目:数字时钟二.主要内容:编程实现时钟功能,按秒刷新,要求定位在屏幕右上角。

三.具体要求:在课程设计时,1人一组,设计报告由学生独立完成,不得互相抄袭。

教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。

学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而不应处处被动地依赖指导老师。

学生在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。

学生学会掌握和使用各种已有的技术资料,不能盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。

学生要在老师的指导下制定好自己各环节的详细设计进程计划,按给定的时间计划保质保量的完成个阶段的设计任务。

设计中可边设计,边修改,软件设计与硬件设计可交替进行,问题答疑与调试和方案修改相结合,提高设计的效率,保证按时完成设计工作并交出合格的设计报告。

四.进度安排五.成绩评定考核方法:现场验收(占50%),课程设计报告(占50%)。

考核内容:学习态度(出勤情况,平时表现等)、方案合理性、程序编制质量、演示效果、设计报告质量。

成绩评定:优,良,中,及格,不及格。

特别说明:如发现抄袭,按照不及格处理。

目录一.课题的功能模块的划分 (4)二.主要功能实现 (5)三.心得体会 (7)四.源程序 (8)五.上机调试 (10)六.主要参考资料 (10)一.课题的功能模块的划分显示系统时间程序可以大致分为三个模块:1.利用1ch号功能来重定位中断程序的入口地址2.调用21号中断的31h程序结束并驻留功能,使得显示时间的子程序常驻内存3.显示系统时间模块功能模块图如下:Y二.主要功能实现1.重定位入口地址;重定位中断程序的入口地址lea dx,showtimemov ax,seg showtimemov ds,axmov ax,251chint 21h2.程序驻留并结束;调用21号中断的31h程序结束并驻留功能mov ax,3100hmov dx,proclenint 21h3.显示系统时间showtime procpush axpush bxpush dspush esmov ax,csmov ds,axmov ax,0b800hmov es,axmov ax,2c00h ;调用21h号中断的2ch功能int 21h;输出时钟mov bl,':'mov bh,chcall adjustmov es:[120],almov es:[120+2],ahmov es:[120+4],bl;输出分钟mov bh,clcall adjustmov es:[120+6],almov es:[120+8],ahmov es:[120+10],bl;输出秒钟mov bh,dhcall adjustmov es:[120+12],almov es:[120+14],ahpop espop dspop bxpop axiretshowtime end显示系统时间的流程图如下:三.心得体会为期一周的课程设计就要结束了,回想这一周,我经历了许多,懂得了许多。

微机原理数字钟的设计

微机原理数字钟的设计

目录一、设计要求 (1)二、设计目的 (1)三、设计的具体实现 (1)1、系统概述 (1)2、单元电路设计 (2)2.1、8255初始化: (3)2.2、8253初始化: (3)2.3、8259初始化: (4)3、软件程序设计和调试 (5)3.1、主程序流程图: (5)3.2、电子时钟中断处理程序流程图: (6)3.3、显示模块流程图: (7)3.4、程序代码: (7)四、结论与展望 (14)五、心得体会及建议 (14)六、附录 (15)七、参考文献 (15)电子时钟的设计报告一、设计要求利用8259A中断控制器、8253定时/计数器、8255A接口芯片以及键盘和数码显示电路,设计一个电子时钟,由8253中断定时,小键盘控制电子时钟的启停及初始值的预置。

电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。

1. 电子时钟具有二十四小时循环记时功能,走时要准。

2. 显示格式,时:分:秒。

3. 利用8253作为定时器。

二、设计目的通过本次课程设计学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。

通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使设计者的设计水平和对所学知识的应用能力以及分析问题解决问题的能力得到全面提高。

1. 熟练掌握8086/88教学系统的基本操作和调试程序的各种指令。

2. 掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。

3. 掌握8255的各种工作方式及其应用编程。

4. 掌握8253定时/计数器的工作原理、工作方式及其应用编程。

5. 熟悉编程及调试程序的方法。

6. 练习LED-KEYBOARD UNIT的使用方法和数码管的显示编程方法。

三、设计的具体实现1、系统概述基本工作原理:系统设计的电子时钟主要由显示模块、时钟控制模块和时钟运算模块三大部分组成。

微机综合实践 数字钟

微机综合实践 数字钟

6/9
02009425
赖福强
PortWriteByte(0x2A0,dzglm[i]); } } } else num=60; } if(xSecFlag) { xSecFlag = 0; if(tmp1==0x04) num--; printf("%02d:%02d:%02d\n",h,m,s); //在计算机屏幕上显示时:分:秒 printf("%d\n",num); s++; if(s>=60) { s=0; m++; if(m>=60) { m=0; h++; if(h>=24) h=0; } Second(s); Minute(m); Hour(h); } } } //判断周期为 1 秒的方波是否处于上升沿
Proteus 模拟(只是在硬件连接方面展示,在软件上没成功运行)
2/9
02009425
赖福强
五程序框图 开始 N
打开设备?
Y 8253、8255 初始化
读入开关状态得初始时间
N
5MS 上升沿?
Y 数码管动态显示
查找点阵管显示字模
点阵管显示一列
N
1S 上升沿?
Y 查找字模
显示(秒位加一)
N 到设定时间? Y 响喇叭 N 按键退出? Y 退出结束程序
一、综合实践目的和意义 1、 综合 C/C++,微机原理等知识,训练和初步掌握控制领域的编程和应用技术; 2 、激发创新型思维,培养独立工作能力; 3、培养工程意识,即在有限的硬件条件下,实现系统目标。 通过本次微机原理综合实践掌握两种芯片(8253,8255) 、DAC0832 以及点阵管的使用 方法, 灵活运用这学期的课本知识, 加深所学的知识, 对所学的相关芯片的原理、 内部结构、 使用方法等有更加深刻的了解, 并且学会利用课本知识联系实际应用及编程。 同时并了解综 合问题的程序设计掌握实时处理程序的编制和调试方法, 掌握一般的设计步骤和流程, 使我 们在以后工业控制时逻辑更加清晰。 二、开发环境及设备(实验元器件) 开发环境及设备(实验元器件) PC 机一台(windows XP 系统) 8253 一片 共阴极数码管(两位) 一只 按键开关 8 个 DAC0832 三、实验原理 8253 可以作为精准的定时器。8253 的功能是定时,接入 8253 的 CLK 信号为周 一片 实验箱(TPC2003A) 8255 一片 导线若干 1MHz 信号源 8 X 8 点阵管 喇叭 一个

微机原理与接口技术综合实验电子钟实验报告

微机原理与接口技术综合实验电子钟实验报告

微机原理综合实验:电子钟实验要求8253每1s产生中断请求给8259,中断服务程序利用8255控制数码管,构建一个电子钟。

一、实验原理(相关芯片大致介绍)1.82548254 是Intel 公司生产的可编程间隔定时器,是8253 的改进型,比8253 具有更优良的性能。

8254 具有以下基本功能:(1)有3 个独立的16 位计数器。

(2)每个计数器可按二进制或十进制(BCD)计数。

(3)每个计数器可编程工作于6 种不同工作方式。

(4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。

(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。

2.8259Intel公司专为控制优先级中断而设计开发的芯片,包括中断源优先级排队、辨别中断源以及提供中断矢量的电路,无需附加任何电路,用户只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式。

同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。

管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。

3.8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。

CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。

8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。

单片机(微机原理)89c51电子时钟实验

单片机(微机原理)89c51电子时钟实验

天津**大学课程设计任务书课程名称:单片机原理及应用院(系、部、中心): *****专业: ******班级: ***姓名: *** 指导教师: ***电子时钟实验一、设计目的1、进一步掌握定时器的使用功能的使用和编程方法2、进一步掌握中断处理程序的编程方法3、进一步掌握数码显示电路的驱动方法二、设计要求利用CPU的定时器和试验仪上的提供的数码显示电路,设计一个电子时钟。

格式如下:XX XX XX 由左向右分别为:时、分、秒三、设备仪器1、LAB6000微控制器试验系统2、PC机一台3、试验导线若干四、试验步骤1、硬件电路设计本试验连接只需要接上显示/键盘的选择信号即可。

显示电路见附表中的键盘及LED显示电路或数码管显示试验。

2、程序框图电子钟程序框图3、程序流程图:OUTSEG EQU 08004H OUTBIT EQU 08002H ORG 0000HAJMP MAINORG 000BHAJMP TIMEORG 0300HMAIN:mov 20h,#00hMOV 21H,#00HMOV 22H,#00HMOV 23H,#00HMOV IP,#02H 、MOV IE,#82HMOV TMOD,#01H 、MOV TL0,#0B0HMOV TH0,#3CHSETB TR0 、MOV SP,#40H 、NEXT: LCALL DISP 、LCALL KEY 、JZ NEXT ;LCALL ANKEY 、SJMP NEXT 、NOPNOPNOPTIME: PUSH ACC PUSH PSWMOV TL0,#0B4H ;¸MOV TH0,#3CHINC 20H ;MOV A,20HCJNE A,#10,RETI1 MOV 20H,#00HMOV A,21HADD A,#01HDA AMOV 21H,ACJNE A,#60H,RETI1 MOV 21H,#00H MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#60H,RETI1MOV 22H,#00HMOV A,23HADD A,#01HDA AMOV 23H,ACJNE A,#24H,RETI1MOV 23H,#00HRETI1: POP PSW ;POP ACCRETI ;NOPNOPDISP: ANL 2FH,#10H ; MOV A,21H ;´ANL A,#0FHORL A,2FHMOV 2FH,AMOV A,21HANL A,#0F0HSWAP AMOV 2EH,AANL 2DH,#10HMOV A,22H ;ANL A,#0FHORL A,2DHMOV 2DH,AMOV A,22HANL A,#0F0HSWAP AMOV 2CH,AANL 2BH,#10HMOV A,23H ;´ANL A,#0FHORL A,2BHMOV 2BH,AMOV A,23HANL A,#0F0HSWAP AMOV 2AH,AMOV R0,#2FHMOV R3,#06HMOV DPTR,#TABLEMOV A,#01HLOOP1: MOV B,A ;MOV DPTR,#OUTBITMOV A,#0MOVX @DPTR,AMOV A,@R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV DPTR,#OUTSEGMOVX @DPTR,AMOV DPTR,#OUTBITMOV A,BMOVX @DPTR,AMOV R2,#01H ;DJNZ R2,$DEC R0MOV A,BRL ADJNZ R3,LOOP1RETTABLE: db3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHKEY: MOV P3,#0FFH ;MOV A,P3CPL AANL A,#3CHJZ RETXLCALL DISP ;LCALL DISPMOV A,P3CPL AANL A,#3CH JZ RETXMOV R6,ALOOP2: LCALL DISP ; MOV A,P3CPL AANL A,#3CHJNZ LOOP2MOV A,R6RETX: RETNOPNOPANKEY: CLR EA ;LX: MOV A,R6JB ACC.2,L1 ;JB ACC.3,L2JB ACC.4,L3 ;JNB ACC.5,L12 ;JB 2BH.4,L6JB 2DH.4,L8JB 2FH.4,L9L12: LCALL DISP LCALL DISPLCALL KEY JZ L12 LJMP LXL2: MOV 25H,#00H ; CLR 2BH.4CLR 2DH.4CLR 2FH.4SETB EARETL3: JB 2BH.4,L61JB 2DH.4,L81JB 2FH.4,L91AJMP L12L1: MOV A,25HJZ LB1JB ACC.0,LB2JB ACC.1,LB3JNB ACC.2,L12LB1: MOV 25H,#01HSETB 2BH.4CLR 2DH.4CLR 2FH.4AJMP L12LB3: MOV 25H,#04H SETB 2FH.4CLR 2DH.4CLR 2BH.4AJMP L12LB2: MOV 25H,#02H SETB 2DH.4CLR 2BH.4CLR 2FH.4AJMP L12L61: AJMP L611 ; L81: AJMP L811 ; L91: AJMP L911L6: MOV A,23H ADD A,#01HDA AMOV 23H,ACJNE A,#24H,L15 L15: JC L112 MOV 23H,#00HL112: AJMP L12L8: MOV A,22H ; ADD A,#01HDA AMOV 22H,ACJNE A,#60H,L16 L16: JC L112 MOV 22H,#00H AJMP L12 L9: MOV A,21H ADD A,#01HDA AMOV 21H,ACJNE A,#60H,L17 L17: JC L112 MOV 21H,#00H AJMP L12L611: MOV A,23H ADD A,#99HDA AMOV 23H,ACJNE A,#99H,L112 MOV 23H,#23H AJMP L12L811: MOV A,22H ; ADD A,#99HDA AMOV 22H,ACJNE A,#99H,L112 MOV 22H,#59H AJMP L12L911: MOV A,21H ADD A,#99HDA AMOV 21H,ACJNE A,#99H,L112 MOV 21H,#59H AJMP L12NOPNOPEND4、程序调试:调试程序:打开LAB6000软件,录入程序以.ASM保存,编译,全速执行,观察试验结果。

合工大微机原理课程设计第6题数字钟

合工大微机原理课程设计第6题数字钟
mov flag,01h
overD: JMP con8
recoverLED: cli ;实现从BUF知LEDbuf功能的具体代码区
push si
push cx
PUSH BX
mov LedBuf+3,00h
mov LedBuf+4,00h
mov LedBuf+5,00h
mov si,0
;;;;;;;;;;;;;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
push ax
push dx
MOV DX,port33
MOV AL,36H
OUT DX,AL
MOV DX,port00
MOV AL,00H
OUT DX,AL
5. 按“E”表示时钟开始运行。
6. 程序运行时,首先按“D”设置闹铃时间,然后按“C”设置时钟的时间,再按“E”让时钟开始运行。当当前时间运行到闹铃时间时,整个七段数码管屏幕闪烁字符“8”。
注:下面的代码在设置闹钟时会产生时间误差。读者有兴趣尝试的话可以自己改改,只需要调整调整几个缓冲区,使设置闹钟时使后台依然接受中断即可,设完闹钟使其恢复即可。
CBuf db 6 dup(0fh)
buf db 6 dup(?) ;临时存放时刻
buttonC DB 02H ;若C键被按则置1
buttonD DB 03H ;若D键被按则置1
buttonE DB 00H ;若E键被按则置1
jnz overd ;若SI不等06h即小于6,则跳到con8处,继续获取键值,直至6位闹钟设置完毕
MOV BUTTOND,00H ;闹钟设置完毕,使D键标志失效,使其不会继续设置闹钟,并将取出BUF内时间标志置1

微机原理实验报告电子钟

微机原理实验报告电子钟

微机原理与接口技术课程设计实验报告——电子时钟(附8251串口通讯部分实验报告)通过设置8251的数据位和方式字,通过示波器测量输出波形。

在实验中,8251选择异步通讯方式,修改自发自收程序,通过测量TXD引脚观察波形。

观察波形&分析:1.数据位:6AH,方式字:7EH(1个停止位,偶校验)可知:输出为00101011001,数据为可以推断出是加粗部分,则前一位为起始位,后两位01分别为偶校验位和停止位。

实验结果与结果相符。

2.数据位:0C4H,方式字:7EH(1个停止位,偶校验)可知:输出为00010001111,数据为可以推断出是加粗部分,则前一位为起始位,后两位11分别为偶校验位和停止位。

实验结果与结果相符。

一、课程设计目的和意义通过本次课程设计掌握多种芯片使用的方法,灵活地综合运用课本知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解。

了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程。

二、开发环境及设备PC机一台、实验箱、导线若干8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号8255并口:用做接口芯片,和数码管相连8259中断控制器:用于产生中断LED:六个LED用于显示时:分:秒值三、设计思想与原理1、设计思想本系统设计的电子时钟用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟,8259做中断控制器产生中断。

在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。

8254采用计数器0,先读写低字节后读写高字节,方式2,二进制计数,以18.432kHz为输入时钟,4800H分频后为1Hz,即1s产生上升沿,此信号接8259的中断请求信号输入端,CPU即处理中断,使液晶显示器上的时间发生变化。

2.设计原理利用实验台上提供的定时器8254和扩展板上提供的8259和数码显示电路,设计一个电子时钟,由8254中断定时,电子时钟的显示格式由左到右分别为时、分、秒。

微机原理实习--电子时钟的制作

微机原理实习--电子时钟的制作

河南农业大学课程设计报告题目:电子时钟课程:微机原理专业:电子信息工程班级:XX级电信X班学生姓名:XXX、XXX、XXX学号:指导教师:XXX前言-------------------------------------------------------------------------------------------------------------3 第一章序言--------------------------------------------------------------------------------------------------41.1 实习题目---------------------------------------------------------------------------------------41. 2 实习目的和要求-----------------------------------------------------------------------------41.3 实习安排---------------------------------------------------------------------------------------4 第二章软件系统介绍------------------------------------------------------------------------------------52.1 系统框图-------------------------------------------------------------------------------------52.2 软硬件功能介绍----------------------------------------------------------------------------5 第三章设计分析------------------------------------------------------------------------------------------63.1 汇编语言及汇编工具简介----------------------------------------------------------------63.2 程序流程图----------------------------------------------------------------------------------63.3 软件各部分内容----------------------------------------------------------------------------63.4 程序清单及详细注释----------------------------------------------------------------------6 第四章系统实现------------------------------------------------------------------------------------------74.1 程序源代码----------------------------------------------------------------------------------74.2 运行结果----------------------------------------------------------------------------------18 第五章参考文献-----------------------------------------------------------------------------------------19 第六章总结-----------------------------------------------------------------------------------------------20微机原理和计算机借口技术是计算机及电子类专业重要的基础专业课之一,它不但要求有较高的理论水平,而且还要求有较高的实际动手能力。

微机原理课程设计简单电子钟设计

微机原理课程设计简单电子钟设计
A0
A1
CLK0
OUT0
GATE0
图3.4 实验接线图
3.2 主程序流程图
主程序的流程图是对整个程序的逻辑的图象表示。首先是设置8254、8255、8259的各个端口地址。接着初始化各个芯片,开始计时,并通过8259中断控制时间的正确显示。在整个过程中都在检测是否有铵键响应。有则停止,没有则返回继续执行。
INC AX
MOV MSEC,AX
1、中断工作原理,定时计数原理,并行通信原理工作原理。
2、掌握8259芯片,8254芯片,8255芯片功能,结构。
3、掌握8259芯片,8254芯片,8255芯片的编程。
4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。
1.3设计要求
1、总体内容:设计一电子时钟,能在数码管上显示时间并计时。
2、接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.
3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。
4、前期完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。
1.4电子时钟
电子时钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。传统的设计方法有两种,一是利用组合逻辑电路和时序电路等中小规模集成电路来设计;一是利用单片机编程技术来设计。这两种设计都存在硬件复杂,设计周期长,成本高等缺点。并且本学期通过对《微型计算机原理及应用》的学习,利用掌握的知识进行实践是必要的,以巩固基础知识,培养独立操作能力。而本次课程设计要实现的功能为:利用定时器从0开始进行计时,将计时的结果显示在数码管上。每隔1秒,秒钟计时一次,到60秒,分钟加1,到60分小时加1。根据需要,需选择的芯片有8254,8259,8255,系统时钟频率1.041667MHz;

微机原理课设数字闹钟.概要

微机原理课设数字闹钟.概要

摘要由于计算机应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂。

微机接口采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换。

因此,接口技术是硬件与软件的综合技术。

微机控制即微型计算机原理控制。

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

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

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

本文通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示,LED显示原理,微型计算机控制的定时中断原理。

从而达到学习、了解微机原理控制的相关指令在各方面的应用。

系统由8254、8255、8259等构成,能实现时钟显示的功能,能进行分、秒的显示。

程序主要由以下四个模块组成:主控模块,定时模块,中断模块,显示模块。

主程序模块:主控模块是系的核心模块,对8254、8255、8259进行初始化,设置中断向量。

调用中断子程序和显示子程序由软件实现。

该时钟程序由00:00:00开始计时,通过8254的分频产生10MS的方波。

定时模块:定时模块是为8259提供中断请求信号的。

由一片8254实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。

中断处理模块:中断模块实现动态显示的。

中断程序为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

显示模块:显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

硬件上由六个LED构成,软件上由扫描显示的方法实现。

关键词简单电子钟、并行接口8255、8254、8259、LED1 设计原理1.1 设计原理此次设计是通过对计数器8254设定计数值对脉冲进行计数,在程序里8254工作于计数器0,方式3。

微机原理记时日期秒表多功能电子钟课程设计

微机原理记时日期秒表多功能电子钟课程设计

微机课程设计用8086/8088CPU设计一个多功能时钟。

要求实现,日常使用时正确显示的是时、分、秒;根据需要,还可以作为秒表使用;还可以显示日期。

目录一、设计内容要求二、设计思想三、程序流程图(1)时间显示部分(2)日期显示部分(3)数字显示部分四、实验连线图(1)总体线路图(2)8284应用电路(3)74LS138片选部分(4)8255与七段数码管搭配部分电路图(5)8259功能选择部分(6)数据存储部分(7)计数电路(8)CPU的部分连接部分五、连线描述六、按键功能介绍七、心得体会八、参考文献一、设计内容与要求1、设计目的:1) 进一步建立微机系统概念、加深对系统理解和认识,提高微机系统的应用水平。

2) 进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高汇编语言程序的水平和学习程序调试方法。

3) 进一步熟悉接口、熟悉键盘控制和七段数码管及其他芯片的使用。

2、设计任务:用8086/8088CPU设计一个多功能时钟。

要求实现,日常使用时正确显示的是时、分、秒;根据需要,还可以作为秒表使用;还可以显示日期。

二、设计思想1. 先在数据段开辟存储单元,用来存放时、分、秒、年、月、日等的信息。

这些存储单元分别对应时、分、秒,日期的年、月、日的十位和个位。

调用子程序的清屏部分。

2. 在主程序中分别对8259、8255、8259、8253进行初始化编程。

根据系统功能要求,设置操作字与方式控制字。

3. 8255的A口工作在方式0输出,B口工作在方式0输出,为基本的输入输出方式。

这部分与七段数码管搭配,显示结果。

4. 在中断服务程序中对中断次数进行统计。

当时钟在日常状态和切换到秒表功能时,当产生1次中断时,将秒的个位加1,判断是否到10,如到了则十位加1,个位清零;再判断十位是否到6,如到了则十位清零,分的个位加1,同理对分、时做相应的处理。

该电子钟为12进制的。

当电子表切换到日期功能时,先判断是否是闰年,然后判断是否是二月,最后判断是单月份还是双月份,然后根据闰年366天,闰年2月29天,不是闰年28天,当月份31天,双月份30天进行进位。

微机原理 电子时钟 c语言代码

微机原理    电子时钟  c语言代码

#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table1[]="2011-06-09 week4 N";uchar code table2[]="11:59:55 ";uchar code table3[]="12:00 13:00 14:00";sbit rs=P1^2;sbit rw=P1^1;sbit en=P1^0;sbit k1=P1^4;sbit k2=P1^5;sbit k3=P1^6;sbit k4=P1^7;sbit min=P3^2;ucharnum,shi=11,fen=59,miao=55,knum,year=11,mon=6,day=9,week=4;shi1=12,fen1=0,miao1 =0,shi2=13,fen2=0,miao2=0,shi3=14,fen3=0,miao3=0,i;/*延时函数*/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=100;y>0;y--);}/*写命令道液晶*/void write_com(uchar com){rs=0;rw=0;P0=com;delay(5);en=1;delay(5);en=0;}/*写数据到液晶*/void write_date(uchar date){rs=1;rw=0;P0=date;delay(5);en=1;delay(5);en=0;}void zhengshi(){for(;fen==0&&miao==0;){for(i=0;i<2;i++){min=0;delay(500);min=1;delay(500);}}}/*闹钟和正点报时子函数*/void nao(){uchar i;for(;(shi==shi1&&fen==fen1&&miao==miao1);) {for(;1;){min=0;delay(500);min=1;delay(500);if(k2==0)break;}}for(;(shi==shi2&&fen==fen2&&miao==miao2);) {for(;1;){min=0;delay(500);min=1;delay(500);if(k2==0)break;}}for(;(shi==shi3&&fen==fen3&&miao==miao3);){for(;1;){min=0;delay(500);min=1;delay(500);if(k2==0)break;}}for(;fen==0&&miao==0;){delay(5);if((shi==shi1&&fen==fen1&&miao==miao1)||(shi==shi2&&fen==fen2&&miao==miao2)||(s hi==shi3&&fen==fen3&&miao==miao3))break;elsefor(i=0;i<2;i++){min=0;delay(500);min=1;delay(500);}}}/*写时分秒到液晶*/void write_sfm(uchar add,uchar date){uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);}void write_nyr(uchar add,uchar date){uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write_date(0x30+shi);write_date(0x30+ge);}void write_week(uchar add,uchar date){write_com(0x80+add);write_date(0x30+date);}/*闹钟子函数*/void write_nao(uchar add,uchar date){uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);}/*定时器1初始化*/void time() interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;num++;if(num==20){num=0;miao++;if(miao==60){miao=0;fen++;if(fen==60){fen=0;shi++;if(shi==24){shi=0;day++;if(day<33){if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) {if(day==32)day=1;mon++;}if(mon==13){mon=1;year++;if(year==99){year=1;}if(year%4==0){write_com(0x80+17);write_date('Y');}write_nyr(2,year);}write_nyr(5,mon);}if(mon==2){if(year%4==0){if(day==30){day=1;mon++;}}else{if(day==29){day=1;mon++;}write_nyr(5,mon);}}if(mon==4||mon==6||mon==9||mon==11) {if(day==31)day=1;mon++;}write_nyr(5,mon);}}week++;if(week==8)week=1;write_week(15,week);write_nyr(8,day);}write_sfm(0,shi);}write_sfm(3,fen);}write_sfm(6,miao);}}/*键盘扫描,调整时间与闹钟时间*/ void scan(){static uchar k=0;if(k1==0){delay(10);if(k1==0){knum++;while(!k1);if(knum==1){TR0=0;write_com(0x80+0x40+14);write_com(0x0f);}if(knum==2)write_com(0x80+0x40+11);if(knum==3)write_com(0x80+0x40+6);if(knum==4)write_com(0x80+0x40+3);if(knum==5)write_com(0x80+0x40);if(knum==6)write_com(0x80+15);if(knum==7)write_com(0x80+8);if(knum==8)write_com(0x80+5);if(knum==9)write_com(0x80+2);if(knum==10)write_com(0x80+0x40+0x1a); if(knum==11)write_com(0x80+0x40+0x17); if(knum==12)write_com(0x80+0x40+0x14); if(knum==13)write_com(0x80+0x40+0x11); if(knum==14){knum=0;write_com(0x0c);TR0=1;}}}if(knum!=0){if(k2==0){delay(10);if(k2==0){while(!k2);if(knum==1){fen1++;if(fen1==60)fen1=0;write_nao(14,fen1);write_com(0x80+0x40+14); }if(knum==2){shi1++;if(shi1==24)shi1=0;write_nao(11,shi1);write_com(0x80+0x40+11); }if(knum==3){miao++;if(miao==60)miao=0;write_sfm(6,miao);write_com(0x80+0x40+6); }if(knum==4){fen++;if(fen==60)fen=0;write_sfm(3,fen);write_com(0x80+0x40+3); }if(knum==5){shi++;if(shi==24)shi=0;write_sfm(0,shi);write_com(0x80+0x40);}if(knum==6){week++;if(week==8)week=1;write_week(15,week); write_com(0x80+15);}if(knum==7){day++;week++;if(week==8)week=1;write_week(15,week);write_com(0x80+15);if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) {if(day==32)day=1;write_nyr(8,day);write_com(0x80+8);}if(mon==2){if(year%4==0){if(day==30)day=1;}else{if(day==29)day=1;}write_nyr(8,day);write_com(0x80+8);}if(mon==4||mon==6||mon==9||mon==11){if(day==31)day=1;write_nyr(8,day);write_com(0x80+8);}}if(knum==8){mon++;if(mon==13)mon=1;write_nyr(5,mon);write_com(0x80+5);}if(knum==9){year++;if(year==100)year=1;write_nyr(2,year);write_com(0x80+2);if(year%4==0){write_com(0x80+17);write_date('Y');}if(year%4!=0){write_com(0x80+17);write_date('N');}}if(knum==10){fen3++;if(fen3==60)fen3=0;write_nao(0x1a,fen3);write_com(0x80+0x40+0x1a); }if(knum==11){shi3++;if(shi3==24)shi3=0;write_nao(0x17,shi3);write_com(0x80+0x40+0x17); }if(knum==12){fen2++;if(fen2==60)fen2=0;write_nao(0x14,fen2);write_com(0x80+0x40+0x14); }if(knum==13){shi2++;if(shi2==24)shi2=0;write_nao(0x11,shi2);write_com(0x80+0x40+0x11); }}}if(k3==0){delay(10);if(k3==0){while(!k3);if(knum==1){fen1--;if(fen1==-1)fen1=59;write_nao(14,fen1);write_com(0x80+0x40+14); }if(knum==2){shi1--;if(shi1==-1)shi1=23;write_nao(11,shi1);write_com(0x80+0x40+11); }if(knum==3){miao--;if(miao==-1)miao=59;write_sfm(6,miao);write_com(0x80+0x40+6);}if(knum==4){fen--;if(fen==-1)fen=59;write_sfm(3,fen);write_com(0x80+0x40+3);}if(knum==5){shi--;if(shi==-1)shi=23;write_sfm(0,shi);write_com(0x80+0x40);}if(knum==6){week--;if(week==0)week=7;write_week(15,week);write_com(0x80+15);}if(knum==7){day--;week--;if(week==0)week=7;write_week(15,week);write_com(0x80+15);if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) {if(day==0)day=31;write_nyr(8,day);write_com(0x80+8);}if(mon==2){if(year%4==0){if(day==0)day=29;}else{if(day==0)day=28;}write_nyr(8,day);write_com(0x80+8);}if(mon==4||mon==6||mon==9||mon==11) {if(day==0)day=30;write_nyr(8,day);write_com(0x80+8);}}if(knum==8){mon--;if(mon==0)mon=12;write_nyr(5,mon);write_com(0x80+5);}if(knum==9){year--;if(year==0)year=99;write_nyr(2,year);write_com(0x80+2);if(year%4==0){write_com(0x80+17);write_date('Y');}if(year%4!=0){write_com(0x80+17);write_date('N');}}if(knum==10){fen3--;if(fen3==-1)fen3=59;write_nao(0x1a,fen3);}。

微机原理课设数字闹钟.概要

微机原理课设数字闹钟.概要

摘要由于计算机应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂。

微机接口采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换。

因此,接口技术是硬件与软件的综合技术。

微机控制即微型计算机原理控制。

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

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

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

本文通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示,LED显示原理,微型计算机控制的定时中断原理。

从而达到学习、了解微机原理控制的相关指令在各方面的应用。

系统由8254、8255、8259等构成,能实现时钟显示的功能,能进行分、秒的显示。

程序主要由以下四个模块组成:主控模块,定时模块,中断模块,显示模块。

主程序模块:主控模块是系的核心模块,对8254、8255、8259进行初始化,设置中断向量。

调用中断子程序和显示子程序由软件实现。

该时钟程序由00:00:00开始计时,通过8254的分频产生10MS的方波。

定时模块:定时模块是为8259提供中断请求信号的。

由一片8254实现,选用定时器0#,工作在方式3,由于时钟应该1秒走动一次,所以输出值应为1S,其输出信号可作为8259的中断请求信号。

中断处理模块:中断模块实现动态显示的。

中断程序为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。

显示模块:显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

硬件上由六个LED构成,软件上由扫描显示的方法实现。

关键词简单电子钟、并行接口8255、8254、8259、LED1 设计原理1.1 设计原理此次设计是通过对计数器8254设定计数值对脉冲进行计数,在程序里8254工作于计数器0,方式3。

微机原理课程设计报告 数字时钟的实现(附代码)

微机原理课程设计报告 数字时钟的实现(附代码)

微机原理课程设计报告数字时钟的实现(附代码)微机原理课程设计报告-数字时钟的实现(附代码)合肥工业大学计算机与信息学院课程设计课程:微机原理与接口技术设计专业班级:计算机科学与技术x班学号:姓名:一、设计主题和要求:【课题6】数字时钟1.使用8253定时器产生第二脉冲定时中断。

在中断服务程序(24小时制)中实现秒、分和小时的进位。

2.在七段数码管上显示当前的时分秒(例如,12点10分40秒显示为121040)。

3.按“c”可设置时钟的时间当前值(对准时间)。

二、设计思路:总体思路:1、功能概述:测试盒连接:本实验建立在dais实验箱基础上完成的基本连线及程序如下:138译码器:a、 B、C和D分别连接到A2、A3、A4和GS;Y0连接8253的CS芯片选择信号;Y1连接至8259的CS芯片选择信号;8253连接:分频信号t2接8253的clk0;8253的out0接8259的ir7;8253的gate信号接+5v;8259连线:8259的数据线连接到数据总线;本程序包括显示模块,键盘扫描模块,时间计数模块,设置模块等几个模块,(1)程序运行后,led显示000000初始值,并且开始计数(2)按C键设置初始时间。

考虑到第一个数字只能是0、1和2,当第一个数字显示2时,第二个数字只能显示0~4。

同样,以下各项应满足时钟值的合理值;(3)在手动输入初始值时,按d键进行回退1位修改已设置值,连续按d键可以全部进行删除修改。

2.主程序设计主程序中完成通过调用子程序完成对8253及8259的初始化,对8259进行中断设置。

主要在显示子程序和键盘子处理程序之间不断循环,8253每一秒给8259一个刺激,当8259接受到刺激后会给cpu一个中断请求,cpu会转去执行中断子程序,而中断子程序设置成时间计数加,即完成电子表的整体设计。

详细流程图见图三-1。

3.LED显示子程序设计本程序显示部分用了6个共阳极led作为显示管,显示程序要做到每送一次段码就送一次位码,每送一次位码后,将位码中的0右移1位作为下次的位码,从而可以实现从左到右使6个led依次显示出相应的数字。

微机原理实时时钟课程设计

微机原理实时时钟课程设计

西南科技大学微机原理课程设计题目电子实时时钟软件设计1任务实现如图所示电子日历时钟功能。

2基本要求1)可通过M键切换显示模式:日期(年、月、日)、时间(小时、分、秒)、秒表(小时、分、秒、1/100秒)、闹钟(小时、分)。

2)在秒表显示模式,可通过I键切换(启动/暂停)计时,当暂停计时时可通过A键复位。

3)在闹钟显示模式,有两种输入方式方式一:直接按格式输入时间方式二:可通过A键依次使On/Off标志、小时、分、秒闪烁或变色,这时可通过I键切换On/Off标志或加1调整。

4)可通过esc键结束程序。

3扩展要求1)在日期显示模式,可通过A键依次使年、月、日闪烁或变色,这时可通过I键加1调整。

2)在时间显示模式,可通过A键依次使小时、分、秒闪烁或变色,这时可通过I键加1调整。

3)调整和秒表操作不影响日期和时间的准确性。

4)自定义的其它扩展功能说明:本程序为西科微机原理课程设计题目,下面的代码只实现了基本要求部分,并且秒表还存在部分问题(秒表模式修改了定时器0,结束后对时间略有影响,测试闹钟时可以直接在秒表模式下,按q键跳过秒表模式),代码仅供参考,欢迎对其繁琐处进行修改,调试。

各部分程序流程图:主函数流程图时间与日期的刷新子过程时间日期显示子过程闹钟设定子过程该过程与代码略有不同,处理on/off 位是后来添加的代码,流程图没有加入AI键输入时间方式:时间调整输入DATA SEGMENTUIS DB 0DH,0AH,10 dup(0),50 DUP('*'),'$'UIE DB 0DH,0AH,10 dup(0),50 DUP('*'),'$';界面字符MSG1 DB "THE DATA IS $"MSG2 DB "THE TIME IS $"MSGIN DB "PLEASE CHOOSE INPUT METHODS:",0DH,0AHDB 21 DUP(" "),"PRESS A FOR A/I METHOD,OR FOR DIRECT METHOD$" MSGDIR DB "PLEASE INPUT LIKE THIS: OO:00",0DH,0AHDB 21 DUP(" "),"PRESS ENTER TO CONFIRM $" MSGWARN DB "ERROR!PLEASE ENTER AGAIN$"MSGAI DB "PRESS a TO CHANGE POSITION ",0DH,0AHDB 21 DUP(" "),"i TO CHANGE VALUE,ENTER TO CONFIRM $" MSGSEC DB "PRESS i TO START AND STOP ",0DH,0AHDB 21 DUP(" "),"q TO QUIT,a TO CLEAR IF IT HAS STOPED $" NULINE DB 25 DUP(?),'$' ;清空行KSBUF DB 6,0,6 DUP(?)KEYNUM DB ?MODE DB ?DAY DB ?MON DB ?YEAR DW ?SEC DB ?MSEC DB ?MIN DB ?HOUR DB ?BEEPHOUR DB 0 ,0BEEPMIN DB 0,0SWIOFF DB "FF$"SWION DB "N $"SETSTR DB "00:00 OFF/ON",'$'WSTR DB "00:00:00 ",'$'BFLAG DB 0SFLAG DB 0INISEG DW 0INIOFF DW 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCALL C LEARCALL C REATUIMOV MODE,0CALL S OUNDAGAIN: CALL R EFRESH ;刷新时间日期;******BFALG 为闹钟与秒表标志位。

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

微机原理数字钟的设计【论文摘要】:微机控制即微型计算机原理控制,是集CPU、RAN、ROM,定时,计数和多种接口于一体的微控制器。

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

微型计算机原理控制应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程中的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡,电子宠物等,这些都离不开微型计算机原理控制。

本次设计的题目是简单电子时钟程序设计,用到了定时芯片8354,中断控制器8259和可编程并行芯片8255.在编辑1毫秒定时程序时,用到了中断装置8259.【关键字】:可编译并行芯片8255 定时芯片8254 中断控制器8259 电子钟目录一、绪论 (2)1.1、设计指导思想 (2)1.2、课程设计目的 (2)二、总体设计 (2)2.3、开发环境及设备 (2)2.3.1、设计环境 (2)2.3.2、设计所用设备 (2)三、课程设计任务 (2)3.1、内容 (2)3.1、要求 (3)3.3、设计环境 (3)3.4、设计所用设备 (3)四、设计所用芯片结构 (3)4.1、8259A芯片的内部结构及引脚 (3)4.2、8255芯片的内部结构及引脚 (4)4.3、8254芯片的内部结构及引脚 (5)五、具体模块设计 (6)5.1、概述 (6)5.2、主程序模块 (7)5.3、小键盘模块 (8)5.4、显示模块 (10)5.5、定时模块 (11)5.6、中断处理模块 (11)六、程序流程图 (12)6.1、主程序流程图 (12)6.2、键盘扫描程序流程图 (14)6.3、中断处理程序流程图 (15)七、心得体会 (16)八、致谢 (16)附录一:参考书目 (16)附录二:部分源代码 (16)一、绪论1.1、设计指导思想本系统设计的电子时钟以8088微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。

在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。

8254定时器0产生50ms方波,输入给定时器1,利用定时器1产生1s中断,然后显示,使液晶显示器上的时间发生变化。

其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。

8259接收到信号后,产生中断信号送CPU处理。

1.2、课程设计目的课程设计是本科教学中重要的环节,目的是培养计算机专业学生运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生汇编语言综合编程能力,程序调试技能。

本次课程设计,要掌握8254,8255,8259此三种芯片使用,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、总体设计2.1、开发环境及设备2.1.1、设计环境PC机一台、windows XP系统、实验箱、导线若干。

2.1.2、设计所用设备8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。

8255并口:用做接口芯片,和小键盘相连。

8259中断控制器:用于产生中断。

LED:六个LED用于显示时:分:秒值。

小键盘:用于控制设置。

三、课程设计任务3.1、内容利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。

电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。

3.2、要求本实验要求设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。

系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。

基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。

C键:置初值,显示00:00:00G键:显示动态变化(启动表);D键:显示静态不变(表停止);E键:终止程序,返回DOS;P键:设置时:分:秒的值3.3、设计环境PC机一台、windows XP系统、实验箱,导线若干。

3.4、设计所用设备8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。

8255并口:用做接口芯片,和小键盘相连。

8259中断控制器:用于产生中断。

LED:六个LED用于显示时:分:秒值。

小键盘:用于控制设置。

四、设计所用芯片结构4.1、8259A芯片的内部结构及引脚中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。

它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。

因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

在MD微机系统中,8259芯片工作于单片方式。

8259引脚图如图3.3,各引脚功能如下。

D7~D0——八条双向数据线; WR (低电平有效)——写输入信号; RD (低电平有效)——读输入信号; CS (低电平有效)——片选输入信号; A0——地址信号; INT ——中断请求信号;INTA (低电平有效)——中断响应信号;CAS0~CAS2——级联信号,形成一条专用8259A 总线,以便多片8259A 的级联;SP/EN ——从编程/允许级联。

在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。

在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0~IR7——外部中断请求输入线。

要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU 响应时为止)或者是高电平。

8259中断矢量地址与中断信号之间的关系如表3.1所示:4.2、8255芯片的内部结构及引脚8255可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A 、B 、C 三个并行接口,用+5V 单电源供电,能在以下三种工作方式下工作: 方式0—基本输入/输出方式 方式1—选通输入/输出方式方式2—双向选通输入/输出方式8255引脚图如图3.2示,各引脚功能如下。

D7~D0——与CPU 侧连接的八条双向数据线; WR (低电平有效)——写输入信号; RD (低电平有效)——读输入信号; CS (低电平有效)——片选输入信号; A0、A1——片内寄存器选择输入信号; PA7~PA0——A 口外设双向数据线; PB7~PB0——B 口外设双向数据线; PC7~PC0——C 口外设双向数据线; RESET ——复位输入信号 2、8255端口地址4.3、8254芯片的内部结构及引脚8254可编程定时/计数器是Intel 公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ ,它所有的技术方式和操作方式都通过编程控制。

8254的功能用途是: (1) 延时中断 (2) 可编程频率发生器 (3)事件计数器(4)二进倍频器(5)实时时钟(6)数字单稳(7)复杂的电机控制器8254有六种工作方式:(1)方式0:计数结束中断(2)方式1:可编程频率发生器(3)方式2:频率发生器(4)方式3:方波频率发生器(5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号8254引脚图如图3.3示,各引脚功能如下。

D7~D0——八条双向数据线;WR(低电平有效)——写输入信号;RD(低电平有效)——读输入信号;CS(低电平有效)——片选输入信号;A0、A1——片内寄存器地址输入信号;CLK——计数输入,用于输入定时基准脉冲或计数脉冲;OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

2、8254端口地址表3.3 8254端口地址表五、具体模块设计5.1、概述本系统设计的电子钟以8088微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。

在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。

8254采用计数器0,工作于方式2,使8254的OUT0端输出周期性的负脉冲信号。

即每隔20ms,8254的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。

程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。

系统框图如下:图一系统框图5.2、主程序模块主控模块是系的核心模块,对8254、8255A进行初始化,设置中断向量,扫描键盘根据按键值作相应的处理。

主要由软件实现。

它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,如果键值为C则将显示初始值00:00:00置入显示缓冲,并调用显示模块显示。

如果键值为G则开中断,(中断程序为秒最低位加一)。

如果键值为D则关中断,停止动态显示。

如健值为P则连续六次调用小键盘模块,将键值依次存入显示缓冲。

并调用显示模块显示。

如果健值为E,则终止程序,返回DOS。

5.3、小键盘模块小键盘模块送入主控模块的子功能模块。

由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。

软件上使用行扫描法获得键值并送回主控模块。

本课题只考虑去抖动。

执行一个约10ms的延时程序后再扫描键盘,若F0=1表示真正有键按下,从而消除了抖动影响。

实现代码如下:KEY ROC NEARPUSH CXKST: MOV AL,82HMOV DX,P55CTLOUT DX,ALMOV AL,00HMOV DX,PA55OUT DX,ALMOV DX,PB55IN AL,DXOR AL,0F8HCMP AL,0FFHJZ DELAYMOV CX,0300HDLY: LOOP DLYMOV CL,08HMOV AH,0FEHSCAN1: MOV DX,PA55MOV AL,AHOUT DX,ALMOV DX,PB55IN AL,DXOR AL,0F8HCMP AL,0FFHJNZ KEYNROL AH,1DEC CLJNZ SCAN1JMP KST KEYN: PUSH AXMOV DX,PB55 RELEA: IN AL,DXOR AL,0F8HCMP AL,0FFHJNZ RELEAPOP AXNOT AXMOV SI,OFFSET TABLE MOV DI,OFFSET CHAR MOV CX,24TT: CMP AX,[SI]JZ NNDEC CXJZ KSTADD SI,02INC DIJMP TTNN: MOV DL,[DI]MOV [CHAR1],DLMOV AH,02HINT 21HPOP CXJMP YANGDELAY: CALL DISPLYJMP KSTYANG: RETKEY ENDP5.4、显示模块显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

相关文档
最新文档