速度与里程表设计单片机论文_第1页
速度与里程表设计单片机论文_第2页
速度与里程表设计单片机论文_第3页
速度与里程表设计单片机论文_第4页
速度与里程表设计单片机论文_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘要 本文介绍的速度与里程表设计以单片机最小系统和霍尔传感器为核心。传感器将不同的车速转变为不同频率的脉冲信号输录到单片机进行控制与计算,再采用LM016L模块进行显示,使得自行车的速度与里程数据直观的显示给使用者。本系统由霍尔传感器、单片机AT89C51、液晶显示模块LM016L、数据存储电路和键盘矩阵模块、时间芯片DS1302组成。通过单片机的设置可使部定时器T1对脉冲输入引脚T0进行控制,这样能精确地算出加到T0引脚的单位时间检测到的脉冲数;设计中的速度显示采用LM016L模块,通过速度换算得来的里程数采用12C总线并通过存储器来存储,既节省了所需单片机的口线和外围器件,同时也简化了显示

2、部分的软件编程本文先对里程表设计当中所需的设备作了详细的介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析,在此基础上进行了仿真。本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。关键词:单片机最小系统,霍尔传感器,时间芯片DS1302,液晶显示模LM016L,矩阵键盘。1 / 36Abstract This paper introduces the speed and odometer design based on SCM system and the smallest Holzer sensor is the core. The sensor

3、 will different speed change into different frequency pulse signal inputting to the microprocessor controlandcalculation, then use LM016L module to display, the bicycle speed and mileage data to display to the user.This system is composed of sensors, MCU, Holzer AT89C51LCD module LM016L, data storin

4、g circuit and a keyboard matrix module, time chip DS1302. Through the computers settings can make the internal timer T1 pulse input pin T0 control, this can be accurately calculated to the T0 pin unit time to detect the pulse number; in the design of speed that the use of the LM016L module, the spee

5、d of conversion to the mileage by using 12C bus and the memory to store, saving the for single-chip mouth lines and peripheral devices, but also simplifies the display portion of the software programmingThis paper first on the odometer design required equipment are introduced in this paper, on the p

6、roblems existing in the design are described; then the hardware and software design and implementation carefully analyzed, on the basis of the simulation.The odometer design has the advantages of simple structure, low cost, clear display, the advantages of stable and reliable.Keywords: single chip m

7、icrocomputer minimum system, a Holzer sensor, time chip DS1302, liquid crystal display module LM016L, matrix keyboard.目 录摘要Abstract1绪论11.1.课题的背景与意义11.2 课题所要解决的主要问题12系统设计22.1.系统功能分析22.2 系统设计主要任务与容22.3系统设计技术指标33自行车数字里程表硬件设计33.1概述33.1.1系统硬件构成33.1.2设计思路33.2数据采集模块43.2.1传感器43.2.2 时间芯片63.2.3键盘矩阵113.3控制模块12

8、3.3.1概述123.3.2单片机最小系统123.3.3单片机引脚功能介绍153.3.3.1.基础知识153.3.4中断系统173.3.5定时器/计数器173.4显示模块183.5其他介绍213.5.1复位电路214 自行车数字里程表软件设计224.1系统介绍224.2系统流程图225程序代码225.1.数据采集程序225.2键盘扫描程序255.3.中断程序276 Proteus仿真286.1 概述286.2仿真电路图286.3 仿真结果图29如下6-2示错误!未定义书签。7系统调试与结果分析297.1电路调试297.1.1硬件调试297.1.2软件调试307.2结果分析30总结与展望31致3

9、1参考文献错误!未定义书签。附录错误!未定义书签。1绪论1.1.课题的背景与意义中国的轻型电动车产业在2000年进入产业化发展阶段,目前正处于产业生命周期快速增长阶段的初期。尽管处于处处封杀的重压下,消费者对这一新兴交通工具的青睐,推动轻型电动车产业近年来保持了80%以上的增长速度。2005年,在整体经济需求增长放慢、工业增速回落的背景下,轻型电动车行业却出现令人瞩目的“井喷”行情,成为耐用消费品市场不多的“亮点”之一。2006产销量达到1500万辆。据此估算,2010年,中国轻型电动车的产销量将可能达到3000万辆,出口量将可能达到500600万辆。实现工业产值700亿元,包括上下游带动产值

