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

下载本文档

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

文档简介

1、 微机原理与接口技术课程设计说明书摘 要本次简易计算器设计硬件部分采用 4×4小键盘作为输入,该小键盘上有 09、+、-、*、/和清零 C共 16个按键构成的;四位七段 LED数码管作为输出显示,数码管采用的是共阳极的数码管;8086CPU作为运算处理核心来完成计算器的主要功能,包括计算数据、数据保存、发出控制信号等;用 8255A并行通行接口来完成本次计算器系统的接口电路,而 74LS138译码器、或门电路以及导线是用来产生并行接口芯片 8255的片选信号,产生接口电路的端口地址,其中 8255的 A0、A1分别接 CPU的 A1、A2而使它的端口地址为偶地址。本次设计的软件部分是

2、采用 8086汇编语言来完成的,主要通过读写端口来实现键值的输入和显示数字的输出,依靠乘法运算指令来实现计算器的计算。关键词:计算器小键盘数码显示键盘扫描1 微机原理与接口技术课程设计说明书目 录1设计目的与要求.12计算器系统的组成方框图及总述.23系统硬件与其详细功能介绍 .43.1 8086CPU芯片.43.2 8255A并行通信接口芯片.43.3译码电路.53.4小键盘电路.53.5四位七段 LED数码管显示电路.64计算器系统软件设计 .84.1总体程序流程图.84.2模块程序流程图.94.2.1键盘扫描获取键值部分.94.2.2数码管显示部分.104.2.3数据运算部分.114.3

3、相关程序讲解.124.3.1键盘扫描程序段.124.3.2输入数保存程序段.124.3.3数据算法决定程序段.134.3.4显示数分解显示程序段.145设计小结与体会.16参考文献 .17附录.182 微机原理与接口技术课程设计说明书简易计算器的设计1设计目的与要求本次课程设计的目的主要是通过设计环节的实际训练,加深学生对微机原理与接口技术这门课程基础知识和基本理论的理解和掌握,培养学生综合运用所学知识的能力,使之在理论分析、设计、计算、制图、运用标准和规范、查阅设计手册与资料以及计算机应用能力等方面得到初步训练,促进学生养成严谨求实的科学态度。本次课程设计的任务是用 8086CPU、8255

4、A并行通信接口、七段 LED数码管接口、小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。具体要求如下:1计算器可进行 2位十进制的加减乘除法运算。2键盘输入数据,同时 LED数码管显示,模拟计算器的工作。3键盘上要求有 09数字键,+、-、×、÷、=功能键,清除键 C。本次微机原理与接口技术课程设计采用分组设计共同完成,这部分设计是设计简易计算器的乘法运算以及结果显示部分。1 微机原理与接口技术课程设计说明书2计算器系统的组成方框图及总述四位七段LED数码管译码电路8255A并行通信接口8086CPU4×4小键盘图 1计算器系统的组

5、成方框图本次设计的简易计算器系统是由 8086CPU、8255A并行通信接口芯片、四位七段 LED数码管、小键盘、74LS138译码器芯片及部分门电路芯片组成,系统组成方框图如图 1所示。整个计算器系统通过 4×4小键盘控制接口输入需要计算的原始数据和运算符号,这些数据经过 8255A并行通信接口输入给 8086CPU并保存起来,CPU接收数据后根据不同的运算符来处理数据,然后 CPU把运算处理后的数据经过 8255A并行通信接口输出给给四位七段 LED数码管,最后后数码管把接收到的数据显示在数码管屏幕上,而 74LS138译码器和相应的或门是给 8255提供译码片选信号而设计的,只

6、有 CPU输出 8255选通的地址才能使 8255处于正常工作模式,系统才能有效工作,整个计算器系统详细电路图如图 2所示。2 微机原理与接口技术课程设计说明书3 微机原理与接口技术课程设计说明书3系统硬件与其详细功能介绍3.1 8086CPU芯片8086CPU芯片是本次简易计算器系统的核心部件,其主要功能包括完成数据的加减乘除运算,把需要显示的十六进制数转换成与之对应在数码管上显示的十六进制代码,配合小键盘形成不同键值对应的特定十六进制代码。在该次计算器系统中,8086CPU工作在最小模式,通过 AD0AD7八位地址/数据总线接口与 8255A并向通信接口交换计算器系统中所有数据,而数据的交

