毕业设计基于单片机的万年历的设计_第1页
毕业设计基于单片机的万年历的设计_第2页
毕业设计基于单片机的万年历的设计_第3页
毕业设计基于单片机的万年历的设计_第4页
毕业设计基于单片机的万年历的设计_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

1、石家庄铁道大学四方学院毕业设计自行车里程表的设计the design of bicycle odometer 2013 届 电气工程 系专 业 电子信息工程 学 号 20096388 学生姓名 符士宾 指导教师 孙秀婷 完成日期 2012年 5月5日摘要近年来人们对健康的要求越来越高,自行车作为一种普遍大众的运动器械开始进入人们的视野。而自行车里程表就是伴随着自行车运动的兴盛而逐渐发展起来的本系统由单片机stc89c52、霍尔传感器、lcd1602液晶显示屏和独立按键组成硬件部分,软件部分包括主程序模块、数据采集模块、显示模块、键盘扫描模块。霍尔传感器完成数据采集功能并对单片机输入脉冲信号,通

2、过单片机程序的设置可对霍尔传感器输入的脉冲信号进行计数和处理,精确地得到单位时间内检测到的脉冲数,计算自行车速度、加速度、里程,并通过lcd显示出来。本文先对里程表设计当中所需设备作了详细介绍,对设计中存在的问题进行了说明;而后对硬件和软件部分的设计和实现作了认真的分析。本里程表的设计具有结构简单,成本低廉,显示清晰,稳定可靠等优点。关键词:stc89c52单片机lcd1602霍尔传感器abstractwith the developing of peoples for health,bicycle is becoming a very popular sports equipment in

3、our everyday.while the bicycle odometers are becoming more and more popular with bicycles prosperous. the system is composed of scm st8c9c52, hall sensors, lcd1602 lcd module and the keyboard control component. the software part includes the main modules, data acquisition module, display module and

4、keyboard scanning module. hall sensors complete the data acquisition function and single-chip input pulse signal, through the mcu set to hall sensor-based input pulse signal processing, count and that can accurately calculate added to the pins per unit time the number of pulses detected,while can ge

5、t velocity, acceleration,milestones; design mileage and speed by lcd module, mileage to display. this paper first needed to milestones design of equipment in detail, on the problems existing in the design, explained. and then to hardware and software design and implementation of the part made earnes

6、t analysis; and the simulation results are compared. this milestones design has simple structure, low cost, showed clear, stable and reliable. key words : stc89c52scmlcd1602hall sensor 目录第1章绪论11.1课题研究背景与现状11.2本课题所做的工作1第2章系统总体设计方案32.1系统实现的功能32.2设计思路32.3总体设计框图42.4系统设计选择42.4.1数据采集模块42.4.2主控芯片的选择52.4.3按

7、键电路的选择62.4.4显示模块的选择6第3章系统硬件设计83.1概述83.2主控模块83.3显示模块103.4按键控制模块113.5数据采集模块11第4章系统软件设计134.1概述134.2程序流程图134.3数据采集模块设计154.4显示模块设计164.5键盘扫描模块设计16第5章调试与分析18第6章结论与展望226.1结论226.2展望22参考文献23致谢24附录24附录a外文资料24附录b硬件原理图35附录c程序清单36第1章绪论1.1课题研究背景与现状时间是科学技术中最基本的物理量之一,无论是农业生产,还是工业自动控制,都与时间息息相关,尤其是中国的农业生产,和农历日期联系紧密,准确

8、的农历日期,为农业生产、农民生活带来极大方便。工业生产中的延时动作,定时动作等对时间的精确度要求较高。小到运动员的百米赛跑,大到一项工程的实施,都和时间密不可分,所以,万年历随处可见。但是,随着科技的发展,人们生活水平不断提高,人们所关心的不仅仅是时间,还有其他一些像室内温度、农历日期、星期等和人们生活联系紧密的数据,甚至对数字万年历的外观也提出新的要求,这就对万年历的功能提出新的更高的要求。近年来随着计算机在社会各领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制方式日新月益。控制方式有从模拟控制向数字控制转变的发展趋势。微控制芯片具有强大的逻辑运算能力,它的出现,使得数字万年历

