基于单片机的无线投票显示系统设计-程序员宅基地

技术标签: 嵌入式硬件  单片机  

项目概述

1.1概述

        单片机(Microcontroller)是一种集成了微处理器核心、存储器、输入/输出接口和定时器等功能模块的集成电路芯片,具有体积小、功耗低、性价比高等特点,被广泛应用于各个领域。

单片机的发展历史可以追溯到20世纪70年代,当时的单片机功能有限,主要用于简单的控制任务。随着技术的不断进步,单片机的功能逐渐增强,集成度不断提高,成本逐渐下降,这使得单片机的应用领域不断单片机的发展历史可以看作是一部不断适应和满足市场需求的历程,未来随着科技的不断发展,单片机技术将继续向着更高性能、更低功耗、更广泛应用的方向发展。拓展。随着制造工艺和设计技术的不断进步,单片机的功能得到了显著增强。从最初的简单控制到具有复杂算法和通信功能的高级单片机,功能不断丰富,能够处理更多复杂的任务。单片机的发展历史可以看作是一部不断适应和满足市场需求的历程,未来随着科技的不断发展,单片机技术将继续向着更高性能、更低功耗、更广泛应用的方向发展。

       本设计将运用所学习的单片机知识,使用单片机结合无线通信技术设计一款无线投票机,具有无线投票、实时计票显示的功能。

1.2设计目的

增强对所学8051单片机的理解,熟悉使用新型高速国产高速8051单片机,熟悉C51语言编程和keil软件的掌握、学习近场无线通信技术的应用以及常见串行屏幕的驱动等。

  1. 通过单片机设计,将课堂所学的理论知识与实际项目相结合,加深对单片机原理和应用的理解
  2. 设计单片机项目需要学生进行电路连接、编程调试等实际操作,培养了学生的动手能力和实践操作能力。
  3. 在单片机课程设计中,有机会面对实际问题进行创新性的设计和解决方案的探索,培养创新意识和问题解决能力。
  4. 通过参与单片机设计,可以积累实际项目经验,为将来的科研工作或者就业提供宝贵的经验。

单片机课程设计将学习的知识应用到实际项目中,培养了实践应用能力,使我们具备将理论知识转化为实际应用的能力。

硬件设计及元器件选择

2.1总体设计

本设计中包括对硬件电路的设计,原理图的绘制,PCB的设计以及系统程序的设计。硬件部分主要包括上下位机单片机的选择、显示电路的选择与设计、lora近场无线模块的选择与设计、投票按键电路的选择与设计等。系统程序部分包括上下位机系统程序的设计思路,硬件资源的分配,C51程序的设计。

2.2硬件设计

本设计上下位机的主控制器均选用宏晶科技生产的高速8051单片机STC8G1K08,显示电路使用1.3寸OLED屏幕,下位机采用四个轻触按钮的设计,上位机将设计一个开始键和一个重置键。

1.上位机的显示电路使用的1.3’OLED屏幕采用IIC接口串行接口,将使用单片机硬件IIC进行通信,驱动显示;无线通信电路选用蜂鸟无线远RI近场通信模块,在设计中将板载到PCB上、理由单片机的其中两个外部中断设计开始键和重置键,使其能够控制投票的开始和计票的清零。硬件电路设计思路如图3- 1上位机硬件电路基本原理图所示

3.2.1硬件系统总体设计

本设计上下位机的主控制器均选用宏晶科技生产的高速8051单片机STC8G1K08,显示电路使用1.3寸OLED屏幕,下位机采用四个轻触按钮的设计,上位机将设计一个开始键和一个重置键。

1.上位机的显示电路使用的1.3’OLED屏幕采用IIC接口串行接口,将使用单片机硬件IIC进行通信,驱动显示;无线通信电路选用蜂鸟无线远RI近场通信模块,在设计中将板载到PCB上、理由单片机的其中两个外部中断设计开始键和重置键,使其能够控制投票的开始和计票的清零。硬件电路设计思路

.单片机的下位机硬件电路设计,总体上为满足四个投票按钮投票,使用STC8G单片机的P3.2、P3.3、P3.6、P3.7四个外部中断接口,采用下降沿的方式触发投票程序,单片机再检测到投票信息后通过远T1无线通信发送模块将结果发送至上位机显示。其硬件设计将按照图3- 2下位机硬件设计图设计。

