微机原理模拟计算器设计课程设计_第1页
微机原理模拟计算器设计课程设计_第2页
微机原理模拟计算器设计课程设计_第3页
微机原理模拟计算器设计课程设计_第4页
微机原理模拟计算器设计课程设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

金陵科我学院

锦程强计总务零

课程名称微机原理及应用

院部名称机电工程学院

专业电气工程及其自动化

班级

指导教师—一

金陵科技学院教务处制

摘要

学了微型计算机原理与应用课程之后,为了巩固和检测所学知识,我选择基于

8088CPUH勺模拟计算器设计。要完毕设计首先需要构建简朴H勺微型计算机应用系统,另

一方面是确定构成各部件的芯片,然后画原理图并且用仿真软件仿真。仿真对的后再

连接硬件电路,电路连接完毕后进行调试。设计过程中我们用到了8088CPU、可编程计

时器8253、可编程并行输入/输出芯片8255A、74LS138、2*8矩阵式键盘、六位七段

LED数码管。原理图设计完毕之后用PROTUES仿真软件对原理图进行了仿真得到了预期

的成果。我们的模拟计算器能实现5位十进制数以内的及减法运算和2位十进制数以

内的乘除法运算。

关键词:模拟计算器,8088CPU,PROTUES,8255A

目录

一、概述............................................................4

二、硬件电路........................................................4

2.1、CPU控制模块....................................................4

2.2、键盘输入模块....................................................6

2.3、可编程并行通信接口芯片8255A......................................................................7

2.4、可编程计数器/定期器...........................................8

2.5、总原理图........................................................9

三、软件设计框图......................................................10

四、源程序............................................................11

五、调试过程..........................................................26

六、课程设计体会......................................................26

七、参照文献..........................................................27

模拟计算器设计

一、概述

设计思绪:首先运用程仔不停扫描键盘是入是有输入,假如没有就一直扫描,

假如有就停止扫描,完毕输入,运用汇编的程序查对输入键H勺数值,通过调用子程

序实现5位十进制数以内日勺及减法运算和2位十进制数以内的乘除法运算。运算完

毕后将运算的成果储存并显示到LED显示屏上。

二、硬件电路设计

硬件电路键盘输入及LED数码管通过8255A接口与系统总线连接,键盘口勺16个

按键构成8*2矩阵,其中8根矩阵线作为8255A日勺输出线与PB7〜PBO连接,2根

矩阵线作为8255A的)输入线与PC7、PC6连接。键盘采用逐次扫描原理,16个按键

中。〜9座位数字健,+、-、*、/、二作为加、减、乘、除和等号功能键,C为清零

键U

1、CPU控制模块

GNF—1U40—烟V5)

A”239

16位微处理器,内含29000个晶体管,时钟频率为AD338辰4,

An437A与,

Au一536一5

4.77MHz,地址总线为20位,可使用1MB内存。8088A”——635一反£,

A,一734一醺巴OH)

A*833MliMX

内部数据总线都是16位,外部数据总线是8位。ADr一932-RD

AD.1031

OAOO

°AD11ouoo30HlftAiRQOTj)

AIX——J29—WL^K)

AD)1328而10(&)

^Tah-O-11427DT正J

AE\—IS26一曲d)

y

AU—ie25一A^.QS.)

NNU——1724—DrrAiQs,)

INT一

1323TiST

R

CLK1922R2ADY

GND—2021-RISZT

图1-1.8284时钟发生器图1-2.8C88CPU

公用信号引脚

名称功能引脚号类型

AD|5〜AD()地址/数据总线(分时复用)2〜16,39双向,三态

A|“S6~A|6/S3地址/状态总线(分时复用)35-38输出,三态

数据总线高8位允许/状态34输出

BHE/S7(SSO)

MN/MX最小/最大方式控制33输入

RD读控制32输出

TEST测试信号23输入

READY存储器或I/O准备好信号22输入

RESET系统复位21输入

输入

NMI不可屏蔽中断请求17

(上升沿触发)

INTR可屏蔽中断请求18输入

CLK系统时钟19输入

VCC+5V电源40输入

GND接地1,20输入

最小工作方式信号引脚

名称功能引脚号类型

HOLD总线保持请求信号31输入

HLDA总线保持响应信号30输出

WR写信号29输出,三态

M/IO(M/IO)存储器/I0控制28输出,三态