9、不仅能给人们提供时间,而且还能提供很多新的功能,例如:温度显示、农历显示、节气提示、语音提示、日程表、生日提示、星座查询、录音放音、风景控制等。现在的好多数字万年历产品都通过控制内置灯光对万年历表面装饰图片进行扫描,实现动态风景;通过控制语音芯片发出各类鸟叫的声音,使人们生活在自己的房间里,仿佛身处大自然!可见,现在的数字万年历不仅仅是一个智能化的、可以提供多信息的器件,更是室内的一道风景。上海礼品公司生产的多功能万年历具有led灯显示、年历、月历、时间显示、12小时或24小时制式、选择四组定时闹铃、整点铃响、按键音、小于100小时倒计时、世界16个城市现在时查询、1900年到2099年月历查

10、询、八位数四则运算、百分比计算 m+、m-和mrc存储运算功能货币换汇计算。可见,多功能智能化数字万年历是以后万年历发展的方向,基于微控制芯片的数字万年历可以满足人们对万年历的多功能、界面友好和智能化的要求,数字控制技术将引起万年历新的重大改变。1.2本课题所做的工作首先,本课题对系统主要功能进行分析,确定该系统的主要功能是:阳历日期、时间显示、农历日期显示、星期显示、环境温度显示和定时闹铃,并可以修改时间,在修改时间的过程中,可以对月份天数自动判断。其次,系统设计要做的工作是电源分析和设计,该设计选用的集成芯片都采用+5v电源供电,所以,要先对常见220v交流电源进行变换,得到较为稳定的、可

11、以满足系统要求的+5v稳压电源。最后,要对选用的芯片进行学习,尤其是其工作时序,这是实现系统的关键。温度检测采用ds18b20,由于ds18b20是单总线温度传感器,所以,对其控制需要较严格的时序。通过查阅资料和仿真掌握单总线数字温度传感器的时序要求和工作流程,该系统主要应用了ds18b20的跳过rom匹配、温度转换、读取温度指令等。时钟芯片采用ds1302,为三总线时钟芯片,为了能够使其正常工作,要学习其中的寄存器格式、寄存器特殊位作用、读取时间寄存器数据、写入时间寄存器数据等。ds1302时钟芯片内部没有集成备用电源,所以,要对其掉电保护环节进行考虑和设计。显示器件选用点阵带字库型1286

12、4液晶模块,由于液晶模块在写入指令或数据后,要经过一段时间才能完成内部动作,所以,对其读写控制时要有必要的延时,以等待液晶模块完成内部动作,才能使写入的数据或指令有效。带字库型液晶模块有基本指令集和扩充指令集,本设计不需要显示图片,所以,采用基本指令集。在时间设定环节,要有设定提示,本系统以游标闪烁方式提示用户当前所修改的数据,为此,要对游标闪烁控制方式进行学习。第2章数字万年历硬件设计微控制芯片采用atmel公司的at89s52,其内部含有8k字节flash,支持usbisp编程,十分方便。温度传感器选用ds18b20,它支持3v5.5v的电压范围,使系统设计更灵活、方便。时钟芯片选用美国d

13、allas公司推出的具有涓细电流充电能力的低功耗实时时钟芯片ds1302。显示部分选用界面友好的ym12864r液晶模块,其内部采用st7920a控制器,内置8192个中文汉字(1616),编程方便,可以节约很多的程序存储器空间。2.1微控制器选择今天,微处理器已经无处不在,无论是录像机、智能洗衣机、移动电话等家电产品,还是汽车引擎控制,以及数控机床、导弹精确制导等都要嵌入各类不同的微处理器。微处理器不仅是微型计算机的核心部件,也是各种数字化智能设备的关键部件,其芯片管脚如图所示。 at89s52芯片管脚at89s52是一种低功耗、高性能cmos8位微控制器。at89s52具有8k在线系统可编

14、程flash存储器。使用atmel公司高密度非易失性存储器技术制造,与工业80c51产品指令和引脚完全兼容。片上flash允许程序存储器在线系统可编程,亦适于常规编程器。在芯片上,具有灵巧的8 位cpu 和在线系统可编程flash,使得at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。at89s52具有以下标准功能:8k字节flash,256字节ram,32位i/o口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52可降至0hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,cpu

15、停止工作,允许ram、定时器/计数器、串口、中断继续工作。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。p0口:p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,p0口也被作为低8位地址/数据复用口,在这种模式下,p0口具有内部上拉电阻。在flash编程时,p0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 p1口:p1口是一个具有内部上拉电阻的8 位双向i/o 口,p1 输出缓冲器能驱动4个ttl 逻辑电

