微机原理与接口技术课程设计评分系统.docx

上传人:b****4 文档编号:12024478 上传时间:2023-04-16 格式:DOCX 页数:34 大小:139.83KB
下载 相关 举报
微机原理与接口技术课程设计评分系统.docx_第1页
第1页 / 共34页
微机原理与接口技术课程设计评分系统.docx_第2页
第2页 / 共34页
微机原理与接口技术课程设计评分系统.docx_第3页
第3页 / 共34页
微机原理与接口技术课程设计评分系统.docx_第4页
第4页 / 共34页
微机原理与接口技术课程设计评分系统.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术课程设计评分系统.docx

《微机原理与接口技术课程设计评分系统.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计评分系统.docx(34页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术课程设计评分系统.docx

微机原理与接口技术课程设计评分系统

 

课程设计报告

2012—2013学年第一学期

 

课程名称《微机原理与接口技术课程设计》

设计题:

评分系统

学生姓名

学号

专业班级

指导教师

2012年12月29日

 

目录

1设计思路…………………………………………………………………………

1.1硬件部分……………………………………………………………………

1.2软件部分……………………………………………………………………

2硬件设计…………………………………………………………………………

2.1芯片8279………………………………………………………………

2.2芯片LED…………………………………………………………………

2.3小键盘……………………………………………………………………

2.474LS240…………………………………………………………………

2.5硬件总逻辑图及其说明……………………………………………………

3程序流程图………………………………………………………………

3.1流程图…………………………………………………………………………

3.2程序及注释……………………………………………………………………

4总结与展望

参考文献………………………………………………………………………………

附录……………………………………………………………………………………

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显示器作输出设备。

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硬件设计

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)回复缓冲器、键盘去抖动及控制

(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。

在键盘或选通工作方式时,它是FIFORAM,其输入/输出遵循先入后出的原则。

此时,FIFO状态寄存器存放FIFO的工作状态,若FIFO不空,IRQ信号为高电平,向CPU申请中断。

在传感器矩阵方式工作时,该存储器用于存放传感器矩阵中每一个传感器的状态。

在此方式中,若检出传感器发生变化,则IRQ信号变为高电平,向CPU申请中断。

6)显示RAM和显示地址寄存器

显示RAM用于存储显示数据,容量为16×8。

在显示过程中,存储的显示数据轮流从显示寄存器输出。

显示寄存器分为A、B两组,OUTA3~0、OUTB3~0。

它们即可以单独送数,也可以组成一个8位的字,OUTA输出高4位,OUTB输出低4位。

显示寄存器的输出与显示扫描配合,轮流驱动被选中的显示器件,实现稳定的动态显示。

显示地址寄存器用来寄存CPU读/写显示RAM的地址,它可以由命令设定,也可以设置成在每次读出或写入之后自动递增。

2、8279工作方式

1)键盘工作方式

通过命令字可将键盘工作方式设定为双键互锁与N键巡回两种工作方式。

1)双键互锁:

若有两个键或多个键同时按下,8279电路只识别最后一个释放的键,并把键值送入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地址。

4)读显示RAM命令

D7

D6

D5

D4

D3

D2

D1

D0

0

1

1

AI

A

A

A

A

D7、D6、D5是读显示RAM命令的特征位,D4自动递增设定位,D3、D2、D1、D0为显示RAM的存储单元地址。

5)写显示RAM命令

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

AI

A

A

A

A

D7、D6、D5是写显示RAM命令的特征位,D3、D2、D1、D0为写入显示RAM的存储单元地址。

6)显示禁止写入/消隐命令

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

×

IWA

IWB

BLA

BLB

D7、D6、D5是显示禁止写入/消隐命令的特征位,D3、D2为A、B组显示RAM写入屏蔽位,当D3=1时,A组的显示RAM禁止写入,从CPU写入显示RAM数据时,这种情况通常用于双4位显示器,当D2=1时,可屏蔽B组显示器。

D1、D0位A、B组的消隐设置位。

7)清除命令

D7

D6

D5

D4

D3

D2

D1

D0

1

1

0

CD

CD

CD

CF

CA

D7、D6、D5是清除命令的特征位,D4、D3、D2为清除显示RAM方式设定位,D1为置空FIFO存储器设定位,D0为总清楚设定位。

