三路抢答器课程设计报告.docx

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

三路抢答器课程设计报告.docx

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

三路抢答器课程设计报告.docx

三路抢答器课程设计报告

三路抢答器课程设计报告

 

单片机综合设计报告

 

专业:

电气工程及其自动化

年级:

2012级

学号:

20122213112

姓名:

刘伟

成绩:

 

指导教师:

陈勇

三路路抢答器

1.内容概述

抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。

目前大多数抢答器均使用单片机和数字集成电路。

本设计利用C51单片机及外围接口实现多路抢答系统,利用单片机的定时器/计数器定时和记数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使液晶屏能够正确地显示计时时间。

目前电视节目日益丰富,其中的竞赛环节也越来越多,其中抢答器是不可或缺的器材。

它能准确、公正、直观地判断出第一抢答者。

本次设计用STC12C5A60S2单片机作为核心控制元件,设计一个简易的抢答器,并通过利用KeilC软件编辑程序,仿真验证。

使系统能够完成多路抢答,且系统实用性强,判断精准,操作简单。

2.设计方案及原理

本次设计的抢答过程主要分为准备抢答,开始抢答,开始答题三个阶段。

本方案以STC12C5A60S2单片机作为主控核心,与晶振、液晶屏等构成三路抢答器,利用了单片机的电源电路、按键复位电路、时钟电路、定时电路等。

具体系统设计方框图如图1所示。

图1系统原理方框图

三抢答器由三个按键控制,程序一致判断是否有按键按下,若没有按键按下则循环判断,直到有按键按下后,立即把通过按键输入的信号储存起来然后对3路输入信号进行扫描判断,发光二极管亮闪,液晶显示屏显示抢答到的人,表示抢答成功。

软件设计利用中断系统的基本构成原理编写中断服程序,其信号由按键电路提供,由CPU响应中断,并输出响应。

用到了定时器模块、显示时间模块、计数器模块等。

程序流程图如图2所示。

图2系统流程图

 

3.原理分析

在抢答中,只有规定开始后抢答才有效,如果在开始抢答前抢答为无效;液晶屏可以显示是哪位选手有效抢答,抢答时间和回答问题时间倒计时显示在液晶屏上。

若选手回答完毕,主持人按下准备按钮,液晶屏清零,可以进入下一提的抢答。

P3.0为主持人按键,提示选手开始抢答,此时三极管D1闪亮。

P3.1-P3.3为三路抢答的输入,为选手抢答按键。

P3.0为主持人提示开始抢答倒计时按键,此时液晶屏倒计时。

P1.1-P1.3为选手对应的提示灯按下即闪亮,重复按下无效。

4.程序设计:

#include

#defineuintunsignedint

#defineucharunsignedchar

ucharnum,s1num,count,shijian;

sbitd1=P1^0;//zhuchi

sbitd2=P1^1;//xuanshou1

sbitd3=P1^2;

sbitd4=P1^3;

sbitd5=P1^4;

sbitk1=P3^3;//zhuchi

sbitk2=P3^2;//xuanshou1

sbitk3=P3^1;

sbitk4=P3^0;

ucharcodetable[]="ANSWER2";

ucharcodetable3[]="ANSWER1";

ucharcodetable4[]="ANSWER3";

ucharcodetable1[]="PLEASEDATI";

ucharcodetable2[]="JINGA";

sbitlcden=P2^0;

sbitlcdrs=P2^2;

sbitlcdrw=P2^1;

sbitbeep=P2^6;

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voiddi()

{

beep=0;

delay(100);

beep=1;

}

voidwrite_com(ucharcom)

{

lcdrs=0;

lcden=0;

P0=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

voidwrite_date(uchardate)

{

lcdrs=1;

lcden=0;

P0=date;

delay(5);

lcden=1;

delay(5);

lcden=0;

}

voidwrite_sfm(ucharadd,uchardate)

{

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+0x40+add);

write_date(0x30+shi);

write_date(0x30+ge);

}

voidinit()

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

lcden=0;

lcdrw=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80);

for(num=0;num<13;num++)

{

write_date(table1[num]);

delay(50);

}

write_sfm(0,shijian);

}

voidkeyscan()

{

if(k1==0)

{

delay(5);

if(k1==0)

{

while(!

k1);

s1num++;

di();

if(s1num==1)

{

TR0=1;

d1=0;

delay(500);

d1=1;

}

if(s1num==2)

{

s1num=0;

d1=0;

delay(500);

d1=1;

TR0=0;

shijian=0;

}

}

}

}

voidmain()

{

init();

while

(1)

{

keyscan();

}

}

voidtimer0()interrupt1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

if(count==20)

{

count=0;

shijian++;

if(shijian==20)

{

write_com(0x80+0x40+8);

for(num=0;num<5;num++)

{

write_date(table2[num]);

delay(50);

}

}

if(shijian==60)

shijian=0;

write_sfm(0,shijian);

}

if(s1num!

=0)

{

if(k2==0)

{

delay(5);

if(k2==0)

{

while(!

k2);

TR0=0;

d2=0;

delay(500);

d2=1;

write_com(0x80+0x40+8);

for(num=0;num<8;num++)

{

write_date(table[num]);

delay(50);

}

}

}

if(k3==0)

{

delay(5);

if(k3==0)

{

while(!

k3);

TR0=0;

d3=0;

delay(500);

d3=1;

write_com(0x80+0x40+8);

for(num=0;num<8;num++)

{

write_date(table3[num]);

delay(50);

}

}

}

if(k4==0)

{

delay(5);

if(k4==0)

{

while(!

k4);

TR0=0;

d4=0;

delay(500);

d4=1;

write_com(0x80+0x40+8);

for(num=0;num<8;num++)

{

write_date(table4[num]);

delay(500);

}

}

}

}

}

5.实际制作结果概述

初始状态如图3所示

图3

当裁判员按键开始后开始计时如图4

图4

当有人抢答时结果如图5此时为2号抢答到

图5

这就实现了简单的抢答器的功能。

6.总结

本次课程设计的题目是三路抢答器设计,在设计的过程中出现了以下几种问题。

复位键按下电路无反应的现象,通过调节变阻的大小才解决了液晶屏不现实的问题。

而复位键不灵敏的问题则是因为时间过短导致复位显示不明显。

通过查阅相关资料,许多问题最终得到解决。

而这些才是作为一名工科学生最宝贵的财富。

 

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

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

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

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