微机课程设计竞赛抢答器.docx

上传人:b****2 文档编号:1812417 上传时间:2023-05-01 格式:DOCX 页数:27 大小:222.51KB
下载 相关 举报
微机课程设计竞赛抢答器.docx_第1页
第1页 / 共27页
微机课程设计竞赛抢答器.docx_第2页
第2页 / 共27页
微机课程设计竞赛抢答器.docx_第3页
第3页 / 共27页
微机课程设计竞赛抢答器.docx_第4页
第4页 / 共27页
微机课程设计竞赛抢答器.docx_第5页
第5页 / 共27页
微机课程设计竞赛抢答器.docx_第6页
第6页 / 共27页
微机课程设计竞赛抢答器.docx_第7页
第7页 / 共27页
微机课程设计竞赛抢答器.docx_第8页
第8页 / 共27页
微机课程设计竞赛抢答器.docx_第9页
第9页 / 共27页
微机课程设计竞赛抢答器.docx_第10页
第10页 / 共27页
微机课程设计竞赛抢答器.docx_第11页
第11页 / 共27页
微机课程设计竞赛抢答器.docx_第12页
第12页 / 共27页
微机课程设计竞赛抢答器.docx_第13页
第13页 / 共27页
微机课程设计竞赛抢答器.docx_第14页
第14页 / 共27页
微机课程设计竞赛抢答器.docx_第15页
第15页 / 共27页
微机课程设计竞赛抢答器.docx_第16页
第16页 / 共27页
微机课程设计竞赛抢答器.docx_第17页
第17页 / 共27页
微机课程设计竞赛抢答器.docx_第18页
第18页 / 共27页
微机课程设计竞赛抢答器.docx_第19页
第19页 / 共27页
微机课程设计竞赛抢答器.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机课程设计竞赛抢答器.docx

《微机课程设计竞赛抢答器.docx》由会员分享,可在线阅读,更多相关《微机课程设计竞赛抢答器.docx(27页珍藏版)》请在冰点文库上搜索。

微机课程设计竞赛抢答器.docx

微机课程设计竞赛抢答器

微机原理与接口技术

课程设计报告

题目竞赛抢答器

系别

专业班级

学号

姓名

指导教师

设计时间2016

 

目录

第一章关于抢答器的概述及设计要求

1.1数字抢答器的简介

1.2课程设计要求

1.3实现功能

第二章总体设计

2.1功能需求分析

2.2可行性分析

2.3硬件总体设计

2.3.1硬件器材

2.3.2内存单元地址

2.4软件流程图

第三章硬件设计

3.1所选芯片介绍

3.1.1可编程并行接口接口芯片8255A

3.1.2可编程定时器/计数器8253

3.2系统所选用各芯片的连接

3.2.1各芯片与CPU的连接

3.2.2各芯片之间的连接和与外设的连接

第四章软件设计

4.1程序流程

4.2子程序清单

4..2.1芯片8255初始化:

4..2.2芯片8253初始化:

4..2.3获取选手号码子程序:

4.2.4数码管显示子程序:

4.2.5扬声器鸣叫时间:

第五章结果分析

结束语

附录

参考文献

主程序清单

第一章关于抢答器的概述及设计要求

1.1数字抢答器的简介

抢答器是在竞赛、文体娱乐活动(抢答活动)中,能准确、公正、直观地判断出抢答

者的机器。

通过抢答者的指示灯显示、数码显示和警示显示等手段指示出第一抢答者。

随着科学技术的不断发展,促使人们学科学,学技术,学知识的手段多种多样,抢答器作为一种强大工具,已经广泛应用于各种知识能力竞赛场合,例如选拔人才、评选优胜及各种智力竞赛等。

目前知识竞赛之类的活动愈加频繁,凡是有知识竞赛类的活动那么也就必然离不开抢答器。

针对主持人提出的问题,各组一般要进行必答和抢答,对于抢答,要判定哪组先按键,为了公正,这就要有一种逻辑电路抢答器作为裁判员。