7、换方向是通过 RD和 WR输出的低电平有效控制信号来控制的,同时 CPU执行系统所有软件程序,控制着系统中其他部件的工作。3.2 8255A并行通信接口芯片8255A并行通信接口芯片,如图 3所示,是该计算器系统的接口部件,其具有数据缓冲和锁存作用,可以让多个外设同时工作而又互不干扰,同时也解决了高速 CPU与低速外设的工作不同步问题。在本次计算器系统中,8255A工作在 0方式下,PA口、PB口和PC口的低四位输出,PC口高四位输入,其控制口输入的控制字为 88H,PA口接七段 LED数码管的阴极,PB口的低四位接数码管的四个阳极,PC口接 4×4小键盘的八个接口。图 3 8255

8、A并行通信接口芯片图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

9、,而每一个按键就相当于是一个开关,每当按键被按下,该开关就闭合了,于是位于该行与该列的两接线在键盘内部闭合。本次计算器系统让小键盘的纵向接口从上向下分别与 PC口低四位从低位到高位5 微机原理与接口技术课程设计说明书图 5小键盘电路截图相连,横向接口从左向右分别与 PC口高四位从低位到高位相连,由于 PC口的高四位为输入而低四位为输出,CPU可以向 PC口置数使得 PC口的高四位与低四位的状态不同,每当有按键按下,PC口的高四位的状态就会通过接通的按键开关被 PC口的低四位改变,按下的键不同改变后的值就不同,从而就对应不同的键值,于是根据这种特定的对应关系就可以确定按下的键的值了。图 6共阳极

10、七段 LED数码管图3.5四位七段 LED数码管显示电路七段 LED数码管是由 8个发光二极管组成,分别是数字部分 ag和小数点部分 dp,通过 LED的不同亮灭组合就可以显示出不同的数。七段 LED数码管分为两种,分别为共阳极和共阴极,两者极性接法相反,在这里具体介绍共阳极七段 LED数码管,如图 6所示。共阳极七段 LED数码管是把 8个发光二极管的阳极连在一起由一个公共端口 VCC引出,6 微机原理与接口技术课程设计说明书图 7四位七段 LED数码管显示电路截图阴极互不干扰分别引出 8个端口 ag和 dp,由 LED的导通发光原理可知只有阳极输入为高电平时数码管才能正常显示,而显示的具体

11、数字由 8个阴极输入不同电平组合决定。本次计算器系统要求的是两位十进制数的运算,运算结果最多为四位,故在这里采用四位共阳极七段 LED数码管来构成显示电路,具体显示电路如图 7所示。显示电路让四位七段LED数码管的公共阴极 ag和 dp依次连接 8255的 PA0PA7,四个阳极 VCC从低位到高位分别与 PB0PB3相连,故 PB0PB3的输出高电平有效,分别决定数码管低位到高位的显示;而 PA0PA6的输出决定显示的数字,PA7输出控制小数点,低电平有效,具体数字显示对应的输出信号如表 1所示。表 1不带小数点的数字显示对应输出表显示的数0123456789PA输出0C0H0F9H0B4H

12、0B0H99H92H82H0F8H80H90H7 微机原理与接口技术课程设计说明书4计算器系统软件设计4.1总体程序流程图计算器系统程序总体流程图如图 8所示。开始初始化 8255、清零 hbY无键按下?N键盘逐行扫描获取键值 hbY键值非符号?YN输入数第二位?N根据运算符做运算存第一个数,并送入 sumY无运算结果?存第二个数,新两位数送入 sumN显示 sum中的数运算结果存入 sum结束图 8计算器系统总体程序流程图8 微机原理与接口技术课程设计说明书4.2模块程序流程图4.2.1 键盘扫描获取键值部分键值程序获取是通过键盘逐行扫描,扫描不同行时赋给 C口的值不同,从上到下分别是 0F

