全文预览

微机原理课程设计_简易计算器的设计

上传者:似水流年 |  格式:doc  |  页数:20 |  大小:0KB

文档介绍
值扫描加法运算减法运算显示乘法运算存储除法运算数值? 运算符? “=”? 清零“+”? “--”? “*”? 4.2 源代码 DATA SEGMENT X DB ?;存放数据的每一位 X1 DW ?;存放第一个数据值 X2 DW ?;存放第二个数据值 Y DW ?;存放运算结果 S DB ?;存放运算符号值 E DB ?; DB ?;存放运算数据位数 H DB 0;存放按键行号 L DB 0;存放按键列号 DISCODE DB 3FH,06H,5BH,4FH, 66H,6DH,7DH,07H, 7FH,6FH,77H,7CH, 39H,5EH,79H,71H ;段码表 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,90H ;设置为 A口输入, B口输出,C口输出 OUT 4 6H,AL MOV DI,OFFSET X+3 ;DI 指向 X的高位 KKK: CALL KEY ;扫描按键 JMP KKK ;以下为按键扫描子程序,程序返回后,在变量 H和 L中存放当前按键的行列号 KEY PROC CHECK: CALL DISP ;等待按键按下的同时进行显示 MOV AL,0F0H ;所有行输出低电平 OUT 44H,AL IN AL,40H CMP AL,0FFH ;读列值 JZ CHECK ;若都为高电平则无键按下,等待 MOV CX,50 LOOP $;延时消抖 IN AL,DX ;重读列值 CMP AL,0FFH JZ CHECK ;无键按下一直等待 MOV H,0 ;有键按下,先把行列号变量清 0 MOV L,0 MOV BL,01H MOV BH,0FEH ; 扫描法读键值: 从第一行开始测试,即 PC 0 输出低电平 NEXT: MOV AL,BH

收藏

分享

举报
下载此文档