DT/R数据发送/接受27输出,三态

DEN数据允许26输出,三态

ALE地址锁存允许25输出

INTA中断响应24输出

2、键盘输入模块

键盘是常用信息输入元件,其实键盘也是由一种个按钮构成,假如是独立按钮的话必

须要需要一种I/O口对它进行检测,而键盘往往这需要键盘按钮数二分之一的I/O口数对

它进行检测,也许对一种比较简朴的系统I/O口数一般不是问题,但对于一种大型、复杂

U勺系统来说I/O资源就显得非常宝贵了,尽量减少I/O使用是非常利于减少成本,此外首

先键盘比用独立按键要美观。我们设计时使用的是8*2行列式键盘,如图2-1所示。

图中有8行2列,8根行线与PA口相连,2根列线与PC口的PC6、PC7相连。PA、PB

口要么所有输入或输出。PC口可以进行输入和输出。按键设置在行、类交点处(数字或字

符为其键号),行、列线分别连接到按键开关的两端。当列线通过上拉电阻接+5V时,就被

钳位在高电平状态。键盘中有无按键按卜是由行线送入全扫描字、列线读入行线状态来判

断。这就是:给航线所有I/O线均置成低电平,然后读入列线电平状态。如国有按键盘卜,

总会有一根列线电平被拉至低电平,从而使列线输入不全为1。

图2-1键盘电路图2-2数码管电路

3、可编程并行通信接口芯片8255A

(1)并行输入/输出端口A,B,C

8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,对应信号线

是PA7〜PAO、PB7〜PB。、PC7〜PCO。端口都是8位,都可以作为输入或输出。一股将端口

A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A

W

和端口B的状态和控制信息的传送端口。-EA4

140

PA2IUPA5

鼠239

PA6

338

(2)A组和B组控制部件PAO:IPA7

437

一536

cs_RESET

吧635

端口A和端口C的高4位(PC7〜PC4)构成A组;由A组控CO

734—

AlI

J2L

833

D2

制部件实现控制功能。瑞口B和端口C的低4位(PC3〜PCO)构AH932

PC7ID3

1031

PC6F1-D4

118255A3U

成组;由组控制部件实现控制功能。组和组运用各自勺GD5

BBABH1229

D6

PCO11328

巴~D7

1427

vcc

PC2I

空1526

PB7

1625

PB6

PB0&I

1724

PB5

1823

PB2IPB4

1922

PB3

2021

控制单元来接受读写控制部件的]命令和CPU通过数据总线(DO〜D7)送来的J控制字,并根据

他们来定义各个端口R勺操作方式。

(3)数据总线缓冲存储器

三态双向8位缓冲器,是8255A与8O86CPU之间H勺数据接口。与I/O操作有关的数据、

控制字和状态信息都是通过该缓冲器进行传送。

(4)读/写控制部件

8255A完毕读/写控制功能"勺部件。能接受CPUU勺控制命令,并根据控制命令向各个功能

部件发出操作指令。图2-3.8255A芯片图

CS片选信号:由CPU输入,有效时表达该8255A被选中。RD,WR读、写控制信号:由

CPU输入。RD有效表达CPU读8255A,WR有效表达CPU写8255A。RESET复位信号:由

CPU输入。RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口置成输入

方式。

I/O

PA?〜PA。

I/O

PC7〜PC4

I/O

PC3〜PC。

1/0

PB7〜PB°

CS------------J

图2-4.8255A内部构造

定义工作方式控制字:

工作奇式浮鳖鸳1只输岸心式。

100XIX|0IX13r

-「LPC3〜PC。为输入

-l,0*C3〜PC。为输出

定端口B输入

Ch端口B输出

A

u

D7一一

图2-5.8255A工作124

D6—

223WR

D5

方式控制322RD

Ur\A^t

421CS

D3f]

520

D2-一AO

6825319

4、可编程计数器/定期器DICKL2

718

八Anr»w-»A

DO

817

CLKO-OUT2

8253具有3个独立的计数通道,采用减1916

OUTOCLKI

1015

GETOGATEI

计数方式。在门控信号有效时,每输入11114

GND~-OUTl

1213

个计数脉冲,通道作1次计数操作。当计

数脉冲是已知周期的时钟信号时,计数就成为定期。

(1)、8253内部构造

8253芯片有24条引脚,封装在双列直插式陶瓷管壳内。

