单片机课程设计抢答器.docx

上传人:b****4 文档编号:4889909 上传时间:2023-05-07 格式:DOCX 页数:15 大小:454.21KB
下载 相关 举报
单片机课程设计抢答器.docx_第1页
第1页 / 共15页
单片机课程设计抢答器.docx_第2页
第2页 / 共15页
单片机课程设计抢答器.docx_第3页
第3页 / 共15页
单片机课程设计抢答器.docx_第4页
第4页 / 共15页
单片机课程设计抢答器.docx_第5页
第5页 / 共15页
单片机课程设计抢答器.docx_第6页
第6页 / 共15页
单片机课程设计抢答器.docx_第7页
第7页 / 共15页
单片机课程设计抢答器.docx_第8页
第8页 / 共15页
单片机课程设计抢答器.docx_第9页
第9页 / 共15页
单片机课程设计抢答器.docx_第10页
第10页 / 共15页
单片机课程设计抢答器.docx_第11页
第11页 / 共15页
单片机课程设计抢答器.docx_第12页
第12页 / 共15页
单片机课程设计抢答器.docx_第13页
第13页 / 共15页
单片机课程设计抢答器.docx_第14页
第14页 / 共15页
单片机课程设计抢答器.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计抢答器.docx

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

单片机课程设计抢答器.docx

单片机课程设计抢答器

目录

1前言……………………………………………………………………………………1

2正文……………………………………………………………………………………1

2.1抢答器的概述及制作要求……………………………………………………………1

2.1.1抢答器的概述………………………………………………………………………1

2.1.2设计任务和要求……………………………………………………………………1

2.1.3涉及知识点…………………………………………………………………………1

2.2单片机芯片的选择及模块性能分析…………………………………………………2

2.2.1单片机芯片的选择…………………………………………………………………2

2.2.2模块性能分析………………………………………………………………………2

2.3电路设计………………………………………………………………………………2

2.3.1电路原理图…………………………………………………………………………2

2.3.2显示电路的设计……………………………………………………………………3

2.3.3选手按键电路的设计………………………………………………………………3

2.3.4主持人按键电路的设计……………………………………………………………4

2.4系统程序设计…………………………………………………………………………4

2.4.1抢答器流程图………………………………………………………………………4

2.4.2中断程序……………………………………………………………………………5

2.4.3主程序………………………………………………………………………………5

2.5仿真演练………………………………………………………………………………7

3致谢……………………………………………………………………………………9

4参考文献………………………………………………………………………………9

前言

在知识竞赛中,特别是在做抢答题时,在抢答的过程中,为了更加确切的知道哪一组选手或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。

如果在实际的抢答中直接靠人的视觉或者听觉是很难判断出哪一组或哪一位选手先抢到题的。

利用单片机编程来设计抢答器,可以使以上问题变得简单,容易解决,即使两组选手的抢答时间值相差几微妙,也能轻松的分辨出哪一组或哪一个选手先抢答到题的。

本文主要介绍抢答器的工作原理和设计,以及他的实际用途。

本系统采用89C51单片机作为整个控制核心。

控制系统的三个模块为:

显示模块、存储模块、抢答开关模块。

该系统通过开关电路四个按键输入抢答信号;利用一个数码管来完成显示的功能;用按键来让选手进行抢答,经过单片机的处理后,在数码管上显示出是哪一组先抢答到题的,从而实现整个抢答过程。

正文

2.1抢答器的概述及制作要求

2.1.1抢答器的概述

随着我国经济和文化的高速发展,在很多公开竞争场合要求有公正的竞争裁判,比如科技竞赛、拍卖交易等,因此出现了抢答器这一高科技工具。

抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较单一,特别是当抢答的路数太多时,实现起来很困难。

在目前的市场上,普通抢答器要几百块钱,价格比较昂贵。

因此我们设计了以单片机为核心的智能抢答器,不仅保留了原始抢答器的基本功能,同时又增加一些实用的功能,并简化了其电路结构。

这样制作出来的抢答器电路简单、成本较低、操作方便、灵敏可靠、具有较高的实用推广价值。

2.1.2设计任务和要求

基于AT89C51单片机设计制作一个抢答器,具体要求如下:

(1)设计一个智力竞赛抢答器,可以同时供8名选手参加比赛,编号为1—8,各用一个按钮。

(2)给主持人设置一个控制开关,来控制系统的清零和抢答的开始。

(3)抢答器具有数据锁存功能、显示功能。

抢答开始后,如果有选手按动抢答按钮,立即锁存编号,并在BCD数码管上显示选手的编号。

此外,还要封锁输入电路,禁止其他选手抢答,最先抢答的选手的编号一直保持到主持人将系统清零为止。

2.1.3涉及知识点

本项目需要掌握和了解如下知识点:

(1)+5V电源原理

(2)单片机复位电路工作原理

