基于51单片机计步器—无线蓝牙APP上传

摘要

计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。 计步器功能可以根据计算人的运动情况来分析人体的健康状况。而人的运动情况可以通过很多特性来进行分析。与传统的机械式传感器不同,ADXL345是电容式三轴传感器,由它捕获人体运动时加速度信号,更加准确。信号通过低通滤波器滤波,由单片机采集数据。软件采用自适应算法实现计步功能,减少误计数,更加精确。选用单片机STC89C52作为系统控制芯片,通过蓝牙模块把单片机处理的数据传输到手机APP上,这样更能清楚看到检测的效果。整机工作电流只有1-1.5mA,实现超低功耗。采集的步数,路程,卡路里及运动状态用手机APP显示。

关键字:单片机;三轴传感器;电源;APP。

目录

++[第一章 绪论........................................................................................................................ 3](#第一章 绪论........................................................................................................................ 3)++

++[1.1课题背景及其意义.......................................................................................................... 3](#1.1课题背景及其意义.......................................................................................................... 3)++

++[1.2 国内外的研究状况.......................................................................................................... 3](#1.2 国内外的研究状况.......................................................................................................... 3)++

++[1.3本文的主要研究内容及论文结构安排.............................................................................. 4](#1.3本文的主要研究内容及论文结构安排.............................................................................. 4)++

++[第二章 方案的设计与论证................................................................................................... 5](#第二章 方案的设计与论证................................................................................................... 5)++

++[2.1控制方案的确定.............................................................................................................. 5](#2.1控制方案的确定.............................................................................................................. 5)++

++[2.2控制方式的选择.............................................................................................................. 5](#2.2控制方式的选择.............................................................................................................. 5)++

++[2.2.1 单片机芯片的选择....................................................................................................... 5](#2.2.1 单片机芯片的选择....................................................................................................... 5)++

++[2.2.2倾角传感器的选择....................................................................................................... 5](#2.2.2倾角传感器的选择....................................................................................................... 5)++

++[2.2.3无线遥控模块的选择.................................................................................................... 6](#2.2.3无线遥控模块的选择.................................................................................................... 6)++

++[第三章 硬件电路的设计....................................................................................................... 7](#第三章 硬件电路的设计....................................................................................................... 7)++

++[3.1系统的功能分析及体系结构设计..................................................................................... 7](#3.1系统的功能分析及体系结构设计..................................................................................... 7)++

++[3.1.1系统功能分析.............................................................................................................. 7](#3.1.1系统功能分析.............................................................................................................. 7)++

++[3.1.2系统总体结构.............................................................................................................. 7](#3.1.2系统总体结构.............................................................................................................. 7)++

++[3.2模块电路的设计.............................................................................................................. 7](#3.2模块电路的设计.............................................................................................................. 7)++

++[3.2.1 STC89C52单片机核心系统电路设计............................................................................ 7](#3.2.1 STC89C52单片机核心系统电路设计............................................................................ 7)++

++[3.2.2 5V电源电路设计........................................................................................................ 11](#3.2.2 5V电源电路设计........................................................................................................ 11)++

++[3.2.3 ADXL345倾角传感器模块电路设计............................................................................ 12](#3.2.3 ADXL345倾角传感器模块电路设计............................................................................ 12)++

++[3.2.4 LED信号指示灯电路设计........................................................................................... 13](#3.2.4 LED信号指示灯电路设计........................................................................................... 13)++

++[3.2.5JDY-30蓝牙模块电路设计........................................................................................... 14](#3.2.5JDY-30蓝牙模块电路设计........................................................................................... 14)++

++[3.2.6 LCD1602液晶显示模块电路设计................................................................................ 16](#3.2.6 LCD1602液晶显示模块电路设计................................................................................ 16)++

++[第四章 系统软件设计........................................................................................................ 20](#第四章 系统软件设计........................................................................................................ 20)++

++[4.1 编程语言选择.............................................................................................................. 20](#4.1 编程语言选择.............................................................................................................. 20)++

++[4.2单片机程序开发环境..................................................................................................... 20](#4.2单片机程序开发环境..................................................................................................... 20)++

++[4.3 Keil uVision4软件开发流程........................................................................................... 21](#4.3 Keil uVision4软件开发流程........................................................................................... 21)++

++[4.4 STC-ISP-15xx-v6.85p程序烧录软件介绍........................................................................ 22](#4.4 STC-ISP-15xx-v6.85p程序烧录软件介绍........................................................................ 22)++

++[4.5 PL2303串口程序烧写模块介绍..................................................................................... 23](#4.5 PL2303串口程序烧写模块介绍..................................................................................... 23)++

++[4.6 程序流程图.................................................................................................................. 24](#4.6 程序流程图.................................................................................................................. 24)++

++[第五章 系统焊接与调试..................................................................................................... 26](#第五章 系统焊接与调试..................................................................................................... 26)++

++[5.1 电路焊接..................................................................................................................... 26](#5.1 电路焊接..................................................................................................................... 26)++

++[5.2 系统调试..................................................................................................................... 27](#5.2 系统调试..................................................................................................................... 27)++

++[5.2.1 系统程序调试............................................................................................................ 27](#5.2.1 系统程序调试............................................................................................................ 27)++

++[5.2.2硬件测试.................................................................................................................... 28](#5.2.2硬件测试.................................................................................................................... 28)++

++[5.3 实物测试..................................................................................................................... 28](#5.3 实物测试..................................................................................................................... 28)++

++[致谢................................................................................................................................... 30](#致谢................................................................................................................................... 30)++

++[参 考 文 献...................................................................................................................... 31](#参 考 文 献...................................................................................................................... 31)++

  • 绪论

1.1课题背景及其意义

随着社会的发展,人们的物质生活水平日渐提高,人们也越来越关注自己的健康。计步器作为一种测量仪器,可以计算行走的步数和消耗的能量,所以人们可以定量的制定运动方案来健身,并根据运行情况来分析人体的健康状况,因而越发流行。手持式的电子计步器是适应市场需求的设计,使用起来简单方便。

计步器是一种颇受欢迎的日常锻炼进度监控器,可以激励人们挑战自己,增强体质,帮助瘦身。早期设计利用加重的机械开关检测步伐,并带有一个简单的计数器。晃动这些装置时,可以听到有一个金属球来回滑动,或者一个摆锤左右摆动敲击挡块。电子计步器主要组成部分是振动传感器和电子计数器。步行的时候人的重心会上下移动。以腰部的上下位移最为明显,所以记步器挂在腰带上最为适宜。所谓的振动传感器其实就是一个平衡锤在上下振动时平衡被破坏使一个触点能出现通/断动作,由电子计数器完成了主要的记录与显示功能,其他的属于热量消耗,路程换算均由电路完成。计步器中一般采用一种加速度计来感受外界的震动。常用的加速度计原理如下:在一段塑料管中密封着一小块磁铁,管外缠绕着线圈,当塑料管运动时,磁铁由于惯性在管中反向运动,切割线圈,由于电磁感应,线圈中产生电流,人体运动时,上下起伏的加速度近似为正弦过程,线圈的输出电流也是正弦波,测量正弦波的频率就可以得出运动的步数,再计算的出速度,距离,和消耗卡路里。

1.2 国内外的研究状况

计步器最早是由意大利的伦纳德·达芬奇酝酿的,但现存的最早的计步器 是在达芬奇之后150年,即德国1667年制作的。 日本最早的计步器是由Gcn.naiHiraga在1755年制作的。在中世纪和近代,计步器并未被广泛使用,因为人们并不清楚它的用途。这说明机器的发明(硬件)不及找到它对人类的用途(软件)重要。 在日本,计步器已经使用了40多年,主要用于体育运动和分析记录行走步调。1965年,计步器正式进入日本商用市场,并被命名为manpo-meter(manpo的日语含义是10000步)。这是的计步器通常利用摆钟原理作为记步技术,利用加重的机械开关检测步伐,并带有一个简单的计数器。如果晃动这些装置,就可以听到有一个金属球来回滑动,或者一个摆钟左右摆动敲响当块。 这种机械式的计步器早已淡出历史,取而代之的是电子式的计步器。

1.3本文的主要研究内容及论文结构安排

  1. .主要介绍本设计的课题背景及国内外研究状况;
  2. .主要说明系统方案的选择;

第3章.主要介绍硬件电路的组成及使用方法;

第4章.主要介绍软件设计;

第5章.主要介绍硬件调试;

第二章 方案的设计与论证

2.1控制方案的确定

本设计由STC89C52单片机最小系统+ADXL345加速度传感器电路+蓝牙模块电路+LED灯电路+电源电路组成。

2.2控制方式的选择

2.2.1 单片机芯片的选择

方案一

采用可编程逻辑器件CPLD作为控制器,CPLD可以实现各种复杂的功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高。且从使用及经济的角度考虑,最终放弃了此方案。

方案二

采用ST公司的STC89C52单片机作为主控制器,STC89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程 Flash 存储器。该单片机功耗低、接口丰富,成本低廉,完全能满足本设计要求。

方案三

采用单片机芯片控制MSP430单片机是美国德州仪器(TI)推出的一种16位超低功 耗的混合信号处理器(Mixed Signal Processor),主要是针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供"单片"混合信号处理的解决方案。MSP430F149是一个16位的、具有精简指令集的、超低功耗的混合型单片机,具有可靠性高、功耗低、扩展灵活、体积小、价格低和使用方便等优点,广泛应用于仪器仪表、专用设备智能化管理及过程控制等领域,有效地提高了控制质量与经济效益,已成为众多单片机系列中一颗耀眼的新星。然而其成本太高,故舍弃。

故选择方案二。

2.2.2倾角传感器的选择

方案一

采用陀螺仪来检测老人的位置信息,陀螺仪是用高速回转体的动量矩敏感壳体相对惯性空间绕正交于自转轴的一个或二个轴的角运动检测装置,该模块精度高,稳定性强,但控制复杂。

方案二:

采用基于ADI公司的倾角传感器ADXL345模块来检测老人的位置信息,adxl345功能很强大,内置很多寄存器,而且成本低,易于控制。

故选择方案二。

2.2.3无线遥控模块的选择

方案一

采用红外遥控模块系统进行无线控制,红外载波频率:38KHz,其理论遥控范围为8-10米,遥控范围内,电路简单,成本极低。

中间有无障碍物等因素会影响到遥控距离,实际遥控距离可能更短,丧失了遥测的有用性。

方案二

使用WIFI模块进行本系统数据的无线传输。Wi-Fi是一种可以将个人电脑、手持设备(如PDA、手机)等终端以无线方式互相连接的技术。Wi-Fi是一个无线网路通信技术的品牌,由Wi-Fi联盟(Wi-Fi Alliance)所持有。目的是改善基于IEEE 802.11标准的无线网路产品之间的互通性。Wi-Fi主要是用于替代工作场所一般局域网接入中使用的高速线缆的。这类应用有时也称作无线局域网(WLAN)。其覆盖性强,传输距离远。

但是其安全性不高,很容易被黑客窜改数据。

方案三

使用蓝牙模块进行本系统数据的无线传输。蓝牙可以替代很多应用场景中的便携式设备的线缆,在能够应用于一些固定场所,如智能家庭能源管理(如恒温器)等。其数据传输为10米,完全满足本设计要求,而且其数据传输的安全性非常高。

故选择方案三。

  • 硬件电路的设计

3.1系统的功能分析及体系结构设计

3.1.1系统功能分析

本设计由STC89C52单片机最小系统+ADXL345加速度传感器+lcd1602液晶电路+蓝牙模块电路+呼吸灯电路+电源电路组成。

1、通过ADXL345检测步数,然后通过蓝牙模块将步数,路程,卡路里及运动状态实时传输到手机。

2、有动态呼吸灯指示走路情况。

3、液晶lcd1602实时显示步数,路程,卡路里及运动状态,运动状态分stand、lie、walk、run。

4、数据上报B:0014

J: 7.7m

K: 448.45cal

,分别表示步数、距离m、卡路里cal。

3.1.2系统总体结构

本系统具体框图如下图所示:

系统原理框图

3.2模块电路的设计

3.2.1 STC89C52单片机核心系统电路设计

STC89C52RC是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。

一、STC89C52主要特性如下:

(1)8K字节程序存储空间;

(2)512字节数据存储空间;

(3)内带4K字节EEPROM存储空间;

(4)可直接使用串口下载。

二、STC89C52主要参数如下:

(1)增强型8051单片机,6时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051;

(2)工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机);

(3)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作 频率可达48MHz;

(4)用户应用程序空间为8K字节;

(5)片上集成512 字节RAM;

(6)通用I/O 口(32个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,需加上拉电阻;

(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片;

(8)具有EEPROM功能;

(9)共3个16 位定时器/计数器。即定时器T0、T1、T2;

(10)外部中断4路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒;

(11)通用异步串行口(UART),还可用定时器软件实现多个UART;

(12)工作温度范围:-40~+85℃(工业级)/0~75℃(商业级);

(13)PDIP封装。

三、STC89C52单片机相关引脚说明:

(1)VCC:供电电压。

(2)GND:接地。

(3)P3.0 RXD(串行输入口)

(4)P3.1 TXD(串行输出口)

(5)P3.2 /INT0(外部中断0)

(6)P3.3 /INT1(外部中断1)

(7)P3.4 T0(记时器0外部输入)

(8)P3.5 T1(记时器1外部输入)

(9)P3.6 /WR(外部数据存储器写选通)

(10)P3.7 /RD(外部数据存储器读选通)

(11)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

(12)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

(13)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

(14)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

(15)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

(16)XTAL2:来自反向振荡器的输出。

单片机引脚图如下图所示:

STC89C52单片机引脚图

四、STC89C52单片机最小系统说明:

STC89C52单片机最小系统电路由复位电路、时钟电路和电源电路。拥有这三部分电路后,单片机即可正常工作。单片机最小系统原理图如下图所示。

单片机最小系统原理图

  1. VCC和GND为单片机的电源引脚,为单片机提供电源:
  2. 复位电路由按键S1、电解电容EC1和电阻R1组成。具有手动按键复位和上电自动复位功能。系统上电复位按键接口采集到两个高端信号后进行手动复位,就是非自动的按键复位;系统检测到的电压由低电平上升到高电平的一段时间后,在这段时间过后,系统通过电阻与接地之间形成一条通路,然后自动把高电平进行拉低,使得单片机从高电位变为低电位,从而就是给单片机自动进行复位即上电复位。
  3. 时钟电路由晶振Y1、瓷片电容C1和C2组成。有控制芯片的数字电路正常工作是少不了TIME(时钟)电路的,我们需要时钟电路自动发出系统时间,让控制芯片正常工作。给控制芯片正常工作的时钟信号,一般把这种工作方式称为"拍",以至于让整个控制系统能正常工作,由于要保证控制系统能正常工作,提高他的工作能力,我们经常用11.0592MHZ晶振和30PF的电容进行组合,电容为了帮助晶振起振的,满足了数字控制器上电以后可以正常工作。
  4. JD1为单片机的下载接口。

3.2.2 5V电源电路设计

本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。

5V电源电路原理图

3.2.3 ADXL345倾角传感器模块电路设计

本设计选择倾角传感器ADXL345模块实时检测相关的状态信息。ADXL345是一款小而薄的超低功耗3轴加速度计,分辨率高(13位),测量范围达± 16g。数字输出数据为16位二进制补码格式,可通过SPI(3线或4线)或I2C数字接口访问。ADXL345非常适合移动设备应用。它可以在倾斜检测应用中测量静态重力加速度,还可以测量运动或冲击导致的动态加速度。其高分辨率(3.9mg/LSB),能够测量不到1.0°的倾斜角度变化。该器件提供多种特殊检测功能。活动和非活动检测功能通过比较任意轴上的加速度与用户设置的阈值来检测有无运动发生。敲击检测功能可以检测任意方向的单振和双振动作。自由落体检测功能可以检测器件是否正在掉落。这些功能可以独立映射到两个中断输出引脚中的一个。正在申请专利的集成式存储器管理系统采用一个32级先进先出(FIFO)缓冲器,可用于存储数据,从而将主机处理器负荷降至最低,并降低整体系统功耗。低功耗模式支持基于运动的智能电源管理,从而以极低的功耗进行阈值感测和运动加速度测量。ADXL345模块接口图如下图所示。

ADXL345模块接口图

ADXL345模块内部电路图如下图所示。U2即为稳压芯片,实现5V直流电转化为3.3V直流电,C1-C4为滤波电容。R2、R3为上拉电阻,让信号输入更加稳定。D1为电源指示灯,R1为限流电阻,来保护LED灯D1。

图

6 ADXL345模块电路图

ADXL345模块实物图如下图所示。

ADXL345模块实物图

3.2.4 LED信号指示灯电路设计

LED灯即发光二极管,它是半导体二极管的一种,可以把电能转化成光能。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。在电路中,电阻的作用是限流,保护LED灯。只要单片机的控制引脚拉低,则LED灯亮,否则,LED灯不亮。其具体电路原理图如下图所示。

LED灯指示电路原理图

3.2.5JDY-30蓝牙模块电路设计

蓝牙模块是指集成蓝牙功能的芯片基本电路集合,用于无线网络通讯。本蓝牙模块就是为了只能无线数据传输而专门打造的,本模块支持串行接口,支持SP蓝牙串口协议,具有成本低、体积小、收发灵敏性高等特点,只需配备少许的外围元件就能实现大功能。

  • 模块特点

(1)支持蓝牙 SPP 串口协议

(2)内置 PCB 天线

(3)支持 UART 接口

(4)蓝牙 Class 2

(5)数据传输比 BLE 蓝牙快、可达到 8K 每秒以上的速率

(6)支持与 SPP 主蓝牙模块连接通信(JDY-30 为从 SPP 蓝牙模块)

(7)支持与电脑 SPP 蓝牙通信

(8)支持 Android 手机 SPP 通信

二、产品应用范围

(1) POS 机

(2)蓝牙打印机

(3)蓝牙玩具

(4)蓝牙高速数据传输产品应用

(5)小家电

(6)汽车电子

三、模块技术参数

(1)工作电压:3.3V-6V

(2)工作温度:-40℃-85℃

(3)天线:PCB板载天线

(4)功耗:19mA

四、模块接口说明

(1)RXD 串口输入,电平为TTL电平

(2)TXD 串口输出,电平为TTL电平

(3)GND 接GND

(4)VCC 接3.3V-6V

蓝牙模块接口电路图如下图所示。

蓝牙模块电路原理图

蓝牙模块实物图如下图所示。

蓝牙模块实物图

3.2.6 LCD1602液晶显示模块电路设计

LCD显示器分为字段显示和字符显示两种。其中字段显示与LED显示相似,只要送对应的信号到相应的管脚就能显示。字符显示是根据需要显示基本字符。本设计采用的是字符型显示。系统中采用LCD1602作为显示器件输出信息。与传统的LED数码管显示器件相比,液晶显示模块具有体积小、功耗低、显示内容丰富等优点,而且不需要外加驱动电路,现在液晶显示模块已经是单片机应用设计中最常用的显示器件了。LCD1602可以显示2行16个汉字。

一、LCD1602主要技术参数如下:

(1)显示容量为16×2个字符;

(2)芯片工作电压为4.5~5.5V;

(3)工作电流为2.0mA(5.0V);

(4)模块最佳工作电压为5.0V;

(5)字符尺寸为2.95×4.35(W×H)mm。

二、LCD1602采用标准的14脚,其接口的引脚说明如下:

(1)第1脚:VSS为地电源。

(2)第2脚:VDD接5V正电源。

(3)第3脚:V0为液晶显示器对比度调整端。

(4)第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

(5)第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。

(6)第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

(7)第7~14脚:D0~D7为8位双向数据线。

(8)第15~16脚:空脚

三、控制指令说明

LCD1602液晶模块内部的控制器共有11条控制指令,说明下表所示:

|----|----------------|----|-----|----|----|----|----|-----|-----|-----|----|
| 序号 | 指令 | RS | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| 1 | 清显示 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| 2 | 光标返回 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | * |
| 3 | 置输入模式 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | I/D | S |
| 4 | 显示开/关控制 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | D | C | B |
| 5 | 光标或字符移位 | 0 | 0 | 0 | 0 | 0 | 1 | S/C | R/L | * | * |
| 6 | 置功能 | 0 | 0 | 0 | 0 | 1 | DL | N | F | * | * |
| 7 | 置字符发生存贮器地址 | 0 | 0 | 0 | 1 | 字符发生存贮器地址 ||||||
| 8 | 置数据存贮器地址 | 0 | 0 | 1 | 显示数据存贮器地址 |||||||
| 9 | 读忙标志或地址 | 0 | 1 | BF | 计数器地址 |||||||
| 10 | 写数到CGRA或DDRAM) | 1 | 0 | 要写的数据内容 ||||||||
| 11 | 从CGRAM或DDRAM读数 | 1 | 1 | 读出的数据内容 ||||||||

表3.1 控制命令表

四、1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)

(1)指令1:清显示,指令码01H,光标复位到地址00H位置

(2)指令2:光标复位,光标返回到地址00H

(3)指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。

(4)指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁

(5)指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标

(6)指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符

(7)指令7:字符发生器RAM地址设置

(8)指令8:DDRAM地址设置

(9)指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

(10)指令10:写数据

(11)指令11:读数据

系统中采用LCD1602作为显示器件输出信息。在本电路中电位器可以调节液晶显示的对比度即清晰度。其具体电路原理图如下图所示。

LCD1602液晶显示电路原理图

其实物图如下图所示。

LCD1602液晶实物图

  • 系统软件设计

完整的控制系统由硬件系统和软件系统组成,前一章主要阐述了系统的硬件电路的设计方案,若要充分发挥系统的设计功能,则需要支持硬件平台的软件程序,即烧写到单片机内部的程序。

4.1 编程语言选择

由于整个程序比较复杂,且计算量较大,用到了较多的浮点数计算,所以程序的编写采用了C语言。

对于大多数51系列的单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点:

  1. 不需要了解处理器的指令集,也不必了解存储器结构。
  2. 寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的地址和数据类型等细节。
  3. 指定操作的变量选择组合提高了程序的可读性。
  4. 可使用与人的思维更相近的关键字和操作函数。
  5. 与使用汇编语言相比,程序的开发和调试时间大大缩短。
  6. C语言的库文件提供了许多标准的例程。
  7. 通过C语言可实现模块化编程技术,从而可将已编制好的程序加到 新程序中。
  8. C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,己完成的项目可以很容易的转换到其它的处理器或环境中与汇编语言相比,C语言在功能上、结构性、可读性、可移植性、可维护性上有明显的优势,易学易用。

4.2单片机程序开发环境

本设计中单片机开发环境是Keil uVision4,Keil uVision4开发软件是目前51系列单片机系统的主流程序开发软件,Keil uVision4是STC公司推出最新一代关于51系列单片机处理器的编译、连接和调试集成环境。可以降低开发周期,从而减少很多成本。Keil uVision4不仅提供了完整的Windows开发环境界面,支持C/C++语言开发,而且其C语言编辑效率很高,能够使开发者非常容易地使用C语言进行程序编程。其中Keil uVision4有以下特点:

(1)Keil uVision4软件同时支持WINXP和WIN7等多种操作系统,提供了丰富的库函数和功能强大的开发工具。

(2)Keil uVision4可以完成从编辑、编译、到连接、调试的一套开发流程。

(3)Keil uVision4 C51在Keil C51的基础上,增加了很多新的功能。如Keil uVision4更加增强了对内核微控制器的开发支持,并对Keil C51的开发形式和开发界面进行相应的改进。Keil uVision4软件界面如下图所示。

Keil uVision4开发界面图

4.3 Keil uVision4软件开发流程

首先,需要建立"Project"工程,点击Keil uVision4界面中菜单中"Project",选择"New uVision Project",为新建的工程命名后点击保存;然后选择开发单片机芯片的型号,本工程选择"STC89C52",这样就完成了"Project"的建立;当工程建立完毕后,点击"Source Group",可以往里面添加.c文件,点击Add就可以编辑了该文件了,也可以把常用的.c文件拷贝到建立的"Project"目录下面,最后一个完成的工程软件就建立完毕了。具体开发流程如图所示。

Keil uVision4软件开发流程图

4.4 STC-ISP-15xx-v6.85p程序烧录软件介绍

在Keil uVision4开发环境下,STC89C52RC芯片程序烧写软件使用的是stc-isp-15xx-v6.85p烧录软件,它是一款集成了代码下载,在线仿真和串口查看于一起软件备,在51系列智能产品研发过程中得到了广泛使用,性能高,是目前51系列单片机控制系统研发中不可缺少的一部分。在Keil uVision4开发环境中,需要进行一定的配置才能使用,当把下载器(即PL2303串口烧写模块)、设备和PC连接好,首先需要在软件中选择单片机型号和串口号,并把波特率设置和程序软件一致。然后选在项目程序"hex"文件所在的地址,最后就可以点击程序下载按钮了。具体下载界面如下图所示。

烧录软件对话框

4.5 PL2303串口程序烧写模块介绍

本设计通过PL2303串口烧写模块实现对单片机程序的烧写。PL2303串口烧写模块使用USB接口,十分方便的解决了笔记本电脑用户对STC系列单片机的程序烧写问题,本下载器低价格、高性能,是开发 STC 系列单片机的首选优秀工具。

一、PL2303串口烧写模块特点:

  1. 支持 USB1.1 或 USB2.0 通信;
  2. 全面支持 WIN98、 WINME、 WIN2000、 WINXP、 VISTA、 WIN7 等操作系统;
  3. 采用 USB 口供电;
  4. 在对芯片编程时可以使用目标系统本身电源,也可以使用编程器从 USB 口取电供给目标板,但应保证目标板电流不大于500mA,以免不能正常编程;
  5. 编程完成不影响目标板的程序运行;
  6. 支持 STC 全系列芯片烧录;
  7. 编程器提供 3.3V 与 5V 的电压输出接口;
  8. 速度比并口编程更快更稳定,更方便笔记本电脑用户使用;
  9. 采用进口原装芯片, 能进行高速稳定编程;

模块如下图所示。

PL2303串口烧写模块

二、PL2303串口烧写模块引脚说明

  1. +5V 5V输出,如果电路板有外接5V供电,则此引脚可不接。
  2. GND 接GND。
  3. RXD 接单片机的RXD引脚。
  4. TXD 接单片机的RXD引脚。
  5. 3V3 3.3V输出。

三、PL2303串口烧写模块与单片机的具体接线图如下图所示。

PL2303串口烧写模块与单片机接线图

4.6 程序流程图

本系统设计主要采用Keil uVision4软件编写与调试程序,程序语言采取易读性和移植性更高的C语言编写。系统运行流程图如下图所示。

系统运行流程图

  • 系统焊接与调试

5.1 电路焊接

手工焊接是常用原始的焊接方法,目前大量工厂焊接的生产基本上不采用原始方法了,但是普通元器件的修理、系统测试中经常使用原始的手工焊接。重要的是如焊接本质上出现问题,则会影响到整个控制系统的,可以这么说,焊接的会导致这个控制系统可不可以用的。手工焊接主要有如下四步组成的:

第一步开始焊接:

需要把需要焊接的地方打扫干净,主要去处油迹和灰尘,然后把需要焊接的元器件的两个角向一定的方向掰一掰,注意不能把元器件的脚相交在一起了,这样会影响焊接的。接下来让电烙铁头碰到需要焊接的元器件脚下,放上焊锡丝。此处需要注意的是,不能让烙铁头碰到其它元器件的脚了,要不然会把两个元器件焊接在一起了。

第二步给焊接升温:

当在完成第一步以后,接下来就是加热焊锡丝了,主要是将烧热的电烙铁放在器件管脚旁边,慢慢融化焊锡丝,需要注意电洛铁的温度和加热时间,若时间过长,很有可能焊坏面包板焊盘的,一般建议电洛铁温度调整在400℃左右,加热2秒钟左右,例外也要根据器件种类作出具体区别的。在焊接过程中,当需要把焊接好的元器件卸下来,则也需要给焊接处进行加热的,主要操作是首先在焊接处补好焊锡丝,使焊点是圆润的,然后用电洛铁在焊接处进行加热,在加热的过程中就可以直接把元器件卸下来了,此时一定要主要时间,要不然也会损坏焊盘的

第三部清理焊接面:

当在完成第二步时,有的时候会观察到焊接的不完美或者担心出现虚焊情况,这时候需要进行修改的。主要是两种情况的,第一种是焊锡不够,焊接点不圆润,这时需要给焊接处补焊锡,此时需要注意的是焊锡量不能补多,要不然容易连接到其它期间的引脚的。第二种是焊锡过多,这时候可以用电洛铁放在焊接处来回的滑动,会把多余的焊锡带走的,若不行,只能使用吸锡器了。

第四部检查焊点:

当完成以上三步了,最后就需要整体观察了,主要是观看焊接点是不是圆满、亮度好、紧固,有没有与其它管脚相连在一起了。

5.2 系统调试

整体系统上电调试前,大概观察下焊接的系统还存在问题,例如还有很显眼的断裂,正负极接反以及相连、虚焊、等问题,然后用万用表检测一下,电源正负极之间是否短路等严重的电源问题,最终保证系统焊接没有问题。

在搭建调试平台后,需要对软件程序进行调试,若程序调试没有问题,接下来开始验证系统功能是否满足要求,若功能有问题,需要继续调试程序,反复进行,直到所有功能都满足为止。

5.2.1 系统程序调试

软件调试步骤如下:

(1) 在Keil4软件中先创建一个工程:单击菜单栏中的"工程",输入新建工程名"基于单片机的煤气报警器设计与实现",并保存;然后器件选择"

"目录下的"

"。

(2)新建用户源文件:在新建的空白文本中编写程序源代码,编码完成保存文件并文件拓展名"基于单片机的煤气报警器设计与实现.c",新文件创建完成。

(3)程序编译和调试:单击编译按钮,系统会对文件进行运行,在输出窗口中可看到提示信息,如果提示信息中有error信息,则须按提示找出错误并改正,直到提示没有错误为止,如图5.3所示。

提示信息无错误

(4)若程序编译无错误后,则通过PL2303串口烧写模块烧写程序,开始验证系统功能是否满足要求,若功能有问题,需要继续调试程序,反复进行,直到所有功能都满足为止。

5.2.2硬件测试

最后一步就是硬件整体测试了,主要运用万用表、直流电源或示波器对焊接好的板子进行整体调试,主要检查每一个器件是不是都正常工作了,主要分为两个环节动态调试和静态调试。

一、静态调试,其中静态调试主要分为以下四种:

(1)肉眼观察。主要观看焊接点是否饱满,以及相连器件之间是否相连或者器件管脚没有焊接好,出现短路现象。

(2)使用万用表调试。首先查看电源是否短路,然后测量管脚是否连接正确,有没有接线错误。

(3)上电检查。在完成第一步和第二步都没有问题,接下来就可以上电了,上电以后观看每个器件是否正常工作,然后在逐一测试功能。

(4)综合检查测试。这种测试方法只适合单片机开发板开发的系统才能使用这种方法,本文不适宜用这种方法测试。

二、动态调试:

动态调试主要是静态调试没有任何问题,做最后一步检查,就是每个器件能否正常工作,能否满足我系统开发的功能,防止器件内部损坏,影响系统性能。

5.3 实物测试

经过测试,系统测试正常,如下图所示。

系统测试图

致谢

四年的艰苦跋涉,四个月的精心准备,毕业设计终于到了划句号的时候,心头如释重负,在本论文即将完成之际,谨此向我的指导老师致以衷心的感谢和崇高的敬意!整个毕业设计的过程都是在常老师的悉心指导下完成的,从资料的收集、方案的论证、联板调试以及毕业论文的撰写,何老师、常老师都做了非常细心的指导。老师以他敏锐的洞察力、渊博的知识、严谨的治学态度、精益求精的工作作风和对科学的献身精神给我留下了刻骨铭心的印象,这些使我受益匪浅,将成为我以后工作生活的榜样。

我要感谢电子学院所有给我上过课老师,是他们传授给我方方面面的知识,拓宽了我的知识面,培养了我的功底,对论文的完成功不可没。我还要感谢学院的各位工作人员,他们细致的工作使我和同学们的学习和生活井然有序。

感谢本设计课题组的同学,协作竞争的团队精神是我得以顺利完成毕业论文的重要基础。感谢我们这一组同学在论文相关内容的讨论与合作交流带来的启示和帮助。正是由于我们的精诚合作以及大家设计期间给予我的帮助,良好的团队合作精神为我设计得以顺利完成提供了良好条件。

敲完最后一个字符,重新从头细细阅读早已不陌生的文字,我感触颇多。虽然其中没有什么值得特别炫耀的成果,但对我而言,是宝贵的。它是无数教诲、关爱和帮助的结果。

最后向审阅此文的教授、老师致以深切的敬意。

衷心祝愿母校的明天更加美好!

。

参 考 文 献

1 赵小兰,胡征,王培坤,林晓欢,庄衍竖,黄维沛. 多功能自行车码表设计J. 电子测试,2013,(20):1-2.

2 孙宝元、杨宝清.传感器及其应用手册.北京.

3 郑人杰. 计算机软件测试技术. 北京: 清华大学出版社, 1992.

4 胡汉才. 单片机原理及系统设计. 北京:清华大学出版社, 2002.

[5 Silicon Storage Technology Inc, SST39VF800A Datasheet.2001 .

6 任强. 传感器选用原则. 计量工作.2004.

7 张俊谟. 单片机中级教程原理与应用. 北京航空航天大学出版社.2002.

7 张俊谟. 单片机中级教程原理与应用. 北京航空航天大学出版社.2002.

8 Peter Van Der Linden著,徐波译.C专家编程,人民邮电出版社,2003.

9HamldStone.MieroeomPuterInterfaeingUniversityofMassachusetts.AmhorstAddison wesle .1982. 2~3.

10 Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriersJ.. TQM Journal. 2008 2~5.

11 李全利.单片机原理及应用技术.北京:高等教育出版社.2009. 30~46 .

12 李维提,郭强.液晶显示应用技术.北京:电子工业出版社.2006. 20~35.

13 赵小兰,胡征,王培坤,林晓欢,庄衍竖,黄维沛. 多功能自行车码表设计J. 电子测试,2013,(20):1-2.

14 孙宝元、杨宝清.传感器及其应用手册.北京.

15 郑人杰. 计算机软件测试技术. 北京: 清华大学出版社, 1992.

16 胡汉才. 单片机原理及系统设计. 北京:清华大学出版社, 2002.

16 Silicon Storage Technology Inc, SST39VF800A Datasheet.2001 .

17 张俊谟. 单片机中级教程原理与应用. 北京航空航天大学出版社.2002.

18 赵负图,传感器集成电路手册,第一版,化学工业出版社,2004,590~591 .

19 马建国.电子系统设计.北京:高等教育出版社,2004.1.

20 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005.7 .

21 王建校. 51系列单片机及C51程序设计M . 北京:科学出版社, 2002.

22 霍孟友.单片机原理与应用M .北京:机械工业出版社,2004.

23 何立民,单片机应用系统设计,北京:航天航空大学出版社,2~5,46~50.

24 李广弟,单片机基础,北京:北京航空航天大学出版社,2001,56~64.

25 何希才,新型实用电子电路400例,电子工业出版社,2000年,60~65.

26 Wolf W, 孙玉芳等译. 嵌入式计算系统设计原理. 北京: 机械工业出版社, 2002.

27 Integrated Silicon Solution Inc. IS61LVI2816 Datasheet.2002.

28 熊媛. 传感器技术在自动控制系统中的应用及发展展望J. 工业设计, 2016, 10(8):12-15.

29 杨振江,蔡德芳·新型集成电路使用指南与典型应用\[M·西安:西安电子科技大学出版社1998.10

30 卢本, 王君. 材料成形过程的测量与控制M. 上海:机械工业出版社, 2005.

相关推荐
智者知已应修善业1 小时前
【51单片机只有一个8*8点阵数据如何滚动起来一片595+一组IO+花样】2022-1-15
c++·经验分享·笔记·单片机·蓝桥杯·硬件架构
恒锐丰科技林技术员1 小时前
EG2123A 三相独立半桥驱动芯片解析与工程应用
经验分享·嵌入式硬件·硬件工程
硅基手札2 小时前
【Linux 内核专栏 13】快IO层
linux·服务器·嵌入式硬件
李日华大战鸡红2 小时前
滑膜观测器(学习记录)
stm32·单片机·学习·matlab·机器人
白搞电子2 小时前
ESP32-S31 项目如何制作 Windows 一键烧录包:完整镜像、esptool 与数据边界
windows·stm32·单片机
xiangw@GZ3 小时前
纽扣电池型号
嵌入式硬件
优信电子3 小时前
Raspberry Pi Pico 硬件开发 —— 第二课:MicroPython 从入门到项目实践(LED篇)
单片机·嵌入式硬件·树莓派·micropython·pico·入门教学
黑妹天下第一乖3 小时前
第 12 讲:阿加犀 AidLux 部署与量产——把端侧 AI 应用做成 7×24 产品
人工智能·嵌入式硬件·数码相机·接口隔离原则·iot
xiangw@GZ4 小时前
Type‑C USB DRD 电路
单片机·嵌入式硬件