13、EH、0FDH、0FBH、0F7H,按下不同的键在读 C口时得到不同的数,然后根据这个数确定对应的键值,键值对应的 C口读数关系如表 2所示,该段程序流程图如图 9所示。表 2键值与 C口输入对应表键值0123456789PC输入0E7H0EEH 0DEH 0BEH 0EDH 0DDH 0BDH 0EBH 0DBH 0BBH键盘扫描开始赋初值 DH=0F0H循环次数 CX=4DH送给 C口读 C口存入 AHY根据 AL确定按下的键把键值存入 BHAH高四位不为 F?NROL DH,1N转入 display程序CX-1,CX=0?图 9键盘扫描键值获取程序模块流程图9 微机原理与接口技术课程设计

14、说明书4.2.2 数码管显示部分四位七段 LED数码管的显示并非同时显示的,而是从高位到地位逐位显示的,但指令的执行周期是非常短的且人眼的观察存在视觉停留不能差别先后,而人眼所能观察到的最短时间是相对比较长的,因而程序中每次显示都设计有时间延迟程序。同时先要设计程序把要显示的数分解成个、十、百、千分别保存起来,然后逐位显示,整个显示部分的模块程序流程图如图 10所示。显示程序开始sum求千、百、十、个位数字分别求十位数字显示代码送 AL存入缓存 qian、bai、shi、ge求千位数字显示代码送 ALAL代码从 PA口输出AL代码从 PA口输出PB口输出显示千位选通信号 02H求个位数字显示代

15、码送 ALAL代码从 PA口输出PB口输出显示千位选通信号 08H求百位数字显示代码送 ALAL代码从 PA口输出PB口输出显示千位选通信号 01H转入 display程序PB口输出显示千位选通信号 04H图 10数码管显示模块程序流程图10 微机原理与接口技术课程设计说明书4.2.3 数据运算部分数据运算模块程序是通过判断运算符标志缓存内容来决定进行哪种运算的,清零运算是把运算符标志和数据缓存清零初始化,加减乘除运算是保存第一个输入运算数准备输入第二个运算数,等号运算是根据加减乘除运算标志符来进行相应的加减乘除运算并保存结果,该部分程序流程图如图 11所示。数据运算开始Y清零 C运算?NY=

16、运算?NY加减乘除运算?N根据符号标志判断做哪种运算清零数据、符号标志缓存做加减乘除运算,结果送 sum第一个数存入 sum2清零数字缓存 flagshu转入 displaysum程序转入 keycheck程序图 11数据计算模块程序流程图11 微机原理与接口技术课程设计说明书4.3相关程序讲解4.3.1 键盘扫描程序段MOV CX,4;循环4次MOV DH,0FEHKEYSCAN:ADD FLAGSHU,1MOV AL,DHOUT 44H,ALIN AL,44HMOV AH,ALAND AH,0F0HCMP AH,0F0HJNE GETKEYROL DH,1LOOP KEYSCAN;键盘逐行

17、扫描键盘扫描程序是通过逐行扫描键盘然后通过条件跳转语句将程序跳转到相关键值读取程序的过渡程序段,键盘逐行扫描每一行时向 PC口赋值分别为 0FEH、0FDH、0FBH、0F7H,观察到这几个数的特点,后一个数都是前一个数不带进位循环左移的结果,故每次扫描前赋值 0FEH给 DH寄存器,每扫描一行后左移一位以得到新的幅值。扫描每行的程序是通过向 PC口幅值然后读取看高四位是否有低电平位,如果有就表明为该行的按键按下,就执行跳转语句。4.3.2 输入数保存程序段DISPLAYSHU:;输入第一个数显示CMP FLAGSHU,1JG DISPLAYSHUMOV SUM,BHMOV SUM1,BHJM

