微机接口技术课程设计报告内容摘要:

图 四 流程图 开始 输入倒计时数 是否输完 倒记时 否 是 输入执行命令 R 判断暂停 P 否 是 保存断点,点亮指示灯 停止倒计时执行 判断恢执行 M 否 是 恢复断 点时间 是否执行倒计时 等待 是 8 源代码 data segment pap equ 218h pbp equ 219h pcp equ 21ah cp equ 21bh ;控制字 dp equ 210h ;段选 wp equ 211h ;位选 table dw 0101h,0102h,0104h,0108h,0110h,0120h,0140h,0180h dw 0201h,0202h,0204h,0208h,0210h,0220h,0240h,0280h,0410h,0420h,0440h,0480h char db 12,13,14,15,11,10,9,8,4,5,6,7,3,2,1,0 Da1 db 3fh,30h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,58h,5eh,79h,71h,40h Cc1 dw ? Cc2 dw ? W2 db ? data ends code segment assume cs:code,ds:data start:mov ax,data mov ds,ax call kg ;开关 mov w2,1 ;输入第一个键位码 call key mov bh,[di] ;保存第一个键位码 mov w2,2 ;输入第二个键位码 call dey mov bl,[di] ;保存第二个键位码 call zyc ;延迟程序 call ds1 ;进行倒数程序 9 mov ah,4ch int 21h dey proc ;按键子程序 push si ;保存寄存器 push ax push bx push cx push dx mov al,82h ;初始化 a 口,c 口为输出, b 口为输入 mov dx,cp out dx,al mov ax,0 r1:mov al,0 ;用反转法对键位进行扫描 mov dx,pap out dx,al mov dx,pbp in al,dx cmp al,offh mov dx,di lea di,da1 sub dx,cc1 ;还原 [di]的值 mov cc2,si ;找到 [di](十位 )数字的所在相对一个数的位置 mov cx,si lea si,da1 sub cx,si ;得到十位的循环次数 mov si cc2 ;还原 [s2]的值 dec di sub dx,0 jz e2 ;判断个位是不是为零;如果为 0,跳过下面的调用 call ds4 ;输出在输入时候不满十个数的各位数字 e2:sub cx,0 jz e1 ;判断十位是否为零,如果为 0,跳过下面的调用 dec si ;因为在前面已经输出了一次个位数,所以这里减一 10 mov dx,10 d5:lea di,da1+9 ;从第九个数开始倒数,完成最后的倒数循环 call ds4 ;进行倒数 dec si ;十位数字减一 loop d5 e1:pop ax pop bx pop cx pop dx pop si pop di ret ds1 endp ds4 proc ;倒数子程序 push dx push cx push bx push ax mov cx,dx dp1:mov dx,20 dg2:push dx mov bh,[si] mov bl,[di] call zyc ;调用延迟程序 call exit ;调用退出程序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。