16、平。对p1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入口使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。 引脚号第二功能:p1.0 t2(定时器/计数器t2的外部计数输入),时钟输出 p1.1 t2ex(定时器/计数器t2的捕捉/重载触发信号和方向控制) p1.5 mosi(系统编程用) p1.6 miso(系统编程用) p1.7 sck(系统编程用) p2口:p2口是一个具有内部上拉电阻的8 位双向i/o 口,p2 输出缓冲器能驱动4个ttl 逻辑电平。对p2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入口使用时,被外部拉低的引

17、脚由于内部电阻的原因,将输出电流。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行movx dptr)时,p2口送出高八位地址。在这种应用中,p2口使用很强的内部上拉发送1。在使用8位地址(如movx ri)访问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。 p3口:p3口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入口使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。 p3口亦作为at89s

18、52特殊功能(第二功能)使用,如下所示。 在flash编程和校验时,p3口也接收一些控制信号。 p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 into(外中断0)p3.3 int1(外中断1)p3.4 to(定时/计数器0)p3.5 t1(定时/计数器1)p3.6 wr(外部数据存储器写选通)p3.7 rd(外部数据存储器读选通)此外,p3口还接收一些用于flash闪存编程和程序校验的控制信号。rst复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位,其上电复位硬件原理如图所示。上电复位硬件原理ale/prog当访问外部程序存储器或数据存储器时

19、,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。对flash存储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位禁止ale操作。该位置位后,只有一条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。psen程序存储器允许(psen)输出,是外部程序存储器的读选通信号,当at89s52由外部程序存储器