(3)按键电路的设计

(4)数码管特性及使用

(5)AT89C51单片机功能及引脚排布

(6)单片机汇编语言级程序设计

2.2单片机芯片的选择及模块性能分析

2.2.1单片机芯片的选择

本次课设使用的是Atmel公司推出的AT89C51芯片,它是一种低功效、高性能的CMOS8位微控制器,具有8K可编程Flash存储器【1】。

有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适用于常规编程器【2】。

其将通用的.微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本【3】。

2.2.2模块性能分析

模块主要分为AT89C51芯片、电源电路、主持人按键、选手按键和数码管显示等部分,下面对这几部分进行介绍:

(1)主持人按键

使用一个常用按钮和一个电阻组成主持人按键的输入电路。

按钮为自复式常开按钮开关,一般情况下输入端为高电平,当主持人按下按键时,输入低电平,系统将清零,抢答将重新开始。

(2)选手按键

利用8个常开按钮开关和8个电阻组成抢答器的输入电路。

按钮为自复式常开按钮开关,分别作为8位抢答按钮,一般情况下锁存器的输入端为高电平,当有选手按下按键时,输入低电平,数码管显示器上立即显示相应的选手编号。

(3)数码管显示

BCD数码管只有4个引脚,要想显示数字编号,必须先对接收到的信号进行处理。

我们将通过编程直接使用BCD数码管,以达到简化电路,节省成本的目的。

2.3电路设计

2.3.1电路原理图

根据以上的分析,我们设计出基于AT89C51单片机的抢答器电路原理图,工作原理为:

电源电路为单片机提供标准+5V电源;单片机作为主控制器,根据输入信号对系统进行响应的控制;选手按下响应的按键后,提交输入信号给系统;数码管显示最先按下按键的选手的编号,直到主持人清零;主持人按下清零按键,数码管清零,系统重新开始进行抢答。

根据抢答器的基本功能,可以设计出如下的单片机外围电路:

图2-3-1.1总体设计框图

图2-3-1.2总体设计

2.3.2显示电路的设计

显示电路用了一个四段BCD数码管,它是共阴极的,由高电平点亮。

可以直接接收AT89C51单片机传送的信号。

图2-3-2显示电路

2.3.3选手按键电路的设计

选手按键只要向系统提交一个按下的信息就够了,设计并不复杂,硬件电路简单。

抢答器的选手按键输入电路如下:

图2-3-3选手按键电路

2.3.4主持人按键电路的设计

主持人按键只要向系统提交一个按下的信息就够了,设计并不复杂,硬件电路简单。

抢答器的主持人按键输入电路如下:

图2-3-4主持人按键电路

2.4系统程序设计

2.4.1抢答器流程图

流程图是使用图形表示算法思路的一种极好的表示方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。

总体框图中的各个子模块或各个子任务也应该结合具体的数学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用【4】。

流程图如下:

图2-4-1抢答器主程序流程图

2.4.2中断程序

中断是指由于某种事件的发生,计算机暂停现行的程序,转去执行另一个程序,处理发生的事件,处理完毕后自动返回原来的程序继续运行【5】。

在抢答中,程序要等待选手或主持人按下按键才能继续运行,要完成这个功能有两种方法:

1、查询方式;2、中断方式。

使用单片机的中断系统需要编写代码对单片机进行设置,并且使用固定的接口,非常不方便。

使用查询的方式不需要对单片机进行设置,只要在需要的地方编写程序代码就行,简单方便,对接口没有限制,可以使用单片机上任意的借口完成。

这里我们使用查询的方式完成等待的过程,即设定查询某些固定接口,直到某个接口发生变化,系统继续执行下去,否则就一直查询下去。

2.4.3主程序

我们设计的抢答器的程序采用的是汇编语言和C语言两种设计。

首先我们用汇编语言进行设计,本次设计的主程序中包括LED显示程序以及按键控制子程序,程序设计如下:

ORG0000H;设置初始地址位

JMPMAIN;跳转到主程序

TABLE:

DB00H,01H,02H,03H,04H,05H,06H,07H,08H;共阴极数码管显示代码表:

012345678

MAIN:

MOVP2,#0FFH;P2口设置为高电平,准备接收信号

MOVR4,#0;R4的位标志清零

MOVA,R4;R4位标志值送A寄存

AGAIN:

MOVDPTR,#TABLE;设定共阴极数码管代码表的首地址

MOVCA,@A+DPTR;取出显示0的代码送寄存器A

MOVP1,A;将A的内容送P1口显示

LOOP1:

MOVA,P3;接收P3口的抢答信号

CPLA;抢答信号求反

JZLOOP1;如果没有抢答信号则再返回LOOP1,继续接收信号

LOOP2:

RRCA;有抢答信号则逐次移动判断是哪一位抢答

