无线抢答器Word格式文档下载.docx
- 文档编号:21507534
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:28
- 大小:572.89KB
无线抢答器Word格式文档下载.docx
《无线抢答器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《无线抢答器Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
图3.3.1PT2262原理图
PT2262发出的编码信号是由:
地址码、数据码、同步码组成一个完整的码字,解码芯片接收到解码信号时,其地址码经过两次比较核对后,VT标志位才会输出高电平,相应的数据码也会变成高电平,当发射机没有按键按下的时候,PT2262不接通电源,PT2262不工作,当有按键摁下的时候,其17管脚输出经调制的串行数据信号。
PT2272采用的是PT2272-M4,表示数据输出为四位的暂存性红外遥控接收芯片,采用此型号的芯片主要是为了配套语音模块的只刷新一遍,否则采用L4型号语音模块将不断刷新播报,采用四位数据输出因为四位数据输出的编码足够各种功能的组合。
3.474HC573、74HC595
图3.474HC573原理图
74HC573是器件的输入是和标准CMOS兼容的,具有高噪声抵抗特性的8路锁存器,恰好够数码管的8路输出。
74HC595是硅结构的CMOS器件,兼容低电压TTL电路,由串行输入8位并行输出的移位寄存器和一个存储器构成,因为移位寄存器和存储器是不同的时钟。
因此当输出8位数据时,通过控制两个时钟,当连接数码管时中间的移位状态不会显示,只会显示移位后的状态。
这也是74595相较于74164的优点。
3.5驱动芯片ULN2803
图3.5ULN2803原理图
ULN2803属于高电压、大电流的达林顿晶体管阵列。
他的驱动负载电流是500mA,驱动电压为50V。
适合驱动大数码管。
4.系统软件设计
4.1系统软件开发环境
采用KEIL开发环境,对STC89C51进行控制,通过单片机开发板将程序下载到单片机中。
具体步骤如下:
1、启动KEILC51。
2、新建一个工程。
Project菜单——NewProject,选择好要保存好的文件后,键入qiangda保存,接着弹出CPU的类型,选择STC89C51。
3、在工程中加入文件,新建一个文件,文件菜单File——New,我们再选择文件菜单File——Saveas,弹出对话框后,我们文件名框中键入qiangda.c,这样C文件就建立好了。
再把文件加入到工程中去。
点击Target1前面的+号键,右键单击SourceGroup1——选择AddFiletoGroupSourceGroup1,选择添加Add。
4、Project设置:
在Project——optionsforTarget(target1)——output将createHEX选中,这样编译后如果程序没有问题就可以生成单片机可以识别的HEX文件。
5、将程序下载到单片机中,打开STC-ISP,选择单片机的型号,打开程序文件,选择正确的com口,下载程序,给开发板上电,当显示下载成功后,就可以实现实现相应的功能。
图4.152系统开发板
4.2系统主要功能的实现流程
图4.2系统流程
4.3系统主要功能实现源代码
#include<
reg52.h>
#include<
stdio.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitzhengdao=P3^2;
//正倒计
sbitqidong=P3^3;
//启动
sbitpan=P3^4;
//抢答时间还是回答时间
sbitbaiadd=P3^5;
//百位的按键
sbitshiadd=P3^6;
//十位的按键
sbitgeadd=P3^7;
//个位的按键
sbitzanting=P1^5;
//暂停
sbitpan2=P1^7;
//清屏
#defineKEYP1//定义用来检测按键的端口
sbitK0=P1^1;
sbitK1=P1^2;
sbitK2=P1^3;
sbitK3=P1^4;
//程序代码为四个抢答端
sbitDUAN=P2^6;
//定义锁存使能端口段锁存
sbitWEI=P2^7;
//位锁存
sbitTTS_BUSY=P1^0;
//检测SYN6288模块工作状态
#defineHEAD_LEN5//数据包头的长度
#defineLEN_OFFSET2//长度字节的偏移量(本例中长度不超过255字节,因此只使用1字节长度)
#defineBKM_OFFSET4//背景音乐命令偏移
#defineBKM_MAX15//背景音乐数量
//数据包头(0xFD+2字节长度+1字节命令字+1字节命令参数)
ucharcodehead[HEAD_LEN]={0xfd,0x00,0x00,0x01,0x00};
ucharnBkm=0x00;
//背景音乐编号
staticucharbai2=0;
shi2=0;
ge2=0;
//初始化
staticucharbai1=0;
shi1=0;
ge1=0;
uchacodeTAB[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
staticunsignedintsecond;
intm;
unsignedchartext[]={"
[soundu]选手抢答犯规,组号"
};
unsignedchartext1[]={"
[soundu]选手抢答成功,组号"
unsignedchartext2[]={"
#defineTEXT_LEN28//正文长度
#defineNUM_POS25
#defineNUM_MIN1
#defineNUM_MAX8
uintnNum=NUM_MIN;
staticucharcounter=0;
second_1=0;
second_0=0;
second_2=0;
voiddelay(unsignedcharm);
voiddelayms(unsignedinti);
voiddisplay();
voidUART_InitBaud(void);
voidDelay1(uintn);
voidBkMusic(ucharnum);
voidSpeech(uchar*buf);
voidscankey2(void);
voidTimer0(void)interrupt1
{
ET0=0;
TH0=0X3C;
TL0=0XB0;
counter++;
if(counter==20)
counter=0;
if(zhengdao==1)
second++;
elsesecond--;
if(second==0||second==999)
{TR0=0;
}
second_1=(second%100)/10;
//shi
second_0=(second%100)%10;
//ge
second_2=second/100;
ET0=1;
voiddelay(unsignedcharm)
{while(m--)
{
unsignedchari;
for(i=120;
i>
0;
i--)
{}
}
voiddelayms(unsignedinti)
unsignedchara,b;
for(a=0;
a<
i;
a++)
for(b=0;
b<
120;
b++);
voiddisplay1(void)
P0=0Xfe;
WEI=1;
//位锁存
WEI=0;
P0=TAB[bai1];
DUAN=1;
//段锁存
DUAN=0;
delayms
(2);
P0=0Xfd;
P0=TAB[shi1];
P0=0Xfb;
P0=TAB[ge1];
P0=0Xf7;
P0=TAB[bai2];
P0=0Xef;
P0=TAB[shi2];
P0=0Xdf;
P0=TAB[ge2];
voidscankey1(void)
if(pan==1)
if(baiadd==0)
delayms(10);
if(baiadd==0)
{while(baiadd==0);
(bai1)++;
if((bai1)==9)
{(bai1)=0;
if(shiadd==0)
if(shiadd==0)
{while(shiadd==0);
(shi1)++;
if((shi1)==9)
{(shi1)=0;
if(geadd==0)
if(geadd==0)
{while(geadd==0);
(ge1)++;
if((ge1)==9)
{(ge1)=0;
else
(bai2)++;
if((bai2)==9)
{(bai2)=0;
(shi2)++;
if((shi2)==9)
{(shi2)=0;
(ge2)++;
if((ge2)==9)
{(ge2)=0;
voiddisplay()
P0=TAB[second_2];
delay(3);
P0=TAB[second_1];
P0=TAB[second_0];
voidDelay1(uintn)
uchari=112;
while(n--)
while(i--);
//串口初始化
voidUART_InitBaud(void)
SCON=0xD8;
//晶振为11.059MHZ时,设定串口波特率为9600bit/s,方式3
PCON=0x00;
TH1=0xFD;
TR1=1;
//串口发送数据
voidSendChar(ucharn)
SBUF=n;
while(TI==0);
//发送数据
TI=0;
//背景音乐(参数为0表示关闭背景音乐)
voidBkMusic(ucharnum)
num%=BKM_MAX+1;
nBkm=num;
//发声程序
voidSpeech(uchar*buf)
uchari=0;
//循环计数变量
ucharxor=0x00;
//校验码初始化
ucharch=0x00;
ucharlen=0x00;
while(buf[len++]);
//当数组buf的第len个值的内容不为0时执行下列程序
//发送数据包头(0xFD+2字节长度+1字节命令字+1字节命令参数)
for(i=0;
i<
HEAD_LEN;
i++)
if(i==BKM_OFFSET)
ch=nBkm<
<
3;
//写入背景音乐
elseif(i==LEN_OFFSET)
ch=len+3;
else
ch=head[i];
xor^=ch;
SendChar(ch);
Delay1
(1);
}
//发送文字内容
len;
xor^=buf[i];
SendChar(buf[i]);
SendChar(xor);
//发送校验位
Delay1(10);
while(TTS_BUSY);
//等待语音结束
//键扫描
voidscankey2(void)
uchark;
KEY=0xff;
//置位键端口以读取键值
if(KEY!
=0xff)//如果有键按下
k=KEY;
//取键值
//消抖
if(K0==1)
nNum=1;
elseif(K1==1)
nNum=2;
elseif(K2==1)
nNum=3;
elseif(K3==1)
nNum=4;
elsereturn;
sprintf(text+NUM_POS,"
%1d"
nNum);
//修改选手号码
Speech(text);
//合成语音
Delay1(1000);
//抢答间隔
return;
voidmain()
TMOD=0X21;
EA=1;
UART_InitBaud();
//初始化串口为9600bps
Delay1(200);
BkMusic(4);
//背景音乐4
Speech("
[t5]欢迎大家参加竞赛,请[3]选手们做好准备"
);
//欢迎词
BkMusic(0);
//关闭背景音乐
Delay1(1000)
while
(1)
if(qidong==1)
{
if(zanting==0)
TR0=1;
for(m=0;
m<
28;
m++)
{text[m]=text1[m];
scankey2();
display();
if(K0==1&
&
K1==0&
K2==0)
P0=0Xf7;
WEI=1;
WEI=0;
P0=0X06;
DUAN=1;
DUAN=0;
delayms(4);
elseif(K0==0&
K1==1&
{
P0=0X5B;
K2==1)
P0=0X4F;
}
elseif(zanting==1)
TR0=0;
second=100*(bai2)+10*(shi2)+(ge2);
elseif(qidong==0)
for(m=0;
{text[m]=text2[m];
second=100*(bai1)+10*(shi1)+(ge1);
if(pan2==1)
scankey1();
display1();
else
P0=0Xff;
P0=0X00;
if(K0==1&
5.系统测试
5.1无线模块的测试
图5.1地址码和数据码的脉冲表示
其中,Ta=8个时钟宽度,Tb=1个时钟宽度,Tc=2个字码长度。
地址码和数据码都用宽度不同的脉冲来表示,两个窄脉冲表示“0”;
两个宽脉冲表示“1”;
一个窄脉冲和一个宽脉冲表示“F”也就是地址码的“悬空”。
图5.2pt2272的不同后缀功能
后缀的6和4表示有几路并行的控制通道,当采用4路并行数据时(PT2272-M4),对应的地址编码应该是8位,如果采用6路的并行数据时(PT2272-M6),对应的地址编码应该是6位。
图PT22622272编码信号波形
5.2显示数码管调试
经过一系列的调试,八英寸数码管已经可以完全实现可任意设定回答时间、抢答时间(0-999秒),时间可正计、倒计切换、清屏、显示抢答组号及分数的功能。
图5.2.1设定抢答时间、回答时间
图5.2.2抢答时间的正计/倒计
图5.2.3回答时间的正计/倒计
图5.2.4抢答组号显示
图5.2.5分数的加、减、清零及保持
6.课程建议
此门课程开的非常有意义,在以前觉得学接口什么的没有什么用处,觉得自己学的只是书本上的比较死的知识,但是通过这次实验,能够意识到一门课程只要学过了就一定能够用的上,这也是一个学习新的知识的过程,比如加深了我对高频知识的理解。
也让我理解了一个产品,他的系统的形成是一个不断优化的过程,要敢于突破,敢于创新。
通过电子实验,我们掌握应用基本理论和设计软件,设计电子电路的能力。
掌握电子电路的测试方法,熟练应用电子工程领域相关仪器、仪表和设备对电路的技术指标进行测试。
我们通过自主设计电路和软件来完成,解决一些实际问题。
而且开放性创新实验,给了我们一个完全自由发挥的平台。
在这里,我们利用所有资源实现自己的创意,提高了主动学习的积极性。
但是我觉得最好不要和学长学姐合作,容易产生依赖的心理。
并且产品的系统最好不是一方面的东西,不能直视软件方面的开发,或者只是模电知识。
7.参考文献
【1】康华光,邹寿彬.电子技术基础(数字部分)(第五版).高等教育出版社.2005
【2】康华光,邹寿彬.电子技术基础(模拟部分)(第五版).高等教育出版社.2005
【3】李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社.2005
【4】朱勇.单片机原理与应用技术.清华大学出版社.2006
【5】张毅刚,彭喜元等.新编MCS-51单片机应用设计(第二版).哈尔滨工业大学出版社.2006
【6】潭博学,苗江静.集成电路原理及应用.北京:
电子工业出版社.2003
【7】高峰.单片微机应用系统设计及实用技术[M].北京:
机械工业出版社.2004
【8】楼然苗,李光飞.51系列单片机设计实例.北京航空航天大学出版社.2006
【9】何书森,何华斌.实用电子线路设计速成[M].福州:
福建科学技术出版社,2006
【10】陈欢庆.电子制作理论与实践[M].浙江大学出版社.2005
【11】马淑华、王凤文、张美金.单片机原理及接口技术.北京邮电大学出版社.2005.10
【12】杨金岩,郑应强,张振仁.8051单片机数据传输接口扩展技术与应用实例.人民邮电出版社.2005
【13】王文杰
基于逻辑数字电路的抢答器设计-毕业论文(20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 抢答