20、取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次psen信号。ea/vpp外部访问允许,欲使cpu仅访问外部程序存储器(地址为0000h-ffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器的指令。flash存储器编程时,该引脚加上+12v的编程允许电源vpp,当然这必须是该器件是使用12v编程电压vpp。该系统主控制电路硬件原理如图所示。系统主控制电路硬件原理2.2温度测量环节设计如今,温度传感器的总类可谓五花八门,各温

21、度传感器的精度和控制方式都有所不同,价格也相差很大。如何选择满足该系统测量室温的精度要求,并且价格低廉的温度传感器,是一个重要问题。dallas半导体公司的数字化温度传感器ds18b20是一线总线接口的温度传感器,一线总线具有独特而经济的特点,性能价格比非常出色。该系统需要测量室温,精度要求不是太高,所以,该系统选用ds18b20作为温度传感器,其管脚排列如图所ds18b201 2 3gndi/ovddds18b20管脚微控制器控制ds18b20完成温度转换必须经过三个步骤:每一次读写之前要对ds18b20进行复位,复位成功后发送一条rom指令,最后发送ram指令,这样才能对ds18b20进行

22、预定的操作。复位要求微控制器将数据线下拉500微秒,然后释放,ds18b20收到信号后等待1660微秒左右,然后发出60240微秒的存在低脉冲,微控制器收到此信号表示复位成功,如果没有收到复位成功信号,则表示ds18b20出现问题,可以用来作为系统设计时的故障提示、判断信号。ds18b20的单总线数据传输特点,决定了它严格的控制时序。微控制器写1时,数据线必须先被拉至低电平,然后就被释放,使数据线在写时间片开始之后的15微秒之内拉至高电平。微控制器写0时,数据线必须先被拉至低电平且至少保持逻辑低电平60微秒。微控制器把数据线从高电平拉至低电平时,产生读时间片,数据线必须保持在逻辑低电平至少1微

23、秒;来自ds18b20的输出数据在读时间片下降沿之后15微秒有效。因此,为了读取从时间片开始算起15微秒的数据线状态,微控制器必须停止把数据线驱动至低电平。在读时间片结束时,数据线经过外部的上拉电阻拉回至高电平。所有读时间片的最短持续期限为60微秒,各个读时间片之间必须有最短为1微秒的恢复时间。其读写时序如图所示。读数据写060微秒15微秒45微秒15微秒45微秒15微秒ds18b20写时间间隙ds18b20读时间间隙写1ds18b20读写时间间隙该系统对ds18b20进行操作用到的指令为:跳过rom匹配,命令字为0cch;温度转换指令,命令字为44h;读温度指令,命令字为0beh。系统温度检

24、测部分硬件原理如图所示。系统温度检测部分硬件电路2.3 时钟芯片环节ds1302 是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时存放数据的ram寄存器。ds1302采用主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。ds1302电路的接口简单、价格低廉、工作电压为2.5v5.5v,使用方便,被广泛地采用,所以,该系统选用ds1302。ds1302管脚ds1

25、302的引脚排列,其中vcc1为后备电源,vcc2为主电源,在主电源关闭的情况下,也能保持时钟的连续运行。ds1302由vcc1或vcc2两者中的较大者供电。当vcc2大于vcc10.2v时,vcc2给ds1302供电。当vcc2小于vcc1时,ds1302由vcc1供电。x1和x2是振荡源,外接32.768khz晶振。rst是复位/片选线,通过把rst输入驱动至高电平来启动所有的数据传送。rst输入有两种功能:首先,rst接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst提供终止单字节或多字节数据的传送手段。当rst为高电平时,所有的数据传送被初始化,允许对ds1302进行操作。如

26、果在传送过程中rst置为低电平,则会终止此次数据传送。i/o引脚变为高阻态。上电运行时,在vcc2.5v之前,rst必须保持低电平,只有在sclk为低电平时,才能将rst置为高电平。i/o为串行数据输入输出端(双向),sclk始终是输入端。在对ds1302进行读写操作时,要首先了解它的控制字。ds1302 的控制字如图2-10所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入ds1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取ram数据;位5至位1表示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输

27、出。在控制指令字输入后的下一个sclk时钟的上升沿,数据被写入ds1302,数据输入从低位即位0开始。同样,在紧跟8位控制指令字后的下一个sclk脉冲的下降沿读出ds1302的数据,读出数据时从1ramcka4a3a2a1a0ramk低位0到高位7。ds1302控制字该系统需要对时间进行读取和设定,所以,在掌握控制字之后,还必须熟悉ds1302内部各寄存器的地址和特殊状态位,其内部各寄存器的地址和特殊状态位如表2-1所示。2.4系统设计选择2.4.1数据采集模块数据采集是本次毕设中的数据来源部分,数据采集的稳定性和准确性能够直接后续设计过程中的稳定性和准确性。数据采集模块由霍尔传感器利用霍尔原

28、理来对自行车行驶过程中的数据进行采集(包括脉冲次数和变化快慢),且输出为数字量可直接输出到单片机的某一接口。霍尔效应:一块半导体薄片,其长度为l,宽度为b,厚度为d,置于磁感应强度为b的磁场中,如果在其相对的两边通入电流i,且电流与磁场垂直,则在半导体的另两边将会产生一个电势差uh,即uh=(rhib)/d=khib(其中rh为霍尔元件的霍尔系数,kh为霍尔元件的灵敏度),其中该半导体薄片就是霍尔传感器。半导体长度方向上的两个金属电极称为控制电极(或输入电极),沿该方向流动的电流i称为控制电流;宽度方向上的两个电极称为霍尔电极(或输出电极)4。 霍尔传感器是一种基于霍尔效应的磁转换器。利用霍尔

29、传感器可以检测磁场及其变化,可在各种与磁场有关的场合中获得广泛的应用。霍尔传感器具有许多的优点,其结构牢固,体积小,质量轻,寿命长,安装方便,功耗小,频率高(可达1mhz),耐震动,不怕灰尘、油污、水汽及烟雾等的污染和腐蚀。本次设计中使用的是开关型传感器(输出为数字量),开关型集成霍尔传感器具有使用寿命长、无触点磨损、无火花干扰、无转换抖动、工作频率搞、温度特性好、能适应恶劣环境等优点,主要应用在汽车点火系统、保安系统、转换/里程测定、机械设备的限位开关、按钮、电流的测定与控制、位置及角度的检测等。霍尔传感器在未来的发展趋势将是高灵敏度、高精度和高稳定度,它将在微电子技术发展的基础上更加飞速的

30、发展5。2.4.2主控芯片的选择主控芯片是一个系统最核心的部分,它是整个系统的心脏,负责控制所有模块的工作。在主控芯片的选择上更要综合各方面的条件、资源,下面我总结了两种方案并比较优劣,从而选择一种更适合的方案。方案一:at89c51是美国atmel公司生产的低电压,高性能cmos型8位单片机,器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准mcs-51指令系统,片内置通用8位中央处理器(cpu)和flash存储单元,功能强大。其片内的4k程序存储器是flash工艺的,这种工艺的存储器用户可以瞬间擦除、改写,一般专为atmel at89xx做的编程器均带有这些功能。显而易见,这种

31、单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又可以很好地保护我们的劳动成果。再者,at89c51目前的售价比8031还低,市场供应也很充足。at89c51可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于4k,四个i/o口全部提供给用户。可用5v电压编程,而且擦写时间仅需l0ms。at89c51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。po口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。方案二:stc89c52单片机的指令系统和

32、at89c51系列的完全兼容,但实际操作起来却存在很大不同:1、at89c51不带isp下载,要用下载器才行,stc89c52可以用自己的usb转串口下载,下载软件可以到stc厂家网站上下载。2、stc单片机执行指令的速度很快,大约是at的3-30倍(尽管快是好事,但这样一来,在at上好使的程序在stc上不一定好用,最典型的例子就是那些对时序有严格要求的模块,比如i2c、ds18b20等的时序)。再者,既然执行速度快了,那么那些非定时器控制的精确延时肯定要受影响,用stc时注意得加长延时,大约是at的10-30倍,这一点在程序调试的过程中可以切身感受到。 3、stc单片机对工作环境的要求比较低

33、,电压低于5伏时仍然正常工作,甚至3到4伏之间都还可以工作,然而这样的环境下at肯定不行了,所以当一个系统用stc单片机好用,但用at单片机不工作时,直接查最小系统,看单片机的供电是否正常即可6。比较这两种方案,由于在学校期间学过数字电路、单片机原理、c语言程序设计,综合考虑单片机各部分资源和作为学生能够获得的资源,我选择用stc系列芯片完成,且学校也提供了相应的硬件操作平台,操作起来比较方便,故stc为更合理的选择。2.4.3按键电路的选择在过程控制和智能化仪表中,通常是用主控芯片进行实时控制和数据处理的,为实现人机对话,键盘控制是必不可少的部分。利用按键可以实现向单片机输入数据、传送命令、

34、功能切换等,是人工干预单片机系统的主要手段。本次毕设显示内容较多,而lcd1602是16*2进行显示的,不能将全部的计算结果进行一次性的全部显示,所以添加了键盘控制部分控制在显示过程中随时切换,显示不同的即时数据。键盘有两种类型:编码键盘和非编码键盘。编码键盘必须具有必要的硬件,键按下后便产生对应的代码,在新键按下之后一直保持该码。键的数目增多时,硬件变得复杂。单片机常用机械触点式按键组成非编码矩阵键盘。单片机应用系统用得较多的是非编码键盘。非编码键盘只有两个动作状态:断开或闭合,由1或0来表示。单片机常用机械触点按键组成非编码矩阵键盘7。此次毕设课题中,学校单片机开发板提供的是矩阵式键盘(4

35、*4键盘)。对按键是否按下,需采用软件消抖的办法,以消除按键在闭合和断开瞬间所伴随有一连串抖动所带来的不利影响,实现准确操作。2.4.4显示模块的选择本次毕设中的显示模块部分选择的是lcd1602液晶显示屏(选择12864也可以,但是考虑实际情况,采用12864器件有些浪费)。与led显示系统相比,lcd1602具有以下优点:1、使用者仅仅直接送入数据和指令可实现所需的显示,使用方便快捷。每当有一个字符需要显示时,每个led数码管就要有七段连接线与主控芯片stc89c52进行连接,使外部电路连接情况变的复杂,而lcd1602却可以通过内部结构避免这一情况的出现。2、具有低功耗,容易控制,占用c

36、pu资源少的优点。用led数码管显示信息所需电流比较大,这对用电池供电的系统来说是不堪负重的,而lcd液晶显示屏所需的电流较低,完成本次毕业设计时具有更大的可行性。3、显示效果相对较好,液晶显示器显示不仅直观,而且界面具有人机交互美观的特点,用led数码管显示信息,利用8个数码管显示数字信息,并用发光二极管分别指示显示量得内容和单位,例如数码管显示7.3,并且指示速度的发光二极管亮,它表示当前的速度为7.3千米/小时;用lcd液晶显示屏显示信息,在一屏上同时显示内容、数字、单位等,例如液晶屏显示:v =7.3km/h,它表示当前的平均速度为7.3千米/小时,显示更加美观8。所以,综合比较两者的

37、优缺点,最终选择了lcd1602完成显示功能 。第3章系统硬件设计3.1概述此次的毕业设计主要由4个大的模块构成,分别是数据采集模块、主控模块、lcd1602显示模块、键盘控制模块,其中主控模块是此次毕业设计的核心模块,主要是指stc89c52芯片,它控制整个系统的运行,利用其各个接口与其他部件的连接分别控制其他模块,使各部分能够成为一个整体,实现功能的需要;数据采集模块主要是指a3144霍尔传感器,用来采集自行车骑行过程中的脉冲信号和变化快慢;而显示模块是系统的辅助模块,利用lcd1602用来显示速度、里程、加速度、秒表;按键控制模块则是用按键来控制实现显示内容,可分别对应显示平均速度+加速

38、度+总里程显示或平均速度+加速度+秒表计时+秒表计时里程显示或秒表计时+秒表计时里程+总里程显示或平均速度+加速度+瞬时速度显示或平均速度+加速度显示或瞬时速度+加速度。3.2主控模块本文的主控模块是通过应用stc89c52单片机芯片的计算功能来实现的。stc89c52是一种带8k字节闪烁可编程可擦除只读存储器(fperom-flash programable and erasable read only memory)的低电压,高性能comos8的微处理器,俗称单片机。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。芯片内集成了通用8位中央

39、处理器和flash存储单元,功能强大的微型计算机的stc89c52可为许多嵌入式控制应用系统提供高性价比的解决方案。stc89c52具有如下特点:40个引脚,8k bytes flash片内程序存储器,256 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,6个中断优先级,2个具有3级加密位的读写中断口线,3个16位可编程定时/计数器, 2个可编程uart串行通道,内部和外部时钟电路,复位电路等,以下我们对其引脚功能进行简介,其芯片引脚图如图3-1所示:vcc:电源输入,接+3+5v电源。gnd:接地线。xtal1:片内振荡电路的输入端。xtal2:片内振荡电路

40、的输出端。rst/vpp:复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ale/prog:地址锁存允许信号。psen:外部存储器读选通信号。ea/vpp:程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。stc89c52单片机有4组8位的可编程i/o口,分别为p0、p1、p2、p3口,每个口有8位(8根引脚),共32根。p0口:8位漏极开路型双向i/o口线,名称为p0.0p0.7。p1口:带内部上拉电阻的8位准双向i/o口线,名称为p1.0p1.7 。p2口:带有内部上拉电阻的8位准双向i/o口线,名称为p2.0p2.7 。p3口:带有内部

41、上拉电阻的8位准双向i/o口线,名称为p3.0p3.7,p3口是一个多用途的端口:可以作为一个准双向i/o口,也可以按位独立定义。此外,stc89c52可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作;掉电模式下,冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc三种封装形式,以适应不同产品的需求9。7805为提供单片机工作的电源并连接开发板usb接口。 图3-1stc89c52芯片原理图3.3显示模块本设计中的显示模块为lcd1602液晶显示屏,能够同时显示16*2即32个字

42、符(16列2行)。注:为了表示的方便,后文皆以1表示高电平,0表示低电平。1602采用标准的16引脚接口,引脚连接如图3-2所示: 第1脚:vss为电源地;第2脚:vdd接5v电源正极。 第3脚:v0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,可以通过一个10k的电位器调整对比度)。第4脚:rs为寄存器选择,高电平1时选择数据寄存器,低电平0时选择指令寄存器。 第5脚:rw为读写信号线,高电平1时进行读操作,低电平0时进行写操作。第6脚:e(或en)端为使能(enable)端。第714脚:d0d7为8位双向数据端。第1516脚:空脚或背灯电