10、的产业总体规模将达到1300亿。我国是自行车大国,随着人们生活水平的不断提高,自行车已经不仅仅是运输、代步的工具,其辅助功能也变得越来越重要。因此,人们希望自行车的娱乐、休闲、锻炼的功能越来越多,能带来大家更多的健康与快乐。在这个背景下,自行车里程表作为自行车的一大辅助工具迅速发展起来.科学、美观、合理设计自行车里程表有一定的实用价值.它能合理计算出速度与公里数,使运动者运动适量,达到健康运动与代步的最佳效果。随着自行车里程表的发展,其功能也逐渐从单一的里程显示发展到速度、时间显示,甚至有的还具有测量骑车人的心跳、显示骑车人热量消耗等功能,让人能清楚地知道当前的速度、时间、里程等物理量。本文介

11、绍的自行车里程表是采用以AT89C51单片机为中央处理器,结合高精度的采样电路、 控制电路、显示电路,方便地实现了智能化、 高精度、 高可靠性、 高效率的自行车里程表的设计,并且使用方便。1.2 课题所要解决的主要问题(1).设计一个轻便、省电、全天候野外使用的自行车里程表;(2).可显示里程、速度、加速度,行驶时间等信息;(3).适用于各种车型(不同尺寸),车型信息可通过键盘设置2系统设计2.1.系统功能分析本系统可以实现自行车或电动车在行驶过程中速度,里程数的显示功能。系统元件简单,实用性强。通过霍尔传感器进行信号的采集,每来一次信号,计数器加一,每五秒钟计算一次平均速度。本系统的核心在于

12、单片机,把采集到的数据送入单片机后进行处理,再通过单片机把处理好的数据通过液晶显示出来,从而实现速度和里程的显示。本系统是由数据采集,单片机控制系统,键盘显示,液晶显示4部分构成。其中数据的采集是由霍尔传感器来完成的,它的输出是矩形脉冲,其中关键的处理由单片机系统来完成,单片机将对P1.0脚的信号进行计数,输出的信号由液晶进行显示,显示当前的行驶里程情况。键盘的作用是输入自行车的车型等信息,以上所诉就是整个系统的总体设计思想。6该设计能实时地将所测的累计里程数显示出来,主要是将传感器输入到单片机的脉冲信号的频率(传感器将不同车速转变成不同频率的脉冲信号)实时地测量出来,通过单片机计算出里程,并

13、由液晶显示模块显示所测里程。本设计的里程数的算法是一种大概的算法(假设在一定时间自行车是匀速行进,平均速度与时间的乘积即为里程数)。 设计时,应综合考虑测速精度和系统反应时间。本设计用测量脉冲频率来计算速度,因而具有较高的测速精度。在计算里程时取了自行车的理想状态。实际中,误差控制在几米之,相对于整个里程来说不是很大。另外,还应尽量保证其他子模块在编程时的通用性和高效性。2.2 系统设计主要任务与容用单片机设计一个可以适用各种自行车的数字里程表,可显示里程、速度、时间等信息。学习、了解、掌握程序设计方法和了解自行车的数字里程表的基本工作原理。用传感器将所测转速转变为数字脉冲信号,然后再将数字脉

14、冲信号数据传输于核心单片机处理,单片机将根据设计程序计算在一定时间数字脉冲的频率,再由计数值最终得到路程里数并通过终端显示设备显示出来。附加报警功能,在速度超过某一个固定值后,指示灯发亮,提示需要减速。2.3系统设计技术指标计数方式:十进制里程显示位数:4位速度显示位数:2位3自行车数字里程表硬件设计3.1概述自行车数字里程表的硬件设计主要包括运用传感器对外部信号进行采集,单片机对数据进行处理,液晶显示的设计,单片机是设计的核心。3.1.1系统硬件构成系统硬件以AT89C51为核心,包括以下三个模块电路:1.数据采集模块(霍尔传感器采集数据、时间芯片DS1302、键盘矩阵)2.控制模块(AT8

15、9C51)3.LCD显示模块(LM016L)数据采集AT89C51LCD显示外部信号图 3-1 系统构成框图3.1.2设计思路基本思路:假设自行车车轮的半径为R,R的值根据自行车半径的不同由编程是部设定或键盘输入给定,则L=2*3.14*R。在轮圈上安装一个永久磁铁,则轮子每转一圈,通过开关型霍尔传感器的电平就会发生一次跳变,跳变产生一个脉冲信号,从引脚P3.5计数器T1端输入,并通过计数器对其进行计数为N在规定的周期T时间的路程S=N*L,而在该周期的速度V=S/T,当前的总路程为lc=lc+S。 计时功能由时间芯片DS1302来选取,如果当时间不符合时,则由键盘对时间进行初始化设置来调整时

