ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:319.40KB ,
资源ID:14335635      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14335635.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(马世宽微机原理作业资料.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

马世宽微机原理作业资料.docx

1、马世宽微机原理作业资料微机原理作业 题 目: 基于微机总线的计算器设计 学 院: 机电工程学院 专 业: 机械电子 姓 名: 马世宽 学 号: 2014020274 指导老师: 杨杰 2015年1月5日基于微机总线的计算器设计1.设计要求 设计基于微机总线的计算器,要求能完成一位数位数的四则运算。硬件为基于ISA总线的接口板,包括键盘、LED或液晶显示。软件方面则需通过编程来实现运算功能。2.设计原理设计的思路是:首先对键盘进行扫描,如有按键按下,确定并判断键值,将该值储存并显示在LED屏上。如有“=”按下,则调取存储的数据进行相应的计算,并将结果显示在屏幕上。设计硬件如图2.1所示。图2.1

2、电路图3.硬件功能3.1可编程并行通信接口芯片8255A图3.1 8255内部原理图图3.2 8255引脚图3.1.1 并行输入/输出端口A,B,C 8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7PA0、PB7PB0、PC7PC0。端口都是8位,都可以作为输入或输出。通常将端口A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A和端口B的状态和控制信息的传送端口。3.1.2 A组和B组控制部件端口A和端口C的高4位(PC7PC4)构成A组;由A组控制部件实现控制功能。 端口B和端口C的低4位(PC3PC0)构成B组;由B

3、组控制部件实现控制功能。 A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(D0D7)送来的控制字,并根据他们来定义各个端口的操作方式。3.1.3 数据总线缓冲存储器 三态双向8位缓冲器,是8255A与总线之间的数据接口。与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。3.1.4读/写控制部件 8255A完成读/写控制功能的部件。能接收CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。CS 片选信号:由CPU输入,有效时表示该8255A被选中。 RD, WR 读、写控制信号:由CPU输入。RD有效表示CPU读8255A,WR有效表示CPU写8

4、255A。RESET 复位信号:由CPU输入。RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入方式。定义工作方式控制字:工作方式0:8255A中各端口的基本输入/输出方式。键盘输入模块图3.3 8255控制口3.2键盘下图是一个4x4键盘的结构图,因为4x4键盘有8个管脚,于是将键盘接8255A的PC口,进行键盘扫描一般要求有一部分的I/O口的工作方式是输入,另一部分I/O是输出,具体到4x4键盘则要求4个I/O引脚输入,另外4个输出,这一点PC口刚好符合,而PA、PB口要么全部输入或输出,所以只能是PC口接键盘。图3.4 键盘3.3 LED显示屏 因为要计算-9

5、9的四则运算,为了显示更加清晰、明了,本次设计共使用了5块LED显示屏,这样就可以显示出输入的算式。电路图如下图所示。图3.5 LED显示屏4.软件设计4.1 程序流程图 否 是 否是 否是图4.1 主程序流程图4.2 程序代码编程也可以主要分为三部分;键盘扫描、数据处理、数码管显示,另外还有译码电路,8255A口的地址是0040H,B口地址为0041H,C口地址为0042H,控制字寄存器地址0043H。8255A采用的是方式0,A、B口输出,C口的高低四位作为两个4位的端口。PORT_A EQU 40H ;8255 A口地址PORT_B EQU 41H ;8255 B口地址PORT_C EQ

6、U 42H ;8255 C口地址PORT_CTL EQU 43H ;8255 控制口地址DATA SEGMENT ZIFUCHUAN DB 80 DUP(?) ;保存输入的字符串 NUMBER1 DB 0 ;保存第一个操作数 NUMBER2 DB 0 ;保存第二个操作数 NUMBER1SIGN DB + ;第一个数的符号 NUMBER2SIGN DB + ;第二个数的符号 COMPUTESIGN DB # ;运算符号 H DB 0 ;键盘行号 L DB 0 ;键盘列号 DISCODE DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH, 4BH,03H,B4H,

7、30H ;数字及运算符号段码表DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA MAIN PROC FARBEGIN: PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AXSTART1: MOV NUMBER1SIGN,+ MOV NUMBER2SIGN,+ MOV COMPUTESIGN,# ;对所有的数据进行初始化 MOV AX,0 MOV BX,0 MOV DI,0 MOV SI,0 MOV CX,0 MOV DX,0 MOV NUMBER1,0 MOV NUMBER2,0 MOV DI,OFFSET ZI

8、FUCHUAN CALL KEYKEY PROC NEAR ;键盘扫描子程序MOV DX, PORT_CTLMOV AL, 10000001BOUT DX,AL ;送控制字KS: ;检查有无按键按下MOV DX, PORT_CMOV AL,00H ;低四行送0OUT DX,ALIN AL,DXAND AL,0FH ;检查高四列CAM AL,0FHJNE XSH1 ;无键按下,跳转MOVCX,50LOOP$ ;延时消抖INAL,DX ;重读列值AND AL,0FH CAM AL,0FHJNE XSH1 MOVH,0 ;有键按下,先把行列号变量清0MOVL,0MOVBH,0EH ;扫描法读键值:N

9、EXT:MOVAL,BHOUTPORT_C,ALNEXTH:INAL,PORT_C;读列值,判断是第几列有键按下AND AL,0FHCMP AL,0FHJNE NEXTLROL BH,01INC H ;每读一列,H加1JMP NEXTNEXTL: ;读行值MOV DX, PORT_CTLMOV AL, 10010000B OUT DX,ALMOV BH,E0HNEXTL1:MOV AL,BHINAL,PORT_C;读行值,判断是第几行有键按下AND AL,0FHCMP AL,0FHJNE DONEROL BH,01INC L ;JMP NEXTL1DONE: CALL KEYCHECK JMP

10、 EXITXSH1: CALL XIANSHI JMP EXITEXIT: RETKEY ENDPKEYCHECK PROC NEAR ;键值计算子程序MOVDL,LMOVDH,HSHLDL,1SHLDL,1;列号乘4ADDDL,DHCMPDL,9;按下的是数字键JNGNUM_CALLCMPDL,14JLCONT_CALL;按下的是运算键CMPDL,14JZOUTP_CALL;按下的是等于键NUM_CALL:MOV ZIFUCHUANSI, DLINC SICALL XIANSHICONT_CALL: MOVZIFUCHUANSI, DL;存放运算键的键值 INC SI CALL XIANSH

11、IJMPEXIT1OUTP_CALL:CALL CHECKJAMP EXIT1EXIT1: RETKEYVALUEENDPXIANSHI PROC NEAR ;显示子程序MOV SI,0KSH:MOV AL,ZIFUCHUANSIMOV BX,OFSET DISCODEXLAT DISCODE ;查表,取段码 MOV DX, PORT_A OUT DX,AL ;段码送PA口 MOV DX, PORT_B OUT DX,SI MOVCX,50 LOOP$ ;延时 INC SI CMP SI,2 JBE KSH RETXIANSHI ENDP MAIN ENDPCHECK PROC NEAR ;第

12、一个数的识别 MOV SI,0 MOV AL,ZIFUCHUANSI MOV NUMBER1,AL INC SI CALL CHECK1 JMP EXIT1EXIT1: RETCHECK ENDPCHECK1 PROC NEAR ;运算符的识别 MOV AL,ZIFUCHUANSI CMP AL,0AH JZ COMPUTE1 ;将运算符保存 CMP AL,0B JZ COMPUTE1 CMP AL,0CH JZ COMPUTE1 CMP AL,0DH JZ COMPUTE1COMPUTE1: MOV COMPUTESIGN,AL ;记录为运算符号 INC SI CALL CHECK2 CHE

13、CK1 ENDP CHECK2 PROC NEAR ;检验第二个数字 MOV AL,ZIFUCHUANSI MOV NUMBER2,AL INC SI CALL CHECK3 JMP EXIT2EXIT2: RET CHECK2 ENDPCHECK3 PROC NEAR ;比较运算符 CMP COMPUTESIGN,0CH ;12为乘法 JZ MULTIPLY1 CMP COMPUTESIGN,0DH ;13为除法 JZ DEVIDE11 CMP COMPUTESIGN,0AH ;10为加法 JZ PLUS1 CMP COMPUTESIGN,0BH ;11为减法 JZ MINUS1 JMP E

14、XIT3MULTIPLY1: CALL MULTIPLY JMP EXIT3DEVIDE11: CALL DIVIDE JMP EXIT3PLUS1: CALL PLUS JMP EXIT3MINUS1: CALL MINUS EXIT3: RETCHECK3 ENDPMULTIPLY PROC NEAR ;两个数的乘法运算 MOV AL,NUMBER1 MOV CL,NUMBER2 ; MUL CL MOV SI,0 MOV ZIFUCHUANSI,AH INC SI MOV ZIFUCHUANSI,AL CALL XIANSHI RETMULTIPLY ENDPDIVIDE PROC NE

15、AR ;除法运算 MOV AL,NUMBER1 MOV BL,NUMBER2DIV BL MOV SI,0MOV ZIFUCHUANSI,AL ;除法只显示商CALL XIANSHIRET DIVIDE ENDPPLUS PROC NEAR ;加法运算 MOV AL,NUMBER1 MOV BL,NUMBER2 ADD AL,BL MOV SI,0 MOV ZIFUCHUANSI,AL ; CALL XIANSH RETPLUS ENDP MINUS PROC NEAR ;减法运算 MOV AL,NUMBER1 MOV BL,NUMBER2 SUB AL,BL MOV SI,0 MOV ZIFUCHUANSI,AL RET MINUS ENDP

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2