43、源;15脚背光正极,16脚背光负极10。 图3-2lcd1602引脚图3.4按键控制模块矩阵式结构的键盘法要复杂一些,识别也要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的i/o口作为输出端,而列线所接的i/o口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下,这种确定矩阵式键盘上何键被按下的方法称为“高低电平翻转法”。首先让p3口高四位为1,低四位为0,若有按键按下,则高四位中会有一个1翻转为0,低四位不会变,此时即可确定被按下的键的行位置,然后让p3口高四位为

44、0,低四位为1,若有按键按下,则低四位中会有一个1翻转为0,高四位不会变,即可确定被按下键的列位置。综合行与列,即可确定按键的具体位置。键盘排列如图3-3所示:图3-3矩阵键盘排列图3.5数据采集模块霍尔传感器具有一致性好、性能稳定、可靠性高、响应速度高的优点,可和各种逻辑电路直接进行接口连接的特点。应用霍尔传感器可以实现无触点开关、位置/速度检测与控制、流量检测的功能,可广泛应用于纺织机械、缝纫设备、家用电器、安全报警装置、汽车电子、直流无刷电机等场合。a3144霍尔开关集成电路应用霍尔效应原理,采用半导体集成技术制造的磁敏电路,输入为磁感应强度,输出为数字电压讯号11。霍尔传感器连接方式如