1.数据总线缓冲器图2-6、8253芯片图

数据总线缓冲器与系统总线连接,8位双向,与CPU互换信息的通道。这

是8253与CPU之间的数据接口,它由8位双向三态缓冲寄存器构成,是CPU与8253

之间互换信息的必经之路。

2.读/写控制

读/写控制分别连接系统H勺I0R和I0W,由CPU控制着访问8253H勺内部通道。

接受CPU送入口勺读/写控制信号,并完毕对芯片内部各功能部件的控制功能,因

此,它实际上是8253芯片内部的控制器。A1A0:端口选择信号,由CPU输入。8253

内部有3个独立的通道和一种控制字寄存器,它们构成8253芯片的4个端口,CPU

可对3个通道进行读/写操作3对控制字寄存器进行写操作。这4个端口地址由

最低2位地址码Al>A0来选择。

5、总原理图

-X2X1

F/C

RESEI

RESREADV

ROYCLK

y

ONDVCC工

A14A15ffi;

38圭

边A13A16-

*,

A12A17Jwr

一KE

A11A18三

35-

RDA10z

34一

於CSASS$0

A11-

AO19A8MN/MX31-

IK;18A07RD30-

17ADGHOLD5-一

1

IE6ADOHLDA27一

CLKt0UT21

,26一

6A04”

OUUCLK11

25一

!4A03Mg

GATE,GATE]1

24一

3AD2DTXR

}GNDOUT123-

A01DEN

.22

AOOALE21

NMIINTA

INTRTEST

◎1。2

CLKREADY

20

,TONDRESET

图2-7、PROTUES画出日勺总原理图

三、软件设计框图

四、源程序

一、源程序

STACKSEGMENTSTCAK

DB64DUP(?)

STACKENDS

DATASEGMENT

ORG3000H

VARIDBOOH,01H,02H,03H,04H

VAR2DB3FH,3FH,3FH,3FH,3FH,3FH,3PH,3FH,3FH,3FH

VAR3DBOOH,OOH,OOH,OOH,OOH,OOH,OOH,OOH,OOH,OOH

VAR4DBOOH,OOH,OOH,OOH,OOH,OOH,OOH,OOH,OOH,OOH

TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,

71H

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK

START:MOVAX,DATA

MOVDS,AX

MOVAL,88H

OUT63H,AL;82255A初始化

MOVBX,OOOOHBX清零

STT:MOVAL,OOH:键盘测试

OUT61H.AL

NEXT:INAL,62H

ANDAL,OCOH

CMPAL,OCOH

JNZKEYABC

CALLDTSP;调用显示程序

JMPSTT

KEYABC:CALLTIME;延时,去抖动

INAL,62H

ANDAL,OCOH

CMPAL,OCOH

JNZKEY

JMPSTT

KEY:MOVAL,OFEH;键盘扫描识别

OUT61H,AL

INAL,62H

TESTAL,80H

JNZKEY_O

CALLKEY8

JMPSTTK

KEY_O:TESTAL,40H

JNZKEY_9

CALLKEYO

JMPSTTK

KEY9:MOVAL,OFDH

OUT61H,AL

INAL,62H

TESTAL,80H

JNZKEY_1

CALLKEY9

JMPSTTK

KEY_1:TESTAL,40H

JNZKEY_A

CALLKEY1

JMPSTTK

KEYA:MOVAL,OFBH

OUT61H,AL

INAL,62H

TESTAL,80H

JNZKEY_2

CALLKEYA

JMPSTTK

KEY_2:TESTAL,40H

JNZKEY_B

CALLKEY2

JMPSTTK

KEYB:MOVAL,0F7H

OUT61H,AL

INAL,62H

TESTAL,80H

JNZKEY_3

CALLKEYB

JMPSTTK

KEY_3:TESTAL,4OH

JNZKEYC

CALLKEY3

JMPSTTK

KEY_C:MOVAL,OEFH

OUT61H,AL

INAL,62H

TESTAL,80H

JNZKEY_4

CALLKEYC

JMPSTTK

KEY4:TESTAL,40H

JNZKEYD

CALLKEY4

JMPSTTK

KEY_D:MOVAL,ODFH

OUT61H,AL

INAL,62H

TESTAL,80H

JNZKEY_5

CALLKEYD

JMPSTTK

