微机原理课程设计剖析.docx

上传人:b****1 文档编号:10680255 上传时间:2023-05-27 格式:DOCX 页数:43 大小:344.85KB
下载 相关 举报
微机原理课程设计剖析.docx_第1页
第1页 / 共43页
微机原理课程设计剖析.docx_第2页
第2页 / 共43页
微机原理课程设计剖析.docx_第3页
第3页 / 共43页
微机原理课程设计剖析.docx_第4页
第4页 / 共43页
微机原理课程设计剖析.docx_第5页
第5页 / 共43页
微机原理课程设计剖析.docx_第6页
第6页 / 共43页
微机原理课程设计剖析.docx_第7页
第7页 / 共43页
微机原理课程设计剖析.docx_第8页
第8页 / 共43页
微机原理课程设计剖析.docx_第9页
第9页 / 共43页
微机原理课程设计剖析.docx_第10页
第10页 / 共43页
微机原理课程设计剖析.docx_第11页
第11页 / 共43页
微机原理课程设计剖析.docx_第12页
第12页 / 共43页
微机原理课程设计剖析.docx_第13页
第13页 / 共43页
微机原理课程设计剖析.docx_第14页
第14页 / 共43页
微机原理课程设计剖析.docx_第15页
第15页 / 共43页
微机原理课程设计剖析.docx_第16页
第16页 / 共43页
微机原理课程设计剖析.docx_第17页
第17页 / 共43页
微机原理课程设计剖析.docx_第18页
第18页 / 共43页
微机原理课程设计剖析.docx_第19页
第19页 / 共43页
微机原理课程设计剖析.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理课程设计剖析.docx

《微机原理课程设计剖析.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计剖析.docx(43页珍藏版)》请在冰点文库上搜索。

微机原理课程设计剖析.docx

微机原理课程设计剖析

《微机原理与接口技术》课程设计说明书

摘要

本次简易计算器设计硬件部分采用4×4小键盘作为输入,该小键盘上有0~9、+、-、

*、/和清零C共16个按键构成的;四位七段LED数码管作为输出显示,数码管采用的是

共阳极的数码管;8086CPU作为运算处理核心来完成计算器的主要功能,包括计算数据、

数据保存、发出控制信号等;用8255A并行通行接口来完成本次计算器系统的接口电路,

而74LS138译码器、或门电路以及导线是用来产生并行接口芯片8255的片选信号,产生

接口电路的端口地址,其中8255的A0、A1分别接CPU的A1、A2而使它的端口地址为

偶地址。

本次设计的软件部分是采用8086汇编语言来完成的,主要通过读写端口来实现键值

的输入和显示数字的输出,依靠乘法运算指令来实现计算器的计算。

关键词:

计算器小键盘数码显示键盘扫描

1

《微机原理与接口技术》课程设计说明书

目录

1设计目的与要求.....................................................................................................................1

2计算器系统的组成方框图及总述....................................................................................2

3系统硬件与其详细功能介绍.............................................................................................4

3.18086CPU芯片.......................................................................................................................4

3.28255A并行通信接口芯片....................................................................................................4

3.3译码电路...............................................................................................................................5

3.4小键盘电路...........................................................................................................................5

3.5四位七段LED数码管显示电路.........................................................................................6

4计算器系统软件设计...........................................................................................................8

4.1总体程序流程图...................................................................................................................8

4.2模块程序流程图...................................................................................................................9

4.2.1键盘扫描获取键值部分................................................................................................9

4.2.2数码管显示部分..........................................................................................................10

4.2.3数据运算部分..............................................................................................................11

4.3相关程序讲解.....................................................................................................................12

4.3.1键盘扫描程序段..........................................................................................................12

4.3.2输入数保存程序段......................................................................................................12

4.3.3数据算法决定程序段..................................................................................................13

4.3.4显示数分解显示程序段..............................................................................................14

5设计小结与体会...................................................................................................................16

参考文献....................................................................................................................................17

附录..............................................................................................................................................18

2

《微机原理与接口技术》课程设计说明书

简易计算器的设计

1设计目的与要求

本次课程设计的目的主要是通过设计环节的实际训练,加深学生对《微机原理与接口

技术》这门课程基础知识和基本理论的理解和掌握,培养学生综合运用所学知识的能力,

使之在理论分析、设计、计算、制图、运用标准和规范、查阅设计手册与资料以及计算机

应用能力等方面得到初步训练,促进学生养成严谨求实的科学态度。

本次课程设计的任务是用8086CPU、8255A并行通信接口、七段LED数码管接口、

小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。

具体要求如下:

1.计算器可进行2位十进制的加减乘除法运算。

2.键盘输入数据,同时LED数码管显示,模拟计算器的工作。