8)结束中断/出错方式设置命令

D7

D6

D5

D4

D3

D2

D1

D0

1

1

1

E

×

×

×

×

D7、D6、D5为111是结束中断/出错方式设置命令的特征位,D4为1时,N键轮回工作方式可工作得特殊出错方式,对传感器工作方式,此命令使IRQ变低,结束中断,并允许对RAM进一步写入。

2.2选择芯片LED

LED在本设计中的作用

显示最后得分,共三块,一块用来显示其整数部分的十位,一块用来显示其整数部分个位,另一块用来显示其小数部分(保留一位小数)。

LED的功能分析

LED显示电路较为简单,成本也较低,在功能单一的仪器仪表与机电设备中应用较广。

但当设备显示的点或位较多时,就需要采用一定的驱动电路与相应的驱动方式。

利用专用接口芯片如8255作为计算机芯片的端口扩展,并通过软件编程加外部驱动实现。

图2-2:

 

表2-11共阳极

数字

Dp

g

f

e

d

c

b

a

二进制编码

0

1

1

0

0

0

0

0

0

C0H

1

1

1

1

1

1

0

0

1

F9H

2

1

0

1

0

0

1

0

0

A4H

3

1

0

1

1

0

0

0

0

B0H

4

1

0

0

1

1

0

0

1

99H

5

1

0

0

1

0

0

1

0

92H

6

1

0

0

0

0

0

1

0

82H

7

1

1

1

1

1

0

0

0

F8H

8

1

0

0

0

0

0

0

0

80H

9

1

0

0

0

0

1

1

0

90H

表2-2.LED显示管段选码编码表

LED数码管的显示方式

(1)静态:

数码管显示过程持续得到信号,与数码管接口的I/O口线为专用。

特点是无闪烁,元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。

(2)动态:

数码管显示过程轮流得到信号,与各数码管接口的I/O口线为共用。

特点是有闪烁,元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂(有多个LED时尤为突出)。

芯片LED的技术参数

芯片LED的技术参数

Pcw

If

Vr

Ir

If

^p

对应型号

散射颜色

BT235-2

70

25

5

≥1.5

≤2.5

200

SEL-10

红色

BT1441529

100

40

5

≥0.5

≤2.5

565

绿色

BT1341529

100

40

5

≥0.5

≤2.5

585

蓝色

消耗功率PM=150mW最大工作电流IFM=100mA正常工作电流IF=40mA

正向压降VF≤1.8V燃亮电压为5v

共阴极LED的PM=300mW,IFM=200mA,IF=60mA,VF≤1.8V,VR≥5V,发红光。

LED的技术参数分析

LED发光二极管的压降一般为1.5-2.0V,其工作电流一般取10-20Ma,发光二极管可应用于直流驱动电路、交流驱动电路和脉冲驱动电路。

2.3小键盘

小键盘在本设计中的作用

评委通过小键盘置数,输入分数。

四个评委各个依次打分,系统读取开关量,再将处理后的数据在LED上显示出来。

图2-3

小键盘的逻辑图

如右图:

2.474LS240芯片引脚及真值表

图2-4

 

2.5硬件总逻辑图及其说明

实验硬件原理图

图2-5实验硬件原理图

说明:

由于实验室设备中很多芯片已经集成,故给连线带来很大方便性,使的连线简单了许多。

8279的RL0~RL7连接4*4键盘,SL0~SL2三位用来74L138的输入,输出的8位作为LED的段选,OUTA0~OUTA3四位作为芯片4511的输入,输出的7位作为LED的位选,8279的数据DB0~DB7与PCI卡的数据线连接,其中A0连接A0,CS连接CS0,读写信号的连接如图。

 

3程序流程图

3.1主程序流程图:

 

 

N

 

Y

Y

N

 

N

Y

 

主程序流程图

 

计算最大,最小值程序:

 

 

处理小数子程序

扫描按键子过程:

 

扫描按键子过程

清除子过程:

 

 

清除子过程

 

3.2程序清单及注释:

8279键盘显示器接口芯片

;1.查询控制方式2.输入时钟2MHZ3.8279内部20分频(100KHZ)