这种数字抢答器杜绝了人为因素的影响,实现了抢答公平公正的原则。

所以操作简单、经济实用的小型数字抢答器将流行于各类竞赛中,成为小规模知识竞赛的首选。

1.2课程设计要求

内容:

用微机原理实验箱,在外接8个按键的抢按下,让8段LED数码管显示抢答者编号,并使喇叭响一下。

具体要求:

(1)通过实验箱上8255芯片接收来自实验箱按键的信息,将该信息送入8088CPU,由CPU判断是哪个按键按下;

(2)8088CPU将判断出的按键信息转换为8段显示码,并通过8255芯片发送到8段显示模块显示;

(3)在显示按键信息的同时通过实验箱上8253芯片产生一定频率的方波信号发送到音频功放模块,发出声音;

(4)提高要求:

能对几乎同时发生的按键进行判别,找到先按的键。

1.3实现功能

当没有选手按下按键时,LED数码管显示“-”符号,表示此时可以进行抢答,当抢答开始,选手按下8路抢答器中的任何一路开关时,8段LED数码管上显示最先按开关的选手的号码,同时蜂鸣器鸣叫一段时间以示已经有人抢答成功。

当一位选手抢答成功时,数码管上显示这位选手的号码,此时其他选手再按下按键不会产生任何作用,系统进入锁死状态,当抢答成功的选手退下按键时,LED数码管显示“-”符号,表示系统已经初始化,可以进行下一轮抢答。

 

第二章总体设计

2.1功能需求分析

系统必须准确判断抢答者的信息,根据按键信息判断被按下的按键的序号,在LED数码管上显示相应的数字反映抢答信息,同时蜂鸣器响一声以示有选手抢答成功。

2.2可行性分析

将8个抢答器按键连接到8255芯片的PA0~PA7,当8组均未按下抢答按钮时,送入到并行接口的8位抢答状态都是0,当检测到按键发生变化时,即微机采样到这8位数据不为0时,微机通过该并行输入口循环对8路抢答信号进行采样。

当采样到哪一组的抢答信号已经发出,则记录下该组的组号,从PB口输出组号所对应的LED数码管段码,同时PC7端口连接至定时器的门控信号端口,使定时器工作,输出端连接到蜂鸣器,蜂鸣器鸣叫一段时间后关闭,若系统检测到按键信息全为0时,表明选手已经把按键退下,则系统重新开始检测按键状态,进入下一个抢答环节。

2.3硬件总体设计

2.3.1硬件器材

所需器件:

可编程并行接口芯片8255、可编程定时器/计数器8253,扬声器,一个LED显示器,8个按键。

2.3.2内存单元地址

①可编程并行接口接口芯片8255A的端口地址为0ff28H、0ff29H、0ff2AH、0ff2BH。

②可编程定时器/计数器8253的端口地址为0040H、0041H、0042H、0043H。

2.4软件流程图

显示“-”符号

从8255A口读取按键状态

Y

Y

无按键按下

Y

N

LED显示1

按键1按下

LED显示3

LED显示4

LED显示5

LED显示6

LED显示7

LED显示2

Y

N

按键2按下

N

按键3按下

Y

Y

N

按键4按下

N

Y

按键5按下

Y

N

按键6按下

N

按键7按下

N

LED显示8

Y

按键8按下

蜂鸣器响一声

检测PA口是否全为0

N

按键全为0

Y

图1系统软件流程图

第三章硬件设计

3.1所选芯片介绍

3.1.1可编程并行接口接口芯片8255A

①8255A内部结构

8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。

8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。

②8255A主要的外部引脚

图28255A引脚图

PA7~PA0:

A口的8条I/O线。

8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。

PB7~PB0:

B口的8条I/O线。

不可以设置成双向口,其它和A口一样。

PC7~PC0:

C口的8条I/O线。

不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。

除了作为独立的I/O线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。

A1、A0:

端口地址选择信号。

用于选择8255A的3个数据端口和一个控制口。

当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。

③8255A工作方式

方式0:

基本的输入/输出方式。

A口、B口、C口都可以工作在些方式下。