16、间,然后通过定时器来完成时间计时功能,键盘还可以对不同规格的自行车半径来作选择。 在LCD上需显示的容为time,sd,lc。由AT89C51控制显示数据,实时刷新。3.2数据采集模块3.2.1传感器3.2.1.1.传感器的选择 里程测量传感器的选择方案有:使用编码器对自行车车轮的圈数进行测量、使用红外光敏电阻对里程进行测量、利用霍尔传感器对自行车里程进行测量。编码器的安装相对来说比较复杂;红外光敏电阻不仅对光敏感,还对环境和天气的要求也高,这些因素都能严重影响测量的效果;而霍尔传感器完全能避免上述的不足之处,由霍尔元件加整形电路构成的霍尔开关系统,不仅安装方便,不受光线和环境的影响,而且具有

17、输出响应快,数字脉冲性能好,既简单又经济适用,所以本设计采用霍尔传感器来对里程进行测量。3.2.1.2.霍尔传感器的原理当一块通有电流的金属或半导体薄片垂直地放在磁场中时,薄片的两端就会产生电位差,这种现象就称为霍尔效应。两端具有的电位差值称为霍尔电势U,其表达式为 U=KIB/d,其中K为霍尔系数,I为薄片过的电流,B为外加磁场的磁感应强度,d是薄片的厚度,由此可见,霍尔效应的灵敏度高低与外加磁场的磁感应强度成正比的关系。而利用霍尔效应制成的元件叫做霍尔元件,霍尔元件接线图如下图3-1所示。图 3-1接线图霍尔传感器检测转速示意图如下图3-2示。在非磁材料的圆盘边上粘贴一块磁钢,霍尔传感器固

18、定在圆盘外缘附近。圆盘每转动一圈,霍尔传感器便输出一个脉冲,通过单片机测量产生脉冲的频率就可以得出圆盘的转速。 图 3-2 测速原理图霍尔传感器的外形图和与磁场的作用关系如图3-3所示。磁场由磁钢提供,所以霍尔传感器和磁钢需要配对使用。图 3-3霍尔元件产品图和管脚图3.2.2 时间芯片本设计时间芯片采用的了DS1302,DS1302是由美国DALLAS公司推出的一种具有涓细电流充电能力的低功耗实时时钟电路,具有可对年、月、日、周、日、时、分、秒进行计时等的功能,工作电压为2.5V5.5V。主要的特点是采用串行数据传输,即使掉电亦不丢失,在DS1302部有一个318的用于临时性存放数据的RAM

19、寄存器。DS1302与AT89C51的连接线有三条线:RST引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2作为备用电源,芯片外接晶振X2,为芯片提供计时脉冲。 DS1302是DALLAS公司推出的涓流充电时钟芯片,含一个实时时钟/日历和31字节静 态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、 星期、月、年的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标 志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进 行通信,仅需三根I/O 线:复位(RST)、I/O 数据线、串行时钟(SCLK)。时

20、钟/RAM 的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。DS1302的外部引脚分配图如图3-4所示图3-4DS1302的外部引脚分配图DS1302的部结构如表1所示,主要组成部分为:移位寄存器、控制逻辑、振荡器、实时时钟以与RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对 特定的地址进行读写操作。表1 DS1302的部结构DS1302的部结构图3-8DS1302外部引脚功能说明图3-5VCC2主电源引脚GND地图3-6 DS1302封装图RST复位I/O数据输入/输出SCLK串行时钟VCC1电池引脚

