微机原理与接口技术课程设计---模拟计算器设计.docx

上传人:聆听****声音 文档编号:709366 上传时间:2023-04-29 格式:DOCX 页数:30 大小:180.55KB
下载 相关 举报
微机原理与接口技术课程设计---模拟计算器设计.docx_第1页
第1页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第2页
第2页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第3页
第3页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第4页
第4页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第5页
第5页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第6页
第6页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第7页
第7页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第8页
第8页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第9页
第9页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第10页
第10页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第11页
第11页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第12页
第12页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第13页
第13页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第14页
第14页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第15页
第15页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第16页
第16页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第17页
第17页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第18页
第18页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第19页
第19页 / 共30页
微机原理与接口技术课程设计---模拟计算器设计.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理与接口技术课程设计---模拟计算器设计.docx

《微机原理与接口技术课程设计---模拟计算器设计.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计---模拟计算器设计.docx(30页珍藏版)》请在冰点文库上搜索。

微机原理与接口技术课程设计---模拟计算器设计.docx

微机原理与接口技术

课程设计

题目:

模拟计算器设计

学 院:

电气工程学院

专 业:

测控技术及仪器

班 级:

09表2

-30-

成绩评定表

答辩成绩:

(占总成绩70%)平时成绩:

(占总成绩30%)

目 录

一、背景 4

二、硬件电路 4

2.1、CPU控制模块 4

2.2、键盘输入模块 7

2.4、可编程计数器/定时器 10

2.5、总原理图 11

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

三、软件设计框图 12

四、源程序 13

五、调试过程 28

六、课程设计体会 28

七、参考文献 29

摘要:

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

选择基于8088CPU的模拟计算器设计。

要完成设计首先需要构建简单的微型计算机应用系统,其次是确定组成各部件的芯片,然后画原理图并且用仿真软件仿真。

仿真正确后再连接硬件电路,电路连接完成后进行调试。

设计过程中我们用到了8088CPU、可编程计时器8253、可编程并行输入/输出芯片

8255A、74LS138、2*8矩阵式键盘、六位七段LED数码管。

原理图设计完成之后用PROTUES仿真软件对原理图进行了仿真得到了预期的结果。

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

关键词:

模拟计算器,8088CPU,PROTUES,8255A,74LS138,8253

一、背景:

随着电子技术的发展,微型计算机的应用的日益广泛和深入,接口技术有了迅速的发展,已成为直接影响微机系统功能和推广应用的关键。

微机接口技术是采用硬件与软件相结合的方法,研究微处理器如何与“外部世界”进行最佳连接,以实现CPU与“外部世界”进行高效可靠的信息交换的一门技术。

而如今接口技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣,接口技术与计算的结合不断加深。

二、硬件电路:

硬件电路 键盘输入及LED数码管通过8255A接口与系统总线连接,键盘的16个按键组成8*2矩阵,其中8根矩阵线作为8255A的输出线与PB7~PB0连接,2根矩阵线作为8255A的输入线与PC7、PC6连接。

键盘采用逐次扫描原理,16个按键中0~9座位数字健,+、-、*、/、=作为加、减、乘、除和等号功能键,C为清零键。

1、 CPU控制模块

16位微处理器,内含29000个晶体管,时钟频率为4.77MHz,地址总线为20位,可使用1MB内存。

8088内部数据总线都是16位,外部数据总线是8位。

图1-1.8284时钟发生器

图1-2.8088CPU

公用信号引脚

名称

功能

引脚号

类型

AD15~AD0

地址/数据总线(分时复用)

2~16,39

双向,三态

A19/S6~A16/S3

地址/状态总线(分时复用)

35~38

输出,三态

BHE/S7(SSO)

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

34

输出

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)

存储器/IO控制

28

输出,三态

DT/R

数据发送/接受

27

输出,三态

DEN

数据允许

26

输出,三态

ALE

地址锁存允许

25

输出

INTA

中断响应

24

输出

2、 键盘输入模块

键盘是常用信息输入元件,其实键盘也是由一个个按钮组成,如果是独立按钮的话必须要需要一个I/O口对它进行检测,而键盘往往这需要键盘按钮数一半的I/O口数对它进行检测,也许对一个比较简单的系统I/O口数一般不是问题,但对于一个大型、复杂的系统来说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~PA0、PB7~PB0、PC7~PC0。

端口都是8位,都