④8255A方式控制字格式

表18255方式控制字

D7

D6、D5

D4

D3

D2

D1

D0

1

A口

A口

C口高4位

B口

B口

C口低4位

00方式0

01方式1

1x方式2

0输出

1输入

0输出

1输入

0方式0

1方式1

0输出

1输入

0输出

1输入

3.1.2可编程定时器/计数器8253

①8253的内部结构

8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。

它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读/写逻辑以及控制寄存器等4个部分。

②8253的外部引脚

图38253引脚图

A1、A0:

地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。

CLK0、CLK1、CLK2:

时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。

CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。

当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。

GATE0、GATE1、GATE3:

门控输入端,用于外部控制计数器的启动计数和停止计数的操作。

两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。

OUT0、OUT1、OUT2:

计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。

③8253的工作方式

方式0:

减1计数到0,产生中断请求信号。

方式3:

减1计数到初值的1/2,方波发生器。

④8253方式控制字格式

表28253方式控制字

D7D6

D5D4

D3D2D1

D0

00选计数器0

01选计数器1

10选计数器2

00计数器锁存

01只读写低8位

10先读写高8位

11先读写低8位

再读写高8位

000方式0

001方式1

X10方式2

X11方式3

100方式4

101方式5

0二进制计数

1BCD计数

3.2系统所选用各芯片的连接

3.2.1各芯片与CPU的连接

8255A、8253的数据总线D7~D0端、

端、

端、

端、

端、INT端分别与CPU的数据总线D7~D0端、片选端0040H、

端、

端、

端、INTR端相连。

8255A、8253的A1、A0端分别与CPU地址线的A1、A0端相连。

3.2.2各芯片之间的连接和与外设的连接

8255A的A口的PA7~PA0依次接“按键1”~“按键8”,B口的PB7~PB0通过驱动器1接到LED显示器,8253的GATE0端接PC7端口,CLK0接1MHz,OUT0的输出接入接扬声器。

第四章软件设计

4.1程序流程

设定好8255、8253的方式控制字后,根据读取8255PA端口的状态值,获取选手的具体号码,从而转到相应程序,将号码所对应的段码输出到PB端口进行数码管显示。

同时将PC7置1,使相连的GATE0门控信号为1,通道0进行计数,输出到扬声器进行鸣叫。

4.2子程序清单

4..2.1芯片8255初始化:

PORT_AEQU0FF28H

PORT_BEQU0FF29H

PORT_CEQU0FF2AH

PORT_CTLEQU0FF2BH

MOVAL,90H;8255控制字A组方式0输入

MOVDX,PORT_CTL;B组方式0输出C口输出

OUTDX,AL

4..2.2芯片8253初始化:

MOVAL,00110110B;8253控制字计数器0读写字

MOVDX,43H;工作方式方式3

OUTDX,AL

MOVAX,1000;计数器初值

MOVDX,40H

OUTDX,AL

MOVAL,AH

OUTDX,AL

4..2.3获取选手号码子程序:

在硬件电路中,8255的PA端口连接开关按键,根据读取PA的状态可以判断出按下的是哪个键(按下为高电平),根据进行移位操作,可得出选手的具体号码。

MOVDX,PORT_A;读取A口状态(按键状态)

INAL,DX

CMPAL,00000000B;无按键按下返回LED1

JELED1

CMPAL,00000001B;按键1

JELP1

CMPAL,00000010B;按键2

JELP2

CMPAL,00000100B;按键3

JELP3

CMPAL,00001000B;按键4

JELP4

CMPAL,00010000B;按键5

JELP5

CMPAL,00100000B;按键6

JELP6

CMPAL,01000000B;按键7

JELP7

CMPAL,10000000B;按键8

JELP8

JMPLED1;返回

4.2.4数码管显示子程序:

根据获取得到选手的号码,跳转相应程序,将段码输出给PB端口。

LP1:

MOVDX,PORT_B;数码管显示1

MOVAL,11111001B

OUTDX,AL

LP2:

MOVDX,PORT_B;数码管显示2

