微机原理与接口技术课程设计 评分系统
- 格式:docx
- 大小:101.38 KB
- 文档页数:24
1
课程设计报告
2012— 2013学年第 一 学期
课程名称《微机原理与接口技术课程设计》
2 设计题:评分系统
学生姓名
学 号
专业班级
指导教师
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 总结与展望
参考文献………………………………………………………………………………
附录…………………………………………………………………………………… 3
1设计题目:评分系统
设计要求: 用8086系统的接口芯片, 设计一个四个评委使用的评分系统,最高得分10分,编程求其平均得分,并显示其最后得分。
设计目的: 评委们接到打分指令后即可为选手输入分数接收所有评委的打分,数据进行处理,求出平均分。
设计方案: 基于以上问题分析此评分系统是由四个评委组成的一个评分系统。对每位评委给出的分数进行累加,并求出平均分。
评委分数范围是0~~10的整数,将4位评委给出的分数累加,由于最高分为10分,则用4位二进制就可以表示每位评委的分数,用8279的RL0~RL7八位连接小键盘,将评委的分数保存到8279的缓冲寄存器中,可同时将4位评委的分数同时输入。
对求得平均分进行分析,将4位评委累加后除以4即得到平均分数,除以4后将会出现小数部分如:0.0、0.25、0.50、0.75这4种情况,要将最后得分显示在LED上,就要用4个LED显示,其中第二个LED存在小数点,故用八段LED显示,3个显示要分别进行输出,通过位选码对每一位的显示进行控制,还要通过段选码对每一个LED的每一段进行控制。这样,就能将整个最后得分显示出来了,还要考虑在显示后一位时前一位会不会消失的情况。
以上四个问题解决可以用硬件完成,而数据处理部分需由软件来完成。
1.1 硬件部分
问题(1)可以利用小键盘上的任意一位输入或逻辑开关的一位来实现。
问题(2)评委可通过很多设备进行数据输入,如小键盘、逻辑开关等,小键盘做输入设备其电路简单,但对其编程接受输入数据相对复杂。逻辑开关的电路相对复杂,但编程接受输入数据的程序简单,且兼于实验室设备,故选择小键盘作为输入设备。输入数据会很方便。
问题(4)输出设备既可用发光二极管也可用LED显示器,但相对于前者,后者对结果的显示一目了然,故本设计选择LED显示器作输出设备。 4 1.2 软件部分
(1)读数据程序:采用小键盘与8279芯片相结合,故可8279的相应端口进行合适的参数设置,数据端口地址为0B0H,控制端口的地址为0B1H。RL0~RL7八位中最高位作为指令开关。
(2)数据处理:每次读数据累加求和,并取数据整数和小数部分,从OUTA0~OUTA3输出到LED显示器.当四个评委均输入完毕,将累加和采用逻辑右移2位的方式求平均分.在计算输入的时候,用两位输入来控制一位数的输入,将AL的值赋给中间变量TEMP,然后将TEMP*10,然后累加,求出输入的数,进行和的累加。
(3)数据输出:平均分整数和小数部分分别输出到LED.分析整数0-40之间的数除以4的小数部分, 平均分处理方法,(也可采用四舍五入的方法保留一位小数)。
表1-1:小数部分的求解方法见下表:
十进制和 二进制和 右移二位 平均值 十进制整数 二进制整数 小数部分 0 0 0 0 0 0 0
1 1 0 0.25 0 0 3
2 10 0 0.5 0 0 5
3 11 0 0.75 0 0 8
4 100 1 1 1 1 0
5 101 1 1.25 1 1 3
6 110 1 1.5 1 1 5
7 111 1 1.75 1 1 8
8 1000 10 2 2 10 0
9 1001 10 2.25 2 10 3
十进制二进制和 右移二平均值 十进制二进制小数部10 1010 10 2.5 2 10 5
11 1011 10 2.75 2 10 8
……
15 1111 11 3.25 3 11 3
……
20 10100 101 5 5 101 0
……
35 100011
……
40 101000 1010 10 10 1010 0
2 硬件设计 5 2.1 选择芯片8279
芯片8279在本设计中的作用
8279连接4*4的键盘及8位显示器的电路,即可显示按下键对应的键值。
芯片8279的功能分析
8279内部逻辑框图
INTEL8279是一种通用可编程键盘/显示接口芯片,它能同时完成键盘输入和显示控制两种功能。键盘接口电路可最多控制64个按键或传感器组成的阵列,可自动消除开关抖动、自动识别键码并具有多键同时按下保护功能。显示接口电路采用自动扫描方式工作,最多可连接16位LED显示器。采用该芯片设计键盘与显示接口电路可简化程序,从而减少CPU运行时间,提高工作效率。】
1、8279内部结构及基本工作原理
1)数据缓冲器及I/O控制
数据缓冲器为双向缓冲器,连接内、外总线,用于传送CPU和8279之间的命令或数据。I/O控制线实现CPU对8279内部各种寄存器、缓冲器读写数据和读写控制命令进行控制。
2)控制与定时寄存器及定时控制
控制与定时寄存器用于寄存键盘及显示工作方式控制字以及其它操作方式控制字。该寄存器接收并锁存CPU送来的命令,然后通过译码产生相应的控制信号,从而完成相应的控制功能。定时与控制电路由N个基本计数器组成,其中,第一个计数器是一个可编程N级分频器,N可由软件编程在2~31间取值。该分频器将外部时钟CLK分频得到内部所需的100kHz时钟,再经分频为键盘提供适当的扫描频率和显示时间。
3)扫描计数器
该电路为键盘和显示器提供扫描信号,有两种工作方式:编码方式和译码方式。按编码方式工作时,计数器进行二进制计数并由扫描线SL0~SL3输出,经外部译码器译码后,为键盘和显示器提供扫描信号。按译码方式工作时,扫描计数器的最低两位被译码后,从SL0~SL3输出,提供了4选1的扫描译码。
4)回复缓冲器、键盘去抖动及控制 6 (1)在键盘工作方式中,从SL0~SL3送出的扫描信号,将会去扫描键盘,如有按键被按下时,去抖电路被置位,延时等待10ms后,再检查该键是否仍处在闭合状态。若不闭合,则视作干扰信号;若仍闭合,则将该键的地址和附加的移位、控制状态一起形成键盘数据送入8279内部的FIFO(先入先出)存储器,数据格式如下:
表2-1
D7 D6 D5 D4 D3 D2 D1 D0
控制 移位 扫描 回复
(2)在传感器开关状态矩阵方式中,回复线的内容直接被送往相应的
传感器RAM(即FIFO存储器)中。
(3)在选通输入方式工作时,回复线的内容在CNTL/STB线的脉冲上升沿被送入FIFO存储器。
5)FIFO/传感器RAM及其状态寄存器
FIFO/传感器RAM是一个双重功能的8×8位RAM。在键盘或选通工作方式时,它是FIFO RAM,其输入/输出遵循先入后出的原则。此时,FIFO状态寄存器存放FIFO的工作状态,若FIFO不空,IRQ信号为高电平,向CPU申请中断。
在传感器矩阵方式工作时,该存储器用于存放传感器矩阵中每一个传感器的状态。在此方式中,若检出传感器发生变化,则IRQ信号变为高电平,向CPU申请中断。
6)显示RAM和显示地址寄存器
显示RAM用于存储显示数据,容量为16×8。在显示过程中,存储的显示数据轮流从显示寄存器输出。显示寄存器分为A、B两组,OUTA3~0、OUTB3~0。它们即可以单独送数,也可以组成一个8位的字,OUT A输出高4位,OUTB输出低4位。显示寄存器的输出与显示扫描配合,轮流驱动被选中的显示器件,实现稳定的动态显示。
显示地址寄存器用来寄存CPU读/写显示RAM的地址,它可以由命令设定,也可以设置成在每次读出或写入之后自动递增。
2、8279工作方式
1)键盘工作方式
通过命令字可将键盘工作方式设定为双键互锁与N键巡回两种工作方式。
1)双键互锁:若有两个键或多个键同时按下,8279电路只识别最后一个释放 7 的键,并把键值送入FIFO/传感器RAM中。
2)N键巡回:若有多个按键同时按下时,键盘扫描将各键键值依按下顺序依次存入FIFO/传感器RAM中。
2)显示器工作方式
通过设置键盘/显示命令字和写显示RAM命令字,显示数据写入显示缓冲器时可置为左端送入和右端送入两种方式。左端送入为依次填入方式,右端送入为移入方式。
3)传感器矩阵方式
通过设置读FIFO/传感器命令字,8279可工作于传感器矩阵方式,此时传感器的开关状态直接送到传感器RAM。CPU对传感器阵列扫描时,如果
检测到某个传感器状态发生变化,则产生中断请求信号IRQ。
3、8279命令字
1)键盘/显示方式设置命令
表
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 D D K K K
D7、D6、D5是方式设置的特征位。D4、D3为显示方式设定位,D2、D1、D0位键盘/显示工作方式设定位。
2)时钟编程命令
表
D7 D6 D5 D4 D3 D2 D1 D0
0 0 1 P P P P P
D7、D6、D5是时钟编程命令的特征位,D4、D3、D2、D1用于设定对CLK输入端输入的外部时钟信号进行分频的分频系数N。
3)读FIFO/传感器RAM命令
表
D7 D6 D5 D4 D3 D2 D1 D0
0 1 0 AI × A A
A
D7、D6、D5是读FIFO/传感器RAM命令的特征位,D4自动递增设置位,D2、D1、D0为FIFO/传感器RAM地址。