微机原理与接口技术 课程设计电子时钟 东华理工大学 详细解析 流程图

上传人:li****i 文档编号:88687858 上传时间:2022-05-11 格式:DOC 页数:21 大小:410.20KB
返回 下载 相关 举报
微机原理与接口技术 课程设计电子时钟 东华理工大学 详细解析 流程图_第1页
第1页 / 共21页
微机原理与接口技术 课程设计电子时钟 东华理工大学 详细解析 流程图_第2页
第2页 / 共21页
微机原理与接口技术 课程设计电子时钟 东华理工大学 详细解析 流程图_第3页
第3页 / 共21页
点击查看更多>>
资源描述
微机原理与接口技术课程设计课题:电子时钟的设计与实现 学院:机械与电子工程学院专业:自动化姓名:黄乃贝学号:09043215 设计部分1.1 设计目的1、 熟练掌握80x86/88教学系统的基本操作和调试程序的各种指令。2、 熟悉编程及调试程序的方法,所学知识的应用能力以及分析问题解决问题的能力得到全面提高。3、 掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。4、 掌握8255的各种工作方式及其应用编程。5、 掌握8253定时/计数器的工作原理、工作方式及其应用编程。6、 练习LED-KEYBOARD UNIT的使用方法和数码管的显示编程方法。7、 加强团队合作意识,发挥团队作用与优势。1.2 设计要求1、 用微机原理实验箱提供的数码管和按键做。2、 电子时钟具有二十四小时循环记时功能,走时要准。显示 时、分、秒,要有时钟校正对时功能并方便操作1.3 设计思路(1)设计好总体思路,规划好电路电路的总体结构,设置好个芯片的地址编码与各种标志位。 (2)用8255的A口驱动六个七段数码管(LED)的字段,B口驱动六位七段数码管(LED)的位控端,右侧开始各两位分别显示:时、分、秒。(3)七段数码管采用动态扫描工作方式,每位轮流显示的时间50HZ,采用8253定时中断方式,在中断服务程序中完成显示位和内容的轮换。(4) 以8253定时中断的时间6ms为基本单位,72ms一次键盘扫描,设计时间缓存区,各种标志位。 电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。这样,才能循环记时。1.3 原理说明电子时钟主要由8259A中断控制器、8253定时/计数器、8255A接口芯片、六个LED数码显示管和按键组成。主要用8259A的IRQ3的中断服务程序完成中断查键与动态显示功能。8253用来产生6ms的脉冲信号作为IRQ3的中断请求信号。按键用来调时、分、秒。8255A负责扫描按键得到特征码。PC作总处理。第二章 实现部分2.1 分析论证 1、显示模块利用数码管的显示功能来设计。数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在这八个发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的字符和数字。用两个74ls373锁存器来控制显示。电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。该模块主要是将时钟运算模块放在时间缓存区与暂存区来处理显示的,通过6个数码管动态显示出来。2、键盘扫描与处理模块该模块先是调用dos系统时间,再经按键实现对时、分、秒的处理与运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。8253定时模块负责提供中断信号,中断信号是8253的通道2工作方式为方式3时,产生一个6ms的脉冲信号。运算模块负责时、分、秒的计算,该模块主要通过8259的IRQ3号中断来实现,首先将秒定时模块提供的中断信号为8259的IRQ3中断请求信号。但由于每6ms一次中断请求。所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当count的值为12时,才扫描按键一次。另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断与调时处理,当秒加到60时,分必须加1 、秒清零;当分加到60时,时加1、分清零。当时加到24啊,直接清零。Key A用来调时、key B 用来调分、key C 用来调秒,0-9按键来调具体时间(分高低位调时),key F键来确认调时。系统框图:第三部分、芯片简介及初始化3.1 8259芯片介绍及初始化中断控制器8259A 是专门为控制优先级中断而设计开发的芯片。它将中断源优先排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进 行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。同时,在不需要增加其他电路的情况下,通过多片8259A 的级连,能构成多达64级的矢量中断系统。 图1 8259芯片8259A的主要功能如下:一片8259A可以接受并管理8级可屏蔽中断 请求,通过9片8259A级联可扩展至64级可屏蔽中断优先控制。对每一级中断都可以通过程序来屏蔽或允许在中断响应周期,8259A可为CPU提供相应的中断类型码。具有多种工作方式,并可通过编程来加以选择。通过初始化编程向8259A写入相应的初始化命令ICW,可以使芯片处于一个规定的基本工作方式,并在此方式下进行工作。8259A的初始化命令字共有4个ICW1-ICW4,进行初始化时要求ICW1-ICW4按一定的顺序写入。中断控制器8259的初始化为:ICW1,用来指示ICW1的标志的D4=1,LTIM为0(即中断请求为边沿触发方式),系统只用一片8259,所以SNGL为1,因为初始化程序将用到ICW4,所以,ICW4为1;ICW2设置中断类型码的初始化命令字,必须写到8259的奇地址端口中,ICW2是任选的,而ICW2一旦确定下来,8259的8个中断请求信号输入引脚IR0IR7所对应的8个中断类型码也确定了;ICW4方式控制初始化命令字,它也要求写入奇地址端口,不过ICW4并不总是需要写入的,只有在ICW1的第0位为1时,才有必要设置ICW4,其中,D7D5三位总是为0,作为ICW4的标识码,SFNM位为0,BUF位为0,M/S位为0,AEOL位为0,D0为为1表示8259当前所在的系统为16位或32位系统设置新中断向量程序:MOVAX,SEG KEYLED ;写入新的中断向量 MOV DS,AX LEA DX,KEYLED ;取偏移地址 MOV AL,11 ;IRQ3中断向量类型号 MOV AH,25H INT 21H ;写入IRQ3中断向量 STI 3.2 8253芯片介绍及初始化 图28253芯片8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz) 8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置在控制寄存器中的控制 字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数 器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。8253初始化:做为计数器的计数器/定时器8253,在设置好计数初值(即定时常数)后,便开始减1计数,为0时,输出一个信号;控制字设置:BCD为设置为计数值为二进制格式,模式选择为模式2(即为分频器,当控制字写入后,输出段OUT变为高电平作为初始状态,当计数初值写入初值寄存器后,下一个时钟脉冲时,计数初值被写到计数执行部件,然后计数执行部件做减1计数,减到1时,输出端OUT变为低电平;完成一次计数过程后,输出端OUT又变为高电平,开始一个新的计数过程,由此可以周而复始的进行下去),读写指示位为先写低8位字节,在读写高8位字节,计数器选择计数器0。其中8253的计数初值为2000,当接1MHZ的脉冲时,分频后的输出值为0.01S。8253的初始化程序: MOV DX,TC0+3 ;8253定时寄存器初始化 MOV AL,01010110B ;xuan TD 1,xie yige di ZJ,gongzuo fangshi 3 OUT DX,AL MOV DX,TC0+1 ;TD1,wei ding shi qi fu chu zhi MOV AL,5 ;LS393 OUT 8M/8K,T1 OUT 200HZ OUT DX,AL ;tc1low8=10 3.3 8255芯片介绍及初始化8255特性:(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.(2)具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口 (高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I /O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.图38255芯片8255引脚功能:RESET:复位输入线CS:芯片选择信号线RD:读信号线WR:写入信号D0D7:三态双向数据总线 PA0PA7:端口A输入输出线PB0PB7:端口B输入输出线PC0PC7:端口C输入输出线A0,A1:地址选择线8255初始化:可并行通信接口8255的控制字是方式选择控制字,A口工作在方式1(即基本输入方式)下,用来读键值,B口工作在方式0下,为输出做扫描,其初始化为:8255控制口地址为220h8255初始化程序:MOV DX,PA+3 ;8255 控制字 MOV AL,10010000B ;PA口 输入,PB 口输出 OUT DX,AL MOV POINT,OFFSET TEMP ;输入 HCQ IN AL,21H ;读8259中断寄存器第四部分 程序部分程序清单:;*用两个74LS373进行数码管的动态显示;一个做段(要显示的笔画)选,一个做位选PORTS EQU 211H ;数码管显示地址(选管)PORTB EQU 210H ;数码管显示内容控制;*在8253的定时中断中,通过8255的8个PA口,3个PB口进行扫描PA EQU 220H ;8255 CS 选择信号端TC0 EQU 230H;8253 CS 选择信号端 ;*数据段DATA SEGMENT COUNT1 DB 12 ;扫描键盘中断口标志CM读数码管COUNT2 DB 13 ;延世13次中断标志KREP DB 0;防止连击标志, krep=0:无键按下KSHAKE DB 0 ;键盘防抖KFLAG DB 0 ;功能键标志位kflag=1,2,3-key(ABC)pressed,4-key(F)pressedSYMBL DB 0;显示标志位0-display bufer,1-display tempFIRST DB 0 ;修改标志位check 2 digit 0-hight,1-lowENTER DB 0 ;在缓冲区里有新的数字?有则为1TABL DW 57FH,5BFH,5DFH,5EFH,5FEH,5FDH,5FBH,5F7H DW 67FH,6BFH,6DFH,6EFH,6FEH,6FDH,6FBH,6F7H DW 37FH,3BFH,3DFH,3EFH,3FEH,3FDH,3FBH,3F7H ;键盘扫描码ASCI DB0123456789ABCDEFGMPRWXYS;键盘顺序码MASEG DBTHE KEY_PREESED IS ERROR!,13,10,$ ;按键出错提示字符串 NUMERR DB 13,10,THE ENTERED DIGIT IS ERROR,INPUT AGAIN!,13,10,$ ;无效时间提示字符串LED8 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H DB 77H,7CH,39H,5EH,79H,71H,80H,76H,38H,05CH ;显示编码表POINT DW ?ORDER DW 0BUFER DB 11H,0EH,12H,12H,0H,13H;hh:mm:ss;HELLOo-at start s;LED初始显示状态TEMP DB6 DUP(0);时间缓存区SELECT DB 1,2,4,8,10H,20HOLDSEG DW 0;保持初始中断向量段地址OLDOFF DW0;保存偏移地址DATA ENDS;* *代码段*CODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATAMAIN: MOV AX,DATA MOVDS,AX MOV DX,PORTBMOVAL,00 OUT DX,AL ;熄灭所有数码管 MOV AH,35H ;保存原来的中断向量 MOV AL,11 INT 21H MOV OLDSEG,ES MOV OLDOFF,BX MOVAX,SEG KEYLED ;写入新的中断向量 MOV DS,AX LEA DX,KEYLED ;取偏移地址 MOV AL,11 ;IRQ3中断向量类型号 MOV AH,25H INT 21H ;写入IRQ3中断向量 STI MOV AX,DATA ;CSH 数据段 MOV DS,AX MOV ES,AX ;CSH 堆栈段(in HDY movsb 要重新设定堆栈段) MOV DX,PA+3 ;8255 控制字 MOV AL,10010000B ;PA口 输入,PB 口输出 OUT DX,AL MOV POINT,OFFSET TEMP ;输入 HCQ IN AL,21H ;读8259中断寄存器 AND AL,0F7H ;1111 1011b OUT 21H,AL ;开IRQ3 MOV DX,TC0+3 ;8253定时寄存器初始化 MOV AL,01010110B ;xuan TD 1,xie yige di ZJ,gongzuo fangshi 3 OUT DX,AL MOV DX,TC0+1 ;TD1,wei ding shi qi fu chu zhi MOV AL,5 ;LS393 OUT 8M/8K,T1 OUT 200HZ OUT DX,AL ;tc1low8=10 STEP:MOV AH,1 ;按任意键退出 INT 16H JZ STEP MOV DX,OLDOFF ;恢复IRQ3中断向量 MOV AX,OLDSEG MOV DS,AX MOV AL,11 MOV AH,25H INT 21H ;重新写入原来的IRQ3的中断向量地址 MOV AH,4CH INT 21H;*中断子程序,进行键盘扫描及显示*KEYLED PROC FAR ;每72ms进入一次键盘扫描程序 PUSH AX ;寄存器A压栈 STI ;开中断 DEC COUNT1 ;-1 ,到72ms的话要扫描键盘 JZ SCANK ;到72ms的话进行键盘扫描 JMP DISP;否则进行显示SCANK:MOV COUNT1,12 ;72ms初始化数字,为下次扫描键盘准备 DEC COUNT2 ;72*13ms=1s?N 扫描 JNZ KSCAN ;去扫描键盘 MOV COUNT2,13 ;恢复count2,为下次读实时时间准备;*通过BIOS功能调用读系统时间,并处理后的ASCII数值放入BUFER缓冲区CX 16位 从高到低 没四位分别存放 时的 高低位 分的高低位 READT: MOV AH,2 ;读BIOS中系统的时间 INT 1AH ;(CH:CL)=时:分,(DH:DL)=秒:1/100秒 MOV AX,CX ;放到AX中, MOV DI,OFFSET BUFER ;DI指向时间缓冲区 MOV CL,4 每次都低四位的值 ROL AX,CL ;循环左移,使得小时高位现在为最低位 MOVBL,AL ;保存到BL中 AND BL,0FH ;处理,得到小时的高位 MOVDI,BL ;将小时的高位放入缓冲区中 INC DI ROL AX,CL ;小时的低位处理,放入缓冲 MOV BL,AL AND BL,0FH MOV DI,BL INC DI ROL AX,CL ;分钟的高位处理,放入缓冲区 MOV BL,AL AND BL,0FH MOV DI,BL INC DI ROL AX,CL ;分钟的低位处理,放入缓冲区 MOV BL,AL AND BL,0FH MOV DI,BL INC DI MOV AX,DX ;秒的高位处理,放入缓冲区 ROL AX,CL; DX 存放 秒的 数值 MOV BL,AL AND BL,0FH MOV DI,BL INC DI ROL AX,CL ;秒的低位处理,放入缓冲区 MOV BL,AL AND BL,0FH MOV DI,BL;* *键盘扫描KSCAN: MOV COUNT1,12 ;SMJP CX duan MOV DX,PA+1 ;利用线路翻转法扫描键盘 MOV AL,0 ;PB口输出低电平 OUTDX,AL MOV DX,PA ;读PA口 IN AL,DX CMP AL,0FFH ;AL=0FFH?是的话没有按键,否则有键按下 JNE PRE ;不相等,说明有键按下 MOV KREP,0 ;按键被释放,置KREP=0 JMP DISP ;无键按下,停止扫描,继续显示;*判断是否进行过防抖处理,如果KREP为0且有键按下,则下次中断扫描键盘要防抖动PRE: CMP KSHAKE,1 JE SCAN;已经进行过防抖处理? MOV KSHAKE,1 JMP DISP;没有进行过防抖处理,则设立防抖处理标志,并跳出进行显示;*判断是否是重复按键,防止误操作SCAN: CMP KREP,1;是否有键按下? JNE SCAN1; 有键按下转移到SCAN1 JMP DISP;没有,上次按键已被释放SCAN1: MOV KREP,1;另一键按下,置标志位KREPanother key is pressed置KREP=0为0才进行按键处理 MOV KSHAKE,0;清重复按键及防抖标志 MOV CX,3;有键按下,扫描列三次SOME KEY PREESED,SCAN CO MOV BL,0FEH;PB口一位置0。逐次从低位到高位0FROM LOW BIT TNEXT: MOV AL,BL MOV DX,PA+1 OUT DX,AL MOV DX,PA;写PB(一位为0) OUT IN AL,DX;读PA CMP AL,0FFH;如果PA=FF,这一列无键按下 JNE KEYON ROL BL,1;扫描下一列 LOOP NEXT JMP DISP ;一次循环扫描结束ONE CIRCLE SCAN END KEYON: AND BL,7 MOV AH,BL;组合键码AX=PRESSED KEY CODEEFECT: LEA DI,TABL;查表得到键码地址SEARCH PRESSED KEY LOC CLD;清除方向标志 MOV CX,24 REPNE SCASW;与TABL里的特征码进行比较 相等则JEl1 得到特征码 JEl1 JMP ERR; 提示出错NOTHING FOUNDl1: SUB DI,2;减去处理后DI自加的部分(读 ASCII有用到) SUB DI,OFFSET TABL;得到TABL中的相对位置 SHR DI,1;逻辑右移DI/2因为TABL的地址是双字节 LEDS段时单字节 所以要除以 2 使得相互匹配。 MOV AL,ASCIDI;得到键码GET PRESSED KEY ASCII;*宏,将BUFER中的内容移动到TEMP中去BUFMOV MACRO MOV SI,OFFSET BUFER MOV DI,OFFSET TEMPMOV CX,6 CLD REP MOVSB MOV SYMBL,1;symbl=1,display the tempENDM MOV DL,AL MOV AH,2 INT 21H;得到按键,并在屏幕上显示相应的ASCII;键盘处理子程序,处理各个按键;KFLAG-有键按下标志,如果有键按下为1;FIRST-上次有键按下?;SYMBL-显示内容选择,1时显示TEMP,0时显示BUFER内容KA: CMP AL,A;按下A键?调整小时 JNE KB MOV KFLAG,1 MOV FIRST,0;判断修改高位 CMP SYMBL,0;判断显示BUFER/TEMP JNE N1;如果显示TEMP,不要capyBUFER内容到TEMP BUFMOVN1: MOV TEMP,10H; HH= - - 按键提示作用 MOV TEMP+1,10H JMP DISPKB: CMP AL,B;按下B键?调整分钟 JNE KC MOV KFLAG,2 MOV FIRST,0 CMP SYMBL,0 JNE N2 BUFMOVN2: MOV TEMP+2,10H;MM=.按键提示作用 MOV TEMP+3,10H JMP DISPKC: CMP AL,C;按下C键?调整秒 JNE KF MOV KFLAG,3 MOV FIRST,0 CMP SYMBL,0 JNE N3 BUFMOVN3: MOV TEMP+4,10H;SS=.按键提示作用 MOV TEMP+5,10H JMP DISPKF: CMP AL,F;按下F键?结束修改 JNE K4 MOV KFLAG,4 MOV SYMBL,0;symbl=0,display bufer JMP REFCMOSK4: CMP AL,9;按下的数字键? 小于等于9 时 做具体调时数字 JBE CHECK JMP DISPCHECK: MOV DI,OFFSET TEMP AND AL,0FH CMP KFLAG,1; KFLAG 标志 的值用来 具体判断调节 时、分、秒的哪一个 JNE MM HH: CMP FIRST,0;从高到低修改两个数码管 JE FIR INC DI MOV FIRST,0 MOV ENTER,1;enter=1 there is entered digit in temp JMP H12FIR: MOV FIRST,1H12: MOV DI,AL JMP DISPMM: CMP KFLAG,2 JNE SS0 ADD DI,2 CMP FIRST,0;从高到低修改两个数码管 JE FIR1 INC DI MOV FIRST,0 MOV ENTER,1 JMPM12FIR1: MOV FIRST,1M12: MOV DI,AL JMP DISPSS0: CMP KFLAG,3 JE YES JMP DISPYES: ADD DI,4 ;从高到低修改两个数码管 CMP FIRST,0 JE FIR2 INC DI MOV FIRST,0 MOV ENTER,1 JMP S12FIR2: MOV FIRST,1S12: MOV DI,AL JMP DISP;*写入新时间* REFCMOS:CMP ENTER,1;是否有新时间写入? ENTE=1;则才写入新时间 JNEDONT LEA DI,TEMP;修改时间 MOV AH,DI MOV CL,4 SHL AH,CL INC DI MOVAL,DI AND AL,0FH OR AH,AL CMP AH,24H JB HOK JMP SHOWERR;提示出错HOK: INC DI MOV BH,DI;M1 SHL BH,CL INC DI MOV BL,DI;M2 AND BL,0FH OR BH,BL CMP BH,60H;MM=60? JB MOK JMP SHOWERRMOK: INC DI MOV DH,DI;S1 SHL DH,CL INC DI MOV DL,DI;S2 AND DL,0FH OR DH,DL CMP DH,60H;SS=60? JB SOK JMP SHOWERRSOK: MOV CH,AH MOV CL,BH MOV AH,3 INT 1AH;向CMOS写入实时时钟 MOV KFLAG,0 MOV ENTER,0 JMP DISP;键盘处理程序完成,跳出显示;几种错误的情况,在屏幕上显示错误 SHOWERR:MOV AH,9;时间无效字符串显示 LEA DX,NUMERR INT 21H MOV KFLAG,0 MOV ENTER,0;无字符串按下,无新时间修改DONT: JMP DISPERR: MOV AH,9;显示按键出错的错误提示信息 LEA DX,MASEG INT 21H;*显示*;显示模块,每次显示一位数码管;ORDER内容为当前要显示的数码管的位置,是第一个还是第二个第六个DISP: CMP SYMBL,1;显示内容选择,1则TEMP负责BUFER JE TEMPDIS;SYMBL=1,跳到显示temp 区里面的时钟 MOV SI,OFFSET BUFER;SYMBL=0,显示BUFER内容 JMP DISTEMPDIS:MOV SI,OFFSET TEMP;显示TEMP的内容DIS: ADD SI,ORDER;SI指向要显示的内容 MOV DI,ORDER;DI为要显示的数的位置 MOV DX,PORTB;位选数码管 MOV AL,SELECTDI;AL中为选中该数码管时需要的输出数据 OUT DX,AL; MOV AL,SI;取出显示内容 MOV AH,0; MOV DI,AX; MOV AL,LED8DI;从表中取得显示该内容需要的笔形码 MOV DX,PORTS; OUT DX,AL;送到数码管进行显示 INC ORDER; CMP ORDER,6;已经显示到最后一个? JNE QUIT; MOV ORDER,0;QUIT: MOV AL,20H;EOI中断 OUT 20H,AL POP AX;寄存器A出栈 IRET;中断返回KEYLED ENDP CODEENDS END MAIN第五部分 电子时钟使用说明 本电子时钟可以24小时循环计时,并且具有调时功能,操作方法如下:开机运行后,即显示DOS系统时间。按动一下Key A、Key B、Key C分别对时、分、秒进行调时并对应显示“-” 提示进入调时状态,再按数字键0-9对应调节高低位数值,最后再按下key F键确定输入。之后进行正常计时。参考文献:1、微型计算机接口技术及应用 2、IBM-PC汇编语言程序设计 主函数开始初始化、定义数据段、设置标志位、列数组保存原中断,设、写入新中断主函数初始化,8259、8253打开中断入口,设置中断时间任意按键恢复原中断正常返回DOS结束中断处理程序中断入口,每6ms进入一次中断 COUNT1计数,12次中断进入键盘扫描部分,COUNT2计数COUNT2计满13次进入BIOS读系统时间并处理转换后的ASCCII值放入BUFUER缓存区中有无按键按键去抖扫描按键,获取特征码是否有效进入DOS显示错误按键得出ASCCII码并将BUFER内容放入TEMP进入DOS调用显示的ACSII码 显示程序把BUFER地址放入偏移量SI中把BUFER地址放入偏移量SI中SYMBL是否为1 处理各个按键是否为KEYA 设置相应标志位 是否为KEYB 是否为KEYC 设置相应标志位 显示对应6个数码管的数值,完成动态显示设置相应标志位 是否为KEYF设置EOISYMBL清零是否写入新值中断返回是否为数字键修改时间是否有错根据KA、KB、KC中设置的标志位来具体调节时分秒,并设置标志位调用DOS提示错误
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!