资源描述:
《汇编课程设计源程序(数字时钟)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、.....功能:实现一个电子表按‘A’换小时,按‘B’换小时按,‘C’换小时,按‘D’换小时,每次结束后要按‘F’键;*********用两个74LS373进行数码管的动态显示;一个做段(要显示的笔画)选,一个做位选PORTSEQU211H;数码管显示地址(选管)PORTBEQU210H;数码管显示内容控制;*********在8253的定时中断中,通过8255的8个PA口,3个PB口进行扫描PAEQU220H;8255CS选择信号端TC0EQU230H;8253CS选择信号端;*********数据段DATASEGMENTCOUNT1DB12;扫描键
2、盘中断口标志CM读数码管COUNT2DB13;延世13次中断标志KREPDB0;防止连击标志,krep=0:无键按下KSHAKEDB0;键盘防抖KFLAGDB0;功能键标志位kflag=1,2,3--key(ABC)pressed,4--key(F)pressedSYMBLDB0;显示标志位0--displaybufer,1--displaytempFIRSTDB0;修改标志位check2digit0--hight,1--lowENTERDB0;在缓冲区里有新的数字?有则为1TABLDW57FH,5BFH,5DFH,5EFH,5FEH,5FDH,5
3、FBH,5F7HDW67FH,6BFH,6DFH,6EFH,6FEH,6FDH,6FBH,6F7HDW37FH,3BFH,3DFH,3EFH,3FEH,3FDH,3FBH,3F7H;键盘扫描码ASCIDB"0123456789ABCDEFGMPRWXYS";键盘顺序码MASEGDB"THEKEY_PREESEDISERROR!",13,10,'$';按键出错提示字符串NUMERRDB13,10,"THEENTEREDDIGITISERROR,INPUTAGAIN!",13,10,'$';无效时间提示字符串LED8DB3FH,06H,5BH,4FH,66
4、H,6DH,7DH,07H,7FH,67HDB77H,7CH,39H,5EH,79H,71H,80H,76H,38H,05CH;显示编码表POINTDW?ORDERDW0BUFERDB11H,0EH,12H,12H,0H,13H;hh:mm:ss;'HELLOo'-atstarts;LED初始显示状态TEMPDB6DUP(0);时间缓存区SELECTDB1,2,4,8,10H,20HOLDSEGDW0;保持初始中断向量段地址OLDOFFDW0;保存偏移地址DATAENDS;**************代码段********************wor
5、d格式.整理版.....CODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATAMAIN:MOVAX,DATAMOVDS,AXMOVDX,PORTBMOVAL,00OUTDX,AL;熄灭所有数码管MOVAH,35H;保存原来的中断向量MOVAL,11INT21HMOVOLDSEG,ESMOVOLDOFF,BXMOVAX,SEGKEYLED;写入新的中断向量MOVDS,AXLEADX,KEYLED;取偏移地址MOVAL,11;IRQ3中断向量类型号MOVAH,25HINT21H;写入IRQ3中断向量STIMOVAX,DATA;CS
6、H数据段MOVDS,AXMOVES,AX;CSH堆栈段(inHDYmovsb要重新设定堆栈段)MOVDX,PA+3;8255控制字MOVAL,10010000B;PA口输入,PB口输出OUTDX,ALMOVPOINT,OFFSETTEMP;输入HCQINAL,21H;读8259中断寄存器ANDAL,0F7H;11111011bOUT21H,AL;开IRQ3MOVDX,TC0+3;8253定时寄存器初始化MOVAL,01010110B;xuanTD1,xieyigediZJ,gongzuofangshi3OUTDX,ALMOVDX,TC0+1;TD1,w
7、eidingshiqifuchuzhiMOVAL,5;LS393OUT8M/8K,T1OUT200HZOUTDX,AL;tc1low8=10STEP:MOVAH,1;按任意键退出INT16HJZSTEPMOVDX,OLDOFF;恢复IRQ3中断向量MOVAX,OLDSEGMOVDS,AXMOVAL,11MOVAH,25Hword格式.整理版.....INT21H;重新写入原来的IRQ3的中断向量地址MOVAH,4CHINT21H;***********************中断子程序,进行键盘扫描及显示*********************KEY
8、LEDPROCFAR;每72ms进入一次键盘扫描程序PUSHAX;寄存器A压栈STI;开中断D