21、图3-5 DS1302外部引脚功能说明图DS1302的结构如图3-6所示图3-6DS1302的结构DS1302的部结构如图3-7所示图3-7 DS1302的部结构图DS1302含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串 入的二极管数目,以调节电池充电电压。不过对我们目前而言,最需要熟悉的是和时钟相关 部分的功能,对于其它参数请参阅数据手册。DS1302的工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且 将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指 定访问地址,命令字装入移位寄存器后,在之

22、后的时钟周期,读操作时输出数据,写操作时 输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。各引脚的功能为:Vcc1:主电源:Vcc2:备用电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2Vcc1时,由VCC1向DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;I/O:三线接口时的双向数据线; CE:输入信号,在读、写数据期间,必须为高。该引脚有两 个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。DS1302有下列几组寄存器:1)DS

23、1302有关日历、时间的寄存器共有12个,其中有7个寄存器秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。当该 位置为1时,时钟振荡器停止,。DS1302处于低功耗状态;当该位置为0时,时钟开始运行。 控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。在任何的对钟和RAM的写操作之前,WP位必须为0。当WP位为1时,写保护位防止对任一寄存器的写操作。2)DS1302有关RAM的地址DS1302中附加31字节静态RAM的地址如表3-3所示。表3-3DS1302中附加31字节静态RAM的地址工作模式寄存器读寄存器写寄存器时钟突发模式寄存器CLOCK BURSTBF

24、hBEhRAM突发模式寄存器RAM BURSTFFhFEh3) DS1302的工作模式寄存器 所谓突发模式是指一次传送多个字节的时钟信号和RAM 数据。 突发模式寄存器如表3-4所示。表3-4突发模式寄存器765432101RAMA4A3A2A1A0R DC KW R此外,DS1302还有充电寄存器等。2)读写时序说明 DS1302是SPI总线驱动方式。它不仅要向寄存器写入控制字, 还需要读取相应寄存器的数据。要想与DS1302通信,首先要了解DS1302的控制字。DS1302的控制字如表3-5。表 3-5控制制字(即地址与命令字节)读地址写地址数据围C1hC0h00-FFhC3hC2h00-

25、FFhC5HC4h00-FFh.FDhFCh00-FFh控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把 数据写入到。DS1302中。位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4A0):指示操作单元的地址;位0(最低有效位):如为0,表示要进行写操作,为1表示进行读 操作。控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个SCLK脉冲的 下降沿,读出DS1302的数据,读出的数据也是从最低位到最高位。 数据读写时序如图3-7所示

26、。图3-7 数据读写时序具体操作见驱动程序。(3)电路原理图:电路原理图如图3-8所示, DS1302与单片机的连接也仅需3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。图3-8电路原理图3.2.3键盘矩阵键盘是4*4的矩阵键盘,在设计中是用来调整时间的,从上述知道当时间芯片DS1302的时间不准确时,就可以通过键盘来对时间进行调整,当然键盘还能对不同规格自行车的半径进行选择。本系统采用4*4键盘,其中使用到的只有其中10个,另外六个保留,键盘的作用就是设置轮胎的宽度,和另外的一些参数值,也可以通过键盘来控制程序的

27、运行(本系统未使用)。4*4的键盘引出的8个引脚接单片机的P2口。键盘扫描原理是按键部分由16个轻触按键按照4行4列排列,连接到P2端口。将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输出端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。本系统采用的扫描法,具体如下: 判断键盘中有无键按下: 将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘

28、中无键按下。判断闭合键所在的位置: 在确认有键按下后,即可进入确定具体闭合键的过程。方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。3.3控制模块3.3.1概述单片机是指一种集成在电路芯片上的微型计算机,它包括中央处理器CPU、随机存储器RAM、只读存储器ROM、并行I/O口、串行I/O口、中断系统、定时器/计数器、定时电路与元件等部件集成到一块芯片上构成的一个小而完善的计算机系统。1. 中央处理器2. 中央处理器CPU是单片机的核心,主要完成运算和