3.键盘上要求有0~9数字键,+、-、×、÷、=功能键,清除键C。

本次微机原理与接口技术课程设计采用分组设计共同完成,这部分设计是设计简易计

算器的乘法运算以及结果显示部分。

1

《微机原理与接口技术》课程设计说明书

2计算器系统的组成方框图及总述

四位七段

LED数码管

译码

电路

8255A

并行通信

接口

8086

CPU

4×4小键盘

图1计算器系统的组成方框图

本次设计的简易计算器系统是由8086CPU、8255A并行通信接口芯片、四位七段LED

数码管、小键盘、74LS138译码器芯片及部分门电路芯片组成,系统组成方框图如图1所

示。

整个计算器系统通过4×4小键盘控制接口输入需要计算的原始数据和运算符号,这

些数据经过8255A并行通信接口输入给8086CPU并保存起来,CPU接收数据后根据不同

的运算符来处理数据,然后CPU把运算处理后的数据经过8255A并行通信接口输出给给

四位七段LED数码管,最后后数码管把接收到的数据显示在数码管屏幕上,而74LS138

译码器和相应的或门是给8255提供译码片选信号而设计的,只有CPU输出8255选通的地

址才能使8255处于正常工作模式,系统才能有效工作,整个计算器系统详细电路图如图2

所示。

2

《微机原理与接口技术》课程设计说明书

3

《微机原理与接口技术》课程设计说明书

3系统硬件与其详细功能介绍

3.18086CPU芯片

8086CPU芯片是本次简易计算器系统的核心部件,其主要功能包括完成数据的加减乘

除运算,把需要显示的十六进制数转换成与之对应在数码管上显示的十六进制代码,配合

小键盘形成不同键值对应的特定十六进制代码。

在该次计算器系统中,8086CPU工作在最

小模式,通过AD0~AD7八位地址/数据总线接口与8255A并向通信接口交换计算器系统中

所有数据,而数据的交换方向是通过RD和WR输出的低电平有效控制信号来控制的,同

时CPU执行系统所有软件程序,控制着系统中其他部件的工作。

3.28255A并行通信接口芯片

8255A并行通信接口芯片,如图3所示,是该计算器系统的接口部件,其具有数据缓

冲和锁存作用,可以让多个外设同时工作而又互不干扰,同时也解决了高速CPU与低速外

设的工作不同步问题。

在本次计算器系统中,8255A工作在0方式下,PA口、PB口和

PC口的低四位输出,PC口高四位输入,其控制口输入的控制字为88H,PA口接七段LED

数码管的阴极,PB口的低四位接数码管的四个阳极,PC口接4×4小键盘的八个接口。

图38255A并行通信接口芯片图

4

《微机原理与接口技术》课程设计说明书

3.3译码电路

译码电路由一片74LS138译码器和一个或门电路组成,其接线如图4所示,根据译码

器及或门的接线知道8255被选通的条件是AD0、AD3、AD4、AD5、AD7低电平有效,

AD6高电平有效,而AD1和AD2分别接8255的A0和A1,故经过译码后8255的控制口、

PA口、PB口、PC口端口地址分别是40H、42H、44H、46H。

图4系统译码电路部分截图

3.4小键盘电路

4×4小键盘是计算器系统的输入部件,其功能是输入计算器系统中的所有运算数据以

及运算符号。

小键盘上有16个按键分为四行四列,2,而每一个按键就相当于

是一个开关,每当按键被按下,该开关就闭合了,于是位于该行与该列的两接线在键盘内

部闭合。

本次计算器系统让小键盘的纵向接口从上向下分别与PC口低四位从低位到高位

5

《微机原理与接口技术》课程设计说明书

图5小键盘电路截图

相连,横向接口从左向右分别与PC口高四位从低位到高位相连,由于PC口的高四位为输

入而低四位为输出,CPU可以向PC口置数使得PC口的高四位与低四位的状态不同,每

当有按键按下,PC口的高四位的状态就会通过接通的按键开关被PC口的低四位改变,按

下的键不同改变后的值就不同,从而就对应不同的键值,于是根据这种特定的对应关系就

可以确定按下的键的值了。

图6共阳极七段LED数码管图

3.5四位七段LED数码管显示电路

七段LED数码管是由8个发光二极管组成,分别是数字部分a~g和小数点部分dp,

通过LED的不同亮灭组合就可以显示出不同的数。

七段LED数码管分为两种,分别为共

阳极和共阴极,两者极性接法相反,在这里具体介绍共阳极七段LED数码管,如图6所示。

共阳极七段LED数码管是把8个发光二极管的阳极连在一起由一个公共端口VCC引出,

6

《微机原理与接口技术》课程设计说明书

图7四位七段LED数码管显示电路截图