可以作为输入或输出。

通常将端口A和端口B定义为输入/输出的数据端口,而端口C则既可以作数据端口,又可以作为端口A和端口B的状态和控制

信息的传送端口。

(2)A组和B组控制部件

端口A和端口C的高4位(PC7~PC4)构成A组;由A组控制部件实现控制功能。

端口

B和端口C的低4位(PC3~PC0)构成B组;由

B组控制部件实现控制功能。

A组和B组利用各自的控制单元来接收读写控制部件的命令和

CPU通过数据总线(D0~D7)送来的控制字,并根据他们来定义各个端口的操作方式。

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

三态双向8位缓冲器,是8255A与8086CPU

之间的数据接口。

与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。

(4)读/写控制部件



图2-3.8255A芯片图

8255A完成读/写控制功能的部件。

能接收CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。

CS片选信号:

由CPU输入,有效时表示该8255A被选中。

RD,WR读、写控制信号:

由CPU输入。

RD有效表示CPU读8255A,WR有效表示CPU写

8255A。

RESET 复位信号:

由CPU输入。

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

定义工作方式控制字:

图2-4.8255A内部结构

工作方式0:

8255A中各端口的基本输入/输出方式。

图2-5.8255A工作方式控制

4、 可编程计数器/定时器

8253具有3个独立的计数通道,采用减1计数方式。

在门控信号有效

时,每输入1个计数脉冲,通道作1次计数操作。

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

(1)、8253内部结构

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

1.数据总线缓冲器

数据总线缓冲器与系统总线连接,8位双

向,与CPU交换信息的通

道。

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

是CPU与8253之间交换信息的必经之路。

2.读/写控制

读/写控制分别连接系统的IOR和IOW,由CPU控制着访问8253的内部通道。

接收

CPU送入的读/写控制信号, 并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。

A1A0:

端口选择信号,由CPU输入。

8253内部有3个独立的通道和一个控制字寄存器, 它们构成8253芯片的4个端口,CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。

这4个端口地址由最低2位地址码A1、A0来选择。



D7D6D5D4D3D2D1D0CLK0OUT0GET0GND



24

23

22

21

20

1

2

3

4

5

+5v

WR

RD

CSA1

19

18

17

16

15

14

13

8253

6

7

8

9

10

11

12

A0CKL2GATE2OUT2CLK1GATE10UT1

图2-6、8253芯片图

5、总原理图

图2-7、PROTUES画出的总原理图

有无压键?

N

Y

Y

是数字键?

N

有标志?

N

加号?

Y

Y

N

Y

减号?

N

Y

乘号?

N

Y

放键?

除号?

Y

N

N

等号?

Y

N

Y

清零?

N

进行加、减、乘、除运算,存结果

清零显示器

显示扫描

设除标志

设乘标志

设减标志

设加标志

保存数据

清零显示器,清标志

显示扫描

8255A初始化

三、软件设计框图:

开始

四、源程序:

一、源程序

STACKSEGMENTSTCAK

DB64DUP(?

)STACKENDS

DATA SEGMENT

ORG3000H

VAR1DB00H,01H,02H,03H,04H

VAR2DB3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FHVAR3DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00HVAR4DB00H,00H,00H,00H,00H,00H,00H,00H,00H,00H

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

DATA ENDSCODE SEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACKSTART:

MOVAX,DATA

MOVDS,AXMOVAL,88H

OUT63H,AL ;82255A初始化

MOVBX,0000H ;BX清零

STT:

MOVAL,00H ;键盘测试

OUT61H.ALNEXT:

INAL,62H

ANDAL,0C0HCMPAL,0C0HJNZKEYABC

CALLDISP ;调用显示程序

JMP STT

KEYABC:

CALLTIME ;延时,去抖动

IN AL,62HAND AL,0C0HCMP AL,0C0HJNZ KEY

JMP STT

KEY:

MOV AL,0FEH ;键盘扫描识别

OUT 61H,ALIN AL,62HTESTAL,80HJNZ KEY_0CALLKEY8JMP STTK

KEY_0:

TESTAL,40H

JNZ KEY_9CALLKEY0JMP STTK

KEY_9:

MOV AL,0FDH

OUT 61H,ALIN AL,62HTESTAL,80HJNZ KEY_1CALLKEY9JMP STTK

KEY_1:

TESTAL,40H

JNZ KEY_ACALLKEY1JMP STTK