29、控制功能。1).随机存储器RAM CPU在运行时可随时进行数据的写入和读取,断电后RAM中容丢失。2).只读存储器ROM只读存储器ROM,顾名思义是指将数据写入后不易改写的存储器,断电后ROM中容不丢失(如MP3)1)并行I/O口51单片机有4个并行I/O口P0、P1、P2、P3,每个I/O口有8根I/O口线。2) 串行I/O口3)目前比较高档的8位单片机均设置了全双工串行I/O口,用以实现与某些终端设备进行串行通信,51单片机只有一个串行口P3.0、P3.1。1.中断系统中断系统包括中断装置和中断处理程序,是计算机的重要组成部分,实时控制、故障自动处理、计算机与外围设备间的数据传送广泛采用中

30、断系统。2. 定时器/计数器定时器是由单片机部提供一个非常稳定的计数信号;计数器则是记录单片机的外部事件的。3)定时电路与元件计算机的整个工作是在时钟信号的驱动下,按照严格的时序有规律的一拍一拍的执行各个操作,单片机部设有定时电路,只需要外接振荡元件即可工作。3.3.2单片机最小系统单片机的最小系统可以为单片机提供一个稳定无抖动的电源,主要由电源,时钟,复位三部分电路组成。如图3-9所示单片机电源电路时钟电路复位电路图 3-9电路构成框图1).电源电路:向单片机供电通常图片都没有给出,20脚是地GND, 40脚是电源VCC,一般我们会选择在电源VCC处,加一个瓷片电容,它的目的是能滤掉电源中的

31、高频杂波,使系统更加安全。需要注意的是51单片机使用的是5伏直流电源。2).时钟电路:时钟电路就是振荡电路,向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。AT89C51片有一个用于构成振荡器的反相放大器,该反相放大器的输入为芯片引脚XTAL1(19脚),输出端为引脚XTAL2(18脚),这两个引脚通过连接一个12MHz晶振X1和两个30pF的瓷片电容C1、C2,构成了单片机的时钟电路。振荡器是单片机系统正常工作的保证,如果振荡器不起振,系统将会不能工作;假如振荡器运行不规律,系统执行程序的时候就会出现时间上的误差,这在通信中会体现的很明显:电路将无法通信。晶振是石英晶体振荡器的简称

32、,通常用来构成振荡电路,产生各种频率信号。是一种能够输出稳定的震荡周期的元件,通过晶振输出的时钟脉冲,来安排单片机的工作,这样单片机才能够有了时间的概念。但是晶振并不能够独立的使用,图中的瓷片电容C1和C2起稳定作用,所以晶振必须配合合适的负载电容,否则会产生错误,或者是晶振不能正常的工作。晶振所加电容是匹配电容,主要是根据单片机部电路和晶振确定的,一般选取30pF左右即可,电容大小对振荡的稳定性有较大影响,对频率有一定的微调,但不明显。晶振和瓷片电容是没有正负的,注意两个瓷片电容相连的那端一定要接地。51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。图 3-10

33、时钟电路注:时钟电路振荡频率f = 晶振频率时钟电路振荡周期 = 1/f单片机机器周期 = 振荡周期12例如:晶振频率 = 12MHz振荡频率 = 12MHz振荡周期 = 1/12s机器周期 = 1s3.复位电路:确定单片机工作的起始状态,完成单片机的启动过程AT89C51单片机的复位信号时高电平有效,通过RST/VPD(9脚)连接复位电路,复位电路连接方式有两种。1)上电复位:单片机接通电源时产生复位信号,完成单片机启动,确定单片机起始工作状态。2)手动复位:手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。通常在单片机工作出现混乱或“死机”时,使用手动复位可实现单片机的“重启”。

34、上电复位是每个单片机都必须有的,一般断电以后,再上电就复位了,而手动复位在大型的系统中运用比较多,在一般的小东西里面基本不用,所以本设计采用了上电复位方式。 本设计的复位电路是由一个10uF的电容C3和一个10K的电阻R1组成的。一般单片机复位脚至少需要大约10ms时间的持续高电平脉冲,才能保证有效复位。当上电时,电容充电,类似于短路,复位脚就变成高电平,电容充满电后,复位脚就变成低电平。同时应注意保证加在RST 引脚上的高电平持续两个机器周期,才能使单片机可靠复位。复位电路图如图3-11所示图 3-11 复位电路图3.3.3单片机引脚功能介绍3.3.3.1.基础知识 AT89C51是由美国A

