简易计算器系统设计.doc_第1页
简易计算器系统设计.doc_第2页
简易计算器系统设计.doc_第3页
简易计算器系统设计.doc_第4页
简易计算器系统设计.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

合肥学院计算机科学与技术系页:1写明课程名称课程设计报告20082009 学年第1学期课程微型计算机原理与接口技术课程设计名称简易计算器系统设计学生姓名孟志华学号0604031008专业班级计算机科学与技术专业(06网工1)指导教师张向东(教授)2009年2月8日一、题义分析及解决方案1.1.1题义需求分析 课程设计要求:用STAR ES598PCI单板机开发机系列接口芯片设计一个可以进行2位数的四则运算的计算器。 (1)键输入数和运算符号; (2)LED显示运算过程和结果(十进制数); (3)表示出当前的运算类型; (4)具有清零和复位功能; (5)具有连续运算功能。1.2解决问题的方法及思路1.2.1硬件部分单片机工作在单任务状态,时间充裕,速度不是主要矛盾,所以用软件实现数字和符号的输入以及计算功能,以减少硬件开销。 接口用硬件实现。页:2段落格式,缩进,可以分别从整个系统由哪些硬件组成,各个硬件在系统中所起的作用。软件部分从总体上分析各个软件模块所完成的功能。具体器件的名称和特点如下表所示:页:2选择器件部分可以用文字描述比较详细。 L E D L C DLED显示器与LCD显示器相比,LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。LED与LCD的功耗比大约为10:1,LED的最显著特点是使用寿命长,光电转换效能高,绿色环保LCD占用空间小,低功耗,低辐射,能降低视觉疲劳,但是会出现闪烁问题 8279芯片 8255A芯片8279芯片可以实现对键盘/显示器的自动扫描,以减轻CPU负担,具有显示稳定,程序简单,不会出现误动作等8255芯片是可编程的并行接口芯片,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便 十六进制小键盘 二进制开关键盘(Keyboard)是常用的输入设备,它是由一组开关矩阵组成,结构相对复杂,与8279A配套使用二进制逻辑开关一位表示一个二进制数,对于本实验每一位数需要多次拨动八位开关,使实验复杂了许多表1-1 硬件选择比较页:3写在表格上面,后面的雷同通过以上分析,本次设计所选用的芯片为:8279A芯片、LED发光二极管、十六进制小键盘。由于8279A的输出电流与LED不匹配的问题,需要驱动电流,本实验中选择74LS240。1.2.2软件部分输入:小键盘上的16个按键中0到9十个数字键作为数字输入,A、B、C、D分别作为加、减、乘、除,F作为等于号,通过对8279初始化实现对每个按键赋予不同的功能。显示:8279A芯片内部有一个显示RAM和一个FIFO RAM,可以暂存从小键盘中读出的数据,同时可以将内存中的数据暂存到显示RAM中,简化了程序复杂度。每次将各个位要显示的数据处理好后到换码表中找到对应值,初始化8279后将值送到数据口即实现显示的目的。清零:在程序中设置了按键数目的限制,定为8,当8个数码块全有字符显示后,再按键,清除显示。二、硬件设计2.1 8279A2.1.1 8279A在本设计中的作用 在本设计中用8279A芯片控制键盘输入和LED显示。2.1.2 8279A的功能分析1、8279A主要特性8279A芯片是一种通用的可编程序的键盘/显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。可与任何8位机接口。8279A芯片包括键盘输入和显示输出两个部分。若采用8279作为键盘/显示器接口,则可以实现对键盘、显示器自动扫描,8279主要是管理键盘输入和显示器输出的。8279可编程键盘显示器接口芯片具有动态显示驱动电路简单、不占用CPU 的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点当今已成为设计计算机应用系统,特别是实时性较高的测控系统的首选器件之一。2、8279A的内部结构图2-1 8279A的内部结构页:4图要居中图中,IRQ:中断请求输出线,DB0DB7:双向数据总路线(传送命令、数据、状态),、:读写控制输入端,RESET:复位输入端,CLK:时钟输入端,:片选,C和/D(A0):片内寄存器选址,OUTA0A1、OUTB0B3:8位显示输出端,:熄灭显示输出端,SL0SL3:公用扫描输出线,RL0RL7:键盘回馈输入线,SHIFT:抵挡键输入线,CNTL/STB:控制/选通输入线。另外,8279的键盘接口部分内部有一个88位先进先出的堆栈(FIFO),用来存放键盘输入代码,显示器接口部分内部有一个168位显示RAM,用来显示段数据,能为16位LED显示器(或其它显示器)提供多路扫描接口。3、8279A的引脚信号和功能8279可编程键盘显示器接口芯片具有动态显示驱动电路,不占用CPU 的时间、可自动进行键盘扫描、与计算机接口方便、编程容易、系统灵活等特点。 8279 是可编程的键盘/显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘 FIFO (先进先出堆栈)/传感器,双重功能的 88=64B RAM,键盘控制部分可控制 88=64 个按键或 88 阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示 RAM容量为 168,即显示器最大配置可达 16 位 LED数码显示。4、8279的命令字及其格式 8279有三种工作方式:键盘工作方式、显示工作方式和传感器工作方式。键盘工作方式:双键互锁和N键轮回。双键互锁是指当有两个以上按键同时按下时,只能识别最后一个被释放的按键,并把其键值送入内部FIFO RAM中。N键轮回是指当有多个按键同时按下时,所有按键的键值均可按扫描顺序依次存入FIFO RAM中。显示工作方式:是指CPU输入至8279内部FIFO RAM的数据的输出格式,有8个字符左端入口显示、16个字符左端入口显示、8个字符右端入口显示、16个字符右端入口显示四种方式。传感器方式:是指扫描传感器阵列时,一旦发现传感器的状态发生变化就置位INT向CPU申请中断。选择不同的工作方式均是通过CPU对8279送入命令来进行控制。8279共有8种命令,命令寄存器为8位,其中D7D5为命令特征位,D4D0为命令的控制位。CPU对8279写入的命令数据为命令字,读出的数据为状态字。8279共有八条命令,其功能及命令字格式分述如下。(1)键盘/显示方式设置命令字命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 D D K K K其中:D7、D6、D5=000为方式设置命令特征位。DD(D4、D3):用来设定显示方式,如表2-2所示。D4D3显示方式008个字符显示,左端入口0116个字符显示,左端入口108个字符显示,右端入口1016个字符显示,右入口表2-2 显示方式选择所谓左入口 ,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列;所谓右入口,则是显示位置从最右一位(最低位)开始,以后逐次输入显示字符时,已有的显示字符依次向左移动。KKK(D2、D1、D0):用来设定七种键盘/显示扫描方式,如表2-3所示。D2D1D0键盘/显示扫描方式000编码扫描键盘,双键锁定001译码扫描键盘,双键锁定010编码扫描键盘,N键轮回011译码扫描键盘,N键轮回100编码扫描传感器矩阵101译码扫描传感器矩阵110选通输入,编码显示扫描111选通输入,译码显示扫描表2-3 键盘/显示扫描方式(2)时钟编程命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P其中:D7、D6、D5=001为时钟命令特征位。PPPPP(D4、D3、D2、D1、D0)用来设定外部输入CLK时钟脉冲的分频系数N。N取值范围为231。如CLK输入时钟频率为2MHZ,PPPPP应被置为10100(N=20),才可获得8279内部要求的100KHZ的时钟频率。(3)读FIFO/传感器RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 AI X A A A其中:D7、D6、D5=010为读FIFO/传感器RAM命令特征位。该命令字只在传感器方式时使用。在CPU读传感器RAM之前,必须用这条命令来设定所读传感器RAM中的地址。AAA(D2、D1、D0)为传感器RAM中的八个字节地址。AI(D4)为自动增量特征位。当AI=1时,每次读出传感器RAM后地址自动加1使地址指向下一个存储单元。这样,下一个数据便从下一个地址读出,而不必重新设置读FIFO/传感器RAM命令。在键盘工作方式中,由于读出操作严格按照先入先出顺序,因此,不需使用这条命令。(4)读显示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 AI A A A A其中:D7、D6、D5=011为读显示RAM命令字的特征位。该命令字用来设定将要读出的显示RAM地址。AAAA(D3、D2、D1、D0)用来寻址显示RAM中的存储单元。由于位显示RAM中有16个字节单元,故需要4位寻址。AI(D4)为自动增量特征位。AI=1时,每次读出后地址自动加1,指向下一地址。(5)写显示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 AI A A A A其中:D7、D6、D5=100为写显示RAM命令字的特征位。在写显示RAM之前用这个命令字来设定将要写入的显示RAM地址。AAAA(D3、D2、D1、D0)为将要写入的显示RAM中的存储单元地址。AI(D4)为自动增量特征位。AI=1时,每次写入后地址自动加1,指向下一次写入地址。(6)显示禁止写入/消隐命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 X IW/A IW/B BL/A BL/B其中:D7、D6、D5=101为显示禁止写入/消隐命令特征位。IW/A、IW/ B(D3、D2)为A、B组显示RAM写入屏蔽位。当A组的屏蔽位D3=1时,A组的显示RAM禁止写入。因此,从CPU写入显示器RAM数据时,不会影响A的显示。这种情况通常在采用双4位显示器时使用。因为两个四位显示器是相互独立的。为了给其中一个四位显示器输入数据而又不影响另一个四位显示器,因此必须对另一组的输入实行屏蔽。BL/A、BL/ B(D1、D0)为消隐设置位。用于对两组显示输出消隐。若BL=1,对应组的显示输出被消隐。当BL=0,则恢复显示。(7)清除命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 CD CD CD CF CA 其中:D7、D6、D5=110为清除命令特征位。清除显示RAM方式如表2-4所示。D4D3D2清除方式10将全部显示RAM清为00H110将全部显示RAM置为20H,A组输出0010,B组输出0000111将全部显示RAM置为FFH0D0=0不清除,D0=1按上述方法清除表2-4 显示RAM清除方式CF(D1)用来置空FIFO存储器,当CF=1时,执行清除命令后,FIFO RAM被置空,使INT输出线复位。同时,传感器RAM的读出地址也被置为0。CA (D0)为总清的特征位。它兼有CD和CF的联合效能。在CF =1时,对显示的清除方式由D3、D2的编码决定。显示RAM清除时间约需160us。在此期间状态字的最高位Du=1,表示显示无效。CPU不能向显示RAM写入数据。(8)结束中断/错误方式设置命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 E X X X X其中:D7、D6、D5=111为该命令的特征位。此命令有两种不同的作用。作为结束中断命令。在传感器工作方式中使用。每当传感器状态出现变化时,扫描检测电路就将其状态写入传感器RAM,并启动中断逻辑,使INT变高,向CPU 请求中断,并且禁止写入传感器RAM。此时,若传感器RAM 读出地址的自动递增特性没有置位(AI=0),则中断请求INT在CPU第一次从传感器RAM读出数据时就被清除。若自动递增特征已置位(AI=1),则CPU对传感器RAM 的读出并不能清除INT,而必须通过给8279写入结束中断/错误方式设置命令才能使INT变低。因此,在传感器工作方式中,此命令用来结束传感器RAM的中断请求。作为特定错误方式设置命令。在8279已被设定为键盘扫描N键轮回方式以后,如果CPU给8279又写入结束中断/错误方式设置命令(E=1),则8279将以一种特定的错误方式工作。这种方式的特点是:在8279的消抖周期内,如果发现多个按键同时按下,则FIFO状态字中的错误特征位S/E将置1,并产生中断请求信号和禁止写入FIFO RAM。上述八种用于确定8279操作方式的命令字皆由D7D6D5特征位确定,输入8279后能自动寻址相应的命令寄存器。因此,写入命令字时唯一的要求是使数据选择信号A0 =1。5、8279的状态字及其格式 8279的FIFO状态字,主要用于键盘和选通工作方式,以指示FIFO RAM中的字符数和有无错误发生。其格式为: D7 D6 D5 D4 D3 D2 D1 D0 DU S/E O U F N N N其中:Du(D7)为显示无效特征位。当 Du=1表示显示无效。当显示RAM由于清除显示或全清命令尚未完成时,Du=1,此时不能对显示RAM写入。S/E(D6)为传感器信号结束/错误特征位。该特征位在读出FIFO 状态字时被读出。而在执行CF =1的清除命令时被复位。当8279工作在传感器工作方式时,若S/E=1,表示传感器的最后一个传感器信号已进入传感器RAM;而当8279工作在特殊错误方式时,若S/E=1则表示出现了多键同时按下错误。O、U(D5、D4)为超出、不足错误特征位。对FIFO RAM 的操作可能出现两种错误:超出或不足。当FIFO RAM 已经充满时,其它的键盘数据还企图写入FIFO RAM ,则出现超出错误,超出错误特征位O(D5)置1;当FIFO RAM已经置空时,CPU还企图读出,则出现不足错误,不足错误特征位U(D4)置1。F(D3)表示FIFO RAM中是否已满标志,若F=1表示已满。NNN(D2、D1、D0)表示FIFO RAM中的字符数据个数。6、数据输入/输出格式对8279输入/输出数据不仅要先确定数据地址口,而且数据存放也要按一定格式,其格式在键盘和传感器方式有所不同。(1) 键盘扫描方式数据输入格式键盘的行号、列号及控制键格式如下:图2-2 键盘的行号、列号及控制键格式控制键CNTL、SHIFT为单独的开关键。CNTL与其它键连用作特殊命令键,SHIFT可作上、下挡控制键。(2)传感器方式数据输入格式此种方式8位输入数据为RL0RL7的状态。格式如下: D7 D6 D5 D4 D3 D2 D1 D0RL7 RL6 RL5 RL4 RL3 RL2 RL1 RL02.2 74LS138译码器2.2.1 74LS138译码器在本设计中的作用 扫描计数器采用编码工作方式2.2.2 74LS138译码器的功能分析74LS138是3/8译码器,即对3个输入信号进行译码。得到8个输出状态。G1,G2A,G2B,为数据允许输出端,G2A,G2B低电平有效。G1高电平有效。A,B,C为译码信号输出端,Y0Y7为译码输出端,低电平有效。 图2-3 74LS138 图2-4 功能表 2.2.3 74LS138译码器的技术参数 极限值 电源电压-7V 输入电压 74LS138-7V 工作环境温度 74LS138-070 贮存温度- 65150 2.3 74LS2402.3.1 74LS240译码器在本设计中的作用本设计实验中主要是为增加LED的驱动电流2.3.2 74LS240译码器的功能分析74LS240 TTL 八反相三态缓冲器/线驱动器引出端符号: 1A,2A 输入端 , 三态允许端(低电平有效) 1Y8Y 输出端 图2-5 74LS240逻辑图 输入输出AYLLHLHXHLZ表2-5 74LS240功能表2.3.3 74LS240译码器的技术参数 极限值: 电源电压 . 7V 输入电压 . 5.5V 输出高阻态时高电平电压 . 5.5V 工作环境温度 74LS240 . 070 存储温度 . -65150 2.4 小键盘2.4.1 小键盘在本设计中的作用本设计中,小键盘用于输入二进制数字。2.4.2 小键盘的功能分析通常使用的键盘是矩阵结构的。对于44=16个键的键盘,采用矩阵方式只要用8条引线和2个8位端口便完成键盘的连接。如图,这个矩阵分为4行4列,如果键5按下,则第1行和第1列线接通而形成通路。如果第1行线接低电平,则键5的闭合,会使第1列线也输出低电平。矩阵式键盘工作时,就是按行线和列线的电平来识别闭合键的。 图2-5 44键盘矩阵图页:12图编号不对,整篇文章很多处的格式,段落开始的缩进不对,注意修改。行扫描法识别按键的原理如下:先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合。这是通过检查列线电位来实现的,即在第0行接低电平时,看是否有哪条列线变成低电平。如果有某列线变为低电平,则表示第0行和此列线相交位置上的键被按下;如果没有任何一条列线为低电平,则说明第0行没有任何键被按下。此后,再将第1行接低电平,检测是否有变为低电平的列线。如此重复地扫描,直到最后一行。在扫描过程中,当发现某一行有键闭合时,也就是列线输入中有一位为0时,便退出扫描,通过组合行线和列线即可识别此刻按下的是哪一键。实际应用中,一般先快速检查键盘中是否有键按下,然后再确定按键的具体位置。为此,先使所有行线为低,然后检查列线。这时如果列线有一位为0,则说明必有键被按下, 采用扫描法可进一步确定按键的具体位置。2.5 七段LED显示器2.5.1 LED作用LED发光二级管(Light-Emitting Diode),在本设计中采用7段数字发光二级管,做为终端显示。显示数值的输入和结果的显示。本设计中采用共阳极接法。2.5.2 LED功能分析物理构造:LED发光二级管,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。 图2-6 LED结构图数字成像:将七个发光管进行组合,排列成数字图形8,再根据需要控制七个管的亮与灭,即可显示出定义数字。字型A B C Da b c d e f g bpOX00 0 0 01 1 1 1 1 1 0 03f10 0 0 10 1 1 0 0 0 0 00620 0 1 01 1 0 1 1 0 1 05b30 0 1 11 1 1 1 0 0 1 04f40 1 0 00 1 1 0 0 1 1 0 6650 1 0 11 0 1 1 0 1 1 0 6d60 1 1 00 0 1 1 1 1 1 07d70 1 1 11 1 1 0 0 0 0 00781 0 0 01 1 1 1 1 1 1 07f91 0 0 11 1 1 0 0 1 1 06fA1 0 1 01 1 1 0 1 1 1 077B1 0 1 10 0 1 1 1 1 1 0 7cC1 1 0 01 0 0 1 1 1 0 039D1 1 0 10 1 1 1 1 0 1 05eE1 1 1 01 0 0 1 1 1 1 079F1 1 1 11 0 0 0 1 1 1 071表2-6 LED数码表2.5.3 LED技术参数表2-7 LED技术参数表2.6 硬件总逻辑图及其说明 图2-7 硬件接线图图中8279的地址由和A0决定,故数据口地址为7FFEH,命令口地址为7FFFH。所接的16个按键,扫描线接在74HC138的译码输出端和上,当为0(SL2SL1SL0=000)时,扫描第1列按键,当为0(SL2SL1SL0=001)扫描第2列按键,故07号按键的键值为00H07H,815号按键键值为08H0FH。当某一按键被按下后,键值就自动进入缓冲区,当8279内部RAM不空时由INT输出高电平告知CPU取走,故INT连接CPU的中断输入需加一反向器。8279键盘配置最大为88,若要配置64个按键,其它列扫描线可分别连至至上,形成8行8列的按键扫描电路。图中显示部分段选码由8279的OUTA3OUTA0、OUTB3OUTB0通过驱动器74LS240提供,位选码由SL2SL0 经3-8译码器通过驱动器74LS240提供。三、控制程序设计3.1 控制程序设计思路8279是可编程接口芯片,通过编程使其实现相应的功能,编程的过程实际上就是CPU向8279发送控制指令的过程。在软件设计中,显示方式采用了8个字符显示,从左输入方式,编码扫描键盘,双键锁定。由于该系统对实时性及速度要求并不十分高,所以时钟频率采用6M Hz已足够了,故程序时钟命令字取为2AH,用以保证100kHz的内部工作频率。由于采用10ms定时扫描查询方式,所以在下次开始扫描时,先应清空8279,清除显示RAM大约需要160s的时间,在此期间,FIFO状态字的最高位DU=1,表示显示无效,CPU不能显示RAM写入数据,所以清除命令状态字取D1H。CPU对8279的控制是先读回8279的状态字,查看PIFORAM中有无字符,若有将根据字符个数读出所有字符,并进行相应处理;若无,则直接返回。CPU对8279的监视采用查询方式,对8279分配的数据口地址为8000H,状态口地址为8001H,CPU每隔10ms定时中断查询一次,所有显示采用查询段码表的方式实现,简化了程序设计过程,提高了程序质量。3.2 程序流程图 1. 主控程序流程图开始调用地址转化调用8279初始化DI取数据首地址是否有按键按下N按键数加1显示结果AL=6 ?AL与KEYCONT换CALL KEY_NUMAL中是否为加AL是否为减AL是否为乘号AL是否为除AL中大于10ALKEYOUNT,INC ALAL5?重新扫描按键转加法转减法转乘法转除法按键数置0,清除显示清零NNNNYYNNYYNNN 2. 加法程序流程图加法入口NUM首地址DIDI-ALAL乘以10AL+DI中的第二个数AL-BL将第三个数给ALAL乘10加第四个数AL+BL-ALLED_TAB-LEADATA_8279-DXAH=0:10-CLAL除CL: 余数-AHAH-CH显示AL转到FIRST 3. 减法程序流程图减法入口NUM首地址DIDI-ALAL乘以10AL+DI中的第二个数AL-BL将第三个数给ALAL乘10加第四个数AL-BL-ALLED_TAB-LEADATA_8279-DXAH=0:10-CLAL除CL: 余数-AHAH-CH显示AL转到FIRST 4. 乘法程序流程图乘法入口NUM首地址DIDI-ALAL乘以10AL+DI中的第二个数AL-BL将第三个数给ALAL乘10加第四个数AL乘BL-ALLED_TAB-LEADATA_8279-DXAH=0:10-CLAL除CL: 余数-AHAH-CH显示AL转到FIRST 5. 除法程序流程图除法入口NUM首地址DIDI-ALAL乘以10AL+DI中的第二个数AL-BL将第三个数给ALAL乘10加第四个数AL除以BL-ALLED_TAB-LEADATA_8279-DXAH=0:10-CLAL图3-3 主控程序流程图除CL: 余数-AHAH-CH显示AL转到FIRST3.3 控制程序;清除显示CLEAR PROC NEARMOV DX,CMD_8279 ;命令/状态口地址 MOV AL,0DEH;清除命令11011110 (111将全部显示RAM置为FFH,cf=1执行清除命令后,FIFO RAM被置空) OUT DX,AL;送清除命令字到命令字寄存器WAIT1: IN AL,DX TEST AL,80H ;测试显示RAM是否清除完毕(D7=1?)JNZ WAIT1RETCLEAR ENDP;扫描键盘SCAN_KEY PROC NEARMOV DX,CMD_8279;命令/状态口地址IN AL,DX;读取状态字;读FIFO 放入 DATA_8279中READ_FIFO:ANDAL,7 JZ NO_KEY READ:MOV AL,40H;读FIFO RAM命令OUT DX,ALMOV DX,DATA_8279 IN AL,DX STC ;有键CF置1SCAN_KEY1:RETNO_KEY: CLC;无键按下,清CFJMP SCAN_KEY1 SCAN_KEY ENDP;键值转化成键号 控制键SHIFT=1,CNTL=1 键值由行列号确定KEY_NUM PROC NEARAND AL,3FH;键值转化成键号,8位中的后6位RET KEY_NUM ENDPWRITE_DATA PROC NEARPUSH DXMOV DX,DATA_8279 OUT DX,ALPOP DX RETWRITE_DATA ENDPInitPCI PROC NEARMOV AH,00H;清屏MOV AL,03HINT 10HMOV AH,0B1HMOVAL,01HINT1AH ;软中断CMPAH,0JZInitPCI2LEADX,msg0InitPCI1: MOV AH,09H;字符串输出INT21HJMPExitInitPCI2:MOV AH,0B1HMOVAL,02HMOVCX,Device_IDMOVDX,Vendor_IDMOVSI,0INT1AHJNCInitPCI3 ;是否存在Star PCI9052板卡LEADX,msg1JMPInitPCI1InitPCI3:MOVDI,PCIBAR3MOVAH,0B1H MOV AL,09HINT 1AH; 软中断 读取该卡PCI9052基地址JNC InitPCI4LEA DX,msg2JMP InitPCI1InitPCI4:AND CX,0FFFCHMOV IO_Bit8_BaseAddress,CXRETInitPCIENDPModifyAddressPROCNEARADDCMD_8279,CXADDDATA_8279,CXRETModifyAddressENDPExit:MOV AH,4CH ;带返回码结束程序INT 21HEND START四上机调试过程4.1 硬件调试本设计采用八位七段LED显示器、28小键盘、74LS138、74LS240及8279A,LED显示器采用的是共阴极接法,8279A通过74LS 138译码器扩展28键盘、8位显示器,最后通过七段LED显示出相应的数字。将八位七段LED测试完后,都能正常显示,则硬件调试成功。4.2 软件调试写出设计思路,并画出程序流程图;这个步骤很重要,它可以有效的避免或快速的找出编写程序中出现的错误,编写、运行并调试程序。本实验通过小键盘的按键输入与键号相同的十进制数值,利用LED七段显示器循环显示与所按下键相对应的十进制数,编译链接无错误后开始单步调试,找出错误的地方,确保无误后全速运行得出结果。4.3 联机调试 将实验箱总电源开关打开,打开PC机上的集成软件。编译程序、编译通过后,单步调试并观察结果以及各寄存器中值得变化,然后单步连续执行观察按下键与显示数值。出现问题时对程序进行修改,直至出现正确结果。再作全速运行。4.4 调试结果及问题的提出4.4.1 调试中出现的问题1) 全速运行时LED显示器显示全为暗红色8字型?原因:由于指令运行的速度很快,导致新旧数据有重影(前一次显示数据时为亮的二极管没有显示结束,导致新显示的数据看不清楚)。8个数码块全有字符显示后,再按键调用clear子程序清除显示,最后用 in al,dl test al,80h 测试显示RAM是否清除完毕(D7=1?)。2) 程序在输入完两个数值后,按ABCD键即加减乘除却没有结果显示出来?原因:在程序上结构混乱,导致程序调用出现错误,不调用算法子程序,使得结果不显示 。3)其实错误是有好多的,在这里写都写不完。一开始我们用的方案是用8255A,可是那个方案无论我们怎么改动都没有办法实现,方案在老师那已经通过了,可是无论我们怎么检查就是检查不出来错误,硬件上和软件上在老师的帮助下都检查不出来错误。最后不得不放弃。目前为止还是不知道错在哪里。4.4.2调试结果实验调试运行通过后,LED无显示。输入两个两位数,每按一位,在LED低位上

温馨提示

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

评论

0/150

提交评论