INCR4;每移动一位,R4标志位加1

JNCLOOP2;没有遇到抢答信号则返回LOOP2继续移位

MOVA,R4;遇到抢答信号,把R4标志位的值送A

MOVCA,@A+DPTR;将相应的数码管显示代码送A

MOVP1,A;将A的值送P1口显示

LOOP3:

JNBP2.0,MAIN;查询主持人是否按下按键,按下则返回主程序,重新开始

SJMPLOOP3;主持人没有按下按键,返回继续查询,直到主持人按下为止

END;程序结束

汇编语言编程完成以后,再进行C语言程序设计,完成的功能和汇编语言程序一样。

具体程序如下:

#include//设置头文件,内部定义了单片机内部的特殊

//功能寄存器和位寄存器

unsignedcharcodeSEG_TAB[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08};//定义显示用

//的数组0-8

voidmain(void)//主程序

{

while

(1)//死循环

{

P2=0x0ff;//设定初值,定义P2口为11111111H

P1=SEG_TAB[0];//设定初值,P1口显示数组中的第一个数据

for(P3=0x0ff;P3!

=0x0ff;P3=P3)//外层循环,设定初值,定义P3口为

//11111111H,等待P3口接收按键动作

{

switch(P3)//如果P3口接收到信号,则判断是哪一位

//选手按下的按键

{

case0xfe:

P1=SEG_TAB[1];break;//判断为1号选手,P1口显示数组第二个数据

case0xfd:

P1=SEG_TAB[2];break;//判断为2号选手,P1口显示数组第三个数据

case0xfb:

P1=SEG_TAB[3];break;//判断为3号选手,P1口显示数组第四个数据

case0xf7:

P1=SEG_TAB[4];break;//判断为4号选手,P1口显示数组第五个数据

case0xef:

P1=SEG_TAB[5];break;//判断为5号选手,P1口显示数组第六个数据

case0xdf:

P1=SEG_TAB[6];break;//判断为6号选手,P1口显示数组第七个数据

case0xbf:

P1=SEG_TAB[7];break;//判断为7号选手,P1口显示数组第八个数据

case0x7f:

P1=SEG_TAB[8];break;//判断为8号选手,P1口显示数组第九个数据

default:

break;//判断为其他信号

}

for(P2=0x0ff;P2==0xfe;P2=P2)//内层循环,等待接收P2口的按键动作

{

P3=0x0ff;//设定初值,定义P3口为11111111H

//使得外层循环能继续进行

P2=0x0ff;//设定初值,定义P2口为11111111H

//使得内层循环能继续进行

P1=SEG_TAB[0];//设定初值,P1口显示数组中的第一个数据

}

}

}

}

2.5仿真演练

电路设计与程序设计都已经完成,接下来需要先进行仿真,调试无误后才能连接实物。

我们需要先使用Keil软件进行编程,产生HEX文件,之后使用Proteus7Professional来导入HEX文件,然后运行系统。

(1)系统开始

图2-5.1系统开始

(2)第一个选手按下抢答按键

图2-5.2第一个选手按下按键

(3)其他选手后按下抢答按键

图2-5.3其他选手按下按键

(4)主持人按下按键

图2-5.4主持人按下按键

致谢

我在这一次抢答器的设计中受益匪浅。

通过对这一年所学知识的回顾,并充分发挥对所学知识的理解和对本次课程设计论文的思考及书面表达能力,最终完成了。

这为自己今后进一步深化学习,积累了一定的宝贵的经验。

撰写论文的过程也是对专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把专业知识转化为能力的实际训练。

培养了我运用所学知识解决实际问题的能力。

通过这次课设我发现,只有理论水平提高了,才能将课本上的知识与实践相结合,理论知识服务于实践教学,以增强自己的动手能力。

这个实验十分有意义,我获得了很深刻的经验。

通过这次课程设计,我知道了理论和实际的距离,也知道了理论和实际相结合的重要性,也从中得到了很多书本上无法得知的知识。

我们的学习不但要立足与书本,以解决理论和实际教学中的实际问题为目的,还要与实践相结合,通过自己动手来解决问题比只用脑子想更加深刻。

学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。

这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。

参考文献

[1]李光飞,单片机课程设计实例指导[M],北京航天航空大学出版社,2004:

50~54

[2]李朝青,单片机原理及接口技术(第3版)[M],北京航天航空大学出版社,2002:

32~40

[3]胡伟,单片机C程序设计及应用实例[M],人民邮电出版社,2003:

75~77

[4]冯育长,单片机系统设计与实例指导[M],西安电子科技大学出版社,2007:

45~55

[5]郭培源,电子电路及电子器件[M],高等教育出版社,2003:

23~32

[6]杨志忠,数字电子技术[M],高等教育出版社,2002:

40~43

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

当前位置:首页 > PPT模板 > 商务科技

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

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