KEY_A:

MOV AL,0FBH

OUT 61H,ALIN AL,62HTESTAL,80HJNZ KEY_2CALLKEYAJMP STTK

KEY_2:

TESTAL,40H

JNZ KEY_BCALLKEY2JMP STTK

KEY_B:

MOV AL,0F7H

OUT 61H,ALIN AL,62HTESTAL,80HJNZ KEY_3CALLKEYBJMP STTK

KEY_3:

TESTAL,40H

JNZ KEY_CCALLKEY3JMP STTK

KEY_C:

MOV AL,0EFH

OUT 61H,ALIN AL,62HTESTAL,80HJNZ KEY_4CALLKEYCJMP STTK

KEY_4:

TESTAL,40H

JNZ KEY_DCALLKEY4JMP STTK

KEY_D:

MOV AL,0DFH

OUT 61H,ALIN AL,62HTESTAL,80HJNZ KEY_5CALLKEYDJMP STTK

KEY_5:

TESTAL,40H

JNZ KEY_DCALLKEY5JMP STTK

KEY_E:

MOV AL,0BFH

OUT 61H,ALIN AL,62HTESTAL,80HJNZ KEY_6CALLKEYEJMP STTK

KEY_6:

TESTAL,40H

JNZ KEY_FCALLKEY6JMP STTK

KEY_F:

MOV AL,07FH

OUT 61H,ALIN AL,62H

TEST

AL,80H

JNZ

KEY_7

CALL

KEYF

JMP

STTK

KEY_7:

TEST

AL,40H

JNZ

KEY_71

CALL

KEY7

JMP

STTK

KEY_71:

JMP

KEY9:

CMP

STTK

BH,00H

;按键9处理子程序

JZ

KEY9_1

;未按过符号键,不清零

CALL

CLEAR

;已按过符号键,清零

KEY9_1:

CALL

LP1

;低4位字节前移

MOV

AL,6FH

;最低字节输入一个数据

MOV

[SI+4],AL

MOV

AL,09H

MOV

CALL

[DI+4],AL

DISP

;显示

RET

;返回

KEY8:

CMP

BH,00H

;按键8处理子程序

JZ

KEY8_1

CALL

CLEAR

KEY8_1:

CALL

LP1

MOV

AL,7FH

MOV

[SI+4],AL

MOV

AL,08H

MOV

[DI+4],AL

CALL

DISP

RET

KEY7:

CMP

BH,00H

;按键7处理子程序

JZ

KEY7_1

CALL

CLEAR

KEY7_1:

CALL

LP1

MOV

AL,07H

MOV

[SI+4],AL

MOV

AL,07H

MOV

[DI+4],AL

CALL

DISP

RET

KEY6:

CMP

BH,00H

;按键6处理子程序

JZ

KEY6_1

CALL

CLEAR

KEY6_1:

CALL

LP1

MOV

AL,7DH

MOV

[SI+4],AL

MOV

AL,06H

MOV

[DI+4],AL

CALL

DISP

RET

KEY5:

CMP

BH,00H

;按键5处理子程序

JZ

KEY5_1

CALL

CLEAR

KEY5_1:

CALL

LP1

MOV

AL,6DH

MOV

[SI+4],AL

MOV

AL,05H

MOV

[DI+4],AL

CALL

DISP

RET

KEY4:

CMP

BH,00H

;按键4处理子程序

JZ

KEY4_1

CALL

CLEAR

KEY4_1:

CALL

LP1

MOV

AL,66H

MOV

[SI+4],AL

MOV

AL,04H

MOV

[DI+4],AL

CALL

DISP

RET

KEY3:

CMP

BH,00H

;按键3处理子程序

JZ

KEY3_1

CALL

CLEAR

KEY3_1:

CALL

LP1

MOV

AL,4FH

MOV

[SI+4],AL

MOV

AL,03H

MOV

[DI+4],AL

CALL

DISP

RET

KEY2:

CMP

BH,00H

;按键2处理子程序

JZ

KEY2_1

CALL

CLEAR

KEY2_1:

CALL

LP1

MOV

AL,5BH

MOV

[SI+4],AL

MOV

AL,02H

MOV

[DI+4],AL

CALLDISPRET

KEY1:

CMP BH,00H ;按键1处理子程序

JZ KEY1_1CALLCLEAR

KEY1_1:

CALLLP1

