基于单片机的无线投票系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
燕山大学
信息科学与工程学院本科毕业设计(论文)中期报告
课题名称:基于单片机的无线投票系统
学院(系):信息科学与工程学院
年级专业: 10级通信工程
学生姓名: **********
指导教师: *********
完成日期: 2014年5月14日
一、任务书中本阶段工作目标与任务要求
本次毕业设计的题目是:基于单片机的无线投票系统。经过第一阶段的资料搜集和对相关信息的了解,本阶段的工作目标与任务主要是:熟悉单片机、无线传输模块的硬件使用方法,根据其使用方法和要实现的功能搭建相应的硬件电路并编写相应的系统软件。其中,本次毕设所使用的单片机的型号是:STC12C5A60S2,无线传输模块的芯片是:nRF24L01。
二、目前已完成任务情况
经过一个多月的学习与研究,在熟悉本次毕设所需硬件的使用方法之后,学习了Altium Designer 的使用,并根据本次毕业设计的要求,用该软件完成了硬件电路部分原理图的设计和PCB板的布局、布线。其中,硬件电路部分主要包括投票终端和接收终端两部分。
在搭建接收终端的硬件电路时,先是根据实际需要选定相应芯片,然后根据情况选择一个合适的芯片封装,由于Altium Designer 自带的库里没有我所需要的相应的封装,因此,在画原理图之前我先根据所选用的器件的封装画了相应的封装图库。之后才画原理图,并由原理图生成PCB,PCB布局时尽量将功能相近的元器件放在一起,以减小器件之间的信号线长度和不必要的干扰。布线的规则主要有:主电源线的宽度设置为:30mil,信号线的宽度设置为:10mil,过孔的外径为:30mil,内径为:15mil,贴片焊盘引脚间距的最小值为:5mil,焊盘之间的最小孔间距是:5mil,元器件之间的最小安全距离为:10mil。
投票终端:该部分的硬件电路主要包括:电源模块、串行接口、单片机最小系统、无线传输模块、按键、LED灯。为减小PCB板的面,该电路中的电阻、电容都选用表贴封装并且是双面焊接。其中,电源模块是通过一个
5V AC-DC电源给PCB板供电,为保证电源信号的稳定,还将该转换后的电源通过一片5V稳压芯片之后给串口芯片RS232和单片机的供电。串口主要是用于PC机和单片机之间的通信,包括:PC机向单片机写入程序,单片机向PC机传送数据。由于该电路所选用的无线传输模块的供电电源是3.3V,因此,在给该模块接入电源信号前要先接入一片3.3V的稳压芯片,这里选用的是:LM1117_3.3。按键主要是投票选项,这里设置了3种投票选项:赞成、反对、弃权,每一个选项对应一个独立的按键。此外,为增加该投票系
统的实用性,还增设了确认按钮。只有当确认按钮按下之后,投票信息才会被锁定而无法更改,否则投票信息是可以更改的。4个LED指示灯是指示投票结果的,当按下投票按钮之后,其对应的指示灯会点亮,当按下确认按钮时,则会同时点亮当前的投票指示灯和确认指示灯。
投票终端电路原理图如下:
投票端PCB
在硬件电路搭建完成之后学习了Keil软件,并根据所需要实现的功能,利用该软件编写了系统程序,主要包括投票终端和接收终端两部分。其中投票终端主要是实现投票、显示、发送;接收终端主要实现开始控制、数据接收、计数和显示。
由于该系统要实现50个以上投票器的投票统计,因此,本系统主要的传输思路是延时,即投票端经过延时后逐个发送投票信息,主机挨个接收投票端的投票结果。具体实现细节如下:
投票终端:开机后,投票终端的液晶显示屏幕上显示:“HELLO !”,当投票终端收到来自接收主机发来的开始控制信号之后,在LCD液晶显示屏上显示:“_START”开始信号,直到投票终端按下投票按钮,LCD液晶显示屏上显示当前的投票信息并且将当前的投票结果放入发送缓冲器。当按下确认按钮之前,发送缓冲器中的投票结果可以改变,只有当按下确认按钮之后,
投票信息才会被锁定。注意,为保证所有投票器的等待发送投票信息的计时起点相同,在投票终端完成投票后会进入一个查询等待阶段,等待主机发来的开始接收信号“F”,当投票端收到该信号之后便进入信号发送之前的等待阶段。因此,在接收主机发来的开始接收信号之前,投票a段必须完成投票并按下确认按钮,否则该投票器将无法完成投票功能。1号投票器的等待时间最短,2号投票器则要比1号投票器多等待200ms,3号投票器比2号投票器多等待200ms,以此类推,每个投票器的等待时间间隔200ms,当完成等待之后便将发送缓冲区里的数据发送出去。
1号投票终端程序流程图如下:
接收终端:该部分的硬件构成主要包括:串行接口、无线传输模块、电源模块、单片机最小系统、按键、LED灯。
开机后,液晶显示屏上显示:“HELLO !”,等待控制者按下开始按键K1,当该按键按下时,接收终端的MCU控制无线发射模块发送一个开始信号给投票终端,告诉投票终端接收端开始投票,并控制接收端的显示屏显示:“START”字符串,为保证投票者都能完成投票,此处设置了10秒等待时间(实际场合中,该等待时间可以比这个时间长,这个等待时间是可以根据不同场合而改变的),等待投票端完成投票后,发送一个开始接收信号“F”作为投票终端的计时开始信号。在显示屏的第二行分别显示字符:“ZC”、“FD”、“QX”。然后进入循环体,等待投票端发来的投票信息,并在第一行的对应位置显示当前的统计票数。其中,由于投票终端发送数据时是间隔200毫秒发送的,所以,为避免数据丢失,接收端扫描接收信号的时间间隔是100
毫秒。
接收方电路原理图如下:
接受端PCB
接收端流程图如下:
三、存在的问题和拟解决方法
存在的问题:虽然目前该系统能够实现投票和计数统计功能,但是,考虑传输的可靠性和稳定性之后,传感终端发射数据有200毫秒的延时,因此实时性并不够高,且在延时的时候MCU一直处于工作状态,这样对MCU的利用率不够高。
拟解决的方法:利用多通道通信,一次接收5个或者6个投票器发来的