本设计在选取单片机时,充分考虑了现流行的主流单片机,结合系统需求选择最合适单片机的情况下,综合考虑选择了宏晶科技STC8G1K08单片机。

STC8G1K08单片机是一款基于STC单片机系列的产品,具有以下功能和优点:

高性能:STC8G1K08采用高性能的8051内核,运行速度快,响应迅速,适用于对实时性要求较高的应用场景。

丰富的外设:STC8G1K08集成了丰富的外设,包括多种通用I/O口、定时器、串口通信接口、IIC、SPI等,能够满足各种应用的需求。

低功耗:STC8G1K08采用先进的低功耗设计,能够在保证性能的同时降低功耗,延长电池寿命,适用于对功耗有严格要求的应用场景。

丰富的存储器:STC8G1K08具有较大的存储器容量,包括闪存和RAM,用于最大17k的程序储存空间能够满足复杂程序的存储和运行需求。

强大的扩展能力:STC8G1K08支持外部扩展接口,可以通过外部设备扩展更多的功能和接口,提高了系统的灵活性和可扩展性。

成本效益高:STC8G1K08具有良好的性价比,性能稳定可靠,价格适中,适合于大规模生产和成本敏感的项目。

广泛的应用领域:由于STC8G1K08具有性能稳定、功耗低、外设丰富等特点,因此在家电控制、工业控制、通信设备、汽车电子、医疗器械等领域都有广泛的应用。

STC8G1K08单片机具有高性能、丰富的外设、低功耗、存储器容量大、扩展能力强、成本效益高和广泛的应用领域等优点,是一款性能稳定可靠、适用范围广泛的单片机产品。STC8G1K08最小系统图如图3- 3单片机最小系统图所示:

本设计选用STC8G1K08单片机,使用TSSOP20封装贴片元件,其具有20个引脚完全满足设计的需要,同时具有体积小的特点,能够使系统更美观增加集成度。具体引脚及其功能见表3- 1单片机引脚功能图所示。

本设计需要显示计票信息、倒计时和计票柱状图,所以传统课程中所使用的LCD1602等显示屏不足以完成需求,所以经过综合考虑,使用了1.3’的OLED屏幕做显示采用SSD1106显示驱动芯片,其拥有128*64的分辨率,可以显示数字图片汉字等信息,非常适合于本设计的需要。SSD1106是一款专门用于驱动OLED显示屏的控制芯片,通常用于小尺寸OLED屏幕,如1.3英寸。它采用SPI或I2C接口与主控芯片通信,具有高度集成、低功耗和稳定性强等特点。

优点:

高度集成:SSD1106集成了驱动OLED屏幕所需的各种功能模块,包括显示缓存、控制逻辑、接口电路等,简化了外围电路设计,减少了PCB板面积。

低功耗:SSD1106采用了优化的驱动算法和节能设计,能够在保证显示效果的前提下降低功耗,延长显示屏的使用时间,适用于移动设备等对电池寿命要求较高的场景。

高分辨率:SSD1106支持高分辨率的OLED显示屏,能够实现清晰、细腻的图像和文本显示,提高了用户体验。

灵活的接口:SSD1106支持SPI和I2C两种通信接口,可以根据具体应用需求选择合适的接口方式,提高了系统的灵活性和兼容性。

稳定性强:SSD1106具有良好的稳定性和可靠性,能够稳定驱动OLED显示屏工作,保证显示效果的稳定和持久。

广泛的应用领域:由于SSD1106具有功耗低、分辨率高、接口灵活等特点,因此广泛应用于智能穿戴设备、便携式仪器、消费电子产品等领域。

综上所述,1.3英寸OLED屏幕使用SSD1106屏幕控制芯片具有高度集成、低功耗、高分辨率、灵活的接口、稳定性强和广泛的应用领域等优点,适用于各种小尺寸显示需求的应用场景。SSD1106与1.3‘屏幕的驱动连接原理图如图3- 4SSD1106驱动电路原理图所示。

本设计将采购绿深电子制作的屏幕模块,集成了SSD1106驱动电路,引出IIC接口,配合单片机的硬件IIC即可实现相关的功能,实物如

本设计中需要使用到无线通信技术,在近场通信上,有WIFI、蓝牙等近距离通信方式,经过对成本、性能、功耗的考虑我们使用了433Mhz通信作为本设备的无线通信方式。433MHz模块是一种常见的无线通信模块,具有以下特征、优点和运用:

  1. 特征:

工作频率:工作在433MHz频段,属于短距离无线通信频段之一。

简单易用:通常采用简单的调制解调方式,易于使用和集成到各种应用中。

低成本:由于采用较低频段和简单的调制方式,成本相对较低。

适用范围广:可用于简单的短距离无线通信,例如遥控、传感器数据传输等。

  1. 优点:

低功耗:相比一些高频率无线通信模块,433MHz模块通常具有较低的功耗,适用于对电池寿命有要求的应用。

穿透能力强:相比较高频率的无线通信模块,433MHz信号具有较好的穿透能力,在一定程度上能够穿透墙壁等障碍物,适用于室内环境的通信。

简单易用:由于采用简单的调制方式和较低的频率,433MHz模块的设计和应用相对简单,适用于一些对通信复杂度要求不高的场景。

成本低廉:由于采用成熟的技术和较为简单的设计,433MHz模块通常具有较低的成本,适用于成本敏感的项目。

综上所述,433MHz模块具有低功耗、穿透能力强、简单易用和成本低廉等优点,适用于一些对通信要求不高但成本敏感的应用场景,故而很适合与本系统的无线通信。本设计选用了蜂鸟无线设计的远R1-433Mhz和远T1-433Mhz模块。

3.3上位机原理图及PCB设计

3.3.1原理图总设计

本设计原理和PCB的设计使用立创EDA软件绘制,系统电路包含上位机硬件系统电路原理图和下位机硬件系统电路原理图。

上位机硬件系统电路包括,供电及开关电路、主控单片机系统电路、指示灯电路,屏幕驱动电路,按键电路,远R1-433Mhz接收模块电路及天线设计。

3.3.2供电及开关电路设计

本设计使用了type-c口供电适配现在主流的接口方便随时取电演示,Type-C口相对于Micro-USB口在供电方面具有一些明显的优势,Type-C接口采用了全新的设计,支持正反插拔,无需考虑插头的方向,提高了使用的便利性。相比之下,Micro-USB需要确保插头的正确方向,有时会造成插拔困难或损坏接口的情况。Type-C接口支持更高的传输功率,可达100W。这使得Type-C接口不仅可以用于数据传输,还可以用于供电,适用于更多高功率设备,如笔记本电脑、平板电脑等。而Micro-USB通常限制在较低的功率水平,不太适合供电要求较高的设备。Type-C接口的设计更为坚固耐用,能够承受更多的插拔次数。Micro-USB的接口相对较小,插拔次数多了容易出现接触不良或接口松动的问题。

同时使用拨动开关的设计用来开关系统电源,比较按键开关的一个主要优势是耐用性,因为拨动开关没有机械按键,所以不容易因为频繁操作而损坏。而且,拨动开关通常有明确的“开”和“关”状态,操作起来直观简单。

系统所使用的TSSOP20封装的STC8G1K08单片机,具有20个引脚,18个功能IO接口,本设计中上位机单片机将要使用P3.0、P3.1接口用作程序烧录;P3.2、P3.3使用其外部中断做按键检测;P1.4、P1.5作为屏幕的IIC通信接口;P1.7作系统状态指示灯;P5.5作为主控制器与无线通信模块的数据交换。同时单片机电源引脚(8、10脚)外部紧挨着两颗高频滤波电容,这个电容通常被称为去耦电容,在单片机的电源输入端加上0.1μF的电容,主要是为了滤除电源线上的噪声,确保单片机的电源稳定性。同时电容还可以起到一定的保护作用,防止单片机因为电源线上的电压突变而损坏。

指示灯电路包括电源指示灯和系统运行状态指示灯,电源指示灯主要是用于指示系统是否供电,如果不亮则可能是电路虚焊或者电路短路烧坏,电源指示灯不仅提供了设备电源状态的信息,还增强了用户体验,有助于设备的维护和故障排查。系统状态指示灯的使用,是为了用户直观感受系统状态是否正常,方便调试故障等。本系统使用0805贴片LED灯珠做指示。