MOVAL,10100100B

OUTDX,AL

LP3:

MOVDX,PORT_B;数码管显示3

MOVAL,10100100B

OUTDX,AL

...

LP8:

...

LED的管脚

对应的字形

dp、g、f、e、d、c、b、a

11111001

10100100

10110000

10011001

10010010

11100010

11111000

10000000

1

2

3

4

5

6

7

8

4.2.5扬声器鸣叫时间:

MOVAL,00001111B;8255PC7口置1,使蜂鸣器工作

MOVDX,PORT_CTL

OUTDX,AL

MOVBL,00000000B

MOVCX,0FFFFH;延时一段时间

LOOP1:

LOOPLOOP1

LOOP2:

LOOPLOOP2

LOOP3:

LOOPLOOP3

LOOP4:

LOOPLOOP4

LOOP5:

LOOPLOOP5

LOOP6:

LOOPLOOP6

LOOP7:

LOOPLOOP7

MOVAL,00001110B;8255PC7口置0,蜂鸣器停止工作

MOVDX,PORT_CTL

OUTDX,AL

 

第五章结果分析

连接硬件电路后,控制程序输出得到相应结果:

 

 

图5硬件显示结果

由上结果可看出,当按键3按下的时候,数码管显示数字3,扬声器进行鸣叫,在无按键按下时,LED数码管显示符号“-”,可得程序设计及硬件连接能达到题目要求。

小结

转眼间微机课程设计就结束了,回想过去的几周,这里面的辛苦只有亲自做的人才知道。

我们经历了阶段性的狂喜,测试失败后的失望,陷入困境后的不知所措,重新投入时的齐心协力。

最终我们完成了8人竞赛抢答器的设计,基本实现了竞赛抢答器的所有功能。

这次课程设计主要运用到了8088CPU,可编程并行接口芯片8255和可编程定时器8253芯片,扬声器。

所以,在开始设计之前,我们需要熟悉LED显示器的结构及译码方式,熟悉掌握汇编语言,熟悉8255和8253的内部结构、外部引脚及其对应功能,扬声器的工作原理。

在进行软件编程的过程中,我们去图书馆查询了许多相关资料,着重看了一下不同书籍中完成同一功能的子程序,通过比较再选择最合适的程序。

我们还结合了大量微机原理课程学过的知识,比如8255、8253初始化,数码管显示。

在硬件连接的时候要认真对待,根据引脚功能及设计需求进行连线。

我们了解了各芯片功能以后,进行了硬件连线,然后结合程序进行编译。

刚开始编程部分出现了问题,8个数码管不能全都显示。

经过几次修改后,八个数字都能显示,只是蜂鸣器发声部分出现了问题,后来在老师的帮助下解决了这个问题。

在这次课程设计中,我既运用了很多之前学到的专业知识,又学会了许多课本上学不到的东西,所以这次课程设计,我觉得是对课本知识的巩固和加强,整个设计使我加深了对课本知识的理解,同时熟练掌握了汇编语言的编辑、调试。

在设计过程中,我发现带着问题去设计效率很高,另外要想做好一个课程设计,就必须在设计程序之前有一个清晰的思路和一个完整的软件流程图。

当然,整个课程设计也充分锻炼了我的汇编能力,设计方案制定能力,同时也加强了我的动手、思考和解决问题的能力,使我受益匪浅。

虽然由于汇编水平有限,对芯片的理解不够到位,抢答器还有需要改进的地方,但我们还是很满意的。

这次的课程实际给我留下了宝贵的财富,不光是简简单单的理论知识,它让我开始尝试我以前所未曾接触过的一些东西,相信这些经验会对我即将面临的毕业设计有所帮助。

最后,我要感谢在整个课程设计过程中曾经给予我们帮助的同学以及给予我们精心辅导的老师,因为有你们的帮助和支持,这次的课程设计才得以圆满完成。

附录

参考文献

[1].朱金钧麻新旗,《微型计算机原理及应用技术》,机械工业出版社

