- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
马世宽微机原理作业讲述
微机原理作业
题 目: 基于微机总线的计算器设计
学 院: 机电工程学院
专 业: 机械电子
姓 名: 马世宽
学 号: 2014020274
指导老师: 杨杰
2015年1月5日
基于微机总线的计算器设计
1.设计要求
设计基于微机总线的计算器,要求能完成一位数位数的四则运算。硬件为基于ISA总线的接口板,包括键盘、LED或液晶显示。软件方面则需通过编程来实现运算功能。
2.设计原理
设计的思路是:首先对键盘进行扫描,如有按键按下,确定并判断键值,将该值储存并显示在LED屏上。如有“=”按下,则调取存储的数据进行相应的计算,并将结果显示在屏幕上。设计硬件如图2.1所示。
图2.1电路图
3.硬件功能
3.1可编程并行通信接口芯片8255A
图3.1 8255内部原理图
图3.2 8255引脚图
3.1.1 并行输入/输出端口A,B,C
8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7~PA0、PB7~PB0、PC7~PC0。端口都是8位,都可以作为输入或输出。通常将端口A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A和端口B的状态和控制信息的传送端口。
3.1.2 A组和B组控制部件
端口A和端口C的高4位(PC7~PC4)构成A组;由A组控制部件实现控制功能。 端口B和端口C的低4位(PC3~PC0)构成B组;由B组控制部件实现控制功能。 A组和B组利用各自的控制单元来接收读写控制部件的命令和CPU通过数据总线(D0~D7)送来的控制字,并根据他们来定义各个端口的操作方式。
3.1.3 数据总线缓冲存储器
三态双向8位缓冲器,是8255A与总线之间的数据接口。与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。
3.1.4读/写控制部件
8255A完成读/写控制功能的部件。能接收CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。
CS 片选信号:由CPU输入,有效时表示该8255A被选中。 RD, WR 读、写控制信号:由CPU输入。RD有效表示CPU读8255A,WR有效表示CPU写8255A。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~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 EQU 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
文档评论(0)