0805贴片LED是一种常见的LED封装形式,其中“0805”指的是LED封装的物理尺寸,即长0.08英寸和宽0.05英寸。这种封装形式的LED具有以下优势:

  1. 小型化:0805贴片LED的体积小,适合于空间受限的应用,如便携式电子设备、小型显示器和紧凑型电路板设计。
  2. 低功耗:LED本身具有低功耗的特点,适合于电池供电的设备,延长电池寿命。
  3. 长寿命:LED的使用寿命通常比传统灯泡长,减少了更换频率和维护成本。
  4. 高效率:LED具有较高的能量转换效率,能够将更多的电能转换为光能,减少热量产生。
  5. 易于集成:0805贴片LED可以直接焊接在电路板上,便于自动化生产,提高生产效率。
  6. 色彩丰富:LED可以提供多种颜色选择,满足不同场合和设计的需求。
  7. 快速响应:LED的响应时间非常快,适合于需要快速开关的应用。
  8. 环保:LED不含有害物质,如汞,更环保。
  9. 易于控制:通过电子驱动器,可以精确控制LED的亮度和颜色,实现复杂的灯光效果。
  10. 散热性能好:虽然LED本身发热量不大,但0805贴片LED由于体积小,有助于更好地分散热量,保持设备冷却。

这些优势使得0805贴片LED在现代电子设计中非常受欢迎,特别是在需要紧凑、高效和美观的照明解决方案时。

本设计使用的1.3’OLED显示模块,集成SSD1106驱动芯片及其驱动电路,在使用时只需要通过模块上的IIC接口操作SSD1106寄存器即可控制显示,IIC(Inter-Integrated Circuit)接口是一种常用的串行通信总线,接口设计简单,只需要两根线(数据线SDA和时钟线SCL)就可以实现设备之间的通信,这简化了电路设计。IIC接口的硬件和软件实现成本相对较低,对于成本敏感的应用来说是一个重要的优势。

本设计共使用两个轻触按键,其主要功能是用作投票系统的系统开始键与重置键,在外部电路的设计上使用的是下降沿触发中断的设计方式,通过拉低端口触发中断,是单片机一种常见的按键设计方式,下降沿触发中断只需要检测信号从高电平到低电平的变化,这种变化很容易通过硬件或软件检测到,实现起来相对简单,同时由于中断仅在信号下降沿时触发,这减少了由于信号噪声或干扰引起的误触发,提高了中断请求的可靠性。

远-R1是一款小家电专用遥控接收模块。模块采用高性能RF集成芯片, 内部集成了射频放大器、混频器、中频放大器、频率综合器、自动增益控制、参考振荡器、滤波器、解调器等全部功能模块。单片机只需要使用IO口读取信号线变化并通过程序解码,读出接收的数据并执行相应的程序。

在使用远R1-433Mhz模块时,应当注意其天线的设计,如果天线设计不好将极大的影响设备通信。通常在设计天线时,需要计算天线的长度,天线长度的计算通常涉及到电磁波的波长,因为天线的设计往往与特定频率的波长相关。对于433MHz的无线电波,我们可以使用以下简化公式来估算天线的长度:

下位机硬件设计部分较于上位机硬件设计,缺少显示电路。

下位机硬件系统电路包括,供电及开关电路、主控单片机系统电路、指示灯电路,按键电路,远T1-433Mhz发射模块电路及天线设计。由于供电及开关电路与上位机基本一直,此节将不做介绍。

3.4.2主控单片机系统电路设计

本设计的下位机同样使用上位机相同的STC8G1K08单片机,其特点这里将不做过多介绍,本节将着重介绍单片机在下位机中的I/O口使用。

下位机设计有四个用于投票的轻触按键,以及用于显示投票状态的指示灯和用于与无线发射模块通信的接口。投票按键使用的是单片机的外部中断接口实现,分别使用了INT0、INT1、INT2、INT3四个外部中断,这也是对比传统8051单片机的2个外部中断的一大优势,其分别占用P3.2、P3.3、P3.6、P3.7接口。P3.2、P3.3还可以作为单片机硬件IIC的数据线(SDL)和时钟线(SCL),在上位机中由于使用了P3.2、P3.3做重置和开始按键且要使用IIC驱动屏幕,所以使用了功能脚复用的功能将IIC接口转移至P1.4和P1.5。用作指示灯的端口是P1口的低四位IO,通过简单的拉低引脚控制灯的亮灭。下位机选用了P3.4作为无线通信发射模块的通信端口。与上位机一样,下位机在单片机电源引脚同样使用了滤波电容,保障电源稳定。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/luijunyang/article/details/136885900

智能推荐

JWT(Json Web Token)实现无状态登录_无状态token登录-程序员宅基地