45、图3-4a、3-4b所示:极限参数:(ta=25) 电源电压vcc4.5-28v 输出负载电io25ma 贮存温度范围ts -65150工作温度范围ta-4085 图3-4霍尔传感器连接方式第4章系统软件设计4.1概述软件部分设计是毕业设计中最集中难点所在,所谓软件设计就是把硬件具体功能需求变换成软件的具体设计方案(即模块结构)的过程。模块化结构设计就是根据要求和硬件设计的结构,将整个系统的功能划分为许多小的功能模块,再根据这些小的功能模块进行程序编写的过程。这样的设计方法,使得系统的整体功能和各部分的具体功能趋于明朗化。当系统出现问题,就可以根据功能设置找出问题的根源,从而更快地解决问题12

46、。另外,在整个设计过程中,软件设计必须与硬件设计紧密地结合在一起。本设计是在keil c环境下开发的,keil c软件支持c语言的编程及调试,程序编写运用方便,是做c语言毕业设计者的首选。设计的首要任务是安装和学习使用keil c软件。在简单的学习和了解keil c后,我们便可在此环境下开始对自行车里程表的设计工作。自行车里程表的软件设计包括脉冲接收子程序、速度子程序、里程子程序、lcd显示子程序、秒表计时子程序、按键子程序等几大部分。由于要实现很多功能,所以采用模块化设计,下面就其主要部分分别加以分析。4.2程序流程图在对所要设计的课题有了整体的了解之后,需要先建立程序框架的流程图,对整个设