[2].李顺增,《微机原理及接口技术》,机械工程出版社

主程序清单

PORT_AEQU0FF28H

PORT_BEQU0FF29H

PORT_CEQU0FF2AH

PORT_CTLEQU0FF2BH

CODESEGMENT

ASSUMECS:

CODE

ORG11B0H

START:

MOVAL,90H;8255控制字A组方式0输入

MOVDX,PORT_CTL;B组方式0输出C口输出

OUTDX,AL

 

MOVAL,00110110B;8253控制字计数器0读写字

MOVDX,43H;工作方式方式3

OUTDX,AL

MOVAX,1000;计数器初值

MOVDX,40H

OUTDX,AL

MOVAL,AH

OUTDX,AL

LED1:

MOVBL,00000001B;设置全局变量BL

MOVAL,00001110B;PC7端口置0

MOVDX,PORT_CTL

OUTDX,AL

MOVDX,PORT_B;在数码管显示符号"-"

MOVAL,10111111B

OUTDX,AL

MOVDX,PORT_A;读取A口状态(按键状态)

INAL,DX

CMPAL,00000000B;无按键按下返回LED1

JELED1

CMPAL,00000001B;按键1

JELP1

CMPAL,00000010B;按键2

JELP2

CMPAL,00000100B;按键3

JELP3

CMPAL,00001000B;按键4

JELP4

CMPAL,00010000B;按键5

JELP5

CMPAL,00100000B;按键6

JELP6

CMPAL,01000000B;按键7

JELP7

CMPAL,10000000B;按键8

JELP8

JMPLED1;返回

LP1:

MOVDX,PORT_B;数码管显示1跳转LP9

MOVAL,11111001B

OUTDX,AL

JMPLP9

LP2:

MOVDX,PORT_B;数码管显示2跳转LP9

MOVAL,10100100B

OUTDX,AL

JMPLP9

LP3:

MOVDX,PORT_B;数码管显示3跳转LP9

MOVAL,10110000B

OUTDX,AL

JMPLP9

LP4:

MOVDX,PORT_B;数码管显示4跳转LP9

MOVAL,10011001B

OUTDX,AL

JMPLP9

LP5:

MOVDX,PORT_B;数码管显示5跳转LP9

MOVAL,10010010B

OUTDX,AL

JMPLP9

LP6:

MOVDX,PORT_B;数码管显示6跳转LP9

MOVAL,10000010B

OUTDX,AL

JMPLP9

LP7:

MOVDX,PORT_B;数码管显示7跳转LP9

MOVAL,11111000B

OUTDX,AL

JMPLP9

LP8:

MOVDX,PORT_B;数码管显示8跳转LP9

MOVAL,10000000B

OUTDX,AL

JMPLP9

LP9:

MOVDX,PORT_A;读取按键状态

INAL,DX

CMPBL,00000001B;全局变量BL与1比较相同时跳转

JEDELAY2

CMPAL,00000000B;检测按键是否清零,清零时跳DELAY1

JEDELAY1

JMPLP9;重复检测A口状态

DELAY1:

MOVCX,0FFFFH;延时返回LED1

LPP1:

LOOPLPP1

LPP2:

LOOPLPP2

LPP3:

LOOPLPP3

LPP4:

LOOPLPP4

JMPLED1

DELAY2:

;PC7口置1,8253开始工作

MOVAL,00001111B

MOVDX,PORT_CTL

OUTDX,AL

MOVBL,00000000B

MOVCX,0FFFFH;延时一段时间

LOOP1:

LOOPLOOP1

LOOP2:

LOOPLOOP2

LOOP3:

LOOPLOOP3

LOOP4:

LOOPLOOP4

LOOP5:

LOOPLOOP5

LOOP6:

LOOPLOOP6

LOOP7:

LOOPLOOP7

MOVAL,00001110B;PC7口置0,8253停止工作

MOVDX,PORT_CTL

OUTDX,AL

JMPLP9;返回LP9

CODEENDS

ENDSTART

 

指导教师评语:

 

课程设计成绩:

指导教师签名:

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2