无线表决器设计与实践
摘 要
本课题主要是设计并实现一个无线表决器系统,常用于民主表决。该系统以24L01无线通信模块作为主要通讯设备,采用的核心芯片为STC89C52,实现一对多的信息通讯,利用无线模块传输数据信息,并进行统计整理通过液晶显示屏显示出来,通过程序设定投票规则,分析票数统计情况,得到最终投票信息。并通过应答以达到上位机与各投票点之间的相互通信,从而组建一个基于24L01无线通信的投票系统。本设计采用同一数据通道传输不同点的数据,简化了程序而且拓宽了应用空间,同时对操作设定了声音报警系统,对于错误操作会发出警报提醒。
经过原理设计,制作PCB 电路板,硬件各模块调试,软件设计和调试,最终完成了该表决系统。系统在单个传输和多个同时传输中均可正常使用,并对每个投票机设置了不同地址,有效防止了同一次表决中重复投票的情况,可应用于各种投票表决场合。
关键字:无线传输;STC89C52;NRF24L01;显示;报警
Abstract
This topic mainly designing and implementing a wireless voter system, used to vote democratic. With 24 l01 wireless communication module for the system as the main communications equipment, the core chip for the STC89C52, for information of one-to-many communications, to transmit data using wireless module information, statistics and sorting through the LCD screen display, voting rules set by the program, the vote count analysis, get the final vote. And reply in order to achieve mutual communication between upper machine and various polling stations, so as to form a voting system based on 24 l01 wireless communication. This design uses the same data channel transmission difference data, simplifying the program and widen the application space, set up a sound alarm system to operate at the same time, the wrong operation will sound an alarm to remind.
Through the principle of design, production of PCB circuit board, the debugging of hardware module, software design and debugging, finally completed the voting system. In single and multiple transmission and transmission system can be normal use, and vote for each machine set a different address, effectively prevent the repeat voted on at the same time, can be applied to all kinds of vote on occasion.
Key words Wireless transmission; STC89C52; NRF24L01; Display; Alarm
目 录
摘 要 . ............................................................................................................................................. I Abstract .......................................................................................................................................... II
第1章 绪论 . .................................................................................................................................. 1
1.1 课题的背景及意义 . .......................................................................................................... 1
1.2 国内外研究现状 . .............................................................................................................. 1
1.2.1 国内外研究现状 . .................................................................................................... 1
1.2.2 分析 . ........................................................................................................................ 2
1.3 课题研究内容 . .................................................................................................................. 2
1.4 本章小结 . .......................................................................................................................... 2
第2章 硬件电路的原理与设计 . .................................................................................................. 3
2.1 系统分析 . .......................................................................................................................... 3
2.1.1 系统各模块分析 . .................................................................................................... 3
2.1.2 系统原理图 . ............................................................................................................ 4
2.2 单片机控制模块 . .............................................................................................................. 6
2.2.1 单片机概述 . ............................................................................................................ 6
2.2.2 单片机选型—STC89C52RC.................................................................................. 6
2.2.3 单片机电路设计 . .................................................................................................... 8
2.3 供电模块 . .......................................................................................................................... 8
2.3.1 LM1117芯片介绍 ................................................................................................... 8
2.3.2 供电模块电路设计 . ................................................................................................ 9
2.4 键盘模块 . .......................................................................................................................... 9
2.5 液晶显示模块 . .................................................................................................................. 9
2.5.1 液晶显示模块LCD 1602简介 . ............................................................................. 9
2.5.2 液晶显示模块电路设计 . ...................................................................................... 11
2.6 无线通信模块 . ................................................................................................................ 11
2.6.1 nRF24L01简介 . ..................................................................................................... 11
2.6.2 无线通信模块电路设计 . ...................................................................................... 13
2.7 报警模块 . ........................................................................................................................ 13
2.8 本章小结 . ........................................................................................................................ 13
第3章 软件设计 . ........................................................................................................................ 14
3.1上位机系统程序设计 . ..................................................................................................... 14
3.1.1 上位机无线通信程序设计 . .................................................................................. 15
3.1.2 液晶显示子程序设计 . .......................................................................................... 15
3.1.3按键子程序 . ........................................................................................................... 17
3.2 投票机系统程序设计 . .................................................................................................... 17
3.2.1按键子程序 . ........................................................................................................... 18
3.3 本章小结 . ........................................................................................................................ 19
第4章 系统安装调试 . ................................................................................................................ 20
4.1 系统软件调试 . ................................................................................................................ 20
4.1.1程序编译 . ............................................................................................................... 20
4.1.2 仿真调试 . .............................................................................................................. 20
4.2 系统硬件调试 . ................................................................................................................ 22
4.2.1 供电模块调试 . ...................................................................................................... 22
4.2.2 无线通信模块调试 . .............................................................................................. 22
4.2.3 液晶显示模块调试 . .............................................................................................. 22
4.3 本章小结 . ........................................................................................................................ 23
总 结 . ...................................................................................................................................... 24
参考文献 . ...................................................................................................................................... 25
附录1 系统PCB 图 .................................................................................................................... 27
附录2 系统实物图 . ..................................................................................................................... 29
第1章 绪论
1.1 课题的背景及意义
据《史记·周本纪》:“幽王为烽燧大鼓,有寇至则举烽火。”早在我国古代的周王朝就有利用烽火传达军事信号的记载,通过山峰上修筑的烽火台燃点柴火以迅速传达信息,这被认为是原始的无线远距离传输方法。直至1838年,塞缪尔·莫尔斯发明了“莫尔斯”码传递信号,出现了人类史上第一份电报。接着电话出现,随后几十年,“无线电之父”伽利尔摩·马可尼成功进行第一次横跨大西洋的无线电波传送实验,由此诞生了现代意义的无线通信。从电报,电话到如今遍布全球的互联网系统,无线信号传输的技术发展得很快,给人类生活带来了诸多的便利。使通信突破了时间和空间的障碍,进行实时的相互信号交流。
无线传输具有性能稳定,综合费用低,良好扩展性和较低的维护成本等特点,可以使通讯过程更为流畅、方便、快捷,实时地进行信息交流。在安全监测、工业监控、交通监控以及家庭监测等多个领域发挥重要的作用。无线传输日益上升为生活、生产、军事等活动的必备技术,在现代社会中已经成为必不可少的一部分。发展无线通信是发展科技的重要版块,未来的智能化生活也将离不开无线通信。
1.2 国内外研究现状
1.2.1 国内外研究现状
当今世界各国都进行了很多无线通信技术的研究和改进,最具代表性的是无线接入技术和蜂窝电话。在短短的二十年,经历了模拟的AMPS/TACS技术、数字的GSM/CDMA ONE,以及WCDMA/TD-SCDMA、HSDPA 技术等,通信终端的移动速度也将由低速发展到未来的高速。 中国无线通信网络,与国外相比,在技术水平上与应用程度上存在的差距是明显的,因而加大对无线通信技术的发展力度,并注重保护自主知识产权,是我国在以后研究中应该注重的。在网络规模方面的应用,尤其是无线网高速接入的应用方面,为令用户的无线远程接入更加灵活可靠,应加大大城市和中型城市的覆盖与使用的比率。
由最初的固定方式无线通信发展到了移动方式,至今,移动通信的发展历程约经历了五个阶段。首先是20年代到50年代初,主要将短波频率和电子管技术应用于航海和军事上,150MHz VHF单工汽车公用移动电话系统MTS 到这阶段后期才出现。然后是50年代到60年代期间,频段扩展到了UHF450MHz ,系统大都是移动环境中专用的,器件技术已过渡至半导体,解决了移动电话和公用电话网的接续问题。接着到70年代初至80年代初,由美国贝尔研究所提出蜂窝系统概念,频段扩展到了800 MHz,而AMPS 试验于70年代后期进行。随后是80年代初到90年代末,第二代数字移动通信兴起并快速发展,逐渐发展个人通信业务。最后是90年代末至今,数据通信和多媒体业务需求开始兴起,第三代移动通信拉开帷幕,它具有适应移动数据、移动计算和移动多媒体运作需要的优点。
1.2.2 分析
目前,无线电台、移动通信、微波通信、无线宽带、卫星通信、航天器与地球之间的远距离测控及通信等社会生活、生产的各个领域,都已经应用到了无线通信技术;无线电话机也是对无线通信技术的应用。广义来说,电视、广播以及各种家用电器的遥控也属于无线电通信的应用领域。无线通信技术为我们生活带来了很多的便利,成为了人类现代社会发展中极为重要的技术。
本设计以表决大会为应用场景,通过对无线传输信号的学习探究,进行实践设计。我国第一次使用电子表决器是在七届全国人民代表大会三次会议,这使民主表决更加体现其公平性,且极大地节省了表决时间和减少人力消耗,还有效防止作弊行为和避免人为差错。
1.3 课题研究内容
在对无线传输技术进行研究的基础上,设计一个基于无线传输技术的表决器系统。 课题研究内容为:设计一个无线表决器应用系统。该系统由上位机和表决器节点组成。上位机负责收集表决器发来的表决者的信息(同意、反对和弃权三种),并对表决情况进行统计比较。表决器上设定选项按键,并设置相应的色灯显示,当表决者按下选项按键并确认无误后,按下“确认”键,信息就会自动发到上位机中。具体工作包括:
(1)查阅资料,学习无线通信协议和标准及各种通信方式。
(2)无线通信系统硬件设计:分别设计上位机及投票机的无线通信系统电路。
(3)无线通信系统软件设计:设计无线通信C 语言程序,通过单片机实现通信。
(4)表决器系统模块调试:分别调试各个模块,保证各个功能可以顺利实现。
(5)系统综合调试,实现无线表决器功能。
表决器系统的功能与规则:实现上位机与多个投票机之间的无线通信,上位机启动后,投票人可通过投票机选择选项进行投票,按下确认后,投票机一直处于发射状态,因此在多个投票机同时发送时,也不会导致发送失败。而且,每个投票机有自己的标识地址,一旦发送成功,就不能进行重复投票,保证了公平性。
1.4 本章小结
本章主要是对无线通信技术的背景及发展历程、研究意义以及国内外研究情况的介绍,并结合本课题的制作要求,列出来课题研究内容,形成基本的课题设计框架。本章起到指导设计思路的作用,相当于写作的提纲。
第2章 硬件电路的原理与设计
2.1 系统分析
本系统广泛应用于生活中的民主表决,在投票表决的投票人数较多时,与传统的人工投票点票方式相比,本系统同时具备投票、点票、核对以及防止多次投票等功能。通过无线通信技术,采集统计投票机多路信息,并通过无线传输到主控接收上位机,主控接收上位机再通过LCD 液晶显示出投票结果。因此,在主控接收上位机上可以直接便捷地查看投票情况,而且还设置了错误操作报警装置,当出现超时投票、重复投票等错误操作时,投票机会通过蜂鸣器报警提醒,很好的体现了公平性和便捷性。此外,与有线连接的系统相比,应用无线传输解决了多线杂乱的问题,极大的方便了投票的场地的选择和安排。
2.1.1 系统各模块分析
本设计整个系统的运行主要是由一款单片机来协调控制。系统有两大部分,分别是上位机和表决器两部分。两大部分主要有8个模块组成,它们分别是:单片机控制模块、无线模块、5V 供电模块、5伏转3.3伏电路模块、液晶显示模块、键盘模块、指示灯模块、报警模块。整个系统的设计框图如图2-1所示,其中,单片机模块和无线模块是系统的核心部分。各模块的功能如下:
单片机控制模块:作为控制中心,协调各模块的工作。同时能够使用单片机内部EEPROM 对数据进行掉电存储,本设计选用了STC89C52RC 单片机作为核心芯片。
无线模块:用于传输投票信息,不同投票机的信息传输使用相同的数据通道来传输,本设计通过了不同的地址识别不同的投票机。
供电模块:使用USB 口为系统进行正常5V 供电(也可使用稳压电源供电)。并使用LM1117Y33芯片电路提供3.3V 电压给无线模块。
液晶显示模块:用于实时显示投票信息及结果显示,应用的是1602LCD 液晶显示。 键盘模块:用于表决选项选择和确认,按键不多,使用独立按键。
指示灯模块:用于指示选项,不同颜色表示不同选项,便于辨认。
报警模块:用于提示报警,当出现错误操作时,报警系统就启动,蜂鸣器响。
(a)上位机部分电路系统方框图
(b)投票机部分电路系统方框图
(c) 主、从机联机设计方框图
图2-1 本设计系统的方框图
2.1.2 系统原理图
系统的设计方案,原理图和PCB 图的绘制通过Altium Designer 软件实现。
上位机的原理图如下2-2所示,图中无线模块主要采用了nRF24L01作为核心通信芯片,它具有125个可选的工作频道,可以接收6路不通的数据通道,即数据通道0到通道5。本系统设计采用相同的数据通道传输不同从机的信号,无线模块接在单片机的P2口,使用3.3V 供电。主要通过LM1117Y33芯片电路实现5V 电压转换为3.3V ,输出的3.3V 电压可以直接供给无线模块工作。上位机也设置了三种颜色的LED 灯作为标示,其中红黄蓝对应不同的选票结果,另外一个绿色灯标示上位机处于正常工作状态。
表决器原理图如下2-3所示,无线模块和供电模块与上位机所设置的原理相似,只是无线模块接在单片机的P0口。在按键电路上,这里使用了三个表决选项及确认按键,均为独立按键。设置了红黄绿三种颜色的LED 灯对应不同的选项,便于使用者辨别已选项,且在按下确认键前可以更改选项。
图2-2 上位机原理图 五邑大学本科毕业设计 图2-3 表决器的原理图
五邑大学本科毕业设计
2.2 单片机控制模块
基于无线通信的表决器设计是运用单片机来实现的,单片机是整个系统的核心器件,只有选择合适的单片机型号,才能使得设计的各种功能得以实现,取得理想效果。
2.2.1 单片机概述
如今,单片机的应用已深入到人类生活和生产的各个领域,几乎每个智能产品都少不了单片机,对各个行业的技术革新和产品更新换代起到了极其重要的作用。依据单片机的应用要求,需具备以下的特点:
1、高集成度、体积小、重量轻。
2、面向控制,功能强大。
3、抗干扰能力强,可在恶劣的工作环境下运行。
4、使用方便,书刊及网络上的相关资料丰富,易于学习。
5、性价比高,容易产品化。
2.2.2 单片机选型—STC89C52RC
单片机的类型非常多,根据其数据总线的位数进行分类,可分为4位,8位,16位以及32位单片机。各种类型单片机均有各级的特点和应用领域。本设计选用的是目前被普遍应用的8位单片机,它具有应用范围广泛,学习资源充足,容易上手,性价比高等特点。 本设计选择8位单片机作为控制核心。STC89C52RC 的内部结构图如下图2-4所示,与标准51机相比,STC89C52RC 最大的特点是在片内集成了ISP/IAP(在系统可编程/在线可编程)的功能,无须编程器。 512KB
SRAM 8KB flash 闪存IAP 内置系统ISP 监控程序
P0
看门狗
Data Flash
集成MAX810
专用复位电路
UART(串口)
3个定时器双数据指针STC89C52RC 四个8位并行端口+P 40~P43四个附送I/O端口P4口地址 0E8H43
42
P4口均可位寻址P1P2P3P4
图2-4 STC89C52RC内部结构
所选用的STC89C52RC 单片机有以下的特点:
1、 可随意设置增强型6时钟/机器周期或12时钟/机器周期。 2、 工作电压:5.5~3.4V (5V 单片机)/2.0~3.8V (3V 单片机)。
3、 工作频率:0~40MHz ,相当于普通8051单片机,0~80MHz 是实际使用范围。 4、 8KB片内Flash 程序存储器,可以擦写10万次之多。 5、 片上集成512B RAM数据存储器。 6、 通用I/O口(32/36个),复位后为: P1、P2、 P3、P4为弱上拉/准双向口(相同于普通MCS-51 I/O口功能);P0口为开漏输出口,作用总线扩展时,不需加上拉电阻;P0口作为I/O口用时,要加上拉电阻。
7、 ISP在系统可编程,不需专门的编程器/仿真器,可以通过串口(P30/ P31)直接载入用户程序, 3秒就可以完成一片8KB 程序。
8、 芯片内置EEPROM 功能。 9、 硬件看门狗(WDT )。
10、 共3个16位定时器/计数器,兼容普通MCS-51单片机的定时器,其中定时器T0可以作为两个8位定时器使用。
11、外部中断4路,低电平触发中断或下降沿中断,可由外部中断唤醒掉电模式。 12、全双工异步串行口(UART ),兼容普通8051单片机的串口。 13、工作温度范围:0℃~75℃/-40℃~+85℃。
14、封装:LQFP-44、PDIP-40、PLCC44、PQFP44。建议优先选用LQFP-44,因其具有更小体积,扩展了P4口、外部中断2和外部中断3及定时器T2的功能。
STC89C52RC 单片机DIP-40封装管脚图如2-5所示。
图2-5 STC89C52RC单片机管脚图
单片机共有P0、P1、P2、P3四个8位双向I/O端口,均有锁存器、输出驱动器和输入缓冲器。其中P3口由于上拉的缘故,可作为一些特殊功能口,如表2-1所示:
2.2.3 单片机电路设计
单片机控制模块是这个设计的控制核心,它连接着各个核心模块,并控制各模块的工作状态。本设计选用的单片机是深圳宏晶科技公司的STC89C52RC 芯片。它是一款价廉、功能强大的单片机,内部含有8KB 的Flash Memory ,因此,对于本设计来说不必外接存储器,EA 脚接高电平。本设计中单片机采用11.0592MHz 的晶振,复位电路同时具备上电复位和手动按键复位功能。
2.3 供电模块
本设计采用USB 为单片机模块、液晶显示模块、按键模块、报警模块提供5V 电压,由于24L01无线通讯模块的工作电压是3.3V ,所以设计中采用LM1117Y33芯片电路,将5V 电压降为3.3V ,然后供给24L01无线通讯模块,以保证其处于正常工作电压环境。
2.3.1 LM1117芯片介绍
LM1117是一个低压差电压调节器系列。其压差在1.2V 输出,负载电流为 800mA时为
1.2V 。它的管脚排列与国家半导体的工业标准器件LM317相同。LM1117有可调电压的版本,若需1.25~13.8V 输出电压范围可通过2个外部电阻实现。另外还有5个固定电压输出(1.8V、2.5V 、2.85V 、3.3V 和5V) 的型号。
管脚描述如表2-2所示:
本设计使用的是LM1117的3.3V 电压的型号,LM1117提供热保护和电流限制。电路包含1个齐纳调节的带隙参考电压以确保输出电压的精度在1%以内。LM1117系列具有LLP 、TO-263、SOT-223、TO-220和TO-252 D-PAK 封装,其SOT-223和LLP 封装节省了空间。为
改善瞬态响应和稳定性,输出端需要一个至少10uF 的钽电容。LM1117主要应用于高效线性调整器、电池供电装置、电池充电器等。
LM1117管脚图如图2-6所示:
图2-6 LM1117的管脚图
2.3.2 供电模块电路设计
本设计中无线模块需要3.3V 供电,所以选用了LM1117Y33型号,其输入为5V ,输出为3.3V ,电路使用10uF 输入旁路电容和22uF 的输出电容。输出电容对于保持输出电压的稳定性具有特别重要的作用,选用22uF 的输出电容值可以提高回路的稳定性和瞬态响应。而5V 电压直接由USB 接口连接到电脑就可以直接提供了。
2.4 键盘模块
考虑到本设计需要3个选择按键和确认按键进行选择,因此使用独立按键,将各按键开关单独连接到单片机的输入引脚上称为独立按键,每个按键各占用一个单片机的I/O接口,每个I/O接口的状态不会影响到其它接口的工作状态,这种方式具有灵活的电路配置,结构简单,而其缺点在于,随着按键数目的增多,需要占用单片机的I/O接口资源也就增加,以满足其要求,另一种方法的使用矩阵键盘方式来扩展按键的数量,由于本设计输入按键数量仅为4个,因此使用独立键盘更为合适。
2.5 液晶显示模块
液晶显示作为本系统实现人机对话的一个重要组成部分,在本设计中扮演着重要的角色。通过液晶显示票数情况及投票结果等信息,动态直观,可以获得实时的信息。
2.5.1 液晶显示模块LCD 1602简介
1602液晶也称为1602字符型液晶 它是一种专门用于显示数字、字母、符号等的点阵型的液晶模块。它由多个5*7或5*11等点阵字符位组成,每个点阵字符位均可显示一个字符。每行之间有间隔,每位之间也有一个点距的间隔,具有行间距以及字符间距的作用。它不能显示图形(用自定义CGRAM ,显示效果也不好)也是因为这个缘由。
1602LCD 可指显示的内容为16*2,即可以显示每行为16个字符的两行,液晶模块(显示字符和数字)。
目前市面上的字符液晶,大部分是基于控制原理完全相同的HD44780液晶芯片,因此市面上的大部分字符型液晶能够很便利地应用基于HD44780写的控制程序。
1602LCD 具有3.3V 和+5V电压,本设计采用的是+5V的型号,器件内含有复位电路,可以调节对比度。具有清屏、光标闪烁、字符闪烁、显示移位等功能。
1602LCD 引脚功能如表2-3所示。
1602LCD 的基本操作时序:
读状态 输入:RS=L,RW=H,E=H 输出:DB0~DB7=状态字
写指令 输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码 输出: 无
读数据 输入:RS=H,RW=H,E=H 输出:DB0~DB7=数据
写数据 输入:RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据 输出: 无
1602LCD 时序图如图2-11和图2-12
读状态 输入:RS=0,RW=1,E=1 读数据 输入:RS=1,RW=1,E=1
图2-11 1602LCD时序图a
写指令 输入:RS=0,RW=0,E=下降沿脉冲,DB0~DB7=指令码
写数据 输入:RS=1,RW=0,E=下降沿脉冲,DB0~DB7=数据
图2-12 1602LCD时序图b
2.5.2 液晶显示模块电路设计
为了节省单片机I/O口资源,本系统使用串行接口方式来设计电路,由于选择串行方式,故将15脚PS 置低电平。显示模块主要接在单片机的P0口和P2口上,电路连接的变阻器用于调节显示的对比度。
2.6 无线通信模块
在本设计中,选用了nRF24L01无线模块作为系统无线通信设备,以传送投票情况和反馈信息,该模块是本系统设计的核心模块。对于多点表决信息进行传输,通常都要使用不同的数据通道来传输数据,而本系统设计的不同之处就在于使用相同的数据通道,传输时每帧数据的前两位为地址位,上位机通过地址位来区别不同的投票机,24L01具有125个不同的工作频道,这为多路数据传输带来极大的便利。
2.6.1 nRF24L01简介
nRF24L01是单片无线收发器芯片,工作于2.4~2.5GHz 世界通用ISM 频段。无线收发器包括:频率发生器、增强型SchockBurstTM 模式控制器、晶体振荡器、功率放大器、调制器和解调器。可通过SPI 接口设置输出功率频道选择与协议设置。此外,nRF24L01还具有极低的电流消耗,掉电模式和待机模式下的电流消耗最低,当工作于功率为-6dB ,发射模式的电流消耗仅为9.0mA ,接收模式时为12.3mA 。。
nRF24L01具有双向通信的功能,在处于接收状态时,接收端可以接收6路不同通道的数据,每个数据共用相同的频道,但是数据通道使用不同的地址。也就是说6个不同的nRF24L01设置为发送模式后可以与同一个设置为接收模式的nRF24L01进行通讯,而设置为接收模式的nRF24L01可以识别这6个不同的发射端。
根据nRF24L01的特性,设计中需要特别注意其工作电压,范围是1.9V ~3.6V 。另外,它有125个可选工作频道可供使用,具有适用于跳频的短切换时间。
nRF24L01的结构方框图如图2-13所示:
图2-13 nRF24L01的结构方框图
引脚及其功能如表2-4所示:
表2-4 nRF24L01的引脚及其功能
nRF24L01可设置以下几种模式如表2-5所示:
2.6.2 无线通信模块电路设计
由于nRF24L01无线模块的工作电压是1.9V ~3.6V ,所以本系统设计了5V 转3.3V 电压供电电路,以保证其工作在正常电压范围,其他功能管脚是与单片机的IO 口连接的,主要接在单片机P0口上。
2.7 报警模块
本设计设置了简单的错误操作报警提示功能,主要采用蜂鸣器声音报警。当单片机的P2.3口置低,通过PNP 三极管,使蜂鸣器电路联通,蜂鸣器响起。因此当投票操作错误(超时投票、重复投票)时,P2.3口就会被置低,蜂鸣器就会响起,起到提醒作用。
2.8 本章小结
本章详细介绍了基于无线通信的表决器系统设计硬件电路,通过单片机模块、供电模块、按键模块、液晶显示模块、无线通信模块和报警模块这六个模块来介绍整个系统设计,并对使用到的芯片的功能和特性进行说明。
第3章 软件设计
本系统的软件设计主要由单片机为核心的主机编程和投票分机编程构成,其中上位机编程主要包括无线通信程序设计、液晶显示子程序、指示灯子程序组成。投票机编程可分为系统主程序、按键子程序、报警子程序、无线通信分机子程序等4个部分。以无线通信为基础,以单片机为核心,达到多点投票数据采集的效果,并有蜂鸣器报警提醒等功能。
3.1上位机系统程序设计
上位机上电后初始化,液晶显示开始界面如图3-1所示。
图3-1 开始界面
此时系统显示画面一直显示主界面,等待接收投票机发送过来的信号,右起第一个绿色灯亮表示正常运行中。
主界面上显示“yes ”、“no ”、“quit ”、“RES ” 分别表示“同意”、“反对”、“弃权”、“结果”,根据投票人的选择,依次在对应的位置下加1,投票结束后,若同意票多于反对票,则“RES ”下显示“Y ” ,同时绿色灯亮;若反对票多于同意票,则“RES ”下显示“N ”,同时红色灯亮;若反对票等于同意票,则“RES ”下显示“Q ”,同时黄色灯亮。各种投票情况如下图3-2、3-3、3-4所示:
图3-2 同意多于反对时的界面 图3-3 反对多于同意时的界面
图3-4同意等于反对时的界面
上位机设置了复位键,当第一轮投票无效,或需要进行第二轮表决时,各个投票机复位后,上位机按下即可复位重新开始新一轮的表决。
3.1.1 上位机无线通信程序设计
本设计使用同一数据通道传输可以简化程序,不需要再开设其他的数据通道,而且理论上每一数据通道可以实现上位机与125个投票机通信,大大增加了扩展的容量,达到125*6个。而采用不同数据通道,只可以开通6个投票机,显然很难满足实际要求。此外,按下确认后,投票机一直处于发射状态,这不仅避免了信息同时发送而导致传输失败的情况。此外,由于数据每个标志地址只能被接收一次,即使把投票机复位,也不能再次投票,可以避免同一轮表决中重复投票的现象。
3.1.2 液晶显示子程序设计
液晶显示屏初始状态下,第一行显示“yes no quit RES ”
第二行显示“00 00 00 ”
初始化程序如下:
sbit led2=P1^0; sbit led1=P1^1; sbit led3=P1^2; sbit led4=P1^3; sbit lcdrs=P2^5; sbit lcde=P2^7; sbit lcdrw=P2^6;
//lcd端口定义
unsigned char TxBuf[5]={0}; unsigned char RxBuf[5]={0};
uchar data table[] ="yes no quit RES"; //液晶屏第一行初始显示 uchar data table1[]="00 00 00 "; //液晶屏第二行初始显示 uint fashe0=0,fashe1=0,receive;
uchar yes,no,quit,sum,result,STR_flag;
//led灯端口定义
void write_com(uchar com) { }
void write_data(uchar dat) { }
void write_shu(uchar add,uchar dat) //写入两位数函数 {
uchar shi,ge; shi=dat/10; ge=dat%10; write_com(add); write_data(0x30+shi); write_data(0x30+ge); }
void display() { }
write_shu(0x80+0x40+0,yes); write_shu(0x80+0x40+0x04,no); write_shu(0x80+0x40+0x08,quit);
//x显示
lcde=0; lcdrs=1; Delay(1); lcde=1; Delay(1); P0=dat; Delay(1); lcde=0;
//写数据子函数
lcde=0; lcdrs=0; Delay(1); lcde=1; Delay(1); P0=com; Delay(1); lcde=0;
//写命令子函数
上位机只设置复位按键和开始按键,按下“开始”键后,子机才可以开始投票。 void key()
{
uchar tf =0; if(k1 ==0 )
{
}
if (tf==1) Delay(1); if(k1 ==0 ) { while(!k1); tf = 1 ; yes = 0; no = 0; quit = 0; result++; FMQ=0; //蜂鸣器不响 //清除之前数据 //标示开始投票
} } { nRF24L01_TxPacket(TxBuf); // Transmit Tx buffer data tf=0; Delay(200); SetRX_Mode(); Delay(200); FMQ=1; //蜂鸣器响 }
3.2 投票机系统程序设计
每个投票机设置了三个表决选项以及一个确认按键,分别为“同意”“反对”“弃权”及“确认”投票,投票开始前,投票机的绿红黄三色等轮流点亮,成流水灯状态,等待投票。按下相应的选项后,仅亮所投选项的灯(按下“同意”绿灯亮;按下“反对”红灯亮;按下“弃权”黄灯亮;)。确定无误后,按下“确认”按键,即发送信号到上位机。按下确认后,投票完成,此时投票机一直处于发射状态,即使将其复位,也不能重复投票。
void key()
{
if(k2==0)
{
delay(2);
if(k2==0)
{
while(!k2);
flag=1;
yes =1;
no =0;
quit=0;
led_g=1;
led_r=0;
led_y=0;
}
}
if(k0==0)
{
delay(2);
if(k0==0)
{
while(!k0);
flag=1;
yes =0;
no =1;
quit=0;
led_g=0;
led_r=1;
led_y=0;
}
}
if(k1==0)
{
delay(2);
if(k1==0)
{
while(!k1);
flag=1;
yes =0;
no =0;
quit=1;
//是否按下按键K2,按下时进入执行 //延时防抖 //确认按下K2 //等待松开按键 //整型变量,当松开按键,设置其为1 //按下同意 //绿灯亮 //是否按下按键K0,按下时进入执行 //延时防抖 //若按下K0键 //等待松开按键 //整型变量,当松开按键,设置其为1 //按下反对 //红灯亮 //是否按下按键K1,按下时进入执行 //延时防抖 //确认按下K1 //等待松开按键 //整型变量,当松开按键,设置其为1 //按下弃权
led_g=0;
led_r=0;
led_y=1; //黄灯亮
}
}
if(k3 ==0 ) //是否按下按键K3,按下时进入执行
{
Delay(1);
if(k3 ==0 ) //确认按下K3
{
while(!k3); //等待松开按键
en_fs=1; //确认发送
}
}
3.3 本章小结
本章介绍了无线表决器系统的软件设计,对主要的控制子程序进行了分析。系统软件包括上位机编程和投票机编程两个部分,两部分程序独立工作。仅开通一个通信频道,即可实现多个投票机与上位机之间的相互通信,具有广阔的拓展空间。按下投票机确认键后,投票机一直处于发射状态,此时即使对投票机复位或断电重启,也不能进行二次投票,这样可以避免重复投票的舞弊行为。
第4章 系统安装调试
在本设计中,主要是分别进行软件仿真和硬件调试,然后软、硬件综合调试,逐步实现系统的各项功能。在调试中,分别对供电模块、无线通信模块、液晶显示模块、指示灯模块进行调试,各个模块调试成功后就可以联合上位机和投票机构成基于无线通信的表决器系统进行整体调试。
4.1 系统软件调试
4.1.1程序编译
本设计运用Keil μVision3对程序进行调试并编译,编译后生成.hex 文件。调试界面如图4-1所示:
图
4-1 Keil μVision3调试界面
4.1.2 仿真调试
通过keil 编译生成.hex 文件后,运用Proteus 软件对系统进行仿真调试。仿真的主要作用是检测电路的连接和程序的设置,可以初步检验作品的效果。通过色点检查各个引脚的电平高低,可以避免器件因连接错误被烧坏等问题。
Proteus 软件仿真如图4-2所示:
图4-2 Proteus 软件仿真图
4.2 系统硬件调试
本系统设计主要制作了三块电路板,一个主机板,两个从机板。硬件调试首先必须确保电路板线路连接无误,所以完成电路板的制作后,先使用万用表检测电路板的线路连接情况。确保线路连接无误后,在进行各个模块的电路调试,检查各个模块是否能够实现相应功能。在各模块中应先调试供电模块,因为只有供电模块正常了,才能保证其他模块的运行,尤其是无线通信模块,必须保证其供电电压在1.9V ~3.6V 之间,否则就会烧掉无线通信模块。
4.2.1 供电模块调试
供电模块分为5V 供电模块和3.3V 供电模块,各个模块主要由5V 电源供给,只有 nRF24L01无线通信模块需要3.3V 供电。调试方法:将5V 供电模块的USB 接口接到电脑的USB 接口中,经万用表检测5V 供电模块的电压,测得电压值在4.7V ~5.1V 之间变化,可判断供电处于正常范围;同理检测nRF24L01无线模块的电源及其两引脚电压,测得电压值在3.2V ~3.3V 变化,因此,3.3V 电压处于正常范围。
4.2.2 无线通信模块调试
本调试的重难点在于无线模块的调试,通过与指示灯结合更便于调试。当投票机选中其中一个选项(如“同意”)后,按下确认键发送数据,上位机接收到数据后,通过程序使与选项对应的LED 灯(绿色灯)亮起。而当投票机处在接收模式时,等待上位机发射信号,若投票机接收到信号,利用程序使各个选项指示灯轮流闪亮。调试状态如表4-1所示:
4.2.3 液晶显示模块调试
液晶显示是结果汇总的窗口,有了它,表决器才起到了实际应用的效果。通过程序设置显示屏初始状态索要显示的字符,两行分别设置为“yes no quit RES ”、“00 00 00 __”实物显示的情况如图4-2所示。由实物效果可知液晶显示与预想的结果一致,能正常显示。
图4-3 初始状态液晶显示字符
4.3 本章小结
本章系统地介绍了无线表决器系统的调试过程,从软件的程序编译到软件仿真,再到硬件各个主要模块的调试,进行了具体的介绍。并附上了实物效果图进行对比。前期的软件调试和仿真,是后期硬件调试顺利进行的保证。
总 结
本设计制作的是一个无线表决器,用于日常民主投票表决的活动中,减少传统纸质投票的点票时间,防止徇私舞弊的发生,具有较大的便利性和实用性。本系统实现过程应用到了单片机、数字电路、模拟电路、无线通讯等专业知识,需要设计者对这些知识进行综合学习和运用。
本系统的硬件部分主要包括单片机控制模块、供电模块、液晶显示模块、按键模块和指示灯模块等五个模块电路,软件部分主要实现了票数分类统计、投票信息LCD 显示、指示灯显示等功能。
经过无线表决器的软件和硬件的设计及调试,得到以下结论:
1、应用NRF24L01无线模块进行传输,采用相同的数据通道,标志首位不同地址来识别不同的投票机,由仅有的六个数据通道,开拓至125*6个不同地址的数据,也就是通过不同的工作频道可以大大增加从机数量,能适应不同规模的表决大会。同时,也减免了有线传输中,线多而繁乱和连线损坏维护等问题。
2、投票机通过色灯提示及按键选择,操作简单方便,实用性强。在投票时间内,按下“确认”键前,可直接更改选项,而且,投票机在确认投票后一直处于发射状态,在上位机操作允许再次投票前,即使对其进行复位,也不能进行重复投票,防止了作弊行为。
3、结果通过LCD 液晶显示屏实时显示统计情况和最后的结果,同时也有色灯表示,体现了公开透明性。
4、本设计还设置了错误操作报警系统,对于错误操作,如非投票时间按下选项、已确认后再次投票等,蜂鸣器会发出声音报警,起到提醒的作用。
本系统除了上述功能外,还具有极大的开发潜能,不局限于投票表决的运用,只需要稍作修改,便可应用在生活中的多个方面。例如:
1、“平安钟”功能,多应用于独居老人,在发生特殊情况,需要寻求帮助时,可根据紧急程度按下按键呼叫社区管理中心。
2、医院病房呼叫系统,病人在需要帮助时,如身体不适、换药、日常护理需求等情况,呼叫医护人员。
3、点餐系统,顾客通过该系统选择不同类型的套餐,确认后发送到餐厅管理方,方便了顾客,也减少了餐厅人员的工作量。
参考文献
1 刘焕成. 工程背景下的单片机原理及系统设计(第2版). 清华大学出版社,2011 2 马忠梅等. 单片机的C 语言应用程序设计. 北京航空航天大学出版社,1997 3 nrf24L01中文数据手册
4 江太辉等MCS-51系列单片机原理与应用. 华南理工大学出版社,2002
5 张天凡等.51单片机C 语言开发详解. 电子工业出版社,2008
6 钟富昭.8051单片机典型模块设计与应用. 人民邮电出版社,2007
7 刘坤等.51单片机C 语言应用开发技术大全. 人民邮电出版社,2008
8 南京沁恒电子公司网站.USB 总线接口芯片.CH375 中文手册
9 张永宏等. 基于51单片机与nRF24L01无线门禁控制系统设计. 江苏科技大学学报(自然科学版) .2013
10 DS2401 Silicon Serial Number datasheet. maxim inc
致 谢
经过几个月的学习与设计制作,我觉得自己的综合能力得到了一定的提高。在此,首先十分感谢五邑大学提供的良好学习环境,同时衷心感谢我的指导老师刘焕成高级工程师。在毕业设计的整个过程中,刘焕成老师的悉心指导,使我获益良多。刘焕成老师治学态度严谨、学识渊博,而且对学生耐心培养、深切关怀,指导工作尽职尽责。在学习、工作和生活上都给予我诸多启发,使我受益匪浅。
在此次的学习和研究过程中,通过与方泽凯、吴艳等同学的探讨研究,也获得了他们的热心帮助,使我更加顺利地完成设计,在此向他们表示深深的谢意。由于本人水平有限,对学科研究不够充分,实践经验不足,还需要在日后继续努力增长见识,提高各方面的能力。
最后,衷心感谢五邑大学对我的培养。在此,谨向在大学期间对我的学习和生活给予关心和支持的所有老师和同学表示衷心的感谢!
附录1 系统PCB 图
(a )上位机PCB 图
27
(b )投票机PCB 图
28
附录2 系统实物图
29