;4.扫描计数器采用编码工作方式(通过外部138译码)

;5.显示按键值,第九次按键,清除显示

;8279查询工作方式

.MODELTINY

PCIBAR3EQU1CH;8位I/O空间基地址(它就是实验仪的基地址,也为DMA&32BITRAM板卡上的8237提供基地址)

Vendor_IDEQU10EBH;厂商ID号

Device_IDEQU8376;设备ID号

.STACK100

.DATA

IO_Bit8_BaseAddressDW?

msg0DB'BIOS不支持访问PCI$'

msg1DB'找不到StarPCI9052板卡$'

msg2DB'读8位I/O空间基地址时出错$'

KEYCOUNTDB?

LED_TABDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,080H,90H,88H,83H,0C6H,0A1H,86H,8EH

CMD_8279DW00B1H;8279命令字、状态字地址

DATA_8279DW00B0H;8279读写数据口的地址

MARKDB8DUP(?

SUMDB0000H;评委总和

TENDB10

FOURDB4

HUNDREDDB100

SUM_1DB0

BUFFERDB8dup(?

FLAGDB0

.CODE

START:

MOVAX,@DATA

MOVDS,AX

CALLInitPCI

NOP

CALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址

START100:

CALLINIT8279;初始化子程序

MOVKEYCOUNT,0

MOVAX,0

MOVSUM,0

LEADI,MARK;获取MARK首地址

START1:

CALLIfExit;判断是否有键盘输入

JZSTART12

JMPExit

START12:

CALLSCAN_KEY;键扫描

JNCSTART1;没有按键

CALLIfStart;判断是否开始

START11:

CALLSCAN_KEY;数据录入

JNCSTART11

XCHGAL,KEYCOUNT

INCAL

CMPAL,9

JNZSTART2

MOVKEYCOUNT,0

CALLINIT8279_1

MOVCX,4

MOVSI,0

ANDAH,0

CALLINIT8279

LOOP_1:

MOVAL,MARK[SI]

MOVBUFFER[SI],AL

MULTEN

ADDSUM,AL

INCSI

MOVAL,0

ADDAL,MARK[SI]

MOVBUFFER[SI],AL

ADDSUM,AL

INCSI

LOOPLOOP_1

CALLBIJIAO_1

LOOP_2:

MOVAX,0

MOVAL,SUM

DIVFOUR

CALLSHOW

START200:

CALLSCAN_KEY

JNCSTART200

CMPAL,0CFH

JNESTART2

JMPSTART100

START2:

XCHGAL,KEYCOUNT

CALLKEY_NUM;键值转换为键号

STOSB

PUSHAX

XCHGAL,KEYCOUNT

TESTAL,01H

JZGEWEI

XCHGAL,KEYCOUNT

MULTEN

MOVSUM_1,AL

POPAX

JMPSHOW_4

GEWEI:

XCHGAL,KEYCOUNT

ADDSUM_1,AL

CMPAL,9

JAQINGCHU

CMPSUM_1,10

POPAX

JAQINGCHU

JMPSHOW_4

QINGCHU:

CALLINIT8279_1

MOVAL,0EH

XLAT

CALLWRITE_DATA

LURU:

CALLSCAN_KEY

JNCLURU

JMPSTART100

CMPAL,0CFH

JNELURU

JMPSTART100

SHOW_4:

LEABX,LED_TAB;字型码表

XLAT

CALLWRITE_DATA

JMPSTART11

START_EXIT:

JMP$

BIJIAO_1PROCNEAR

MOVDX,0

MOVCX,4

MOVSI,0

MOVFLAG,0

BIJIAO_3:

CMPBUFFER[SI],1

JZBIJIAO_2

BIJIAO_32:

ADDSI,2

LOOPBIJIAO_3

MOVAL,0

MOVAL,FLAG

CMPAL,4

JZBIJIAO_31

CMPAL,0

JNZBIJIAO_4

MOVDH,BUFFER[0]

MOVDL,BUFFER[1]

MOVCX,3

MOVSI,2

BIJIAO_6:

MOVAH,BUFFER[SI];求最大值

MOVAL,BUFFER[SI+1]

CMPDX,AX

JBBIJIAO_61

BIJIAO_62

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

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1