18、P DISPLAYSUM12 微机原理与接口技术课程设计说明书DISPLAYSHU1:MOV AL,SUM1MOV BL,0AHMUL BL;输入第二个数两个数一起显示ADD AL,BHMOV SUM1,ALMOV SUM,ALJMP DISPLAYSUM本段程序是保存输入的运算数并显示输入的数。由于计算器设计的是两位数的乘法运算,故输入的数可为一位数也可为两位数,而两位数的输入是先输入高位再输入低位,输入第一位时直接保存并显示,输入第二位时则要先将原来保存的数乘以十再加新数后保存并显示。以上这些功能的实现就必须依靠两端程序来实现,并通过标志位判断是输入第一位还是第二位,然后依靠跳转语句进入相

19、应程序执行。4.3.3 数据算法决定程序段DISPLAY:CMP BH,0AHJL DISPLAYSHUMOV AL,0C0HOUT 40H,ALMOV AL,0FHOUT 42H,ALCALL DELAYMOV FLAGSHU,0CMP FLAGCLR,1JE CLRFACMP FLAGDENG,1JE DENGFACMP FLAGMUL,1JE CHENGFA13 微机原理与接口技术课程设计说明书JMP KEYCHECK该段程序的作用是根据按下的键来决定进行何种算法,首先判断是否按下的键为数字键,如果是就跳转到数字保存显示程序段,如果不是就清零数字输入位数标志位,然后判断是否清零、乘号、等

20、号,并分别跳转到相应的程序段执行;其中清零就跳转到清零算法程序执行清零程序缓存和相应寄存器,乘号就跳转到相应程序保存第一个运算数然后继续检测键盘输入,等号就跳转到执行乘法运算的程序段。4.3.4 显示数分解显示程序段DISPLAYSUM:;结果显示MOV AX, SUMMOV DX,0MOV BX,3E8HDIV BXMOV QIAN,ALMOV AX,DXMOV BL,64HDIV BL;结果的千位;结果的百位MOV BAI,ALMOV AL,AHMOV AH,0MOV BL,0AHDIV BLMOV SHI,ALMOV GE,AH;结果的十位;结果的个位MOV AL,QIANMOV BL,

21、OFFSET TABXLAT;显示千位OUT 40H,ALOUT 42H,8H14 微机原理与接口技术课程设计说明书CALL DELAYMOV AL,BAIXLAT;显示百位OUT 40H,ALOUT 42H,4HCALL DELAYMOV AL,SHIXLAT;显示十位OUT 40H,ALOUT 42H,2HCALL DELAYMOV AL,GEXLAT;显示个位OUT 40H,ALOUT 42H,1HCALL DELAYJMP KEYCHECK该段程序是通过将显示数分解成个、十、百、千位,然后逐位显示的程序。数字分解的过程是分别除以 1000、100、10取商和余数来得到每一位,对于不足四

22、位的数高位用零填充,在显示每一位的时候要先通过代码转换语句 XLAT来得到相应数字显示代码,然后输出给 PA口和 PB口使数码管得以显示。15 微机原理与接口技术课程设计说明书5设计小结与体会通过本次微机原理与接口技术课程设计,我更深入的掌握了在微机原理与接口技术理论课上学习到的各种基本控制理论,了解学习了很多课堂上没有涉及的知识,锻炼了我多方面的能力,以下是我本次设计的具体体会。1、通过理论联系实际的真实设计,我更加深入的了解了汇编语言的编程思想,学会了用汇编语言编写一些不太复杂的应用程序。通过本次设计,我深深的体会到汇编语言是一门接近硬件的语言,它与 C语言等其他高级语言有很大不同,往往在

23、高级语言很容易实现的功能通过汇编来实现很复杂,比如说 C语言编写加减乘除运算只需要简单的一两条语句,而汇编语言编写需要很复杂的程序段来实现;但汇编语言有它的长处,汇编语言的运行速度比其他高级语言更快,对于实现硬件功能有着极大的优越性。2、本次课程设计由于所设计的知识涉及很广,许多设计中的硬件工作方式以及功能的实现方法都是我以往并不知道的,这迫使我去查阅许多相关资料文献,学习相关知识,这些不但使我学习了许多新的知识,而且锻炼了我独立学习新知识的能力。3、我还通过本次设计锻炼了我独立思考和动手解决控制系统实际问题的能力,由于我们的设计是以小组为单位,如果一个小组不能很好的配合工作学习是不能把设计做