MOV AL,06HMOV [SI+4],ALMOV AL,01HMOV [DI+4],ALCALLDISP

RET

KEY0:

CMP BH,00H ;按键0处理子程序JZ KEY0_1

CALLCLEAR

KEY0_1:

CALLLP1

MOV AL,3FHMOV [SI+4],ALMOV AL,00HMOV [DI+4],ALCALLDISP

RET

KEY+:

CMP BH,00H ;按键+号处理子程序

JNZ KEYA_1

CALLLP3 ;保存输入的数据

KEYA_1:

MOV

BX,0101H

;设置符号标志

RET

;返回

KEY-:

CMP

JNZ

BH,00H

KEYB_1

;按键-号处理子程序

CALL

LP3

;保存输入的数据

KEYB_1:

MOV

BX,0102H

;设置符号标志

RET

;返回

KEY*:

CMP

BH,00H

;按键*号处理子程序

JNZ

CALL

KEYC_1

LP3

;保存输入的数据

KEYC_1:

MOV

BX,0103H

;设置符号标志

RET

;返回

KEY/:

CMP

BH,00H

;按键/号处理子程序

JNZ

CALL

KEYD_1

LP3

;保存输入的数据

KEYD_1:

MOV

BX,0104H

;设置符号标志

RET

;返回

KEY=:

MOV

BH,01H

;按键=号处理子程序

CMP

BL,01H

;是+号?

JZ

K1

;进行加法运算

CMP

BL,02H

;是-号?

JZ

K2

;进行减法运算

CMP

BL,03H

;时*号?

JZ

K3

;进行乘法运算

CMP

BL,04H

;是/号?

JZ

K4

;进行除法运算

STTE:

RET

K1:

CALL

ADD1

JMP

STTE

K2:

CALL

SUB1

JMP

STTE

K3:

CALL

MUL1

JMP

STTE

K4:

CALLDIV1JMP STTE

RET

CLEAR:

MOV

SI,OFFSET

VAR2

MOVMOV

CLEAR1:

MOV

DI,OFFSETCX,000AH

AL,3FH

VAR3

KEYON/C:

CALLCLEAR ;按键C(清零)处理子序

;数据清零子程序

MOV [SI],ALMOV AL,00HMOV [DI],ALINC SI

INC DILOOPCLEAR1MOV BH,00HRET

ADD1:

MOV SI,OFFSETVAR3; ;加法子程序

MOV DI,OFFSETVAR4CLC

MOV CX,0005HADD_1:

MOV AL,[DI]

ADC AL,[SI]AAA

MOV [DI],ALINC SI

INC DILOOPADD_1CALLCHANGECALLDISP

RET

SUB1:

MOV SI,OFFSETVAR3 ;减法子程序

MOV DI,OFFSETVAR4CLC

MOV CX,0005HSUB_1:

MOV AL,[DI]

MOV CL,[SI]AAS

MOV [DI],ALINC SI

INC DILOOPSUB_1CALLCHANGECALLDISPRET

MUL1:

MOV SI,OFFSETVAR3 ;乘法子程序

MOV DI,OFFSETVAR4MOV AL,[DI]

MOV CL,[SI]MUL CL

AAM

MOV[DI+5],AXMOVAL,[DI+1]MULCL

AAM

ADD AL,[DI+6]AAA

MOV [DI+6],AXMOV AL,[DI]

MOV CL,[SI+1]MUL CL

AAM

MOV[SI+5],AXMOVAL,[DI+1]MULCL

AAM

ADD AL,[SI+6]AAA

MOV [SI+6],AXMOV AL,[DI+5]MOV [DI],ALMOV AL,[DI+6]ADD AL,[SI+5]AAA

MOV[DI+1],ALMOVAL,[DI+7]ADCAL,[SI+6]AAA

MOV [DI+2],ALMOV AL.00HADC AL,[SI+7]AAA

MOV [DI+3],ALCALLCHANGECALLDISP

RET

DIV1:

MOV SI,OFFSETVAR3 ;除法子程序

MOV DI,OFFSETVAR4

MOV

AH,00H

MOV

AL,[DI+1]

MOV

CK,[SI]

DIV

CL

MOV

[DI+1],AL

MOV

AL,[DI]

AAD

DIV

CL

MOV

[DI],AL

CALL

CHANGE

CALL

DISP

LP1:

RE

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 金融投资

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

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