ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:290.82KB ,
资源ID:24121322      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24121322.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(多功能抢答器与投票器报告.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

多功能抢答器与投票器报告.docx

1、多功能抢答器与投票器报告多功能投票抢答器设计与总结报告参赛队名:三人行组员:杨福 金香 黄思友2010年11月05日目录摘要: 31. 系统方案选择和论证 31.1 系统基本方案 31.2 各模块方案选择和论证 41.2.1电源模块 41.2.2通信模块 41.2.3按键模块 51.2.4显示模块 61.2.5 声音模块 61.2.6单片机复位电路模块 72. 理论分析与参数计算 73.系统的电路设计与实现 83.1系统硬件的基本组成部分 83.2主要单元电路的设计 93.3系统的软件设计 103.3.1单片机c程序: 103.3.2上位机部分: 184.系统测试 214.1测试仪器 214.

2、2指标测试方法及测试数据 215.结果分析 236.总结 23参考文献 24摘要:全国人大副委员长曾经说过:使用电子投票器后投反票的人数增多了,可见投票器是多么的重要,同样抢答器也是十分的重要,如果没有电子抢答器许多来为我们提供帮助,那么一些赛事就无从谈起什么公平不公平,正因为如此我们设计了这款多功能投票与抢答器,集两者功能于一身,并利用单片机与电脑串口通信随时把单片机上的投票信息与抢答信息发送到电脑中,并把数据保存在电脑,还可以通过电脑控制单片机的启动与设置倒计时时间。单片机系统的硬件结构给予了抢答系统“身躯”,而单片机的应用程序赋予了其新的“生命”,使其在传统的抢答器与投票系统面前具有电路

3、简单、成本低、运行可靠等特色。科学技术改变人们的生活,工作,学习的方式,更推进社会的民主化进程。关键字:单片机,投票器,抢答器,串口通信,vb。1. 系统方案选择和论证1.1 系统基本方案方案一:采用可编程I/O口扩展芯片8155 8155作为单片机的扩展接口能实现很多功能,但是这个系统并不复杂,用8155会浪费很多的资源,而且8155要用P0和P2端口作为地址线对它进行读写,这样不仅浪费端口还使得编程变的复杂。从节省资源和简化编程的角度考虑,放弃了此方案。方案二:直接采用stc89C52单片机 直接用单片机不仅编程被简单,还有效的利用了各个端口。8052单片机的资源完全够这个系统的要求。所以

4、最终选择了此方案。本系统采用stc89c52单片机为核心,外加max232芯片,利用rs232与pc进行电脑串口通信,用四个独立按键来代替四个选手的抢答与投票,通过一个自锁开关来选择功能,一个主持人开始键用来控制抢答和投票的开始,通过数码管来显示倒计时时间,因为采用动态扫描的方式容易占用cpu的内存,为了节约资源所以我们采用解码芯片4511来锁存信号并译码,这样为我们节约了不少资源与时间,为抢答与投票的精确性更提供了有力的手断。上位机我们采用vb编程软件,因为vb简单易学,而且有现成的mscomm控件,专门用来串口通信的。该表决器可完成4人会议投票、抢答等功能,通过LED、数码管和串行口可完成

5、投票、抢答等结果输出。图1 系统设计模块图1.2 各模块方案选择和论证1.2.1电源模块 方案一:采用usb直接供电,好处:简单,成本低,可以利用电脑现存的usb口供电。 方案二:采用外部电源供电,并用7805稳压,在这里考虑我们的抢答器与投票器还必须脱离电脑的情况下也能正常运行,所以我们采用直接外部供电 图2 7805稳压电路1.2.2通信模块 这里我们采用rs232协议,利用max232芯片来完成通信。利用单片机与pc机串口通信,波特率设置在9600,传输方式采用方式1,八位数据位。连接方式见图3,图4 图3 max232外部引脚图与内部原理图 图4 max232与电脑,单片机的连接1.2

6、.3按键模块功能选择键我们采用自锁开光,当开关按下时为投票模式,没按时为抢答模式。选手按键我们采用独立按键。 图5 功能选择键 图6 选手抢答键1.2.4显示模块方案一:采用共阳极数码管,利用人眼的视觉暂留效果,用单片机动态扫描,实现显示效果。方案二:由于采用动态扫描要占用系统的资源,因此我们采用4511解码芯片来驱动,数码管采用共阴极数码管。故方案一舍弃,采用方案二。 图7 显示模块1.2.5 声音模块方案1:用专门的声音模块,但是考虑经济方面,还有单片机本身资源还是比较丰富的,且声音模块还要占用pcb的一定空间,还考虑抢答投票并不需要很高级的声音,所以舍弃此方案。 方案2:用单片机来产生不

7、同频率的脉冲波来驱动蜂鸣器发生,由于此方法投资小,编程也简单,更符合题目要求,所以选择此方案。 图8 声音模块1.2.6单片机复位电路模块 在这里我们采用自动复位与手动复位共存的方法,自动复位就是当把电源开关打开时利用电容的充放电特性,给RST一个高点平完成复位,手动复位,就是把按键按下时,强制给RST一个高电平以实现复位。 图9 单片机复位电路模块2. 理论分析与参数计算 单片机时钟晶振的选择:由于我们此系统要与电脑经行串口通信,在通信中,数据的安全性与精确性事很重要的,所以我们在此采用11.0592MHZ的晶振,这样算出来的值才没有误差存在。波特率计算:波特率=(2smod /32)*(定

8、时器T1溢出率)溢出率=溢出周期的倒数溢出周期=(256-X)*12/Fosc波特率=(2smod * Fsoc)/(32 *12*(256-X)而我们的波特率设置在9600带入计算得出 TH1=0xFA; TL1=0xFA;(这里我们smod等于1)。发光二极管限流电阻的选择:R=(5-2)/10=300欧姆,这里我们选用220欧姆的电阻,能进一步加大发光二极管的显示亮度。数码管限流电阻的选择: 这里我们同样选择220欧姆电阻做为我们的限流电阻,事实证明,显示效果良好。单片机复位电路电阻电容选择:电阻电容的值的选择是由我们单片机的复位时间决定的,而单片机的复位,只需在RST引脚上加两个机器周

9、期的高电平即可完成复位。假设高电平复位有效,一充一放周期是1.386*RC,舍去充放过程中较低的电平,一般的单片机复位脉冲宽度取值:(0.71)RC 反正都是大概的,电平保持时间越长越好,电容大点好。单位是:(R)*(C)=(欧姆)*(法拉)秒R10K,C0.1UF 则延时时间是(10*1000)*(0.1/1000000)0.001秒一毫秒时间完全够复位电路的高电平时间 3.系统的电路设计与实现3.1系统硬件的基本组成部分 图10 硬件实物图 图11 Proteus原理仿真图3.2主要单元电路的设计电源电路所用元器件:LM7805*10,220uF电解电容(16V)*1,自锁开光*1,电源插

10、孔*1,发光二极管(绿色)*1,220欧姆色环电阻*1原理图见图2通信电路所用元器件:max232cpe通信芯片*1,1uF电容(50v)*1,16脚插座*1原理图见图Max显示电路所用元器件:RJ5101AH*2(共阴数码管),HCF4511BE译码器*2,220欧姆色环电阻*10,发光二极管*8原理图见图3,图4单片机最小系统所用元器件:STC89C52单片机*1,11.0592MHZ晶振*1,10pf陶瓷电容*2,排阵20针*2,独立按钮*1,10uF点解电容*1,带锁单片机插座*1原理图见图11键盘与蜂鸣器所用元器件:独立按键*5,带锁开关*1,蜂鸣器*1,9012三极管*1,100欧

11、姆色环电阻*13.3系统的软件设计3.3.1单片机c程序:#include #include #define uchar unsigned char#define uint unsigned int /* 函数声明void delay(uchar t); /延时函数void SPEAKER_get(void); /抢答函数void SPEAKER_foul(void); /违规函数void SPEAKER_start(void); /开始函数void toupiao(); /投票程序void toupiaokaishi(); /投票开始程序void toupiaoxianshi(); /投票显

12、示结果程序void qiangda(); /抢答程序void qiangdakaishi(); /抢答开始程序void ledsan(); /发光二极管显示程序void install(); /初始化程序void display(uchar x,uchar y) ; /数码管闪烁程序uchar key_xuanshou(); /选手键盘扫描程序uchar key_gnxz(); /功能键扫描程序uchar key_start(); /主持人开始键扫描程序void start(); /开始程序void ckchaxun(); /串口查询 /* /* 位定义sbit gnxz=P27; /功能选择

13、位sbit b1=P25; /选手一键sbit b2=P24; /选手二键sbit b3=P23; /选手三键sbit b4=P22; /选手四键sbit BEEP=P20; /蜂鸣器sbit l1=P00; /选手一对应的发光二极管sbit l2=P01; /选手二对应的发光二极管sbit l3=P02; /选手三对应的发光二极管sbit l4=P03; /选手四对应的发光二极管sbit host_start=P26; /主持人按键 /* /*bit st=0; /启动标志bit led=0; /时间标志位uchar miao; /定时器0:当定时器中断miao加1uchar number=

14、0; /串口是否连通标志位uint keyid=0; /选手键值标志位uchar time=30; /倒计时时间uchar time2_number=0; /定时器2计数次数uint toupia4; /用于存放投票结果的数组uchar re_data4 =0; /串口接收到的数据uchar rre_data4=0;uchar code table110=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09;/数码管高位编码uchar code table210=0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x8

15、0,0x90;/数码管低位编码/*/*/函数名:主函数/功能描述:初始化设置,当打开系统后,八个发光二极管亮一下,以示系统运行正常/调用函数:install(),delay();start()/*main() miao=0; install(); P0=0x00; delay(50); P0=0xff; miao=0; start(); /*/函数名:开始函数/功能描述:功能选择,并向pc发送功能选择信息/调用函数:printf(),toupiao();qiangda();/*void start() if( key_gnxz()=1) printf(现在功能:投票); toupiao();

16、if(key_gnxz()=0) printf(现在功能:抢答); qiangda(); /*/函数名:投票入口函数/功能描述:在此不断检测是否有开始键按下和查询串口信息,如果有开始信号则转入正式投票,否者如果没开始信号而有人按下则是违规,则报警/ 投票后装入投票显示函数。/调用函数:key_start(),ckchaxun();key_xuanshou();SPEAKER_foul();SPEAKER_start(); toupiaokaishi(); toupiaoxianshi();/全局变量:st /*void toupiao() st=0; while(!key_start()&st

17、=0) ckchaxun(); if(key_xuanshou()!=0) SPEAKER_foul(); st=0; SPEAKER_start(); toupiaokaishi(); toupiaoxianshi();/*/函数名:投票函数/功能描述:进入函数把倒计时时间赋值给shezhi变量,然后票数清零,开led闪烁,开定时器0,串口查询,当倒计时到零或者票数大于4则跳出/ 关led闪烁关定时器0,发送投票信息给电脑。/调用函数:display();ckchaxun();key_xuanshou();delay();printf();delay();SPEAKER_foul();/全局

18、变量:time,toupia0,toupia1,toupia2,toupia3 /*void toupiaokaishi() char shezhi=time; toupia0=0; toupia1=0; toupia2=0; toupia3=0; led=1; TR0=1; miao=0; display(shezhi); while(shezhi!=0) ckchaxun(); if(miao=20|miao20) shezhi-; display(shezhi); miao=0; switch (key_xuanshou() case 1: if(toupia05) toupia0=to

19、upia0+1; SPEAKER_start(); else SPEAKER_foul(); break; case 2: if(toupia15) toupia1=toupia1+1; SPEAKER_start(); else SPEAKER_foul(); break; case 3: if(toupia25) toupia2=toupia2+1; SPEAKER_start(); else SPEAKER_foul(); break; case 4: if(toupia3=4) shezhi=0; led=0; TR0=0; P0=0xff; printf(1号选手得票为%d,toup

20、ia0); delay(100); printf(2号选手得票为%d,toupia1); delay(100); printf(3号选手得票为%d,toupia2); delay(100); printf(4号选手得票为%d,toupia3); delay(100); /*/函数名:投票显示程序/功能描述:每隔一秒显示一个结果,第一个数码管显示选手号码,第二个显示选手票数/,当有开始键按下的时候停止显示,转到投票入口函数。/调用函数:key_start();toupia();/全局变量:miao /*void toupiaoxianshi() uchar i=0; miao=0; TR0=1;

21、 while(!key_start()&st=0) ckchaxun(); if(miao=20) display(i+1)*10+toupiai); i+; if(i=4) i=0; miao=0; TR0=0; P1=0xff; toupiao(); /*/函数名:抢答入口函数/功能描述:在此不断检测是否有开始键按下和查询串口信息,如果有开始信号则转入正式抢答,否者如果没开始信号而有人按下则是违规,则报警/调用函数:key_start(),ckchaxun();key_xuanshou();SPEAKER_foul();SPEAKER_start(); qiangdakaishi();/全

22、局变量:st /*void qiangda() st=0; while(1) ckchaxun(); if( key_start()|st) st=0; SPEAKER_start(); P0=0xff; qiangdakaishi(); if(key_xuanshou()!=0) SPEAKER_foul(); /*/函数名:抢答函数/功能描述:进入函数把倒计时时间赋值给shezhi变量,开定时器0,串口查询,当有人投票时,倒计时停止,蜂鸣器响起,发送抢答信息给电脑/ 关led闪烁关定时器0,发送投票信息给电脑,转到抢答入口函数。/调用函数:display();ckchaxun();key_

23、xuanshou();delay();printf();delay();SPEAKER_get(); qiangda();/全局变量:time,miao,keyid /*void qiangdakaishi() uchar shezhi=time; TR0=1; miao=0; display(shezhi); while(1) ckchaxun(); if(miao=20) shezhi-; display(shezhi); miao=0; switch (key_xuanshou() case 1: l1=0; keyid=1; SPEAKER_get(); break; case 2: l2=0; keyid=2; SPEAKER_get(); break; case 3: l3=0; keyid=3; SPEAKER_get(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1