文章浏览阅读685次。1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务.._无状态token登录

SDUT OJ逆置正整数-程序员宅基地

文章浏览阅读293次。SDUT OnlineJudge#include<iostream>using namespace std;int main(){int a,b,c,d;cin>>a;b=a%10;c=a/10%10;d=a/100%10;int key[3];key[0]=b;key[1]=c;key[2]=d;for(int i = 0;i<3;i++){ if(key[i]!=0) { cout<<key[i.

年终奖盲区_年终奖盲区表-程序员宅基地

文章浏览阅读2.2k次。年终奖采用的平均每月的收入来评定缴税级数的,速算扣除数也按照月份计算出来,但是最终减去的也是一个月的速算扣除数。为什么这么做呢,这样的收的税更多啊,年终也是一个月的收入,凭什么减去12*速算扣除数了?这个霸道(不要脸)的说法,我们只能合理避免的这些跨级的区域了,那具体是那些区域呢?可以参考下面的表格:年终奖一列标红的一对便是盲区的上下线,发放年终奖的数额一定一定要避免这个区域,不然公司多花了钱..._年终奖盲区表

matlab 提取struct结构体中某个字段所有变量的值_matlab读取struct类型数据中的值-程序员宅基地

文章浏览阅读7.5k次,点赞5次,收藏19次。matlab结构体struct字段变量值提取_matlab读取struct类型数据中的值

Android fragment的用法_android reader fragment-程序员宅基地

文章浏览阅读4.8k次。1,什么情况下使用fragment通常用来作为一个activity的用户界面的一部分例如, 一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕右侧使用另一个fragment来展示一篇文章 – 2个fragment并排显示在相同的一个activity中,并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输_android reader fragment

FFT of waveIn audio signals-程序员宅基地

文章浏览阅读2.8k次。FFT of waveIn audio signalsBy Aqiruse An article on using the Fast Fourier Transform on audio signals. IntroductionThe Fast Fourier Transform (FFT) allows users to view the spectrum content of _fft of wavein audio signals

随便推点

Awesome Mac:收集的非常全面好用的Mac应用程序、软件以及工具_awesomemac-程序员宅基地

文章浏览阅读5.9k次。https://jaywcjlove.github.io/awesome-mac/ 这个仓库主要是收集非常好用的Mac应用程序、软件以及工具,主要面向开发者和设计师。有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章《工具武装的前端开发工程师》,于是建了这么一个仓库,持续更新作为补充,搜集更多好用的软件工具。请Star、Pull Request或者使劲搓它 issu_awesomemac

java前端技术---jquery基础详解_简介java中jquery技术-程序员宅基地

文章浏览阅读616次。一.jquery简介 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互 jQuery 的功能概括1、html 的元素选取2、html的元素操作3、html dom遍历和修改4、js特效和动画效果5、css操作6、html事件操作7、ajax_简介java中jquery技术

Ant Design Table换滚动条的样式_ant design ::-webkit-scrollbar-corner-程序员宅基地

文章浏览阅读1.6w次,点赞5次,收藏19次。我修改的是表格的固定列滚动而产生的滚动条引用Table的组件的css文件中加入下面的样式:.ant-table-body{ &amp;amp;::-webkit-scrollbar { height: 5px; } &amp;amp;::-webkit-scrollbar-thumb { border-radius: 5px; -webkit-box..._ant design ::-webkit-scrollbar-corner

javaWeb毕设分享 健身俱乐部会员管理系统【源码+论文】-程序员宅基地

文章浏览阅读269次。基于JSP的健身俱乐部会员管理系统项目分享:见文末!

论文开题报告怎么写?_开题报告研究难点-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏15次。同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼?Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个高塔,你确定还不赶快点赞收藏学起来吗?_开题报告研究难点

原生JS 与 VUE获取父级、子级、兄弟节点的方法 及一些DOM对象的获取_获取子节点的路径 vue-程序员宅基地

文章浏览阅读6k次,点赞4次,收藏17次。原生先获取对象var a = document.getElementById("dom");vue先添加ref <div class="" ref="divBox">获取对象let a = this.$refs.divBox获取父、子、兄弟节点方法var b = a.childNodes; 获取a的全部子节点 var c = a.parentNode; 获取a的父节点var d = a.nextSbiling; 获取a的下一个兄弟节点 var e = a.previ_获取子节点的路径 vue