35、TMEL公司生产的一种低功耗、高性能的CMOS 8位单片机,片含有4K字节Flash可擦写存储器(PEROM)以与128字节的随机存取数据存储器(RAM),AT89C51采用ATMEL公司高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器(CPU)和Flash存储单元,功能十分强大的AT89C51单片机可提供许多高性价比的应用场合,还可灵活应用于各种控制领域。AT89C51 提供的标准功能有:4k 字节Flash 闪速存储器,128字节部RAM,32 个IO 口线,两个16位定时计数器,一个5向量两级中断结构,一个全双工串行通信口,片振荡器与时钟电路。同时,AT

36、89C51可降至0Hz的静态逻辑操作,并且还支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口与中断系统继续工作。掉电方式保存RAM中的容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.3.3.2.主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片振荡器和时钟电路3.3.3.3.引脚定义与功能 AT89C51引脚图如下图3-12所

37、示。按引脚的功能可分为三个部分1)主电源引脚VCC、GND和晶振VCC:供电电压,运行和程序校验时接电源正端(+5V)。 GND:接地端。 XTAL1:输入到单片机部振荡器的反相放大器。当采用外部振荡器时,对HMOS单片微机,此引脚应接地;对CHMOS单片微机,此引脚作驱动端。图3-12XTAL2:反相放大器的输出,输入到部时钟发生器。当采用外部振荡器时,XTAL2接收振荡器信号,对CHMOS单片微机,此引脚应悬浮。当使用片时钟电路时,二线用来外接石英晶体和微调电容;当使用片外时钟电路时,XTAL1接收外部时钟信号,XTAL2悬空。2)I/O:共4个口,32根I/O线P0口(P0.0-PO.7

38、)是一个8位漏级开路型的双向I/O口, P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0口则作为输出原码,此时P0外部必须被拉高。P1口(P1.0-P1.7)是一个部带提升电阻的准双向I/O口,在FLASH编程和校验时,P1口可用于接收低8位的地址信号。P2口(P2.0-P2.7)是一个部带提升电阻的8位准双向I/O口,也可用于外部程序存储器或数据存储器访问时的高八位地址。P2口在FLASH编程和校验时接收高八位地址和控制信号。P3口(P3.0-P3.7) 是一个部带提升电阻的8位准双向I/O口,也可作为

39、AT89C51的一些特殊功能口,备选功能如下:P3.0 RXD(串行输入口)P3.1 T(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)3)控制线:3类共4根线 A.输入控制线RST/VPD:复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期(24个时钟周期)以上的高电平时,将单片微机复位。第二功能VPD为部RAM的备用电源输入端,主电源一旦发生断电,降到一定低电压值时,可通过VPD为单片机部RA

40、M提供电源,以保护片RAM中的信息不丢失,使上电后能继续正常运行。EA/VPP:片外程序存储器访问允许信号,低电平有效。当EA为高电平时,选择片程序存储器(80C51为4KB,80C52为8KB),当程序计数器PC的值大于4KB,则自动执行外部程序存储器容;当EA接地时,只访问外部程序存储,而不用管片是否有程序存储器。第二功能VPP为编程电源输入。B.输入、输出控制线ALE/PROG:地址锁存允许信号,输出,高电平有效。在访问片外存储器或I/O时,用来锁存P0扩展地址低8位的地址信号,以实现低8位地址与数据的隔离。ALE也以振荡频率的1/6的固定速率输出,可作为对外输出的时钟或用作外部定时脉冲

41、。ALE可以驱动8个LSTTL负载。第二功能PROG低电平有效,是部ROM编程时的编程脉冲输入端。C.输出控制线PSEN:外部程序存储器读选通信号,低电平有效。在从片外程序存储器取指期间,在每个机器周期中,当PSEN有效时,程序存储器的容被送上P0口(数据总线)。PSEN可以驱动8个LSTTL负载。3.3.4中断系统中断源:引起中断的根源中断请求:中断源向CPU提出的处理要求中断响应过程:CPU中断事件A,转去执行事件B的过程中断处理:对事件B的整个处理过程中断返回:CPU处理完事件B返回到原事件A被中断的地方继续执行实现上述中断功能中断系统。AT89C51有5个中断源,2个优先级。3.3.5

