资源描述
江苏技术师范学院毕业设计说明书(论文)
毕业设计说明书
自行车里程速度计的设计
目 录
序 言 1
第一章 系统方案 2
1.1课题的主要任务及内容 2
1.2任务分析与实现 2
1.3单片机选择 3
1.4显示模块的选择 4
1.5传感器的选择 4
1.6系统简介 5
第二章 硬件设计 7
2.1单片机的介绍 7
2.1.1单片机原理简介 7
2.1.2 单片机的引脚功能介绍 8
2.2单片机外围电路的设计 10
2.2.1时钟电路 10
2.2.2复位电路的设计 10
2.2.3报警电路的设计 11
2.3传感器 11
2.4显示电路的设计 15
2.4.1显示器LCD1602的介绍 15
2.4.2显示电路的设计电路 19
第三章 软件设计 21
3.1软件实现的功能 21
3.2主程序 21
3.3显示子程序的设计 23
第四章 系统调试与仿真 25
4.1系统仿真调试 25
4.2 protel99的介绍 25
4.3硬件调试 26
4.3.1 常见的硬件故障 26
4.3.2 调试方法 27
4.3.3 调试步骤 27
结束语 28
参考文献 29
致 谢 30
附 录 31
附录一 元器件清单 31
附录二 电路图 32
附录三 实物照片 34
附录四 源程序 35
附录五 中英文文献 51
江苏技术师范学院毕业设计说明书(论文)
序 言
传感器,是一种检测装置,能感受到被测的信息,并能将检测感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。它是实现自动检测和自动控制的首要环节[1]。
它的作用是将一种能量转换成另一种能量的形式。英文名字为Sensor或Transducer,亦称变换器、换能器。在科学技术迅速发展的当今社会,传感器的应用越来越广泛,如在日常生活、航空、航天,常规武器、交通运输,机械制造、生物医学工程、化工、自动化检测工程及计量等各项领域[2]。
单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机,又称微控制器。它包括中央处理器(Central Processing Unit,CPU)、用RAM构成的数据存储器、用ROM构成的程序存储器、定时器/计数器、各种输入/输出(I/O)接口和时钟电路,可独立地进行工作。特别适用于控制领域。因此,单片机只要与适当的软件及外部设备相结合,便可成为一个单片机控制系统[3]。
单片机由于其体积小、功能强,可靠性高,灵活方便等优点,所以被广泛的应用于各个领域,并对各行各业的技术改造和产品的更新换代起到重要的推动作用[4]。
本设计介绍了一种基于单片机控制的简易自行车速度以及里程计算系统,包括自行车里程表的硬件构成,软件逻辑以及程序代码。该里程测速系统以STC89C52作为系统控制核心,采用传感器来检测信号,通过一定时间间隔对信号的采集,结合自行车本身车轮参数,经过单片机对采集信号进行分析计算,最终在液晶显示器LCD上显示车辆行驶的里程和速度,具有超速报警 [5]。
此次的毕业设计过程中,有三个需要解决的关键问题:
(1)5v电源怎么实现。
(2)速度怎样采样。
(3)速度显示模块采用何种方式,液晶还是数码管。
第一章 系统方案
1.1课题的主要任务及内容
本课题主要任务是利用霍尔元件、单片机等部件设计一个可用1602液晶显示的实时显示里程和速度的自行车的速度里程表。本文主要介绍了自行车的速度里程表的设计思想、电路原理、方案论证以及元件的选择等内容,整体上分为硬件部分设计和软件部分设计。
本文首先要对该课题的任务进行方案论证,包括硬件方案和软件方案的设计;继而具体介绍了自行车的速度里程表的硬件设计,包括传感器的选择、单片机的选择、显示电路的设计;然后阐述了该自行车的速度里程表的软件设计,包括数据处理子程序的设计、显示子程序的设计;最后对本次设计进行了系统的总结。
具体的硬件电路包括STC89C52单片机的外围电路以及LCD液晶显示电路、霍尔检测电路等。
软件设计包括:芯片的初始化程序、定时中断采样子程序、显示子程序等,软件采用C语言编写,软件设计的思想主要是自顶向下,模块化设计,各个子模块逐一设计。
1.2任务分析与实现
本设计的任务是:以STC89C52单片机为处理核心,用传感器将车轮的转数转换为电脉冲,进行处理后送入单片机。里程及速度的测量,是经过STC89C52的定时/计数器测出定时1s会计数几个脉冲,再经过单片机的计算得出,其结果通过LCD液晶显示器显示出来。
测速,首先要解决是采样的问题。使用单片机进行测速,可以使用简单的脉冲计数法。只要转轴每旋转一周,产生一个或固定的多个脉冲,将脉冲送入单片机中进行计算,即可获得转速的信息。常用的测速元件有霍尔传感器、光电传感器和光电编码器。里程测量传感器的选择也有以下几种方案:使用光敏电阻对里程进行测量、利用编码器对车轮的圈数进行测量、利用霍尔传感器对里程进行测量、利用干簧管型传感器测量里程。
要求达到的各项指标及实现方法如下:
(1).上电后实时显示速度
(2).路程实时记录(掉电存储)
(3).半径可设定(掉电存储)
(4).超速报警
(5).掉电存储
实现:利用软件编程,对数据进行处理得到需要的数值。
最终实现目标:自行车的速度里程表具有里程、速度测试与显示功能,采用单片机作控制,显示电路可显示里程及速度。
1.3单片机选择
随着微电子技术和超大规模集成电路技术的发展,单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域(如工业控制、家电产品、汽车电子、智能仪器仪表)得到了广泛的应用。下面就简要介绍具有代表性的几款单片机[6]。
1. 8031单片机是Intel公司生产的MCS-51系列单片机中的一种,除无片内ROM外,其余特性与MCS-51单片机基本一样,内部含有一个8位CPU、128个字节的RAM,21个特殊功能寄存器。而单片机8031要进行存储器的扩展比较麻烦,外围器件多,而且8031的功耗也大。
2. 单片机8032/8052/8752是增强型产品,而8032、80C32片内是没有ROM的,而89C51内部含有4K字节的FLASH的ROM。52系列的单片机计数器为三个16位计数器,中断源为8个。
3.8051是最早最典型的产品,是在8031的基础上片内又集成4KROM,作为程序存储器。8051单片机与80C51单片机从外形看是完全一样的,其指令系统、引脚信号、总线等完全一致(完全兼容),也就是说在8051下开发的软件完全可以在80C51上应用,反过来,在80C51下开发的软件也可以在8051上应用[7]。
4.STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。在单片机芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。另 CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选[8]。
在本次设计中,经过分析与比较,选择了单片机STC89C52,这是因为:
1.单片机STC89C52采用的是CHMOS工艺:高速度、高密度、低功耗。也就是说STC89C52单片机是一种低功耗单片机。
2.可靠性高、便于扩展。
3.控制功能强。
4.单片机89C51片内存储容量较小,除此之外,单片机STC89C52还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点。
1.4显示模块的选择
动态扫描LED数码管显示。里程表的显示内容以数字为主,利用LED数码管可基本满足使用要求,且成本较低。但是用动态扫描的方式驱动数码管,亮度太低,在阳光下几乎看不见显示内容,失去使用价值。
串行静态LED数码管显示。把单片机的串行口设置为方式0(同步移位寄存器),输出显示信息,可实现LED数码管的静态显示,其亮度令人满意。但由于要使用74HC164/74LS164串并转换芯片驱动LED数码管,因此会带来体积大、成本高、功耗高等缺点。
LCD液晶显示模块。液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件了[9]。
在本次设计中,经过分析与比较使用LCD1602作为显示模块。
1.5传感器的选择
红外光电传感器。把红外对管分别安装在自行车车轮的两侧,当车轮转动时,辐条会阻挡红外对管的光路,接收管输出低电平,单片机根据此信号可计算里程、速度等。红外对管的优点是测量精度高,缺点是安装比较复杂和容易受外来光线、灰尘等的影响。
开关型霍尔传感器。霍尔传感器是利用霍尔效应把磁输入信号转换成电信号的器件。把开关型霍尔传感器安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,传感器输出一个无抖动的低电平,单片机根据此信号可计算里程、速度等。霍尔传感器的优点是稳定和安装简易,缺点是成本较高。
干簧管。干簧管是一种磁敏的有触点无源电子开关元件,应用在里程表上的原理与开关型霍尔传感器类似,把干簧管安装在自行车贴近车轮的支架上,磁钢安装在辐条上,当磁钢靠近霍尔传感器的时候,干簧管闭合,单片机根据此信号可计算里程、速度等。干簧管的优点是成本低廉和安装简易,缺点是比较脆弱和不够稳定。
本里程表选用开关型霍尔传感器,稳定、安装简易。
1.6系统简介
系统由霍尔传感器脉冲检测电路、LCD1602液晶显示、数据存储模块、主控单片机系统组成,霍尔传感器把车轮的每周期信号转换成脉冲传送给单片机,单片机通过判断脉冲周期计算出转速及路程,通过数据稳定处理等程序,得出转速稳定近似值,通过LCD1602液晶屏显示,并记录总路程于内部掉电存储,能保证掉电数据不丢失。系统方框图如图1-1所示。
测量自行车的速度的原理有两种:
测量一定时间间隔t,自此时间段自行车车轮转过的圈数q。假设车轮周长为c,则速度V=c*q/t;测量自行车车轮转过一圈的时间t,则速度V=c/t。本里程表是根据前一个原理计算速度的。
图1-1系统方框图
工作原理:
里程、速度等都是由霍尔元器件测量。通过频率计输出脉冲,代表车轮转动圈数,已知自行车轮胎的半径为50cm,轮子每转动一圈,安装在车轮辐条上的磁钢接近霍尔传感器一次,传感器送一个脉冲信号给单片机的外部中断计数器T0,产生一次中断,圈数加一。圈数*2*π*0.5即为车前进距离,而通过单片机T0定时器记录时间,间隔1秒,1秒内的前进距离除以时间1秒,得到1秒内的当前速度。而总里程L除以总时间t得到平均速度[10]。
若速度大于所设定的值,则P1.0口输出低电平,LED警示灯亮,扬声器发出声音。
可以通过按键来改变半径和速度的上限值。
第二章 硬件设计
2.1单片机的介绍
2.1.1单片机原理简介
单片机是指集成在一个芯片上的微型计算机,也就是把组成微型计算机的各种功能部件,包括CPU(Central Processing Unit)、随机存储器RAM(Random Access Memory)、只读存储器ROM(Read-only Memory)、基本输入/输出(Input/Output)接口电路。定时器/计数器等部件都制作在一块集成芯片上,构成一个完整的微型计算机从而实现微型计算机的基本功能。单片机内部结构示意图如图2-1所示[11]。
定时/计数器
中断系统
CPU
存储器
并行I/O口
串口I/O口
TXD
RXD
T
INT
P0-P3
图2-1单片机内部结构示意图
1.中央处理器(CPU)
中央处理器是单片机最核心的部分,主要完成运算和控制功能。
2.内部存储器
内部存储器包括内部数据存储器(内部RAM)和内部程序存储器。存储器是由大量的寄存器所组成,其中每一个寄存器就称为一个存储单元。
3.定时/计数器
单片机的定时器和计数器是同一结构,只是计数器记录的是单片机外部发生的事件,由单片机的外部电路提供计数信号;而定时器是由单片机内部提供一个非常稳定的计数信号。
4.中断系统
中断系统在计算机中起着十分重要的作用,是现代计算机系统中广泛采用的一种实时控制技术,能对突发事件进行及时处理,从而大大提高系统的实时性能。
5.串行I/O接口
串行I/O口的数据各位按顺序传输,其特点是需要一对传输线,成本低;但速度慢,效率低,适合静态显示。
6.并行I/O接口
并行I/O接口的数据所有位同时传送。其特点是传输速度快,效率高;但传送多少位就需要多少根传输线,因此传送成本高,适合动态显示。
2.1.2 单片机的引脚功能介绍
STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。引脚如图2-2所示:
图2-2 STC89C52引脚图
STC89C52具体介绍如下:
① 主电源引脚(2根)
VCC(Pin40):电源输入,接+5V电源
GND(Pin20):接地线
②外接晶振引脚(2根)
XTAL1(Pin19):片内振荡电路的输入端
XTAL2(Pin18):片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):地址锁存允许信号
PSEN(Pin29):外部存储器读选通信号
EA/VPP(Pin31):程序存储器的内外部选通。接低电平,从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7
2.2单片机外围电路的设计
2.2.1时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。本文所用的是内部方式的时钟电路,如图2-3所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
图2-3时钟电路
2.2.2复位电路的设计
本系统的复位电路是采用按键复位的电路,如图2-4所示,是常用复位电路之一。单片机复位通过按键产生高电平复位称手动复位。上电时,刚接通电源,电容C相当于瞬间短路,+5V立即加到RET/VPD端,该高电平使89C52全机自动复位,这就是上电复位;若运行过程中需要程序从头执行,只需按下按键即可。按下按键,可直接把+5V加到了RET/VPD端从而复位称为手动复位。复位后,P0到P3并行I/O口全为高电平,其它寄存器全部清零,只有SBUF寄存器状态不确定。
工作原理:通电瞬间,RC电路充电,RST引脚出现高电平,只要RST端保持10ms以上高电平,就能使单片机有效地复位。
图2-4 按键复位电路
2.2.3报警电路的设计
本次报警电路采用蜂鸣器报警,当自行车行驶的速度超过本设计所设定的速度时,P1.0口输出低电平,使三极管导通,蜂鸣器发出报警信号。报警电路如2-5所示:
图2-5报警电路
2.3传感器
霍尔传感器是一种磁传感器。用它可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔传感器以霍尔效应为工作基础,是由霍尔元件和它的附属电路组成的集成传感器。霍尔传感器在工业生产、交通运输和日常生活中有着非常广泛的应用[12]。
1.霍尔效应霍尔元件-霍尔传感器
由于霍尔元件产生的电势差很小,故通常将霍尔元件与放大器电路、温度补偿电路及稳压电源电路等集成在一个芯片上,称之为霍尔传感器.
图2-6霍尔传感器
霍尔传感器也称为霍尔集成电路,其外形较小,如图2-6所示,是其中一种型号的外形图。
2.霍尔传感器的分类
霍尔传感器分为线性型霍尔传感器和开关型霍尔传感器两种。
(1)线性型霍尔传感器由霍尔元件、线性放大器和射极跟随器组成,它输出模拟量。(2)开关型霍尔传感器由稳压器、霍尔元件、差分放大器,斯密特触发器和输出级组 成,它输出数字量。
3.霍尔传感器的特性
(1)线性型霍尔传感器的特性如图2-7所示:
图2-7线性霍尔传感器的特性
输出电压与外加磁场强度呈线性关系,如图2-7所示,可见,在B1~B2的磁感应强度范围内有较好的线性度,磁感应强度超出此范围时则呈现饱和状态。
(2)开关型霍尔传感器的特性
如图2-8所示,其中BOP为工作点“开”的磁感应强度,BRP为释放点“关”的磁感应强度。
图2-8开关型霍尔传感器特性
当外加的磁感应强度超过动作点Bop时,传感器输出低电平,当磁感应强度降到动作点Bop以下时,传感器输出电平不变,一直要降到释放点BRP时,传感器才由低电平跃变为高电平。Bop与BRP之间的滞后使开关动作更为可靠。
另外还有一种“锁键型”(或称“锁存型”)开关型霍尔传感器,其特性如图2-9
所示:
图2-9锁键型开关型霍尔传感器
当磁感应强度超过动作点Bop时,传感器输出由高电平跃变为低电平,而在外磁场撤消后,其输出状态保持不变(即锁存状态),必须施加反向磁感应强度达到BRP时,才能使电平产生变化。
4.霍尔传感器的应用
按被检测对象的性质可将它们的应用分为:直接应用和间接应用。前者是直接检测受检对象本身的磁场或磁特性,后者是检测受检对象上人为设置的磁场,这个磁场是被检测的信息的载体,通过它,将许多非电、非磁性物理量,例如速度、加速度、角度、转数、转速以及工作状态发生变化的时间等,转变成电学量来进行检测和控制[11]。
(1)线性型霍尔传感器主要用于一些物理量的测量。
①电流传感器
②位移测量
(2)开关型霍尔传感器主要用于测转数、转速、风速、流速、接近开关、关门告知器、报警器、自动控制电路等。
如图2-10所示,,在非磁性材料的圆盘边上粘一块磁钢,霍尔传感器放在靠近圆盘边缘处,圆盘旋转一周,霍尔传感器就输出一个脉冲,从而可测出转数(计数器),若接入频率计,便可测出转速[10]。
图2-10模拟测速
如果把开关型霍尔传感器按预定位置有规律地布置在轨道上,当装在运动车辆上的永磁体经过它时,可以从测量电路上测得脉冲信号。根据脉冲信号的分布可以测出车辆的运动速度。
本设计采用的开关型霍尔传感器尺寸小、工作电压范围宽,工作可靠,价格便宜,因此获得极为广泛的应用。电路如图2-11所示:
图2-11开关型霍尔传感器
传感器的工作原理如图2-12所示:
图2-12传感器工作原理
2.4显示电路的设计
在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通用器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软件都比较简单,但硬件电路复杂。
在单片机系统中应用液晶显示器作为输出器件有以下几个优点:
(1)显示质量高
由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。
(2)数字式接口
液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。
(3)体积小、重量轻
液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。
(4)功耗低
相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。
2.4.1显示器LCD1602的介绍
1.液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。
2.液晶显示器的分类
液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。
3.液晶显示器各种图形的显示原理:
①线段的显示
点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行有16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H——00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,……(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。
②字符的显示
用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。
③汉字的显示
汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5……右边为2、4、6……根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节……直到32B显示完LCD就可以得到一个完整的汉字。
4.主要技术参数如表2-1所示:
表2-1 LCD1602主要技术参数
显示容量
16×2个字符
芯片工作电压
4.5~5.5
工作电流
2.0mA(5.0v)
模块最佳电压
5.0v
字符尺寸
2.95×4.35(WXH)mm
5.引脚接口说明如表2-2所示[13]:
表2-2 LCD1602引脚接口
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
第1脚:VSS为地电源
第2脚:VDD接5V电源
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为寄存器选择,高电平时进行读写操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
LCD1602分为带背光和不带背光两种,基本控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图2-13所示:
图2-13 LCD1602带背光与不带背光的外形尺寸差别
6.LCD寄存器的选择如表2-3所示:
表2-3 LCD寄存器的选择
E
R/W
RS
功能说明
1
0
0
写入命令寄存器
1
0
1
写入数据寄存器
1
1
0
读取忙碌标志及RAM地址
1
1
1
读取RAM数据
0
X
不动作
7.1602LCD的指令说明及时序
1602液晶模块内部的控制器共有11条控制指令,控制指令如表2-4所示:
表2-4 1602控制指令
序号
指令
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
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)
指令1:清除显示,指令码01H,光标复位到地址00H位置。
指令2:光标复位,光标返回到地址00H。
指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。
指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。
指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:字符发生器RAM地址设置。
指令8:DDRAM地址设置。
指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:写数据。
指令11:读数据。
2.4.2显示电路的设计电路
本设计中LCD1602的数据总线接STC89C52单片机的P0口,控制引脚RS接P2.7口,R/W接P2.6口,E接P2.5口。VL是对比控制引脚,电压在0~5V之间,BLA和 BLK是背光电源的正负极,使用时需要连接限流电阻,电流大小可以控制背光亮度。液晶显示电路如图2-14所示[14]:
图2-14 液晶显示电路
第三章 软件设计
3.1软件实现的功能
1. 利用霍尔传感器产生里程数的脉冲信号
2. 利用单片机自带的计数器T0对霍尔传感器脉冲信号进行计数
3. 对数据进行处理,要求用LCD显示里程总数和即时速度
4. 自行车超速,系统发出报警信号。
3.2主程序
1.初始化程序
主要工作:将T0设为外部控制定时器方式;外中断0及外中断1设为边沿触发方式;将部分内存单元清零;设置轮子周长;开中断及定时器;将EEPROM中的数据调入内存等。
2.轮圈大小的设计
P1.5和P1.6两个引脚分别接两个开关,通过调节这两个开关,可以改变轮圈的半径。
3.主要程序流程图
通过对按键和定时器的监测,进行按键和显示独立执行,当有按键按下根据按键的类型作相应的处理,定时500ms进行一次显示更新。程序流程图如图3-1所示:
图 3-1 软件总体流程图
4.算法流程
A44E输出端OUT连到单片机外部中断T0上,用磁铁靠近A44E,输出端产生一个低电平信号,使CPU产生一次中断计一次数。假定轮圈的周长为L,在轮圈上安装m个永久磁铁,则测得的里程值最大误差为L/m。本设计中取m=1。当轮子每转一圈,通过霍尔元件传感器采集到一个脉冲信号,并从引脚P3.2中断0端输入,可以采用两种定时器,一个定时器定位1s,一个是计数器。计数器是用来计数1s钟轮子的圈数。从而可以计算出它的里程与速度。
里程S=周长L*圈数n 速度V=周长L/t
通过计数外部中断的脉冲数,每经过1s进行一次监测,从而得出速度,并计算出路程,再通过液晶1602显示。程序流程图如图3-2所示:
图3-2算法流程
3.3显示子程序的设计
本设计采用LCD液晶显示器接口电路,数据总线接STC89C52单片机的P0口,控制引脚RS接P2.7口,R/W接P2.6口。E接P2.5口。通过编辑软件,先把所要显示的数据放入存储单元,然后把数据送入对应的地址,完成显示。液晶屏每0.5s更新一次显示。若发生报警,显示屏上的值将会停留在最近一次的显示值,直至复位按钮按下或按钮按下。显示子程序的流程图如图3-3所示:
图3-3显示程序框图
第四章 系统调试与仿真
系统调试包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件系统的硬件电路故障包括设计性错误和工艺故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障校时电路。本次设计中需要的调试如下:
4.1系统仿真调试
本次实验采用的是uVision2件进行调试。它是Keil Software公司推出的一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51及其它开发套件的一个重要组件。除增加了源代码、功能导航器、模板编辑以及改进的搜索功能外,uVision2提供了一个配置向导功能,加速了启动代码和配置文件的生成。此外其内置的仿真器可模拟目标MCU,包括指令集、片上外围设备及外部信号等。uVision2提供逻辑分析器,可监控基于MCUI/O引脚和外设状态变化下的程序变量[15]。
程序调试界面如图4-1所示。
4.2 protel99的介绍
早期的PROTEL主要作为印制板自动布线工具使用,运行在DOS环境,对硬件的要求很低,在无硬盘286机的1M内存下就能运行,但它的功能也较少,只有电路原理图绘制与印制板设计功能,其印制板自动布线的布通率也低,而现今的PROTEL已发展到DXP 2004,是个庞大的EDA软件,完全安装有200多M,它工作在WINDOWS95环境下,是个完整的板级全方位电子设计系统,它包含了电路原理图绘制、模拟电路与数字电路混合信号仿真、多层印制电路板设计(包含印制电路板自动布线)、可编程逻辑器件设计、图表生成、电子表格生成、支持宏操作等功能,并具有Client/Server(客户/服务器)体系结构,同时还兼容一些其它设计软件的文件格式,如ORCAD,PSPICE,EXCEL等,其多层印制线路板的自动布线可实现高密度PCB的100%布通率。在国内PROTEL软件较易买到,有关PROTEL软件和使用说明的书也有很多,这为它的普及提供了基础。
因此本设计的原理图用的软件是protel99。图见附录2所示。
图4-1程序调试界面
4.3硬件调试
4.3.1 常见的硬件故障
(1)逻辑错误:
样机硬件的逻辑错误是由于设计错误或加工过程中的工艺性错误而造成的,包括错线,开路和短路等等,其中短路是最常见的故障。
(2)元器件失效:
元器件失效的原因有两个方面,一是器件本身已经损坏或性能不符合要求;二是由于组装错误造成的元器件失效,如电解电容,二极管的极性错误或集成块安装方向错误等。
(3)性差:
若样机中存在电源故障,则加电后将造成器件损坏。电源故障包括电压值不符合设计要求,电源引出线和插座不对应,电源功率不足和负载能力差等。
4.3.2 调试方法
脱机调试是在样机加点之前,先用万用表等工具,根据硬件电气原理图和装配图,仔细检查样机线路的正确性,并核对元器件型号,规格和安装是否合要求。特别注意电源的走线,防止电源之间的短路和极性错误,重点检查系统的总线或其他信号线之间是否存在相互的短路。样机所用的电源,事先必须单独调试后才能加到系统中,在不插芯片的情况下,加电检测各底座上引脚的电位,仔细测量各点电位是否正常,尤其应注意单片机底座上的各点电位是否正常。
4.3.3调试步骤
接通5v电源,液晶显示器会显示速度为0,当磁铁靠近霍尔元器件时,就会显示速度的值,不停的靠近霍尔传感器,速度的值就会越来越大。可以通过切换开关来查看此时的路程和半径。可以通过改变半径改变路程与速度。图为附录所示。
结束语
本设计是以STC89C52单片机为主要控制电路,通过霍尔传感器传送给单片机,利用单片机内
展开阅读全文