单片机课程设计报告

发布 2022-10-06 08:30:28 阅读 5291

学号:0903成绩。

单片机及接**术。

课程设计报告。

题目八路抢答器的设计。

学院电信学院专业计算机网络技术

班级网络专09-1 学生江

指导教师李绍平设计时间: 2011/12/26~30

八路抢答器设计。

一:概述。1.1 抢答器。

抢答器在当今社会上实现的功能设备多种多样,它的实现让我们当代的人有了更多的乐趣以及得到更好的发展。

本设计是以八路抢答为基本理念。考虑到需设定限时回答的功能,利用at89c52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。用开关做键盘输出,扬声器发生提示。

同时系统能够实现:在抢答中,只有开始后抢答才有效,如果在开始抢答前抢答为无效;抢答限定时间和回答问题的时间设定为50s;可以显示是哪位选手有效抢答和无效抢答,正确按键后有声音提示;抢答时间和回答问题时间倒记时显示,满时后系统计时自动复位及主控强制复位;按键锁定,在有效状态下,按键无效非法。

1.2设计的要求。

设计内容:根据现有的xl400实验板的电路与原理设计抢答器电路图,电路要求有4位led数码管和8个输入按键和一个小喇叭。4位数码管输出显示信息,喇叭输出声音提示信息,8个按键作为选手的抢答控制或其它复用控制。

编程实现如下功能:

(1)系统运行初始状态是显示你的最后2位学号。

(2)主持人按按键,响铃提示进入显示抢答题15秒倒计时。

a、15秒期间选手选题,显示选手号和进入50s答题倒计时,0s响铃结束,显示开始状态的学号。

b、15秒期间选手不选题,则0s响铃结束,显示开始状态的学号。

二:硬件设计

1.1文字性概述。

根据设计的要求,我们需要理清思路:1、当主持人按下键后,选手就需感应到,而感应到就要通过数码管的显示倒计时才能知道,选手只需在倒计时之内抢答到选题就行,但如果有一位选手抢答后,另外的选手就无法再按动按键,无效。2、当选手抢到题后,同时也开始倒计时,即限定时间给选手答题,若在规定时候没有答对或者答不出来,就会恢复到答题前的数值。

3、在规定时间内,倒计时中,会设置具体的倒计时响铃,我限定的时间是在五秒之内就开始响动,到零秒时就结束。4、复位,若时间结束后,会倒回到初始化的值。

1.2总体电路图。

1.3单元设计电路。

1)选手抢答电路。

该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。如有再次抢答需由主持人将s开关重新置,然后再进行下一次抢答。

2)主持人控制电路。

主要后续功能:1、按下后,继而使选手进行抢答。2、按下后,开始倒计时技术。

3)时序控制电路。

时序控制电路是抢答器设计的关键,它要完成以下功能:

a.主持人将控制开关拨动开关后,抢答电路和定时电路进人正常抢答工作状态。 b.当参赛选手按动抢答键时,抢答电路和定时电路停止工作。

4)复位电路。

外部中断和内部中断并存,单片机硬件复位端,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序让它完成复位。

5)报警电路。

功能分两种:第一种为当主持人按键按下后,到了规定时间就会闹响,第二种就是选手抢答后,若没在倒计时中回答问题,则也会出现闹响。

三:系统主要程序的设计。

1.1程序文字概述。

1)显示对选手号以及倒计时的数值,就需要分开显示,首先选手抢答后需转换对初始值的设定;然后就是倒计时部分,若主持人按下去后就需要对倒计时数值逐个逐个减少,同时倒计时的功能,需要我们利用中断系统来解决。(2)需要给个延迟函数,这样程序才能有时间反应过来。(3)响铃的相应,需另设一个中断,当倒计时01.

2主要程序流程图。

四:体会。在课程设计过程中,我所遇到的困难是相当的:

1、要充分理解老师给出**。在理解**中就遇到了些许的困难,比如当按下键后 if (num!=0) 这句话的意思是,若选手抢答后,先初始化抢答的初始值为01,然后做如下循环,若num>=2时,就需要执行k_qd++;flag2=0;大体意思是这样,但是在选择一个号码进行运算,看是否正确就遇到了困难,经过讲解后终于明白是如何来的了:

2、在动手之前,先要理清思绪,我们需要做的是什么,这是相当重要的:第一个就是当主持人按下键后,首先要设定倒计时的初始化值,然后才能继续做好下一步,而此时还要想到的是,如何使时间一秒一秒的减少,刚开始也不懂该如何来做好这一步,经过老师的讲解后,懂得运用中断来解决这个问题,在中断里面实现倒计时的功能,倒计时功能的实现是相当的重要的。第二个就是当选手按下键后,需要将显示选手号的数值转换成抢答后的选手的号码,然后倒计时功能也是同主持人按下键后的相同,利用中断实现功能,参照对闹铃设置中断功能。

当倒计时结束后,又回到自己设的初始值。

3、如何实现响铃功能,即当时间快到时需要提示选手抓紧时间。首先要在限定的时间内抢答,想到这,我们就需要在中断中时间减少的范围内做响铃功能,但是该如何来设中断呢?又是个问题,不过经过对以前做过的99闹铃的理解,当tr0=1时,即进入响铃中断,同时也要结束即tr0=0,可以选择在规定时间内。

4、若在主持人按键和选手按键下都设相同的中断,会使在倒计时时只是选择其中一个倒计时,如50s倒计时,这是不可取的,刚开始不知道出现什么问题,经过调试之后才知道原来中断是不可以同时放在并列关系的函数中,这样会造成干扰,所以就选择了放到扫描按键函数中。

通过这次课程设计,让我对单片机中断的设置有了更好的理解,从而达到了意想不到的结果,这是相当的重要的,同时独立做完一个课程设计,也需要听取同学的意见,多交流交流是件相当好的一种做法。

五:源程序清单。

#include <

#include <>

unsigned char k_qd,k_old;

unsigned char num,flag1,flag2;

unsigned char temp,stid,temp1;

sbit k_zhu=p3^0;

sbit spk = p3^3;

unsigned char code leddata[ ]0,1,2,3,4,5,6,7,8,9,关显示,数码管码表

unsigned char data display1[3] =存放学号显示值。

unsigned char data display2[3] =存放时间显示值。

延时函数。void delay( unsigned char m)

while(m--)

数据转换与显示函数。

void disp_count()

display1[2]=stid;

display1[1]=display1[2]/10;

display1[0]=display1[2]%10;

p0 =leddata[display1[0]] 显示个位。

p2 = 0x02;

delay(1);

p2=0x00;

p0 =leddata[display1[1]];显示十位。

p2 = 0x01;

delay(1);

p2=0x00;

display2[2]=temp;

display2[1]=display2[2]/10;

display2[0]=display2[2]%10;

p0 =leddata[display2[0]];显示倒计时个位。

p2 = 0x08;

单片机课程设计报告

单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 2014 年 7 月 5 日。目录。1 设计任务和性能指标 1 1.1设计任务 1 2 设计方案 1 2.1方案论证 2 2.2总体设计框图 2 3 系统硬件设计 4 3.1红外线解码电路设计 4 3....

单片机课程设计报告

韶关学院。课程设计说明书 设计题目 基于单片机控制的智能交通灯设计。课程名称 微机原理与应用实训。学生姓名 学号。院系 物理与机电工程学院汽车系。专业班级 12机械制造及其自动化 5班。指导教师姓名及职称 谢杰讲师。陈锦儒助理实验师。起止时间 2015 年 3 月 2015 年 5 月。课程设计评分...

单片机课程设计报告

南京工程学院。课程设计说明书 题目实时钟芯片pcf8563的应用 课程名称单片机原理及应用a 院 系 部 中心 通信工程学院。专业电子信息工程 传感网 班级。学生姓名。学号。设计地点信息楼 c 210 指导教师。设计起止时间 2013年12月23日至 2013年12月27日。一 摘要1 二 课程设计...