47、计划分模块,逐个模块依次实现其各自功能(在某个功能出现问题时只要查找该模块进行修改即可,省去了整体查找时所带来的麻烦)最终把各个子模块合理的连接起来,构成总的程序完成计划书的功能要求。主程序首先要对整个系统进行初始化,设置stc89c52的开发模式,中断设置为边沿触发模式(本程序设置为下降沿有效),lcd进行清零处理(总里程的清零、平均速度的清零、瞬时速度的清零、加速度清零、秒表时间清零),设定每个键盘的功能即显示内容的相互切换。主控芯片stc89c52和lcd1602之间通信的设计是一个较为繁琐的步骤,在我们所使用的开发板上主控芯片stc89c52与lcd1602通过单片机自身的p2口连接,

48、独立键盘与矩阵键盘的切换通过跳线连接来实现其lcd1602显示内容的切换。主程序流程图如图4-1所示:ynny脉冲接收?调用脉冲接收子程序调用里程子程序调用瞬时速度子程序键盘扫描秒表计时?调用秒表计时子程序显示信息键盘输入?调用显示子程序结束lcd、定时器初始化开中断开始ny 图4-1总体流程图4.3数据采集模块设计本设计中数据准确性最重要的部分就是当周围磁场变化时13 , 脉冲接收子程序的设计,即信息采集部分的设计。具体的设计思路是:待测信息经开关型霍尔传感器处理后输入到单片机的p1.0引脚,单片机通过检测p1.0引脚电平并对脉冲信号进行计数。当p1.0引脚为低电平的时候,即ir的值为0时脉

49、冲接收指示灯亮,脉冲接收参数sj1加1,持续接收脉冲的话则不计数;当引脚p1.0为高电平的时候,即ir的值为1时脉冲接收指示灯灭,无脉冲接收参数sj2加1,持续不接收脉冲的话则不计数。经过10次脉冲的接收和不接收则表示自行车车轮转了一圈,圈数变量y(用于计算总里程)和sp2(用于计算瞬时速度)加1,然后判断秒表是否开始计时,开始计时即z的值为1,圈数变量sp2(用于计算平均速度)和count1(用于计算计时里程)加1,相反则置sp2、count1为0。采集模块流程图如图4-2所示:p1.0=0?10次脉冲接收无脉冲接收判断参数sj1加1判断参数sj2加1 sj1=11? sj2=2?sj1=0