KEY5:TESTAL,40H

JNZKEY_D

CALLKEY5

JMPSTTK

KEY_E:MOVAL,OBFH

OUT61H,AL

INAL,62H

TESTAL,80H

JNZKEY_6

CALLKEYE

JMPSTTK

KEY6:TESTAL,4OH

JNZKEY_F

CALLKEY6

JMPSTTK

KEY_F:MOVAL,07FH

OUT6111,AL

INAL,62H

TESTAL,80H

JNZKEY7

CALLKEYF

JMPSTTK

KEY_7:TESTAL,40H

JNZKEY_71

CALLKEY7

JMPSTTK

KEY_71:JMPSTTK

KEY9:CMPBH,OOH;按键9处理子程序

JZKEY9_1;未按过符号键,不清零

CALLCLEAR;已按过符号键,清零

KEY91:CALLLP1;低4位字节前移

MOVAL,6FH;最低字节输入一种数据

MOV[SIH],AL

MOVAL,09H

MOV[DI+4],AL

CALLD1SP;显示

RET;返回

KEY8:CMPBH,OOH;按键8处理子程序

JZKEY81

CALLCLEAR

KEY81:CALLLP1

MOVAL,7FH

MOV[SIM],AL

MOVAL,08H

MOV[DI+4],AL

CALLDISP

RET

KEY7:CMPBH,OOH;按键7处理子程序

JZKEY7_1

CALLCLEAR

KEY71:CALLLP1

MOVAL,07H

MOV[SIH],AL

MOVAL,07H

MOV[DI+4],AL

CALLDISP

RET

KEY6:CMPBH,OOH;按键6处理子程序

JZKEY61

CALLCLEAR

KEY61:CALLLP1

MOVAL,7DH

MOV[SIM],AL

MOVAL,06H

MOV[DI+4],AL

CALLDISP

RET

KEY5:CMPBH,OOH;按键5处理子程序

JZKEY5_1

CALLCLEAR

KEY51:CALLLP1

MOVAL,6DH

MOV[SI+4],AL

MOVAL,05H

MOV[DI+4],AL

CALLDISP

RET

KEY4:CMPBH,OOH;按键4处理子程序

JZKEY4_1

CALLCLEAR

KEY41:CALLLP1

MOVAL,66H

MOV[SI+4],AL

MOVAL,04H

MOV[DI+4],AL

CALLDISP

RET

KEY3:CMPBH,OOH;按键3处理子程序

JZKEY3_1

CALLCLEAR

KEY31:CALLLP1

MOVAL,4FH

MOV[SI+4],AL

MOVAL,03H

MOV[DI+4],AL

CALLDISP

RET

KEY2:CMPBH,OOH;按键2处理子程序

JZKEY2_1

CALLCLEAR

KEY21:CALLLP1

MOVAL,5BH

MOV[SI+4],AL

MOVAL,02H

MOV[DI+4],AL

CALLDISP

RET

KEY1:CMPBH,OOH;按键1处理子程序

JZKEY1_1

CALLCLEAR

KEY11:CALLLP1

MOVAL,06H

MOV[SI+4],AL

MOVAL,O1H

MOV[DI+4],AL

CALLDISP

RET

KEYO:CMPBH,OOH;按键。处理子程序

JZKEYO.1

CALLCLEAR

KEYO1:CALLLP1

MOVAL,3FH

MOV[SI+4],AL

MOVAL,OOH

MOV[DI+4],AL

CALLDISP

RET

KEYA:CMPBH,OOH;按键+号处理子程序

JNZKEYA_1

CALLLP3;保留输入H勺数据

KEYA1:MOVBX,O1O1H;设置符号标志

RET;返回

KEYB:CMPBH,OOH;按键一号处理子程序

JNZKEYB_1

CALLLP3;保留输入日勺数据

KEYB_1:MOVBX,0102II;设置符号标志

RET;返回

KEYC:CMPBH,OOH;按键*号处理子程序

JNZKEYC_1

CALLLP3;保留输入日勺数据

KEYC1:MOVBX,0103H;设置符号标志

RET;返回

KEYD:CMPBH,OOH;按键/号处理子程序

JNZKEYD_1

CALLLP3;保留输入的数据

KEYD_1:MOVBX,010411;设置符号标志

RET;返回

KEYE:MOVBH,01H;按键二号处理子程序

CMPBL

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论