北京理工大学ZHZH.doc
《北京理工大学ZHZH.doc》由会员分享,可在线阅读,更多相关《北京理工大学ZHZH.doc(9页珍藏版)》请在三一文库上搜索。
1、精选优质文档-倾情为你奉上北京理工大学微机原理与接口技术实验报告实验内容:微机原理综合设计 组别: 姓名: 班级: 学号:一、 实验目的1.利用所学知识设计简单计算器。二、 实验内容利用8255控制试验箱上的键盘,实现2位十进制数以内的加减乘除运算,将运算结果通过8250发送到上位机。键盘为10个数字键0-9,六个功能键 +、-、*、/、=、复位。三、实验方法1.设计思路.根据题目要求首先应该实现试验箱上的键盘扫描功能,计算按下键码的键值(键值检测中应该加入相应的延时程序以达到精确扫描的目的)。再进行加减乘除算数运算,通过8250芯片发送到上位机,利用串口小助手实现算数。开始2.实验程序流程图
2、 初始化 N按键闭合? Y按键扫描N按键恢复?Y保存键值进行算数运算输出结果结束四、实验源程序(必要的文字注释)1.简单计算器程序。ASSUME CS:CODECODE SEGMENT ORG 100HSTART: MOV DX,04A6H;控制寄存器地址 MOV AX,90H;设置为A口输入,;B口输出,C输出 OUT DX,AX ;8255初始化 MOV AX,0 MOV DS,AXAAA: MOV DI,2000H MOV CX,10CCC1: MOV DS:DI,0 INC DI LOOP CCC1 MOV DI,2000HMOV DX,486H MOV AX,80H OUT DX,
3、AX MOV DX,480H MOV AX,12 OUT DX,AX MOV DX,482H MOV AX,0 OUT DX,AX MOV DX,486H MOV AX,7 OUT DX,AX MOV DX,482H MOV AX,0 OUT DX,AX MOV DX,48AH IN AX,DX MOV DX,480H IN AX,DX CHECK0: ;CHECK0检测是否有健被按下 MOV AX,OOH ;C口的PC0、PC1、PC2作为行选择线 MOV DX,04A4H ;C口地址 OUT DX,AX; 写入C口内容00H,即令所有行为低电平 MOV DX,04A0H ;A口地址 IN
4、AX,DX ;读入A口的内容 CMP AL,OFFH ;判定是否有列线为低电平 JE CHECK0 ;没有,无闭合键,则循环等待 MOV CX,05FFH ;延迟常数,可以修改来改变延时时间 DELAY: LOOP DELAY;有,则延迟清除抖动,当cx=0时则停止该循环行 扫描键盘和列扫描键盘,确定被按键的行值和列值 MOV CL,3 ;行数 MOV AH,0 MOV AL,0FBH ; 0fbh=1111 1011B CONTIN: PUSH AL ;将ax的内容(0fbh)入栈保存 MOV DX,04A4H ;C口地址 OUT DX,AL ;写入C口内容0fbh=1111 1011B,即
5、将第三行置为低电平 MOV DX,04A0H ;A口地址 IN AL,DX ;读入A口的内容 MOV AH,AL ;将A口的内容送入ah CMP GH,0FFH ;判断是否有列线为低电平 JNE NEXT ;比较结果不等于0则转移,即有列线为低电平 POP AX ; 比较结果等于0,即没有列线为低电平,(ax)=00fbh ROR AL,1 ; fbh(1111 1011B)循环右移,(al)=1111 1101检测下一行 LOOP CONTIN ;循环扫描下一行,确定行 JMP CHECK0 ;若所有行都没有被按下,则返回check0重新检测 NEXT: MOV CH,CL ;保存行值至ch
6、 MOV CL,7 ;列值从0开始编号0-7 BEGIN0: SHL AH,1 ; ah为A口的内容,逻辑左移1位,末位补0 JNC GOON ;无进位则转移,即可确定列 LOOP BEGIN0 ;继续循环,确定列 JMP CHECK0 GOON: ;计算显示码在discode中的位置:(行数-1)*8 +列值 MOV BL,CL ;保存列值至BL DEC CH ;行数减1 MOV CL,3 SHL CH,CL ;左移三位即相当于减1之后的行数*8 ADD DL,CH ;确定显示码在discode表中的偏移量,即(行数-1)*8+列值 MOV BH,0 MOV CX,BX ;显示码在disco
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京理工大学 ZHZH