阴极互不干扰分别引出8个端口a~g和dp,由LED的导通发光原理可知只有阳极输入为

高电平时数码管才能正常显示,而显示的具体数字由8个阴极输入不同电平组合决定。

次计算器系统要求的是两位十进制数的运算,运算结果最多为四位,故在这里采用四位共

阳极七段LED数码管来构成显示电路,具体显示电路如图7所示。

显示电路让四位七段

LED数码管的公共阴极a~g和dp依次连接8255的PA0~PA7,四个阳极VCC从低位到高

位分别与PB0~PB3相连,故PB0~PB3的输出高电平有效,分别决定数码管低位到高位的

显示;而PA0~PA6的输出决定显示的数字,PA7输出控制小数点,低电平有效,具体数字

显示对应的输出信号如表1所示。

表1不带小数点的数字显示对应输出表

显示的数

0

1

2

3

4

5

6

7

8

9

PA输出

0C0H

0F9H

0B4H

0B0H

99H

92H

82H

0F8H

80H

90H

7

《微机原理与接口技术》课程设计说明书

4计算器系统软件设计

4.1总体程序流程图

计算器系统程序总体流程图如图8所示。

开始

初始化8255、清零hb

Y

无键按下?

N

键盘逐行扫描

获取键值hb

Y

键值非符号?

Y

N

输入数第二位?

N

根据运算符做运算

存第一个数,并送入sum

Y

无运算结果?

存第二个数,新两位数送入sum

N

显示sum中的数

运算结果存入sum

结束

图8计算器系统总体程序流程图

8

《微机原理与接口技术》课程设计说明书

4.2模块程序流程图

4.2.1键盘扫描获取键值部分

键值程序获取是通过键盘逐行扫描,扫描不同行时赋给C口的值不同,从上到下分别

是0FEH、0FDH、0FBH、0F7H,按下不同的键在读C口时得到不同的数,然后根据这个

数确定对应的键值,键值对应的C口读数关系如表2所示,该段程序流程图如图9所示。

表2键值与C口输入对应表

键值

0

1

2

3

4

5

6

7

8

9

PC输入

0E7H

0EEH0DEH0BEH0EDH0DDH0BDH0EBH0DBH0BBH

键盘扫描开始

赋初值DH=0F0H

循环次数CX=4

DH送给C口

读C口存入AH

Y

根据AL确定按下的键

把键值存入BH

AH高四位不为F?

N

ROLDH,1

N

转入display程序

CX-1,CX=0?

图9键盘扫描键值获取程序模块流程图

9

《微机原理与接口技术》课程设计说明书

4.2.2数码管显示部分

四位七段LED数码管的显示并非同时显示的,而是从高位到地位逐位显示的,但指令

的执行周期是非常短的且人眼的观察存在视觉停留不能差别先后,而人眼所能观察到的最

短时间是相对比较长的,因而程序中每次显示都设计有时间延迟程序。

同时先要设计程序

把要显示的数分解成个、十、百、千分别保存起来,然后逐位显示,整个显示部分的模块

程序流程图如图10所示。

显示程序开始

sum求千、百、十、个位数字分别

求十位数字显示代码送AL

存入缓存qian、bai、shi、ge

求千位数字显示代码送AL

AL代码从PA口输出

AL代码从PA口输出

PB口输出显示千位选通信号02H

求个位数字显示代码送AL

AL代码从PA口输出

PB口输出显示千位选通信号08H

求百位数字显示代码送AL

AL代码从PA口输出

PB口输出显示千位选通信号01H

转入display程序

PB口输出显示千位选通信号04H

图10数码管显示模块程序流程图

10

《微机原理与接口技术》课程设计说明书

4.2.3数据运算部分

数据运算模块程序是通过判断运算符标志缓存内容来决定进行哪种运算的,清零运算

是把运算符标志和数据缓存清零初始化,加减乘除运算是保存第一个输入运算数准备输入

第二个运算数,等号运算是根据加减乘除运算标志符来进行相应的加减乘除运算并保存结

果,该部分程序流程图如图11所示。

数据运算开始

Y

清零C运算?

N

Y

=运算?

N

Y

加减乘除运算?

N

根据符号标志判断做哪种运算

清零数据、符号标志缓存

做加减乘除运算,结果送sum

第一个数存入sum2

清零数字缓存flagshu

转入displaysum程序

转入keycheck程序

图11数据计算模块程序流程图

11

《微机原理与接口技术》课程设计说明书

4.3相关程序讲解

4.3.1键盘扫描程序段

MOVCX,4

;循环4次

MOVDH,0FEH

KEYSCAN:

ADDFLAGSHU,1

MOVAL,DH

OUT44H,AL

INAL,44H

MOVAH,AL

ANDAH,0F0H

CMPAH,0F0H