24、好的,这些都锻炼了我与其他同学互相配合、互相帮助的团队协作能力。16 微机原理与接口技术课程设计说明书参考文献1彭虎,周佩玲,傅忠谦编著,微机原理与接口技术(第 2版).北京:电子工业出版社,20082沈美明,温东婵编著,IBM-PC汇编语言程序设计(第 2版).北京:清华大学出版社,20013潘新民,王燕芳编著,微型计算机控制技术.北京:高等教育出版社,20014段承先编著,微型计算机原理及接口技术.北京:兵器工业出版社,20005黄国建,虞平良,曾芬芳编著,微型机算机应用技术.上海:上海交通大学出版社,199517 微机原理与接口技术课程设计说明书附录简易计算器乘法部分设计源程序DATA

25、SEGMENTTABDB0C0H,0F9H,0B4H,0B0H,99H,92H,82H,0F8H,80H,90HFLAGSHUFLAGMULFLAGCLRFLAGDENGSUMDBDBDBDBDWDBDBDBDBDBDB00000SUM10SUM20QIAN0BAI0SHI0GE0DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX,DATAMOV DS,AXMOV AL,88HOUT 46H,ALXOR BH,BH;8255初始化10001000;46H,44H,42H,40H分别为8255控制口,PC,PB,PAKEYCHECK:

26、MOV AL,0F0HOUT 44H,ALIN AL,44H18 微机原理与接口技术课程设计说明书CMP AL,0F0HJE DISPLAYCALL DELAYCMP AL,0F0HJE DISPLAY;去抖动MOV CX,4;循环4次MOV DH,0FEHKEYSCAN:ADD FLAGSHU,1MOV AL,DHOUT 44H,ALIN AL,44HMOV AH,ALAND AH,0F0HCMP AH,0F0HJNE GETKEYROL DH,1LOOP KEYSCAN;键盘逐行扫描;获取键盘值;第一行GETKEY:CMP AL,0EEHJE L1CMP AL,0DEHJE L2CMP A

27、L,0BEHJE L3CMP AL,7EHJE LJIA19 微机原理与接口技术课程设计说明书CMP AL,0EDHJE L4;第二行CMP AL,0DDHJE L5CMP AL,0BDHJE L6CMP AL,7DHJE LJIANCMP AL,0EBHJE L7;第三行CMP AL,0DBHJE L8CMP AL,0BBHJE L9CMP AL,7BHJE LDENGCMP AL,0E7HJE L0;第四行CMP AL,0D7HJE LCHENGCMP AL,0B7HJE LCHUJMP LCLRL1:;1按下MOV BH,1JMP DISPLAY20 微机原理与接口技术课程设计说明书L2

28、:L3:;2按下MOV BH,2JMP DISPLAY;3按下;+按下;4按下;5按下;6按下;-按下;7按下;8按下MOV BH,3JMP DISPLAYLJIA:MOV BH,0AHJMP DISPLAYL4:L5:L6:MOV BH,4JMP DISPLAYMOV BH,5JMP DISPLAYMOV BH,6JMP DISPLAYLJIAN:MOV BH,0BHJMP DISPLAYL7:L8:L9:MOV BH,7JMP DISPLAYMOV BH,8JMP DISPLAY;9按下MOV BH,921 微机原理与接口技术课程设计说明书JMP DISPLAYLDENG:;=按下MOV

29、BH,0CHMOV FLAGDENG,1JMP DISPLAYL0:;0按下;*按下MOV BH,0JMP DISPLAYLCHENG:MOV BH,0DHMOV FLAGMUL,1JMP DISPLAYLCHU:;/按下MOV BH,0EHJMP DISPLAYLCLR:;清零C按下MOV BH,0FHMOV FLAGCLR,1JMP DISPLAYDISPLAY:CMP BH,0AHJL DISPLAYSHUMOV AL,0C0HOUT 40H,ALMOV AL,0FHOUT 42H,ALCALL DELAYMOV FLAGSHU,022 微机原理与接口技术课程设计说明书CMP FLAGCLR,1J

温馨提示

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

评论

0/150

提交评论