8086计算器仿真(分享借鉴)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
一、设计任务:
利用微机原理所学的8086微处理器相关知识为核心,利用Proteus仿真软件,设计一个关于计算器的仿真电路并编写汇编代码。根据8086的结构和其寻址方式、输入输出、I/O口读写等技术,使用汇编语言的基本语法、伪指令,结合Proteus软件SAMPLES中8086 Demo Board示例的理解分析,自行设计。
二、需求分析:
(1)用8086作为核心处理器;
(2)用8255芯片连接主机与外设;
(3)用74273锁存器对数据进行锁存;
(4)用数码管显示器来显示输入的数字以及输出的结果;
(5)由于需要输入数字及运算符所以要用到键盘;
(6)用蜂鸣器在按下按键的同时发出声响;
(7)连接整个电路要用到导线以及总线将相应的引脚相连接。
三、总体方案(选择与论证)
1.方案的选择:
基于技术成熟的Proteus软件,以Proteus软件SAMPLES中8086 Demo Board示例为蓝本并充分分析理解,在此基础上提出自己的设计方案。将例子中电路结构优化精简,舍弃不必要的芯片,并用汇编来实现全部功能。即计算器能够进行4位数的加、减、乘、除运算。
在此基础上,为使设计的计算器更具有实用性,我们通过循环调用的方式加入了对幂运算的功能。与此同时,为优化人机界面,使计算器更为美观和实用,我们加入软件自带的封装好的矩阵键盘和蜂鸣器。这就使得整个设计更加紧凑。蜂鸣器实现了每按下一次按键就发出一次声响的功能以使按键检测更加直观,实际的计算器无差别。此计算器拥有计数的功能,分自动计数和手动计数两种。自动计数即为一个简单的计时器,用户可按需要定时,当到预定时间时,计算器会发声音提示用户。手动计数有加1和减1两种,当用户需要计数某些场合中尤为适用。
2.方案的论证:
8086通过74273锁存器与8255A相连,使8086能够读外部数据和给外部芯片写数据。8255A的A口设置为输出,B口和C口设置为输入,将8255A分别和4*5矩阵、数码管、蜂鸣器相连接。8086不断循环扫描键盘使键盘输入的数据能够读入8086,同时,8086通过8255A,将数据输入给数码管把相应的值显示出来,将高电平送到蜂鸣器的正极输入端使其发出预定的声音。本方案在设计上无错误,应用界面友好的Proteus软件来设计在理论可实现。
在大一时学习了C语言,对于程序设计有一定的基础。本学期还学习了汇编程序设计,结合C语言,对汇编程序的设计有一定的经验。此外,小组中有3人曾参加工院的本科生科技创新项目,对单片机的编程熟练,并有一定的工程实践经验。本小组成员团结性强,学习能
力好。能够相互协调克服困难。
本实验应用的软件技术成熟,在网上有很多成熟的设计可供借鉴。
图1
图2
四、硬件设计
整个设计如图所示,8086通过地址总线与74273相连实现数据锁存的功能,再通过8255A与外设接口相连接,通过其A、B、C口
实现对其它设备进行控制。
这些设备包括:输入键盘,蜂鸣器,4位数码管,幂运算按钮,计数按钮。
五、软件设计
本实验的程序部分,其流程图如下:
开始
检测按键
数字键?运算键?清除键?等于键?
检测第二个按键
清0 输出结果
结束