1、微机原理与接口技术课程设计 评分系统课程设计报告2012 2013学年第 一 学期课程名称微机原理与接口技术课程设计 设计题:评分系统 学生姓名 学 号 专业班级 指导教师 2012年12月 29日 目 录1 设计思路 1.1 硬件部分 1.2 软件部分2 硬件设计 2.1 芯片8279 2.2 芯片LED 2.3 小键盘 2.4 74LS240 2.5 硬件总逻辑图及其说明3 程序流程图 3.1流程图 3.2程序及注释4 总结与展望参考文献附录1设计题目:评分系统设计要求: 用8086系统的接口芯片, 设计一个四个评委使用的评分系统,最高得分10分,编程求其平均得分,并显示其最后得分。设计目
2、的: 评委们接到打分指令后即可为选手输入分数接收所有评委的打分,数据进行处理,求出平均分。设计方案: 基于以上问题分析此评分系统是由四个评委组成的一个评分系统。对每位评委给出的分数进行累加,并求出平均分。评委分数范围是010的整数,将4位评委给出的分数累加,由于最高分为10分,则用4位二进制就可以表示每位评委的分数,用8279的RL0RL7八位连接小键盘,将评委的分数保存到8279的缓冲寄存器中,可同时将4位评委的分数同时输入。对求得平均分进行分析,将4位评委累加后除以4即得到平均分数,除以4后将会出现小数部分如:0.0、0.25、0.50、0.75这4种情况,要将最后得分显示在LED上,就要
3、用4个LED显示,其中第二个LED存在小数点,故用八段LED显示,3个显示要分别进行输出,通过位选码对每一位的显示进行控制,还要通过段选码对每一个LED的每一段进行控制。这样,就能将整个最后得分显示出来了,还要考虑在显示后一位时前一位会不会消失的情况。以上四个问题解决可以用硬件完成,而数据处理部分需由软件来完成。1.1 硬件部分问题(1)可以利用小键盘上的任意一位输入或逻辑开关的一位来实现。问题(2)评委可通过很多设备进行数据输入,如小键盘、逻辑开关等,小键盘做输入设备其电路简单,但对其编程接受输入数据相对复杂。逻辑开关的电路相对复杂,但编程接受输入数据的程序简单,且兼于实验室设备,故选择小键
4、盘作为输入设备。输入数据会很方便。问题(4)输出设备既可用发光二极管也可用LED显示器,但相对于前者,后者对结果的显示一目了然,故本设计选择LED显示器作输出设备。1.2 软件部分 (1)读数据程序:采用小键盘与8279芯片相结合,故可8279的相应端口进行合适的参数设置,数据端口地址为0B0H,控制端口的地址为0B1H。RL0RL7八位中最高位作为指令开关。(2)数据处理:每次读数据累加求和,并取数据整数和小数部分,从OUTA0OUTA3输出到LED显示器.当四个评委均输入完毕,将累加和采用逻辑右移2位的方式求平均分.在计算输入的时候,用两位输入来控制一位数的输入,将AL的值赋给中间变量TE
5、MP,然后将TEMP*10,然后累加,求出输入的数,进行和的累加。(3)数据输出:平均分整数和小数部分分别输出到LED.分析整数0-40之间的数除以4的小数部分, 平均分处理方法,(也可采用四舍五入的方法保留一位小数)。 表1-1:小数部分的求解方法见下表:十进制和二进制和右移二位平均值十进制整数二进制整数小数部分00000001100.2500321000.500531100.75008410011110510111.25113611011.5115711111.7511881000102210091001102.252103十进制和二进制和右移二位平均值十进制整数二进制整数小数部分1010
6、10102.52105111011102.752108151111113.2531132010100101551010351000114010100010101010101002 硬件设计2.1 选择芯片8279芯片8279在本设计中的作用8279连接4*4的键盘及8位显示器的电路,即可显示按下键对应的键值。芯片8279的功能分析8279内部逻辑框图 INTEL8279是一种通用可编程键盘/显示接口芯片,它能同时完成键盘输入和显示控制两种功能。键盘接口电路可最多控制64个按键或传感器组成的阵列,可自动消除开关抖动、自动识别键码并具有多键同时按下保护功能。显示接口电路采用自动扫描方式工作,最多可
7、连接16位LED显示器。采用该芯片设计键盘与显示接口电路可简化程序,从而减少CPU运行时间,提高工作效率。】1、8279内部结构及基本工作原理1)数据缓冲器及I/O控制 数据缓冲器为双向缓冲器,连接内、外总线,用于传送CPU和8279之间的命令或数据。I/O控制线实现CPU对8279内部各种寄存器、缓冲器读写数据和读写控制命令进行控制。2)控制与定时寄存器及定时控制 控制与定时寄存器用于寄存键盘及显示工作方式控制字以及其它操作方式控制字。该寄存器接收并锁存CPU送来的命令,然后通过译码产生相应的控制信号,从而完成相应的控制功能。定时与控制电路由N个基本计数器组成,其中,第一个计数器是一个可编程
8、N级分频器,N可由软件编程在231间取值。该分频器将外部时钟CLK分频得到内部所需的100kHz时钟,再经分频为键盘提供适当的扫描频率和显示时间。 3)扫描计数器该电路为键盘和显示器提供扫描信号,有两种工作方式:编码方式和译码方式。按编码方式工作时,计数器进行二进制计数并由扫描线SL0SL3输出,经外部译码器译码后,为键盘和显示器提供扫描信号。按译码方式工作时,扫描计数器的最低两位被译码后,从SL0SL3输出,提供了4选1的扫描译码。4)回复缓冲器、键盘去抖动及控制 (1)在键盘工作方式中,从SL0SL3送出的扫描信号,将会去扫描键盘,如有按键被按下时,去抖电路被置位,延时等待10ms后,再检
9、查该键是否仍处在闭合状态。若不闭合,则视作干扰信号;若仍闭合,则将该键的地址和附加的移位、控制状态一起形成键盘数据送入8279内部的FIFO(先入先出)存储器,数据格式如下: 表2-1 D7D6D5D4D3D2D1D0控制移位扫描回复(2)在传感器开关状态矩阵方式中,回复线的内容直接被送往相应的传感器RAM(即FIFO存储器)中。(3)在选通输入方式工作时,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO存储器。5)FIFO/传感器RAM及其状态寄存器FIFO/传感器RAM是一个双重功能的88位RAM。在键盘或选通工作方式时,它是FIFO RAM,其输入/输出遵循先入后出的原则。此时
10、,FIFO状态寄存器存放FIFO的工作状态,若FIFO不空,IRQ信号为高电平,向CPU申请中断。在传感器矩阵方式工作时,该存储器用于存放传感器矩阵中每一个传感器的状态。在此方式中,若检出传感器发生变化,则IRQ信号变为高电平,向CPU申请中断。6)显示RAM和显示地址寄存器显示RAM用于存储显示数据,容量为168。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组,OUTA30、OUTB30。它们即可以单独送数,也可以组成一个8位的字,OUT A输出高4位,OUTB输出低4位。显示寄存器的输出与显示扫描配合,轮流驱动被选中的显示器件,实现稳定的动态显示。显示地址寄存器
11、用来寄存CPU读/写显示RAM的地址,它可以由命令设定,也可以设置成在每次读出或写入之后自动递增。2、8279工作方式 1)键盘工作方式通过命令字可将键盘工作方式设定为双键互锁与N键巡回两种工作方式。1)双键互锁:若有两个键或多个键同时按下,8279电路只识别最后一个释放的键,并把键值送入FIFO/传感器RAM中。2)N键巡回:若有多个按键同时按下时,键盘扫描将各键键值依按下顺序依次存入FIFO/传感器RAM中。2)显示器工作方式通过设置键盘/显示命令字和写显示RAM命令字,显示数据写入显示缓冲器时可置为左端送入和右端送入两种方式。左端送入为依次填入方式,右端送入为移入方式。3)传感器矩阵方式
12、 通过设置读FIFO/传感器命令字,8279可工作于传感器矩阵方式,此时传感器的开关状态直接送到传感器RAM。CPU对传感器阵列扫描时,如果检测到某个传感器状态发生变化,则产生中断请求信号IRQ。3、8279命令字1)键盘/显示方式设置命令 表D7D6D5D4D3D2D1D0000DDKKK D7、D6、D5是方式设置的特征位。D4、D3为显示方式设定位,D2、D1、D0位键盘/显示工作方式设定位。2)时钟编程命令 表D7D6D5D4D3D2D1D0001PPPPPD7、D6、D5是时钟编程命令的特征位,D4、D3、D2、D1用于设定对CLK输入端输入的外部时钟信号进行分频的分频系数N。3)读
13、FIFO/传感器RAM命令 表D7D6D5D4D3D2D1D0010AIAAAD7、D6、D5是读FIFO/传感器RAM命令的特征位,D4自动递增设置位,D2、D1、D0为FIFO/传感器RAM地址。4)读显示RAM命令 表D7D6D5D4D3D2D1D0011AIAAAAD7、D6、D5是读显示RAM命令的特征位,D4自动递增设定位,D3、D2、D1、D0为显示RAM的存储单元地址。5)写显示RAM命令 表D7D6D5D4D3D2D1D0100AIAAAAD7、D6、D5是写显示RAM命令的特征位,D3、D2、D1、D0为写入显示RAM的存储单元地址。6)显示禁止写入/消隐命令 表D7D6D
14、5D4D3D2D1D0101IWAIWBBLABLBD7、D6、D5是显示禁止写入/消隐命令的特征位,D3、D2为A、B组显示RAM写入屏蔽位,当D3=1时,A组的显示RAM禁止写入,从CPU写入显示RAM数据时,这种情况通常用于双4位显示器,当D2=1时,可屏蔽B组显示器。D1、D0位A 、B组的消隐设置位。7)清除命令 表D7D6D5D4D3D2D1D0110CDCDCDCFCAD7、D6、D5是清除命令的特征位,D4、D3、D2为清除显示RAM方式设定位,D1为置空FIFO存储器设定位,D0为总清楚设定位。8)结束中断/出错方式设置命令 表D7D6D5D4D3D2D1D0111ED7、D
15、6、D5为111是结束中断/出错方式设置命令的特征位,D4为1时,N键轮回工作方式可工作得特殊出错方式,对传感器工作方式,此命令使IRQ变低,结束中断,并允许对RAM进一步写入。2.2 选择芯片LEDLED在本设计中的作用显示最后得分,共三块,一块用来显示其整数部分的十位,一块用来显示其整数部分个位,另一块用来显示其小数部分(保留一位小数)。LED的功能分析LED显示电路较为简单,成本也较低,在功能单一的仪器仪表与机电设备中应用较广。但当设备显示的点或位较多时,就需要采用一定的驱动电路与相应的驱动方式。利用专用接口芯片如8255作为计算机芯片的端口扩展,并通过软件编程加外部驱动实现。图2-2:
16、表2-11共阳极数字Dpgfedcba二进制编码011000000C0H111111001F9H 210100100A4H310110000B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91000011090H表2-2. LED显示管段选码编码表LED数码管的显示方式(1)静态:数码管显示过程持续得到信号,与数码管接口的I/O口线为专用。特点是无闪烁,元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。(2)动态:数码管显示过程轮流得到信号,与各数码管接口的I/O口线为共用。特点是有闪烁,元器件少,占I/O
17、线少,必须扫描,花费CPU时间,编程复杂 (有多个LED时尤为突出)。芯片LED的技术参数 芯片LED的技术参数PcwIfVrIrIfp对应型号散射颜色BT2352702551.52.5200SEL-10红色BT14415291004050.52.5565绿色BT13415291004050.52.5585蓝色消耗功率 PM150mW 最大工作电流 IFM100mA 正常工作电流 IF40mA 正向压降 VF 1.8V 燃亮电压为5v共阴极LED的PM300mW,IFM200 mA,IF60mA,VF 1.8V,VR5V,发红光。LED的技术参数分析LED发光二极管的压降一般为1.5-2.0V
18、,其工作电流一般取10-20Ma,发光二极管可应用于直流驱动电路、交流驱动电路和脉冲驱动电路。2.3 小键盘小键盘在本设计中的作用评委通过小键盘置数,输入分数。四个评委各个依次打分,系统读取开关量,再将处理后的数据在LED上显示出来。 图2-3小键盘的逻辑图 如右图: 2.4 74LS240芯片引脚及真值表图2-42.5 硬件总逻辑图及其说明实验硬件原理图图 2-5 实验硬件原理图说明:由于实验室设备中很多芯片已经集成,故给连线带来很大方便性,使的连线简单了许多。8279的RL0RL7连接4*4键盘,SL0SL2三位用来74L138的输入,输出的8位作为LED的段选,OUTA0OUTA3四位作
19、为芯片4511的输入,输出的7位作为LED的位选,8279的数据DB0DB7与PCI卡的数据线连接,其中A0连接A0,CS连接CS0,读写信号的连接如图。 3 程序流程图3.1 主程序流程图: N Y Y NN Y 主程序流程图计算最大,最小值程序:处理小数子程序扫描按键子过程: 扫描按键子过程清除子过程:清除子过程 3.2程序清单及注释: 8279 键盘显示器接口芯片;1.查询控制方式 2.输入时钟2MHZ 3.8279内部20分频(100KHZ) ;4.扫描计数器采用编码工作方式(通过外部138译码);5.显示按键值,第九次按键,清除显示; 8279 查询工作方式 .MODEL TINYP
20、CIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_ID EQU 10EBH ;厂商ID号Device_ID EQU 8376 ;设备ID号 .STACK 100 .DATAIO_Bit8_BaseAddress DW ?msg0 DB BIOS不支持访问PCI $msg1 DB 找不到Star PCI9052板卡 $msg2 DB 读8位I/O空间基地址时出错$KEYCOUNT DB ?LED_TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,080H,
21、90H,88H,83H,0C6H,0A1H,86H,8EHCMD_8279 DW 00B1H ;8279命令字、状态字地址DATA_8279 DW 00B0H ;8279读写数据口的地址MARK DB 8 DUP(?)SUM DB 0000H ;评委总和TEN DB 10FOUR DB 4HUNDRED DB 100SUM_1 DB 0BUFFER DB 8 dup(?)FLAG DB 0 .CODESTART: MOV AX,DATA MOV DS,AX CALL InitPCI NOP CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址START100:
22、 CALL INIT8279 ;初始化子程序 MOV KEYCOUNT,0 MOV AX,0 MOV SUM,0 LEA DI,MARK ;获取MARK首地址START1: CALL IfExit ;判断是否有键盘输入 JZ START12 JMP ExitSTART12: CALL SCAN_KEY ;键扫描 JNC START1 ;没有按键 CALL IfStart ;判断是否开始START11: CALL SCAN_KEY ;数据录入 JNC START11 XCHG AL,KEYCOUNT INC AL CMP AL,9 JNZ START2 MOV KEYCOUNT,0 CALL I
23、NIT8279_1 MOV CX,4 MOV SI,0 AND AH,0 CALL INIT8279LOOP_1: MOV AL,MARKSI MOV BUFFERSI,AL MUL TEN ADD SUM,AL INC SI MOV AL,0 ADD AL,MARKSI MOV BUFFERSI,AL ADD SUM,AL INC SI LOOP LOOP_1 CALL BIJIAO_1LOOP_2: MOV AX,0 MOV AL,SUM DIV FOUR CALL SHOWSTART200: CALL SCAN_KEY JNC START200 CMP AL,0CFH JNE START
24、2 JMP START100START2: XCHG AL,KEYCOUNT CALL KEY_NUM ;键值转换为键号 STOSB PUSH AX XCHG AL,KEYCOUNT TEST AL,01H JZ GEWEI XCHG AL,KEYCOUNT MUL TEN MOV SUM_1,AL POP AX JMP SHOW_4 GEWEI: XCHG AL,KEYCOUNT ADD SUM_1,AL CMP AL,9 JA QINGCHU CMP SUM_1,10 POP AX JA QINGCHU JMP SHOW_4QINGCHU: CALL INIT8279_1 MOV AL,0
25、EH XLAT CALL WRITE_DATALURU: CALL SCAN_KEY JNC LURU JMP START100 CMP AL,0CFH JNE LURU JMP START100SHOW_4: LEA BX,LED_TAB ;字型码表 XLAT CALL WRITE_DATA JMP START11START_EXIT: JMP $BIJIAO_1 PROC NEAR MOV DX,0 MOV CX,4 MOV SI,0 MOV FLAG,0BIJIAO_3: CMP BUFFERSI,1 JZ BIJIAO_2BIJIAO_32: ADD SI,2 LOOP BIJIAO_3 MOV AL,0 MOV AL,FLAG CMP AL,4 JZ BIJIAO_31 CMP AL,0 JNZ BIJIAO_4 MOV DH,BUFFER0 MOV DL,BUFFER1 MOV CX,3 MOV SI,2BIJIAO_6: MOV AH,BUFFERSI ;求最大值 MOV AL,BUFFERSI+1 CMP DX,AX JB BIJIAO_61BIJIAO_62
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1