竞赛抢答器微机原理课程设计Word文件下载.docx
《竞赛抢答器微机原理课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《竞赛抢答器微机原理课程设计Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
![竞赛抢答器微机原理课程设计Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/1/4affb9a7-286a-4045-bfa4-2c4124985a92/4affb9a7-286a-4045-bfa4-2c4124985a921.gif)
[4]周国祥,《微机原理与接口技术》,中国科学技术大学出版社
[5]康华光,《电子技术基础数字部分》,高等教育出版社
[6]潘峰,《微机原理与汇编语言》,电子工业出版社
审查意见
指导教师签字:
教研室主任签字:
年月日
信息科学与工程学院课程设计成绩评价表
课程名称:
微机原理课程设计
设计题目:
竞赛抢答器
专业:
计算机科学与工程学院班级:
姓名:
学号:
2
序号
评审项目
分数
满分标准说明
1
内容
思路清晰;
语言表达准确,概念清楚,论点正确;
实验方法科学,分析归纳合理;
结论严谨,设计有应用价值。
任务饱满,做了大量的工作。
(20分)
创新
内容新颖,题目能反映新技术,对前人工作有改进或突破,或有独特见解。
(10分)
3
完整性、实用性
整体构思合理,理论依据充分,设计完整,实用性强(10分)
4
数据准确、可靠
数据准确,公式推导正确(10分)
5
规范性
设计格式、绘图、图纸、实验数据、标准的运用等符合有关标准和规定(10分)
6
纪律性
能很好的遵守各项纪律,设计过程认真(20分)
7
答辩
准备工作充分,回答问题有理论依据,基本概念清楚。
主要问题回答简明准确。
在规定的时间内作完报告。
总分
综
合
意
见
指导教师年月日
竞赛抢答器
摘要
随着我国经济和文化事业的发展,当今的社会竞争日益激烈,在很多竞争场合要求有快速公正的竞争裁决,例如证券,股票交易,选拔人才,评选优胜及各种智力竞赛等。
抢答器在我们的生活中应用的非常广泛,特别是在一些智力抢答比赛中,抢答器的应用显得尤为重要。
本次的课程设计我们将深入探讨抢答器的工作原理及软件和硬件的实现方法。
关键字:
抢答器数码管硬件图软件编程
1设计目的
1)了解微机化竞赛抢答器的基本原理。
2)进一步学习使用并行接口
2设计要求
逻辑开关K0~K7代表竞赛抢答按钮0~7号,当某个
逻辑电平开关置“1”时,相当某组抢答按钮按下。
在七段数码管上将其组号显示出来,并使微机扬声器响一下。
设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。
3主要器件
1)8255A接口芯片:
用来实现数据的输入及输出显示
2)74LS244锁存器:
用来锁存数据
3)七段数码管:
用来显示抢答小组的的组号
4)逻辑开关:
用于各个小组进行抢答
48255的基本介绍和控制方式的选择
Intel8086/8088系列的可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号8255(改进型为8255A及8255A-5),具有24条输入/输出引脚,可编程的通用并行输入/输出接口电路。
它是一片使用单个——+5V
电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。
8255A在使用前要写入一个方式控制字,选择A,B,C三个端口各自的工作方式,共三种:
方式0:
基本的输入输出方式,及无需联络就可以直接进行的I/0方式。
其中A,
B,C口的高四位或低四位可分别设置成输入或输出。
方式1:
选通I/O,此时接口与外围设备需联络信号进行协调,只有A口和B口
可以工作在方式1,此时C口的某些线被规定为A口或B口与外围设备
的联络信号,雨下的线只有基本的I/O功能,即只工作在方式0.
方式2:
双向I/O方式,只有A口可以工作在这种方式,该I/O线既可输入又可输出,此时C口有五条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起作为方式0的I/O线。
8255A是一个并行输入,输出器件,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口,PB口,PC口,又可分为2组12位的I/O口:
A组包括A口和C口高四位,B组包括B口及C组的低四位。
D7
D6D5
D4
D3
D2
D1
D0
A口
C口高四位
B口
C口低四位
00方式0
01方式1
0x方式2
0输出
1输入
1输入
0方式0
1方式1
D7:
标志位
D6-D5:
端口A方式选择(0-2)
D4:
端口A输入输出方式
D3:
端口C高四位输入输出选择
D2:
端口B方式选择(0-1)
D1:
端口B输入输出选择
D0:
端口C低四位输入输出选择
使用8255A前必须根据CPU类型进行数据线连接如果使用8088CPU则需将8位数据线与8255A数据线连接,如果是8086CPU则需将8255A数据线与CPU数据线的低八位连接,进行操作时必须使用偶地址。
因为本课题不需要中断,只是单独PC口的输入和PS口的输出,故选择PA口的方式0并定义为输出,PC口定义为输入模式。
PB端口未使用设为默认输出端口。
所以控制字为10001001B=89H
574LS244
74LS244为3态8位缓冲器,一般用作总线驱动器。
74LS244没有锁存的功能。
地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。
8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。
它主要用于三态输出,作为地址驱动器、时钟驱动器、总线驱动器和定向发送器等。
74Ls244真值表示:
L表示低电平,H表示高电平,X表示不定状态,Z表示高阻态
6数码管显示
LED的管脚
h,g,f,e,d,c,b,a
对应的字形
对应存放在内存单元的字形码
11111001
10100100
10110000
10011001
10010010
11100010
11111000
10000000
1
2
3
4
5
6
7
8
0f9H
0a4H
0b0H
99H
92H
82H
0f8H
80H
h,g,f,e,d,c,b,a
对应的字形
01110111
00111100
00111001
01011110
01111001
01110001
01000000
01110011
A
B
C
D
E
F
-
P
77H
3cH
39H
5eH
79H
71H
40H
73H
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳极数码管是指将所有发光二极管的阳极接到一起,形成公共阳极(COM)的数码管。
共阳极数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高点平时,相应字段就不亮。
共阴数码管是指将所有发光二极管的阴极接到一起,形成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到底线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为低电平时,相应字段就不亮。
7硬件连接电路图
8流程图
9程序
datasegment
io8255aequ288h;
写端口A
io8255cequ28ah;
写端口C
io8255ctequ28bh;
写方式控制字
leddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h;
数码表1对应0~7
;
leddb77h,7ch,39h,5eh,79h,71h,40h,73h
数码表2对应A,b,C,d,E,F,-,P
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
初始化8255芯片
movdx,io8255ct;
设8255为A口输出,C口输入
movax,89h;
方式控制字为10001001B,方式0
outdx,al;
将al输出到io8255b,即地址28bh
从8255的端口C读取信息
movbx,offsetled;
使BX指向段码管首址
sss:
movdx,io8255c;
地址28ah
inal,dx;
从8255的C口io8255c输入数据
oral,al;
判断al是否为0
jesss;
若al为0,则表明无键按下,转sss
若有键按下,即有人抢答
movdl,06h;
输出ACK字符,作为计数
movah,02
int21h
判断是哪位按键按下
movcl,0ffh;
cl作计数器,初值为-1,-1补码为11111111B
rr:
shral,1;
al逻辑右移一位,最高位补0,最低位进入CF
inccl;
cl+1
jncrr;
若无进位,即CF=0,此次移位前最低位为0,此最低位对应的键未按下
若检测到按下的位
moval,cl;
alcl对应的ASCII码
xlat;
alds:
[bx+al],将bx缓冲区中,al偏移地址下对应的一个段码管代码,换给al
movdx,io8255a;
A口地址288h
将al输出到A口,数码管显示数字0~7
输出响铃字符,提示停止本轮抢答
movdl,7;
响铃对应的ASCII码为07h
movah,2
int21h
从键盘输入一个字符,控制是否允许抢答
wai:
movah,1;
从键盘输入一个字符
int21h;
显示输入的字符
cmpal,20h;
判断输入字符是否为空格,ASCII码为20h
jneeee;
不是空格,转eee,停止抢答(即不允许开始下一轮抢答)
若从键盘输入的字符是空格
moval,0;
是空格,灭灯,空操作ASCII码为00h
地址288h
将灭灯信号输出到A口,数码管不显示内容
jmpsss;
开始下一轮抢答
eee:
movah,4ch;
执行结束,返回DOS
codeends
endstart;
汇编结束
10运行结果
Enter6次
Esc8次
该开始时,未按执行程序前
K7置1
K3置1
K2置1
K0置1
所有逻辑开关复位后并按空格键
K5置1
K7置1
11总结
转眼间两周的微机原理应用课程设计就要结束了,通过这次课程设计,我学会了很多课本上学不到的东西,同时也加强了我的动手,思考和解决问题的能力,受益匪浅。
在课程设计过程中,我和另外一位同学分工也非常的明确。
我觉得对课本知识的巩固和加强,由于课本上的知识太多,同时平时课间又没有很好的理解芯片的功能,并且考试的内容有限,所以在课程设计的过程中,我们了解了很多元件的功能,对其在电路中的使用有更多的认识。
通过课程设计后我了解到有些知识只要深入的了解,探究,你会发现很多有意思的东西,会让你非常有成就感,即使在解决问题的时候同时伴随着许多你所不能解决的问题。
在不断发现问题和解决问题中前进。
从前的学习过程过于肤浅,只是流于表面的理解,而现在要做课程设计,就不得不要求我们对所用到的知识有更深层次的的理解。
因为课程设计的内容比及书本中的理论知识而言,更接近于现实生活,而理论到实践的转化往往是一个艰难的过程。
12遗留问题
在答辩的时候老师留给了我们组一个问题就是对每一组的抢答次数做一下统计。
我和同组的另一位同学对这个问题想了好久.首先我们想到要想统计每位的抢答次数只有在逻辑右移时利用CL的数值来确定,但是统计的次数又怎样来存储呢,还有就是不是简简单单只统计一位的抢答次数,是八位中的每一位的抢答次数都要统计,变量怎样设又该怎样存储以及又该通过怎样的方式同时显示他们的抢答次数。
由于目前我的编程能力有限对这些问题不能很好的解决,只对比赛进行的次数进行了统计,每比赛一次就输出一个小树苗,本次实验分别是比赛六次按出车键结束和比赛八次按ESC键结束,并抓了相应的结果显示图
13参考文献
[1]李顺增,《微机原理及接口技术》,机械工业出版社,2006年第一版
[2]冯博琴,《微机计算机原理及接口技术》,清华大学出版社
[3]王远,《模拟电子技术》,机械工业出版社
[4]周国祥,《微机原理与接口技术》,中国科学技术大学出版社
[5]康华光,《电子技术基础数字部分》,高等教育出版社
[6]潘峰,《微机原理与汇编语言》,电子工业出版社