42、定时器/计数器AT89C51单片机部有两个定时/计数器T0和T1,其核心是计数器,基本功能是加1,对外部事件脉冲计数是计数器,对片机器周期的脉冲计数则是定时器。3.3.5.1定时器/计数器的结构定时器/计数器T0、T1的逻辑结构如图3-13所示。图3-13定时器/计数器T0、T1的逻辑结构3.3.5.2定时器/计数器的工作原理 定时器/计数器实际上是一个二进制的加1寄存器,当启动后就开始从所设定的计数初始值开始加1计数,寄存器计满回零时能自动产生溢出中断请求。但定时与计数两种模式下的计数方式却不一样,定时器模式时,每个机器周期寄存器增1,即寄存器对机器周期计数。3.4显示模块 显示设计采用LM

43、016L液晶模块,该点阵的屏显成本相对较低,适用于各类仪器,小型设备的显示领域。在本设计中用来显示速度、路程、和时间。LCD模块引脚与功能如下图3-14所示 图 3-14 LM016L引脚VSS:接地VDD(VCC):电源电路,+5VVEE(VO):液晶驱动电压RS:寄存器选择(为“1”时,选数据寄存器DR,为“0”时选指令寄存器IR)RW:读写信号E:使能,片选,下降沿触发DB0-DB7:数据线LM016L液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制

44、器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,可以查看参考文献(30)中的表4.CGRAM是

45、为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM但愿,LM016L液晶模块的引脚功能如下表7所示:引脚说明 1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:表7 LM016L液晶模块的引脚功能引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3VO液晶显示器对比度调整端,接正电源时对比度最弱,

46、接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线

47、 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flang)15BLA背光电源正极16BLK背光 电源负极寄存器选择控制如表8所示表寄存器选择控制表RSR/W操作说明00写入指令寄存器(清除屏等)01都busy flag(DB7),以与读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲开始时初始化E为0,然后置E为1,再清0.busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。 字符集1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符

48、有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。显示地址1234567891011121314151600H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH指令集1602

49、通过D0D7的8位数据端传输数据和指令。显示模式设置: (初始化)0011 0000 0x38 设置162显示,57点阵,8位数据接口;显示开关与光标设置: (初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显

50、示=0);02H(显示回车,数据指针=0)。通常推荐的初始化过程:延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms(以上都不检测忙信号)(以下都要检测忙信号)写指令38H写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开与光标设置完毕3.5其他介绍3.5.1复位电路复位是使CPU 和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。51系列单片机通常采用上电复位、手动复位、上电+手动的混合复位等方式。而本设计采用上电复位方式,其实质是一阶充放电电路,系统上电时该电路将提供有效的复位信号RST(高电平)直至系统电源

51、稳定后撤销复位信号(低电平)。同时应注意保证加在RST 引脚上的高电平持续两个机器周期,才能使单片机可靠复位。3.5.2报警设计报警设计中当即时速度超过固定值时,指示灯D1会发亮,提示需要减速。4 自行车数字里程表软件设计4.1系统介绍本系统主要通过C语言进行单片机编程,从而实现信号的读取与显示,通过51单片机的部中断来实现实时的显示速度和里程数。键盘扫描,液晶显示等部分都是通过软件来控制。4.2系统流程图程序设本系统的核心部分,系统的各个方面都是通过程序来控制和协调。程序的核心部分就是中断时间到了之后进中断的各个数据的计算。程序开始的时候先初始化LMO1602的液晶,然后液晶模块上会提示用户输入自行车的轮胎宽度:width(0-99cm),当用户输入完后,这个数值将被作为自行车的轮胎半径参加计算。之后程序就初始化中断模式,之后就进入一个while循环,在循环中接收信号和显示数据,如果中断时间到了,那么进入中断,从新计算速度跟里程数。退出中断后又继续显示新的速度跟里程数。流程图如下4-1所示:5程序代码5.1.数据采集程序void recv()if(q!=p)q=p;count+; 上面程序是数据的采集,其中sbit p=P35;sbit q;因为p是接收脉冲的,时刻都在改变,所以用q来保存p的值,每次当P5.0口发生跳变的时候,计数器加一。 开始初始化液

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论