JNEGETKEY

ROLDH,1

LOOPKEYSCAN

;键盘逐行扫描

键盘扫描程序是通过逐行扫描键盘然后通过条件跳转语句将程序跳转到相关键值读取

程序的过渡程序段,键盘逐行扫描每一行时向PC口赋值分别为0FEH、0FDH、0FBH、0F7H,

观察到这几个数的特点,后一个数都是前一个数不带进位循环左移的结果,故每次扫描前

赋值0FEH给DH寄存器,每扫描一行后左移一位以得到新的幅值。

扫描每行的程序是通

过向PC口幅值然后读取看高四位是否有低电平位,如果有就表明为该行的按键按下,就

执行跳转语句。

4.3.2输入数保存程序段

DISPLAYSHU:

;输入第一个数显示

CMPFLAGSHU,1

JGDISPLAYSHU

MOVSUM,BH

MOVSUM1,BH

JMPDISPLAYSUM

12

《微机原理与接口技术》课程设计说明书

DISPLAYSHU1:

MOVAL,SUM1

MOVBL,0AH

MULBL

;输入第二个数两个数一起显示

ADDAL,BH

MOVSUM1,AL

MOVSUM,AL

JMPDISPLAYSUM

本段程序是保存输入的运算数并显示输入的数。

由于计算器设计的是两位数的乘法运

算,故输入的数可为一位数也可为两位数,而两位数的输入是先输入高位再输入低位,输

入第一位时直接保存并显示,输入第二位时则要先将原来保存的数乘以十再加新数后保存

并显示。

以上这些功能的实现就必须依靠两端程序来实现,并通过标志位判断是输入第一

位还是第二位,然后依靠跳转语句进入相应程序执行。

4.3.3数据算法决定程序段

DISPLAY:

CMPBH,0AH

JLDISPLAYSHU

MOVAL,0C0H

OUT40H,AL

MOVAL,0FH

OUT42H,AL

CALLDELAY

MOVFLAGSHU,0

CMPFLAGCLR,1

JECLRFA

CMPFLAGDENG,1

JEDENGFA

CMPFLAGMUL,1

JECHENGFA

13

《微机原理与接口技术》课程设计说明书

JMPKEYCHECK

该段程序的作用是根据按下的键来决定进行何种算法,首先判断是否按下的键为数字

键,如果是就跳转到数字保存显示程序段,如果不是就清零数字输入位数标志位,然后判

断是否清零、乘号、等号,并分别跳转到相应的程序段执行;其中清零就跳转到清零算法

程序执行清零程序缓存和相应寄存器,乘号就跳转到相应程序保存第一个运算数然后继续

检测键盘输入,等号就跳转到执行乘法运算的程序段。

4.3.4显示数分解显示程序段

DISPLAYSUM:

;结果显示

MOVAX,SUM

MOVDX,0

MOVBX,3E8H

DIVBX

MOVQIAN,AL

MOVAX,DX

MOVBL,64H

DIVBL

;结果的千位

;结果的百位

MOVBAI,AL

MOVAL,AH

MOVAH,0

MOVBL,0AH

DIVBL

MOVSHI,AL

MOVGE,AH

;结果的十位

;结果的个位

MOVAL,QIAN

MOVBL,OFFSETTAB

XLAT

;显示千位

OUT40H,AL

OUT42H,8H

14

《微机原理与接口技术》课程设计说明书

CALLDELAY

MOVAL,BAI

XLAT

;显示百位

OUT40H,AL

OUT42H,4H

CALLDELAY

MOVAL,SHI

XLAT

;显示十位

OUT40H,AL

OUT42H,2H

CALLDELAY

MOVAL,GE

XLAT

;显示个位

OUT40H,AL

OUT42H,1H

CALLDELAY

JMPKEYCHECK

该段程序是通过将显示数分解成个、十、百、千位,然后逐位显示的程序。

数字分解

的过程是分别除以1000、100、10取商和余数来得到每一位,对于不足四位的数高位用零

填充,在显示每一位的时候要先通过代码转换语句XLAT来得到相应数字显示代码,然后

输出给PA口和PB口使数码管得以显示。

15

《微机原理与接口技术》课程设计说明书

5设计小结与体会

通过本次微机原理与接口技术课程设计,我更深入的掌握了在《微机原理与接口技术》

理论课上学习到的各种基本控制理论,了解学习了很多课堂上没有涉及的知识,锻炼了我

多方面的能力,以下是我本次设计的具体体会。

1、通过理论联系实际的真实设计,我更加深入的了解了汇编语言的编程思想,学会

了用汇编语言编写一些不太复杂的应用程序。

通过本次设计,我深深的体会到汇编语言是

一门接近硬

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

当前位置:首页 > 农林牧渔 > 林学

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

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