50、sj2=0sj1&sj2=1?sj1、sj2置零圈数变量加1开始返回ynnnyyny图4-2采集模块流程图4.4显示模块设计主控模块开始时已对rs、rw、e进行了初始化,开始时将显示的内容进行清零处理。开始骑行后,在不间断的对脉冲信号进行采样并利用单片机内部的结构完成计算功能后,通过单片机与液晶显示屏的连接将即时骑行数据送入lcd进行显示。在停止骑行时,将此时的数据存放入e2prom进行保存,在下次骑行时进行调用继续显示。显示模块流程图如图4-3所示:调用写入字节函数调用命令函数调用写入数据函数显示信息开始返回图4-3显示子程序流程图4.5键盘扫描模块设计键盘是实现人机对话的必要设备,用户可用

51、键盘向计算机输入数据或命令。本系统采用独立键盘接口,独立式按键是指直接用i/o口线构成单个的按键电路。每一个独立式按键单独占用一根i/o口线。其接口电路如图3-3所示。独立式按键接口电路配置灵活,软件结构简单。但每个按键要占用一根i/o口线,适用于按键数量少的键盘。电路中,按键输入低电平有效。按键未按时有上拉电阻保证此时输入为高电平。键盘扫描函数,使用行列反转扫描法。通过分别确定行数和列数确定具体的键盘位置,从而确定具体显示内容。键盘扫描流程图如图4-4所示:按键按下?确定按键键值使用行列反转法进行扫描显示信息?显示子程序开始返回nyyn图4-4键盘扫描模块流程图第5章调试与分析本设计软件的调

52、试与编译是在uv2的环境下进行的,uv2支持c语言的编程,我们需要在其uv2环境下先新建一个工程new project,然后在新工程的file菜单下选择new file,在新的file中写入编写的程序,进行调试和编译,如图5-1所示:图5-1uv2界面图在新建file时,出现的对话框data base下点击stc89c51rc series选项,选择stc89c52rc,即选择了主控芯片为stc89c52,如图5-2所示:图5-2主控芯片选择图在新建的file对话框中输入程序,保存在新建的project中,格式为.c文件,并将其添加到source group 1中,同时建立hex文件,然后进行

53、编译,当显示没有错误后,我们便可以进行烧录。在新的file中写入程序并编译的对话框的页面显示如图5-3所示:图5-3程序运行图从添加选项中找出刚刚保存文件的地址,选中该文件的.c文件并将其添加到新建立的source group 1中,以下为添加刚建立的.c文件到source group 1中的对话框,如图5-4所示:在建立目标文件时,需要同时建立hex文件(这是在烧录的时候所需要用到的格式)当出现以下对话框时选择output选项, 选择create hex fi,点击确定即可建立hex文件,从而在最终烧录时找到.c文件。以下为建立hex文件时的对话框,如图5-5所示:图5-4添加.c文件图 图

54、5-5建立hex文件图在编译完成后,运用stc_isp_v480软件将此程序烧录到开发板上,实现实物与程序之间的数据联通。在烧录前要对stc_isp_v480进行一些必要的设置。第一步:设置mcu type为stc89c52rc;第二步:打开编写好并编译的程序文件,它是以.hex为后缀的文件;第三步:选择对应的com端口,(可在“我的电脑”的“设备管理”处查看com选项);第四步:点击download下载,等提示请给mcu上电时,打开开发板上的开关,程序便自动进行烧录了。烧录程序的对话框如图5-6所示:图5-6烧录图在完成对程序的调试及烧录之后,还需要对其进行演示,把开发板与电脑连上,设置好对

55、应的接口,完成供电及下载。当完成自行车里程表的调试工作后,便可利用其完成功能测试:初始时,液晶屏显示器显示数据为0,若霍尔传感器周围的磁场始终不变,则液晶显示屏始终显示数据为0;当霍尔传感器周围的磁场开始发生时,液晶显示屏的内容发生变化。当磁场变化速度快时,显示速度相对比较大;当磁场变化速度慢时,显示速度相对比较小,但总里程总是进行增加的。当进行按键控制时,可以通过按键功能完成显示内容的切换,如可显示总里程、平均速度和瞬时速度,总里程、秒表和秒表计时里程等。第6章结论与展望6.1结论毕业设计期间我所设计的自行车里程表,经过多次调试和实验,基本上可以满足设计的要求。可以实现骑行过程中对即时的平均速度、瞬时速度、加速度等的显示,而且可以根据需要增加模块实现新的显示功能,增加方便快捷,不会影响到主程序的结构。本文对自行车里程表作了细致、全面、规范的分析;对总体相应的软、硬件进行了设计、制作及调试,并贯穿设计的全过程。本课题的主要任务是开发一个以stc89c52单片

温馨提示

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

评论

0/150

提交评论