版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Xxxxxxxxxxxx学院本科生毕业设计(论文) 学 院: 电子与电气工程学院 专 业: 电子信息工程 学 生: xxx 指导教师: 陈xx 完成日期 2014 年 5 月 xxxxxxx学院本科生毕业设计(论文)单片机控制的公交车液晶显示系统设计Design of Bus LCD Display System Controlled by MCU总 计: 26页表 格: 1个公 式: 0个 插 图: 15幅Xxxxxx学 院 本 科 毕 业 设 计(论文)单片机控制的公交车液晶显示系统设计Design of Bus LCD Display System Controlled by MCU 学
2、 院: 电子与电气工程学院 专 业: 电子信息工程 学 生 姓 名: xxx 学 号: 指 导 教 师(职称): 陈xx (讲师) 评 阅 教 师: 完 成 日 期: xxxxx学院 单片机控制的公交车液晶显示系统设计电子信息工程专业 xxx摘 要本文以AT89C52单片机为核心建立公交车液晶显示系统,进行了系统的硬件设计,分别设计了按键控制报站模块,温度采集模块,电子时钟模块,液晶控制模块等主要模块,采用了DS18B20进行温度采集并实时显示,采用DS1302实现系统电子时钟功能,并分析了系统的硬件抗干扰措施。通过在Proteus软件中仿真,实现了公交车单线四站报站,验证了公交车液晶显示系统
3、的相关功能。关键词单片机;公交车报站;电子时钟;温度采集;液晶显示Design of Bus LCD Display System Controlled by MCUElectronic Information Engineering Specialty xxxxxx Abstract: Bus LCD display system has been established, and AT89C52 single chip microcomputer is used as the core of the whole system. The hardware design of the syst
4、em has been completed, which includes the design of button control stops module, temperature acquisition module, electronic clock module, LCD control module and so on. DS18B20 is used to temperature acquisition and real-time display, DS1302 is used to realize the systems electronic clock function, a
5、t the same time, the anti-jamming measures of the hardware has been analyzed. Through the simulation in Proteus software, systems single wire bus four station stops function has been realized, and the other functions have been validated as well.Key words: Single chip microcomputer; the bus stops; el
6、ectronic clock; temperature acquisition;liquid crystal display目 录1 引言1 1.1 选题背景及意义1 1.2 国内外研究现状1 1.2.1 国外研究现状1 1.2.1 国内研究现状1 1.3 本文主要工作22 LCD12864简介2 2.1 LCD种类2 2.2 LCD12864功能描述3 2.3 LCD12864显示原理43 公交报站液晶显示系统硬件设计6 3.1 整体电路设计6 3.2 晶振电路8 3.3 按键控制电路9 3.4 复位电路10 3.5 时钟电路11 3.6 温度采集电路12 3.7 液晶显示电路144 公交报
7、站液晶显示系统软件设计15 4.1 主程序流程15 4.2 按键控制程序15 4.3 时钟程序16 4.4 温度显示程序18 4.5 液晶显示程序195 公交车报站液晶显示系统的仿真21结束语24参考文献25致谢261 引言1.1 选题背景及意义公交车作为人们生活中常用的生活工具,已成为城市的一道重要风景线。就当前公交车报站系统来看,形式还很单一,智能化不够,不能为市民提供更多的服务。本设计在公交车报站系统中,除了站台报站外,增加实时时钟芯片DSl302和温度传感器DSl8B20,在LCD上进行当时日历、时间、星期和温度的显示,增强报站系统的实用性。随着我国城镇化水平的提高,城市交通状况日益复
8、杂,人们对出行的便捷性和安全性要求越来越高,实用智能的公交车报站系统在人们日常出行中扮演着着越来越重要的角色;而且我国公交车系统存在报站不准确、智能化和自动化程度低等不足,应加强研究以提高公交车系统各方面性能;另外,公交车系统研究直接面向日益增长的市场需求,拥有广阔市场前景。目前来看,传统系统有待升级,高智能系统由于高成本不能普及,实用性强成本低廉的公交车液晶显示系统研究就具有重要实际意义。鉴于此并结合自身情况,本文选择了这个课题。1.2 国内外研究现状1.2.1国外研究现状 公交车液晶显示系统在国外研究中主要有射频识别的自动语音液晶显示系统和GPS全球卫星定位系统的公交语音液晶显示系统。射频
9、识别的液晶显示系统采用射频技术,通过无线电信号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立的机械或光学接触;有些国家公交车报站系统是通过站台的射频卡发送信号,由公交车的射频识别器读取后送至处理器处理进行液晶显示报站1。GPS全球卫星定位系统利用全球定位系统(GPS)进行数据采集,根据公交车所处的位置进行自动报站、温磬提示等服务,它将电子、控制、计算机、通信等实用技术集中运用于公共交通系统,适用于车流量较大的大中城市;该系统市场潜力大,但会提高公交车成本,也影响消费者购买的意愿,另外,也存在着整合GPS芯片与无线通信技术的难题。1.2.2国内研究现状 公交车液晶显示系统在国内研究
10、中主要有自动报站和手动电子按键液晶显示两种系统。在车流量大的城市中主要采用前者,辅之以GPS导航,可避免分散司机注意力;而在中小城市中,车辆较少,交通状况较简单,考虑到成本,主要采用后者进行液晶显示报站。自动报站是现行最先进的报站方式,是指当公交到达某一站台时,系统对站台信息进行采集,自动核对站台信息,确认无误后显示站台信息,在进行自动报站;其中采用识别技术,主要是射频识别技术。手动电子按键报站是在传统的人工报站方式上发展而来的报站方式,当公交车到达某一站台时,司机通过按键对已经录音的录音器进行控制,播放到站提示,同时在LCD上显示站台信息,实现报站。总体来看,当前公交车报站系统形式比较单一,
11、智能化不够,而GPS报站系统成本高昂难以普及。综合考虑后,本设计在公交车报站系统中,除了站台报站外,增加实时时钟芯片DSl302和温度传感器DSl8B20,在LCD上进行当时日历、时间、星期和温度的显示,为乘客提供更多的服务。1.3 本文主要工作本文主要介绍采用单片机控制的公交车液晶显示系统设计方法;系统的功能要求、特点、设计原理、硬件的总体结构和主要电路模块的设计以及系统程序设计;运用Proteus软件进行仿真调试。具体内容如下:(l)对公交车液晶显示系统发展现状、系统功能要求进行研究,以此为基础,确定AT89C52单片机为核心的整体设计方案。(2)完成系统的硬件设计;包括按键报站电路、日历
12、电路、温度采集电路、液晶显示电路等主要模块的设计。(3)完成系统的程序设计;包括报站模块、日历模块、温度模块、液晶显示模块等主要功能模块C语言程序设计。2 LCD12864简介2.1 LCD种类根据12864带字库与否以及字库种类,可分为以下种类2:(1)ST7920类:这种控制器带中文字库,为用户免除了编制字库的麻烦,该控制器的液晶还支持画图方式。该类液晶支持68时序8位和4位并口以及串口。 (2)KS0108类:这种控制器指令简单,不带字库。支持68时序8位并口。 (3)T6963C类:这种控制器功能强大,带西文字库。有文本和图形两种显示方式。有文本和图形两个图层,并且支持两个图层的叠加显
13、示。支持80时序8位并口。 (4)COG类:常见的控制器有S6B0724和ST7565,这两个控制器指令兼容。支持68时序8位并口,80时序8位并口和串口。COG类液晶的特点是结构轻便、成本低。各类显示器管脚如下:ST7920:GND、VCC、V0、RS、R/W、E、DB0-DB7、PSB、RES、VOUT、BLA、BLK;KS0108:GND、VCC、V0、RS、R/W、E、DB0-DB7、CS1、CS2、RES、VOUT、BLA、BLK;T6963C:FG、GND、VCC、V0、WR、RD、DB0-DB7、RS、CS、RES、FS、BLA、BLK;S6B0724:GND、VCC、RS、WR
14、、RD、CS、DB0-DB7、RES、BLA、BLK。2.2 LCD12864功能描述2.2.1 LCD12864管脚功能12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以显示8×4个(16×16点阵)汉字3。管脚功能如表1所示。表1 LCD12864管脚功能管脚名称LEVER管脚功能描述VSS0电源地VDD+5.0V电源电压V0-液晶显示器驱动电压D/I(RS)H/LD/I=“H”,表示DB7-DB0为显示数据D/I=“L”,表示DB7-DB0为显示指令数据R/WH/LR/W=“H”,E=“H
15、”数据被读到DB7DB0R/W=“L”,E=“HL”数据被写到IR或DREH/LR/W=“L”,E信号下降沿锁存DB7-DB0R/W=“H”,E=“H”DDRAM数据读到DB7-DB0DB0H/L数据线DB1H/L数据线DB2H/L数据线DB3H/L数据线DB4H/L数据线DB5H/L数据线DB6H/L数据线DB7H/L数据线CS1H/LH:选择芯片(右半屏)信号CS2H/LH:选择芯片(左半屏)信号RETH/L复位信号,低电平复位VOUT-10VLCD驱动负电压LED+-LED背光板电源LED-LED背光板电源2.2.2 12864LCD内部功能器件 (1)指令寄存器(IR):IR是用于寄存
16、指令码,与数据寄存器数据相对应。当D/I=0时,在E信号下降沿的作用下,指令码写入IR。 (2)数据寄存器(DR):DR是用于寄存数据的,与指令寄存器寄存指令相对应。当D/I=1时,在下降沿作用下,图形显示数据写入DR,或在E信号高电平作用下由DR读到DB7-DB0数据总线。DR和DDRAM之间的数据传输是模块内部自动执行的。 (3)忙标志BF:BF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。利用STATUS READ指令,可以将BF读到DB7总线,从检验模块之工作状态。(4)显示控制触发器DFF:此触发
17、器是用于模块屏幕显示开和关的控制。DFF=1为开显示(DISPLAY OFF),DDRAM的内容就显示在屏幕上,DFF=0为关显示(DISPLAY OFF)。DDF的状态是指令DISPLAY ON/OFF和RST信号控制的。 (5)XY地址计数器:XY地址计数器是一个9位计数器。高3位是X地址计数器,低6位为Y地址计数器,XY地址计数器实际上是作为DDRAM的地址指针,X地址计数器为DDRAM的页指针,Y地址计数器为DDRAM的Y地址指针。X地址计数器是没有记数功能的,只能用指令设置。Y地址计数器具有循环记数功能,各显示数据写入后,Y地址自动加1,Y地址指针从0到63。 (6)显示数据RAM(
18、DDRAM):DDRAM是存储图形显示数据的。数据为1表示显示选择,数据为0表示显示非选择。DDRAM与地址和显示位置的关系见DDRAM地址表。 (7)Z地址计数器:Z地址计数器是一个6位计数器,此计数器具备循环记数功能,它是用于显示行扫描同步。当一行扫描完成,此地址计数器自动加1,指向下一行扫描数据,RST复位后Z地址计数器为0。Z地址计数器可以用指令DISPLAY START LINE预置。因此,显示屏幕的起始行就由此指令控制,即DDRAM的数据从哪一行开始显示在屏幕的第一行。此模块的DDRAM共64行,屏幕可以循环滚动显示64行。2.3 LCD12864显示原理2.3.1文字显示原理 在
19、数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。 那么,得到了汉字的内码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状。根据芯片的不同取模的方式不同,有多种取
20、模方式:单色点阵液晶字模,横向取模,字节正序,单色点阵液晶字模,横向取模,字节倒序,单色点阵液晶字模,纵向取模,字节正序,单色点阵液晶字模,纵向取模,字节倒序等等4。2.3.2文字显示应用说明用带中文字库的128X64显示模块时应注意以下几点:(1)欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。(2)显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。(3)当字符编码为2字节时,应先写入高位字节,再写入低位字节。(4)模块在
21、接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。 (5)“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。2.3.3指令描述 (1)显示开/关设置 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLLLHHHHHH/L 功能:设置屏幕显示
22、开/关。 DB0=H,开显示;DB0=L,关显示。不影响显示RAM(DD RAM)中的内容。 (2)设置显示起始行 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLHH行地址(0-63) 功能:执行该命令后,所设置的行将显示在屏幕的第一行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。 (3)设置页地址 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLHLHHH页地址(0-7)功能:执行本指令后,下
23、面的读写操作将在指定页内,直到重新设置。页地址就是DD RAM 的行地址,页地址存储在X地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST)可把页地址计数器内容清零。 (4)设置列地址 CODE: R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLLH列地址(0-63) 功能: DD RAM 的列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DD RAM进行读写操作后,Y地址自动加一。 (5)状态检测 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0HLBFLON/OFFRET
24、LLLL 功能:读忙信号标志位(BF)、复位标志位(RST)以及显示状态位(ON/OFF)。 BF=H:内部正在执行操作;BF=L:空闲状态。RST=H:正处于复位初始化状态;RST=L:正常状态。ON/OFF=H:表示显示关闭;ON/OFF=L:表示显示开。 (6)写显示数据 CODE:R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LHD7D6D5D4D3D2D1D0 功能:写数据到DD RAM,DD RAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DD RAM前,要先执行“设置页地址”及“设置列地址”命令
25、。 (7)读显示数据 CODE: R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0HHD7D6D5D4D3D2D1D0 功能:从DD RAM读数据,读指令执行后Y地址计数器自动加1。从DD RAM读数据前要先执行“设置页地址” 及“设置列地址”命令。 3 公交报站液晶显示系统硬件设计3.1 整体电路设计说明公交报站液晶显示系统硬件的设计主要围绕系统的功能完全实现,并且要保证整个系统在运行过程中的稳定性、安全性及生产的经济性。本系统硬件电路主要由单片机外围电路、按键控制报站显示电路、日历时间电路、温度采集电路以及液晶显示电路等部分组成。本设计选用ATMEL公司的AT89C5
26、2单片机作为硬件电路的主控芯片,它是一个低电压,高性能CMOS的8位单片机,采用串行时钟芯片DSl302进行时间获取,用单总线数字温度传感器DSl8B20进行温度采集,将得到的信息经单片机处理送到LCD显示5。 公交报站液晶显示系统电路框图如图1所示。按键控制电路复位电路晶振电路电子时钟电路温度采集电路单片机AT89C52液晶显示电路图1 公交车液晶显示系统设计整体框图本系统基于AT89C52进行设计,为了能够方便的报站,硬件设计简单地用两个外部中断来控制站台的“+”和“-”,通过记数来判断所到的站台,并且通过RESET来复位.由于汉字信息的存储量大,而单片机内部RAM比较少,不够用,为了提高
27、可靠性,可用串行EEPROM,它是可在线电擦除和电写入的存储器,该存储器具有体积小,接口简单,数据保存可靠,可在线改写和功耗低等特点,在单片机系统中应用十分普遍。在此,我们选用AT24C64,它是8K的串行EEPROM,是支持I²C总线数据传送协议的串行通信的片外存储CMOS、EEPROM。AT89C52有40个引脚,32个外部双向输入/输出端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。AT89C52可以按照常规方法进行编程,也可以在线编程。AT89C52将通用的微处理器和FLASH存储器结合在一起,特别是可反复擦写的FLASH存储器可有
28、效地降低开发成本。 应该注意,ALE/PROG端除输出地址锁存允许脉冲外,在编程期间还作为编程脉冲输入端,参与控制对FLASH存储器的读、写、加密、擦除等操作。而EA/VPP端在寻址片内8KB FLASH程序存储器时,必须连到VCC,如果将此端连到GND端,将迫使单片机寻址外部0000H-1FFFH范围的程序存储器。如果加密位被编程了,AT89C52的CPU将对EA的状态进行采样并锁存,EA的状态不得与实际使用的内部或外部程序存储器的状态发生矛盾。3.2 晶振电路单片机的工作是在统一的脉冲控制下的进行的。这个脉冲就是由单片机控制器的时钟电路发出的,即时钟电路用于产生单片机工作所需的时钟信号。单
29、片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。时钟电路用于产生单片机工作的时钟信号,而时钟电路又各分为两种,即内部时钟方式和外部时钟方式。本设计采用内部时钟方式,AT89C52的内部有一个用于构成振荡器的高增益反相放大器。通过XTAL1,XTAL2外部接上一片作为反馈元件的晶体,与C1和C2构成了并联谐振电路,使其构成自激振荡器。电容的值具有微调的作用,我们取22PF6。晶振电路设计如图2所示。图2 公交车液晶显示系统设计晶振电路AT89C52的工作频率范围在 0-24MHZ。晶体振荡器的频率越高,振荡频率就越高,我们选用的是
30、12MHZ的晶振,振荡周期为1us,所以这个晶振可以满足这个系统的要求。并且为了减少寄生电容,更好地保证振荡器可靠地工作,谐振器和电容应安装得与单片机芯片尽可能的近,不然使用外部晶振进行软件调试时就会发现找不到信号。3.3 按键控制电路键盘实质上是一组按键开关的集合,控制CPU通过按键来识别特定的用户命令,从而转入相应的程序来执行用户命令。对于此设计来说我们要准确地显示我们所要对应的信息,每按下一次按键要显示所要显示的信息。这按键是主要用来报站而设计的。这样比键盘操作方便,也比较实惠。 键盘工作方式有三种,编程扫描、定时扫描和中扫描。在编程扫描中,CPU反复地扫描键盘,等待用户的输入命令,而执
31、行键入命令或处理输入数据时,CPU不再相应输入要求,直到CPU返回重新扫描键盘为止。时扫描工作方式利用单片机内部定时器产生定时中断,CPU相应定时器中断后对键盘进行扫描,在有键按下时识别出该键并执行相应功能程序。使用中断方式时要求在没有键按下时,不占用CPU处理时间,只有当有键按下时产生键盘中断,由于中断识别键并执行功能程序,这种方法使用最多7。本设计按键电路采用中断模式。按键的闭合与否反应在电压上就是呈现出高电平或低电平,如果高电平表示断开,那么低电平则表示闭合,通过电平的高低状态的检测可确认键按下与否。当有按键按下时,系统产生中断,CPU响应中断后,开始计数,即查询键号,通过软件来实现该键
32、号所对应键的功能。按键控制电路设计如图3所示。图3 公交车液晶显示系统设计按键控制电路键盘的大体设置为两部分:电子时钟调整按键和报站控制按键。电子时钟调整按键设置如下:K1键为调整项选择键,按下时依次对应调整的对象为:年、月、日、星期、时、分、秒;如果调整项已经确定,那么按下K2键进行相应的向后调整,即实现“+”的功能,同理,按下K3键后进行相应的向前调整,实现“-”的功能;最后按下K4键,结束对电子时钟的调整。报站控制按键设置如下:“下一站”键用来控制站台“+”,例如:第一站为“起始站”,按下“下一站”时显示第二站“中间1站”,其余的站台工作原理也一样;“上一站”键用来控制站台的“-”,比如
33、第二站为“中间1站”,再按下“上一站”键时就显示“起始站”。另外,按键接口设计一般有两种方法,独立式按键和矩阵式键盘。独立式按键各键相独立,每个按键各接入一根输入线,只要检测输入线的电平就可以识别按键状态。这种方法电路配置灵活,软件结构简单,但每个按键需占用一根输入口。由于该设计方案IO资源浪费大。故此方法只适用于按键少或其他控制功能很简单的场合。 矩阵键盘适用于按键数量较多的场合,它把键盘输入线分为行线和列线,按键位于列的交叉点上。按键的识别需要软件分别扫描行线和列线,根据扫描的结果判断具体按下的按键。由于本设计中的按键只有六个,考虑系统可靠性和键盘设计的简单性所以采用独立式按键。3.4 复
34、位电路单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。在完成单片机系统开发,并在实验室调试成功后,在现场却出现了“死机”“程序跑飞”等现象,出现这种情况的主要因素可以分为内因和外因两部分。基本阻容复位电路是最简单的复位电路,利用了电容可以存储电荷的特性,和电阻组成串联网络。只要保证电容充放电的时间常数满足单片机的复位时间要求,就可以形成基本的复位电路。 复位有硬件和软件两种,复位的作用是使程序自动从0000H开始执行,因此我们只要在AT89C52单片机的RESET端加上一个高电平信号,并持续10ms以上即可,RESET端接有一个上电复位电路,它是由一个小的电解电容和一个接地的电阻组成
35、的。人工复位电路另外采用一个按钮来给RESET端加上高电平信号8。放电的瞬间RESET端的点位和VCC相同,随着充电电流的减少,RESET的点位逐渐下降,=RC,这个时间常数一般情况下足以保证完成复位操作。 在单片机应用系统工作时,除了进入系统正常的初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。所以,系统的复位电路必须准确、可靠地工作。 单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲以上的高电平,单片机便实现初始化状态复位。复位电路设计如图4所示。图4 公交车液晶显示系
36、统设计复位电路 我们采用放电型人工复位电路后,上电时C通过R充电,维持宽度大于10ms的正脉冲,完成上电复位功能。C充电结束后,RESET端出现低电平CPU正常工作。在此我们取了典型值R1=10K,C=10uf。 上电复位实现的时间:T=R*C=10K*10UF=100ms>=10ms。需要人工复位时,按下复位按钮,C通过复位按钮和R1放电,RESET端电位上升到高电平,实现人工复位,复位按钮松开后C重新充电,充电结束后,CPU重新工作,R1是限流电阻,阻值不可以过大,否则不能起到复位作用。 3.5 时钟电路DSl302是美国DALLAS公司开发的I²C总线的一种高性能、低功耗
37、、带RAM、具有闰年补偿功能的串行时钟日历芯片。它内部可自行产生年、月、日、星期、时、分、秒等时标并将其数据保存在相应的寄存器中,单片机进行相应位数据的读取。DSl302工作电压在2.55.5 V范围内选择,VCCI为后备电源,VCC2为主电源。在没有主电源的情况下仍能保存时间信息及数据,能够对备用电源进行慢速充电。保持时钟的连续运行。在双电源供电系统中芯片由VCC1和VCC2较大者供电。X1和X2是振荡源,外接32768Hz石英晶体;RST引脚为复位信号,在一个读写期间必须保持高电平;I/O引脚为双向数据线引脚;SCLK为串行接口的同步时钟。 时钟电路设计如图5所示。图5 公交车液晶显示系统
38、设计时钟电路DSl302有12个寄存器,在本系统中我们只用到与日历时钟相关的7个寄存器,存放的数据位为BCD码形式。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。另外,在调试程序时可以不加电
39、容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。3.6 温度采集电路 DSl8B20是美国DAIIAS公司生产的一线制单总线智能数字温度传感器,在其内部使用了在板(ON-BOARD)专利技术,具有微型化、低功耗、高性能、抗干抗性强等优点。它能够直接读出被测温度,测温范围为-55+125,在-10+80时,其测量精度为0.5。 温度采集电路设计如图6所示。图6 公交车液晶显示系统设计温度采集电路 上图中DQ为数据输入输出引脚,以数据总线供电方式为设备提供电源;VDD为可选的电源电压脚;GND为地。读出或写入信息仅需要一根口线,大大节省了CPU的I/
40、O口线。在单片机侧添加上拉电阻,可以提供较大的驱动电流,提高抗干扰能力,使DSl8B20能够进行精确的转换。由于DSl8B20单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DSl8B20和各种操作必须按协议进行,即“初始化DSl8B20”“发ROM功能命令”一“发存储器操作命令”一“处理数据”。DSl8B20内部有9个字节的暂存器,单片机发出温度转换命令后,DSl8B20将测得的温度值保存在MSB(高8位)、U沿(低8位)2个单元中,供单片机读取。MSB和LSB存放当前的温度值,以16位补码形式表示12位温度读数。其中MSB高位是温度值的符号位,LSB的低位是温度值的小数部分。3.
41、7液晶显示电路 液晶显示器(Liquid Crystal Display,LCD)具有体积小便于携带、功耗低、抗干扰能力强、信息丰富等优点,已被广泛地运用在了仪器仪表和控制系统中。在公交报站系统中,采用LCD进行站名汉字显示,具有直观性,增强了系统的实用性。本文液晶模块仿真设计选用Proteus中的AMPIRE128×64。与带字库的液晶不同,此块液晶含有两个液晶驱动器,分为左右两个屏幕显示,因此有CS1和CS2两个片选端。其管脚说明见本文2.2部分,显示模式见本文2.3部分。 液晶显示电路设计如图7所示。 图7 公交车液晶显示系统设计液晶显示电路 报站系统液晶显示的电路连接图如上所
42、示。控制电路选用单片机AT89C52,12864管脚DB0DB7与单片机的P0口相连,将P2.0,P2.1,P2.2分别与液晶的E、RW、RS端连接,P2.4和P2.3分别和CS1和CS2端连接,用来控制液晶左右屏的显示。为了便于司机操作,采用2个独立式按键对显示进行控制,分别与单片机的P1.0、P1.1口相连,分别代表2种功能:本站提示和下一站提示。4 系统软件设计4.1 主程序流程 首先对系统进行初始化,然后扫描键盘是否按下,接着读取时间,温度送到单片机中系处理,再完成显示。主程序流程图如图8所示。开始 系统初始化扫描键盘读取DS1302时间读取DS18B02温度单片机处理LCD显示图8
43、公交车液晶显示系统设计主程序流程图4.2 按键控制程序按键电路部分共控制4站报站信息提示,对单边线路的报站进行了仿真。系统上电后,对液晶模块进行初始化,并进行清屏。按键部分采用扫描法,当检测到按键按下时,进行键值判断,并进行相应显示程序的跳转,实现公交报站的功能。另外电子时钟控制按键,用来调整电子时钟显示数值。时间默认在24小时模式下运行,定义一个标志位flag1,第一次按下选择键,把时间转换成12小时制,令flag1=1,此后DS1302芯片在12小时模式下运行。按键程序流程如图9所示。开始 液晶模块初始化,并清屏 否按键是否被按下 是 下站键上站键 次站提示本站提示图9 公交车液晶显示系统
44、设计按键程序流程图 整个程序的详细流程如下:Step l:对LCD进行初始化,即根据系统的需要对液晶控制器的各项参数进行设置,显示开关、显示起始行、光标位置等设置,再对LCD所有单元写零清屏后准备显示。Step 2:扫描P1端口,等待按键的按下,进行键值判断,不同的按键对应不同的分支:K1按键:表示是起始站,显示欢迎词,在LCD上固定显示:“欢迎您乘坐本路公交车!”;K2、K3按键:分别表示本站和下一站,可方便进行站台调节,在LCD上显示:“2站到了!下一站3”。其中2和3分别是本站和下一站的站台名,如本线路要涉及4个站台(包括起始站和终点站)。而“站到了”和“下一站”是公交线路中各站都要显示
45、的,则固定显示,故按键改变的只是模块的左半屏上半部分和右半屏下半部分内容的显示。 K4键:表示终点站,显示欢送提示,在LCD上固定显示:“终点站到了,请乘客依次从后门下车”。一定延迟后表明本次运行结束。Step 3:若没有到终点站,返回Step2。4.3 时钟电路程序定时采用中断方式,利用TO每隔100mS向CPU发出一次中断请求,用6Hz晶体振荡器,定时器TO1工作在方式l的一定时器初值为30B0H(即THO=13CH,TL0=0B0H),CPU响应中断后进入中断服务子程序。时钟电路程序流程如图10所示。T0中断 重装定时器T0初值时间校正循环次数检测否是否满10次是秒单元加1是否是否满60
46、秒秒单元清零否是是否满60分分单元加1分单元清零是否是否满24 h小时单元加1小时单元清零恢复中断返回 图10 公交车液晶显示系统设计时钟电路程序流程图 如上图所示,中断服务子程序以100mS,ls,1min,1h对时钟计时,每产生一次中断,100ms计数单元加1,当该单元内容累计到10时,秒计数单元加1并将100ms单元清0,秒累计到60时,分计数单元加l。并将秒计数单元清O,当计数单元累计到60时,时计数单元加1,并将分计数单元去清O;时计数单元满24后,所用单元内容清0。 定时器计数单元的内容为十六进制,需要把该数调整为压缩BCD码并通过程序拆分成单字节BCD码后,送人显示缓冲
47、区,进行输出显示。该定时中断子程序用于实现定时功能,同时刷新计时缓冲区。应该注意,控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出9。4.4 温度显示电路程序 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。其中温度传感器可完成对温度的测量,并用16位符号扩展的二进制补码读数形式提供。这里以12位转化为例说明温
48、度高低字节存放形式及计算:12位转化后得到的12位数据,存储在18B20的两个高低两个8位的RAM中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。 因为DS18B20采用一线通信接口,所以必须在编程时应先完成ROM设定,否则记忆和控制功能将无法使用。DS18B20完成温度测量后,数据存储在DS18B20的存储器,并发出记忆功能的指令,阅读片上存储器的内容。温度报警触发器TH和TL都有一字节EEPROM的数据。如果DS18B20不使用报警检查指
49、令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想地解决温度数字转换。写TH、TL指令以及配置字节都可利用一个记忆功能的指令完成。通过缓存器读寄存器,所有数据的读、写都是从最低位开始。温度显示程序流程见下图11。温度采集读写流程:开始进入初始化DS18B20,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,即发起ROM命令,当成功的执行操作命令后,就使用内存操作命令,即温度转换等,当转换完后,又初始化DS18B20是否有应答脉冲,若有,就发起读时隙命令,同时读出第1,2个字节,即为温度的数据。 CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行R
50、OM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作10。温度显示程序流程图如图11所示。应答脉冲应答脉冲初始化DS18B20延时一秒等待温度转换完成发起Convert T 命令发起 Skip Rom 命令发起 Read Scratchpad 命令读取1、2字节为温度转换数据初始化DS18B20开始 图11 公交车液晶显示系
51、统设计温度显示程序流程图4.5 液晶显示电路程序AMPIRE12864是图形点阵液晶显示器,它主要采用动态驱动原理由行驱动控制器和列驱动器两部分组成了128(列)×64(行)的全点阵液晶显示。可显示8×4个16×16点阵汉字或16×4个16×8点阵ASCII字符集,也可完成图形的显示。与CPU接口采用5条位控制总线和8位并行数据总线输入输出,具有4位/8位并行、2线或3线串行多种接口方式。可根据12864引脚功能及指令编写汉字显示程序,12864各引脚介绍与指令说明见本文第2部分。液晶显示模块中按字节为单位划分,单个屏幕中,共分为8个页,每页为
52、8行,而每一行为64个位(即64列)。同计算机一样,单片机控制液晶点阵显示中的数据也是以“0”和“1”代码来表示的。一般的,“0”代表不显示数据,“1”代表有显示数据,根据编码的不同,最终会显示出不同的字。显示器上的显示点与驱动控制芯片中的显示缓存是一一对应的,即字模当中的一个位代表LCD显示中的一个像素点,取点方式为从左到右,自上到下的顺序。这里采用16×16的点阵输出显示每个汉字,那么就需要屏幕上的256个点组成的方块来显示。一个字节对应8个点,所以一个汉字需要32个字节来存储显示。采用PCtoLCD2002汉字提取软件,打开窗口,设置好字体、字号等格式参数,在汉字输入区,输入汉
53、字或其它字符,即得到需要的代码11。根据对LCD12864资料的分析,程序编制主要有:读取LCD的状态,忙检查,向LCD写入命令,向LCD写入数据,LCD初始化,设置LCD液晶的显示位置,显示字符等。除此之外,我们把要显示的字符和汉字用一个专门的程序来编写,命名为zifu.c。液晶显示程序流程如图12所示。开始LCD初始化写地址延时写数据延时显示左半屏内容开左半屏显示右半屏内容开右半屏图12 公交车液晶显示系统设计液晶显示程序流程图5 公交车报站液晶显示系统的仿真Proteus ISIS是英国Lab center公司开发的电路分析实物仿真软件。该软件可以提供嵌入式系统(单片机应用系统、ARM应用系统)软硬件设计仿真平台,支持主流单片机系统的仿真并集SPICE分析于一身,把用户编写的应用程序下载到微处理器(MCU)中,结合外界连线及模拟、数字电路对微处理器进行系统逻辑功能的控制。该软件除了大量的元件库外,还有常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农学实验室工作制度
- 信访调解室工作制度
- 二级储血点工作制度
- 乡镇护路办工作制度
- 信访局法规工作制度
- 办公室护士工作制度
- 加油站带班工作制度
- 包虫病知识工作制度
- 区护理质控工作制度
- 医技检验科工作制度
- 2026山东国泽实业有限公司招聘驻济人员4人笔试备考试题及答案解析
- 2026年广东广州市高三一模高考生物试卷试题(含答案详解)
- 2023-2024学年广东深圳南山外国语学校八年级(下)期中语文试题及答案
- 《眼科临床诊疗指南(2025版)》
- 大连红星美凯龙考核制度
- 发电机密封油系统
- LY/T 2253-2014造林项目碳汇计量监测指南
- GB/T 7826-2012系统可靠性分析技术失效模式和影响分析(FMEA)程序
- 植物生物技术:第七章 植物原生质体融合课件
- B737NG中文培训手册:21-空调
- 医院呼吸机的维护与保养培训
评论
0/150
提交评论