




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录1 方案选择的论证和选择11.1 设计方案一11.2 设计方案二21.3 设计方案三22 工作原理 23 部分芯片介绍 33.1 AT89S52的简介4 3.1.1 引脚信号介绍 4 3.1.2 P3口的第二功能5 3.1.3 AT89S52的总线结构 53.2 温度传感器DS18B206 3.2.1 温度传感器(DS18B20)的引脚分布图及其功能6 3.2.2 单线(1-wire)技术 7 3.2.3 DS18B20有两种供电方式:寄生电源和外部电源 73.3 LCD显示器 10 3.3.1字符型液晶显示模块RT-1602C的内部结构 10 3.3.2 指令格式与指令功能11 3.3.3 LCD显示器的初始化124 单元电路设计说明 154.1 电源设计15 4.1.1 整流滤波电路设计 16 4.1.2 稳压电路设计 164.2 单片机时钟电路174.3 单片机复位电路184.4 单片机键盘电路194.5 超声波发射电路204.6 超声波接收电路204.7 单片机最小系统控制运算模块总原理图225 软件设计流程图 225.1 主流程图235.2 温度读取程序235.3 LCD现实流程图245.4 外中断服务程序255.5 超声波发射接收程序255.6 键少子程序266 调试说明 276.1 软件调试276.2 硬件调试287 误差分析 287.1 超声波回波声强的影响287.2 超声波波束入射角的影响297.3 超声波传播速度的影响307.4 实测比较308 设计心得 30参考资料32致谢33附录341 总原理图342 PCB图 353 程序清单 354 元件清单 441 方案选择的论证和选择1.1 设计方案一采用单片机来控制的超声波测距仪是先由单片机产生一个信号,经过信号线,把信号引入到与超声波发射器相连的信号引脚上,再由超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即: 1.1原理框图如1-1所示:开始测量超声波信号开定时器关定时器数据运算显示器接收检测电声换能器电声换能器驱动电路图1.1 采用单片机来控制的超声波测距仪1.2 设计方案二采用CPLD来控制的超声波测距仪,主要是在软件上运用VHDL(Very High Speed Integrated Circuit Hardware Description Language)编写程序使用MAX + plus II软件进行软硬件设计的仿真和调试,最终实现测距功能。使用本方案的优点在于在超声波测距仪设计中采用的是MAX7000s系列中的EPM7128SLC84-15的CPLD器件,其最高频率可达175.4MHz,可用于组合逻辑电路、时序逻辑电路、算法、双端口RAM等的设计。充分利用了其多达128个宏单元、68pin可编程I/O口,使该器件可以将分频功能、计数功能、显示编码功能、振荡功能全部集于一体。又因其延时平均的特点,保证了测距结果精度高、响应速度快。缺点是方案中需要一块FPGA,一块双口RAM,还需要一块用来存储波形数据的EEPROM,那么设计的成本较高。同时在FPGA中还要用硬件描述语言(VHDL语言)编写程序来实现硬件电路功能。由于EPM7128SLC84-15的算法复杂,所以在软件实现起来编程也复杂。1.3 方案设计三采用锁相环频率合成技术,也可以实现我们所需要的超声波测距仪。具体方案如下:首先通过频率合成技术产生超声波所需要的频率,在通过信号线将采用锁频率相合成技术得到的频率引到超声波的发射头上,这样就可以实现超声波测距。它的优点就是工作频率可调,也可以达到很高的频率分辨率;缺点是要求使用的滤波器通带可变,实现很困难。它的原理如图1.2所示:图1.2 超声波原理图综上所述,因此选择第一种设计方案。2 工作原理我们做的是基于单片机的超声波测距仪。用单片机控制超声波的发射、接受电路以及进行数据处理,再用液晶显示屏进行数据的显示。因为声音的速度会随着温度的变化而改变,所以,我们增加了温控装置,即通过温度传感器(18B20),把当前的温度信息传给单片机,再通过一定的算法,得到当前的声音速度。操作者可以通过几个简单的按键完成测量方式的选择(实时监测、手动测量)。由单片机产生一个信号,经过信号线,把信号引入到与超声波发射器相连的信号引脚上,在由超声波发射器向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:其中,D为换能器与障碍物之间的距离,C为波声传播速度,T为超声波发射到返回的时间间距。本次设计包含硬件设计与软件设计两部分,根据设计任务要求,采用AT89C52单片机,配置时钟电路,复位电路构成单片机最小系统,由模拟电路和数字电路构成超声波发射、接收模块。由键盘,LED显示构成人机对话通道,以及温度传感器来构成由单片机最小系统来控制的超声波测距仪,其结构框图如下:单片机最小系统发射、接收(模拟电路)信号保持(数字电路)温度传感器按键、LCD显示图2.1 总结构框图3 部分芯片介绍3.1 AT89S52的简介AT89S52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89S52单片机可为您提供许多较复杂系统控制应用场合。AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89S52芯片的管脚、引线与功能AT89S52芯片图如图3.1:图3.1 AT89S52芯片图3.1.1 引脚信号介绍P00P07 :P0口8位双向口线P10P17 :P1口8位双向口线P20P27 :P2口8位双向口线P30P37 :P3口8位双向口线访问程序存储器控制信号:当信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。ALE地址锁存控制信号:在系统扩展时,ALE用于控制把P0口输出低8位地址锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲作用。外部程序存储器读选取通信号:在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。XTAL1和XTAL2外接晶体引线端:当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于拉外部的时钟脉冲信号。RST复位信号:当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。VSS:地线VCC:+5V电源3.1.2 P3口的第二功能下表是P3口的第二功能口线第二功能替代的专用功能P3.0RXD串行输入口P3.1TXD串行输出口P3.2外部中断0P3.3外部中断1P3.4T0定时器0的外部输入P3.5T1定时器1的外部输入P3.6外部数据存储器写选通表3.1 P3口的第二功能3.1.3 AT89S52的总线结构AT89S52的管脚除了电源、复位、时钟接入、用户I/O口部分P3外,其余管脚都是为实现系统扩展而设置的。这些管脚构成了三总线形式,即:(1)地址总线(AB):地址总线宽度为16位,因此,其外部存储器直接地址外围为64K字节。16位地址总线由P0经地址锁存器提供低8位地址(A0A7);P2口直接提供高8位地址(A8A15)。(2)数据总线(DB):数据总线宽度为8位,由P0口提供。(3) 控制总线 (CB):由部分P3口的第二功能状态和4根独立控制线RESET、ALE、组成。AT89C52结构框图如图3-2所示:时钟电路ROMRAM定时/计数器CPU并行接口串行接口中断系统P0P1P2P3TXDRXD/INT0/INT1T0T1图3.2 AT89S52结构图T2复位电路3.2 温度传感器DS18B20经过综合考虑,我们采用美国达拉斯(Dallas)公司的单线数字温度计传感器芯片DS18B20作为温度传感器,与传统的热敏电阻有所不同,DS18B20可直接将被测温度转化成数字信号,以供单片机处理,它还具有微型化、低功耗、高性能、抗干扰能力强等优点。DS18B20具有以下特点。 采用单线技术,与单片机通信只须一个引脚; 通过识别芯片各自唯一的产品序列号从而实现单线多挂接,简化了分布式温度检测的应用。 实际应用中不需要外部任何元器件即可实现测温。 可通过数据线供电,电压范围为35.5V; 不需备份电源; 测量范围为-55+125度,在-10+82度范围内的误差为0.5度 数字温度计的分辨率用户可以从9位到12位选择,可配置实现912V的温度读数; 将12位的温度值转换为数字量所需时间不超过750ms; 用户定义的、非易失性的温度告警设置,用户可自行设定告警的上下限温度; 告警寻找命令可以识别和寻址那些温度超出设计预设告警界限的器件。3.2.1 温度传感器(DS18B20)的引脚分布图及其功能单片机选用Atmel公司常用的单片机芯片AT89S52,它完全可以满足采集、控制、数据处理的需要。图3.3 温度传感器引脚图引脚功能说明: NC(1、2、6、7、8脚):空引脚,悬空不使用; VDD(3脚):可选电源脚,电源电压范围35.5V。当工作于寄生电源时,此引脚必须接地。 DQ(4脚):数据输入/输出脚。漏极开路,常态下高电平。3.2.2 单线(1-wire)技术目前常用的微机和外设之间数据输出的串行总线有I2C总线,SPI总线等,其中,I2C总线采用同步串行两线(一根时钟线,一根数据线)方式,而SPI总线采用同步串行三线(一根时钟线,一根输入线,一根数据输出线)方式。这两种总线需要至少两根或两根以上的信号线。美国达拉斯半导体公司推出了一项特有的单线(1-wire)技术,该技术与上述总线不同,它采用单根信号线,即可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单线技术具有线路简单、硬件开销小、成本低、便于扩展的优点。单线技术适用于单主机系统,单主机能控制一个或多个从机设备。主机可以是微控制器,从机可以是单线器件,它们之间的数据交换、控制都由这根线完成。主机或从机通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放该线,而让其他设备使用。单线通常要求外接一个约5K的上拉电阻,这样,当该线闲置时,其状态为高电平。主机和从机之间的通信主要分为3个步骤:初始化单线器件、识别单线器件和单线数据传输。由于只有一根线通信,所以它们必须是严格的主从结构,只有主机呼叫从机时,从机才能答应,主机访问每个单线器件都必须严格遵循单线命令序列。所有的单线器件都要遵循严格的协议,以保证数据的完整性。1-wire协议由复位脉冲、应答脉冲、写0、写1、读0和读1这几种信号类型组成。这些信号中,除了应符答脉冲,其他均由主机发起,并且所有命令和数据都是字节的低位在前。3.2.3 DS18B20有两种供电方式:寄生电源和外部电源寄生电源简单说起来就是器件从单线数据线中“窃取”电源,在信号线为高电平的时间周期内,把能量储存在内部的电容器中,在单信号线为低电平时的时间期内断开些电源,直到信号线变为高电平,重新接上寄生(电容)电源为止。寄生电源有两个优点。 可实现远程温度检测而无须本地电源。 没有正常电源条件下也可以读ROM。为了使DS18B20能完成准确的温度变换,当温度变换发生时,DQ线上必须提供足够的功率。因为DS18B20工作电流1。5mA,4.7K的上拉电阻将使得DQ线没有足够的驱动能力。如果多个DS18B20连接,而且同时变换时,这一问题将变得更为突出。解决的方法是在发生温度变换时,在DQ线上提供强的上拉,比如用MOSFET管把DQ线直接拉到电源。当面作用寄生电源时,VDD引脚必须接地。 DS18B20的另一种的供电方式是将VDD引脚接外部电源(35.5V)。这种方法的优点是在DQ线上不要求强的上拉。总线上的主机在温度变换期间不需要一直使DQ线保持高电平,这就允许在变换期间内其他数据在单线上传送。而且,在单线上可以放置多个DS18B20。如果它们都使用外部电源,那么通过发起“跳过ROM”命令,接着执行“温度变换”命令就可以同时完成各自的温度变换。采用外部电源这种方式时,GND(地)引脚不可悬空。DS18B20的单线协议和命令:初始化 单线总线上所有操作均从初始化开始。初始化过程如下:主机通过拉低单线480us以上,产生复位脉冲,然后释放该线,进入RX接收模式。主机释放总线时,会产生一个上升沿。单线器件DS18B20检测到该上升沿后,延时1560us,通过拉低总线60240us来产生应答脉冲。主机接收到本机的应答脉冲后,说明有单线器件在线。ROM操作命令一旦总线主机检测到应答脉冲,便可以发起ROM操作命令。共有5位ROM操作命令,如下表所示 命令类型命令字节功能说明Read Rom(读ROM)33H此命令读到激光ROM中的64位,只能于总线上单个DS18B20器件的情况,多挂接则发生数据冲突。Match Rom(匹配ROM)55H此命令后跟64位ROM序列号,寻址多挂接总线上的对应DS18B20,只有序列号完全匹配的DS18B20才能响应后面的内存操作命令,其他不匹配的将等待复位脉冲。此命令可用于单挂或者多挂接总线。Skip Rom(跳过ROM)CCH些命令用于单挂接总线系统时,可以无须提供64位ROM序列号即可运行内存操作命令。如果总线上挂接多个DS18B20,并且在此命令后执行读写命令,将会发生数据冲突。Search Rom(搜索ROM)F0H主机调用此命令,通过一个打排除法过程,可以识别出总线上所有器件的ROM序列号。Alarm Search(告警搜索)ECH此命令流程和Search Rom命令相同,但是DS18B20只有在最近的一次温度测量时满足了告警触发条件,才会响应此命令。表3.2 ROM操作命令内存操作指令在成功执行了ROM操作命令之后,才可以使用内存操作命令。主机可提供6种内存操作命令。命令类型命令字节功能说明Write Scratchpad(写暂存器)4EH此命令写暂存器地址2地址4的3个字节在发起复位脉冲之前,3个字节都必须写。Read Scratchpad(读暂存器)BEH此命令读取暂存器内容,从字节0一直读取到字节8。主机可以随时发起复位脉冲以停止此操作。Copy Scratchpad(复制暂存器)48H此命令将暂存器中内容复制进EERAM,以便将温度告警触发字节存入非易失内存。如在此命令后主机产生读时隙,那么只要器件在进行复制就会输出0,复制完成后再输出1。Convert T(温度转换)44H此命令开始温度转换操作。如果在引命令后主机产生读时隙,那么只要器件在进行温转换就会输出0,转换完成后再输出1。Recall E2(重调E2存器)B8H将存储在EERAM中的温度告警触发值和配置寄存器重新拷贝到暂存器中。此重调节操作在DS18B20加电时自动产生。ReadPowerSupply(读供电方式)B4H主机发起此命令后的第个读数据时隙内,DS18B20会发信号通知它的供电方式:0为寄生电源方式,1为外部供电方式。表3.3 内存操作命令数据处理首先来看写时隙。当主机将数据线从高电平拉至低电平时,产生写时隙。有2种类型的写时隙:写“1”和写“0”。所有写时隙必须在60us以上(即由高拉低后持续60us以上),各个写时隙之间必须保证最短1us的恢复时间。DS18B20在DQ线变低后的1560us的窗口对DQ线进行采样,如果为高电平,就为写“1”;如果为低电平就为写“0”。对于主机产生写“1”时隙的情况,数据线必须先拉低,然后释放,在写时隙开始后的15us,允许DQ线拉至高电平。对于主机产生写“0”时隙的情况,DQ线必须被拉至低电平且至少保持低电平60us。再来看读时隙。当主机从DS18B20读数据时,把数据线从高电平拉至低电平时,产生读时隙。数据线DQ必须保持低电平至少1us,来自DS18B20的输出数据在读时隙下降沿之后15us内有效。因此,在些15us内,主机必须停止将DQ引脚置低。在读时隙结束时,DQ引脚将通过外部上拉电阻拉回至高电平。所有的读时隙最短持续在60us,各个读时隙之间必须保证最短1us的恢复时间。所有的读写时隙至少需要60us,且每两个独立的时隙之间至少需要1us的恢复时间。在写时隙中,主机将在拉低总线15us内释放总线,并向DS18B20写“1”。若主机拉低总线后能保持至少60us的低电平,则向单总线器件写“0”。 DS18B20仅在主机发出读时隙时才向主机传输数据,所以,当主机向DS18B20发出读数据命令扣,必须马上产生读时隙,以便DS18B20能传输数据。3.3 LCD显示器LCD显示器是利用液晶经过处理后能改变光线的传输方向特性实现显示信息的。液晶显示器具有体积小、重量轻、功耗极低,显示内容丰富等特点,在单片机应用系统中得到了日益广泛的应用。液晶显示器按其功能可以分为三类:七段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可以显示数字、字符和符号等。而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。字符形液晶显示模块是一种专门用于显示字母、数字、符号等的点阵式液晶显示模块。它是由若干个5*7或者是5*11等点阵符位组成的,每个点阵字符位都可以显示一个字符。点阵字符位之间,有一定点距间隔,这样就起到了字符间距和行距的作用。要使用点阵型LCD液晶显示器,必须要有相应的LCD控制器、驱动器来对LCD液晶显示器进行扫描、驱动,以及一定空间的ROM和RAM来存储的写入的命令和显示字符的点阵。现在往往将LCD控制器、驱动器、RAM、ROM和LCD显示器连接在一起,称为液晶显示模块LCM。使用时只要向LCM送入相应的命令和数据就可以显示所需的信息。目前市面上常用的有16字*1行、16字*2行、20字*2行和40字*2行等的字符液晶显示模块。这些LCD虽然显示字数各个相同,但是都具有相同的输入输出界面。3.3.1 字符型液晶显示模块RT-1602C的引脚功能RT-1602C采用标准的16脚接口,各引脚情况如下:第1脚:VSS,电源地;第2脚:VDD,+5V;第3脚:VL,液晶显示偏置电压;第4脚:RS,数据/命令选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。第5脚:读/写选择,高电平时进行读操作,低电平时进行写操作。当RS和共同为低电平时可以写入指令或者显示地址;当RS为低电平为高电平时可以读忙信号;当RS为高电平时为低电平时可以写入数据。第6脚:E,为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。第7至14脚:D0至D7,为8位双向数据线。第15脚:BLA,背光源正极第16脚:BLK,背光源负极3.3.2 字符型液晶显示模块RT-1602C的内部结构液晶显示模块RT-1602C的内部结构可以分为三部分:一、LCD控制器,二、为LCD驱动器,三、LCD显示装置。如图3-4所示。 图3.4 晶显示模块RT-1602C的内部结构控制器采用HD44780,驱动器采用HD44100。HD44100是集成控制器、驱动器于一体,专用于字符显示控制驱动集成电路。HD44100是作扩展显示字符位的。HD44780是字符型液晶显示控制器的代表电路。HD44780集成电路的特点:(1)可选择5*7或5*10点字符。(2)HD44780不仅可以作为控制器,而且还具有驱动16*40点阵液晶像素能力,并且HD44780的驱动能力可通过外接驱动器扩展360列驱动。HD44780可控制的字符高达每行80个字,也就是5*80=400点,HD44780内藏有16路行驱动器和40路列驱动器,所以HD44780本身就具有驱动16*40点阵LCD的能力(即单行16个字符或两行8个字符)。如果在外部一HD44100外扩展多40路/列驱动,则可驱动16*2LCD。(3)HD44780的显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM全部内藏在芯处内。HD447803有80个字节的显示缓冲区,分两行,地址分别为00H-27H,40H-67H,它们实际显示地址的顺序跟LCD的型号有关,液晶显示模块RT-1602C的显示地址与实际显示位置关系如图所示。这些字符有阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符教都有一个固定的代码。如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),可以看出英文字母的代码与ASCII编码相同。要显示“1”时,只需将ASCII码31H存入DDRAM指定的位置,显示模块将在相应的位置把数字“1”的点阵字符图形显示出来,我们就能看到数字“1”了。(4)HD44780具有8位数据和4位数据传输两种方式,可与人4/8位CPU相连。(5)HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。3.3.3 指令格式与指令功能LCD控制器HD44780内有多个寄存器,通过RS和引脚共同决定选择哪一个寄存器选择情况见表RS寄存器及操作00指令寄存器写入01忙标志和地址计数器读出10数据寄存器写入11数据寄存器读出表3.4 HD44780内部寄存器选择 总共有11条指令,它们的格式和功能如下:(1)清屏命令格式:RSD7D6D5D4D3D2D1D00000000001表3.5 清屏命令功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。 光标复位,回到显示器的左上角。 地址计数器AC清零。(2)光标复位命令格式:RSD7D6D5D4D3D2D1D00000000010表3.6 光标复位命令功能:光标复位,回到显示器的左上角。 地址计数器AC清零。 显示缓冲区DDRAM的内容不变。(3)输入方式设置命令格式:RSD7D6D5D4D3D2D1D000000001I/DS表3.7 输入方式设置命令功能:设定当写入一个字节后,光标的移动方向以及后面的内容是移动的。 当I/D=1时,光标从左向右移动,I/D=0时,光标从右向左移动。 当S=1时,内容移动,S=0时,内容不移动。(4)显示开关控制命令格式:RSD7D6D5D4D3D2D1D00000001DCB表3.8 显示开关控制命令功能:控制显示的开关,当D=1时显示,D=0时不显示。 控制光标开关,当C=1时光标显示,C=0时光标不显示。 控制字符是否闪烁,当B=1时字符闪烁,B=0时字符不闪烁。(5)光标移位置命令格式:RSD7D6D5D4D3D2D1D000000IS/CR/L表3.9 光标移位置命令功能:移动光标或整个显示字幕移位。 当S/C=1时整个显示字幕移位,当S/C=0时只光标移位。 当R/L=1时光标右移,R/L=0时光标左移。(6)功能设置命令格式:RSD7D6D5D4D3D2D1D000001DLNF表3.10 功能设置命令功能:设置数据位数,当DL=1时数据为8位,DL=0时数据位为4位。 设置显示行数,当N=1时双行显示,N=0时单行显示。 设置字形大小,当F=1时5*10点阵,F=0时为5*7点阵。(7)设置字库CGRAM地址命令格式:RSD7D6D5D4D3D2D1D000CGRAM的地址表3.11 设置字库CGRAM地址命令功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM的访问时,要先设定CGRAM的地址,地址范畴为0-63。(8)显示缓冲区DDRAM地址设计命令格式:RSD7D6D5D4D3D2D1D000DDRAM的地址表3.12 显示缓冲区DDRAM地址设计命令功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴为0127。(9)读忙标志及地址计数器AC命令格式:RSD7D6D5D4D3D2D1D001BFAC的值表3.13 读忙标志及地址计数器AC命令功能:读忙标志及地址计数器AC命令。 当BF=1时表示忙,这时不能接收命令和数据:BF=0时表示不忙。 低7位为读出的AC的地址,值为0127。(10)写DDRAM或CGRAM命令格式:RSD7D6D5D4D3D2D1D010写入的数据表3.14 写DDRAM或CGRAM命令功能:向DDRAM或CGRAM当前位置写入数据。对DDRAM或CGRAM写入数据之前必须设定DDRAM或CGRAM的地址。(11)读DDRAM或CGRAM命令格式:RSD7D6D5D4D3D2D1D011读出的数据表3.15 读DDRAM或CGRAM命令功能:从DDRAM或CGRAM当前位置中读出数据。当DDRAM或CGRAM读出数据时,先须设定DDRAM或CGRAM的地址。3.3.4 LCD显示器的初始化LCD使用之前须对它进行初始化,初始化可通过复位完成,也在复位后完成,初始化过程如下:(1) 清屏。(2) 功能设置。(3) 开/关显示设置。(4) 输入方式设置。4 单元电路设计说明4.1 电源设计4.1.1 直流稳压电源 小功率稳压电源由电源变压器、整流电路、滤波电路和稳压电路四个部分组成,如图4. 1所示。 + 电 源 + 整 流 + 滤 波 + 稳 压 + u1 u2 u3 uI U0 _ 变压器 _ 电 路 _ 电 路 _ 电 路 _图4.1 稳压电源的组成框图 u1 u2 u3 uI U0 0 t 0 t 0 t 0 t 0 t 图4.2 整流与稳压过程本次的设计的稳压电源电路原理图如图所示:图4.3 稳压电源电路原理图4.1.2 电源变压器部分电路设计电源变压器作用是将电网220V的变流电压V1变换成整流滤波电路所需的变流电压V2。变压器副边与原边的功率比P2/P1=,式中为变压器的效率。4.1.3 整流滤波电路设计整流电路将交流电压变成单向脉动的直流电压;滤波电路用来滤除整流后单向脉动电压中的交流成份,合之成为平滑的直流电压。小功率直流电源因功率比较小,通常采用单相交流供电。由于桥式整流电路克服了半波整流的缺点,在桥式整流电路中,由于每两只二极管只导通半个周期,故流过每个二极管的平均电流仅为负载电流的一半,与半波整流电路相比较,其输出电压提高,脉动成分减小了。为了获得平滑的直流电压,常在整流电路的后面加接滤波电路,以滤去交流成分。滤波电路常见的有电容滤波电路(主要利用电容两端电压不能突变的特性,使负载电压波形平滑,故电容应与负载并联)、电感滤波电路及型滤波电路。本设计采用电容滤波电路。4.1.4 稳压电路设计稳压电路的作用是当输入交流电源电压波动、负载和温度变化时,维持输出直流电压的稳定。由于三端式稳压器只有三个引出端子,具有应用时外接元件少、使用方便、性能稳定、价格低廉等优点,因而广泛应用。三端式稳压器有两种,一种称为固定输出三端稳压器,另一种称为可调输出三端稳压器。它们的基本组成及工作原理都相同,均采用串联型稳压电路。三端固定输出集成稳压器通用产品有CW7800系列和CW7900系列。正压系列:CW7800系列,该系列稳压块有过流、过热和调整管工作保护,以防过载而损坏。一般不需要接元件即可工作,有时为改善性能也加少量元件。负压系列:CW7800系列与CW7900系列相比,除了输出电压极性、引脚定义不同外,其他特点都相同。稳压电源的技术指标分为两种:一是特性指标:包括允许的输入电压、输出电压、输出电流及输出电压调节范围等;另一种是质量指标,用来衡量输出直流电压的稳定程度,包括稳压系数(或电压调整流器率)、输出电阻(或电流调整率)、温度系数及纹波电压等。4.2 单片机时钟电路时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。(1)时钟信号的产生单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。电容器C1和C2的作用是稳定频率和快速起振,电容值的范围在5pF30pF,典型值为30pF。晶振的频率通常选择两种6MHz和12MHz。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。(2)时钟振荡电路如图4.4所示。图4.4 时钟振荡电路4.3 单片机复位电路复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。(1)单片机常见的复位电路通常单片机复位电路有两种:上电复位电路,按键复位电路。上电复位电路:上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。它利用的是电容充电的原理来实现的。按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。如果要实现复位的话,只要按下RESET键即可。它主要是利用电阻的分压来实现的在此设计中,采用的按键复位电路。按键复位电路如图4.5所示:图4.5 复位电路图(2)复位电路工作原理上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。故本设计选用第二种上电复位与按键均有效的各单位电路。4.4 单片机键盘电路键盘电路是很多设计中很重要的组成部分。它主要是输入设备。单片机应用系统中键盘有独立式和行列式两种。独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。行列式键盘:行列式键盘键数比较多,从按一个键到键功能被执行主要包括两项工作:一是键的识别,即在键盘中找出被按的是那一个键,另一项是键功能的实现,第一项是接口电路来实现的,而第二项是通过执行中断服务程序来实现的。具体来说,键盘借口应完成以下操作功能: 键盘扫描,以判断是否有键按下。 键识别,以来确定闭和键的行列位置。 产生闭和键的键码。 排除多键,串键以及抖动。本次设计中采用的是独立式键盘,键盘电路图如图4.6所示:图4.6 与单片机相连的独立式键盘4.5 超声波发射电路4.7 超声波发射原理图超声波信号由单片机产生,信号经过三极管后驱动超声波换能器发送超声波,途中碰到障碍物就立即返回。否则认为没有探测到物体。此电路有两个三极管构成推拉式驱动电路,三极管工作在开关状态。当信号线来一个高电平时,三极管Q1导通,Q1的集电极高电平,Q2截止,Q2的发射极为低电平,从而使超声波换能器工作。在此电路图中的电容(C1)起隔直耦合作用。4.6 超声波接收电路图4.8 超声波接收原理图超声波接收是用来将探测波回波的声能转换为电信号,实现超声波回波的接收。在被测物距离较远的情况下回波很弱,要求将信号多次放大,放大后的信号整形、比较、触发后产生中断信号,此中断信号向CPU发中断请求,执行中断服务程序中,读取计时器的定时值。此电路由信号放大部分,检波部分,电压比较部分和信号保持部分组成,收到的信号经过两级放大,再通过倍压式峰值检波电路检波,得到一个基本稳定的信号,再通过与电压比较器比较,若信号电压大于参考电压,则输出高电平,若低于参考电压则输出为低电平,若输出高电平,则RS触发器触发,输出高电平,且一直保持下去,直到单片机给出控制信号,触发器回到低电平状态。超声波从发射到接收时间间距的测量,是由单片机内部的计数器(如T0)来完成的 。超声波从发射到接收的时间间隔的测量, 是由单片机内部的计数器(如T 0) 来完成的。在CPU 停止发送脉冲群后, 由于电阻尼, 换能器不会立即停止发送超声波, 在一定时间内仍然发送。这段时间的存在使系统不能够测量比较近的物体, 形成所谓的“盲区”, 需要对盲区时间产生的信号进行屏蔽, 不同性能的超声波换能器的盲区有所差异, 以一个通道工作的时序为例进行说明, 如图4.9 所示。图4.9 一个通道的工作时序4.7 单片机最小系统控制运算模块总原理图图4.10 单片机最小系统控制运算模块总原理5 软件设计流程图5.1 主流程图图5.1 主流程图5.2 温度读取程序 图5.2 温度检测程序5.3 LCD显示流程图图5.3 LCD显示流程图5.4 外中断服务程序关定时器关中断读取时间值返回图5.4 外中断服务程序5.5 超声波发射接收程序定时器初始化发射超声波开计时器返回停止发射图5.5 超声波发射程序5.6 键扫子程序图5.6 键扫子程序6 调试说明6.1 软件调试系统软件设计、调试的过程如图6.1所示源程序编辑 编译Y有语法错误? 动态在线调试有逻辑错误? 成功NYN图6.1其过程分为以下几个步骤:第一步,建立源程序。通过计算机开发系统的编辑软件,按照所要求的格式、语法规定、源程序输入到开发系统中,并存在磁盘上。第二步,在计算机上,利用KILE软件对第一步输入的源程序进行编译,变为可执行的目标代码。如果源程序有语法错误,则其错误将显示出来,然后返回到第一步进行修改,再进行编译,直到语法错误全部纠正为止。第三步,动态在线调试。对于与系统、硬件无联系的程序,可以借助动态在线调试手段,如单步运行、设置断点等,发现逻辑错误,然后返回到第一步修改,直到逻辑错误纠正为止。对于与系统硬件紧密相关的程序,则需软件,硬件同时进行调试,将程序烧入CPU,然后将CPU 插入系统,发现硬件故障排除故障,发现逻辑错误,修改程序,消除逻辑错误。6.2 硬件调试硬件调试分两步:第一步:系统上电之前,先用万用表等工具,根据硬件逻辑设计图,仔细检查线路是否连接正确,并核对元器件的型号、规格和安装是否符合要求,应特别注意电源系统的检查,以防止电源的短路和极性错误,并重点检查系统总线是否存在相互之间短路或与其它信号线的短路。第二步:第一步的调试,只是对系统进行初步调试,可以排除一些明显的故障,而硬件故障(如各个部件内部存在的故障和部件之间连接的逻辑错误)主 要是靠软件和硬件联调来排除。硬件调试和软件调试是不能完全分开的,许多硬件错误是在软件调试中发现和被纠正的。7 误差分析7.1 超声波回波声强的影响回波的声强与障碍物距离的远近有直接关系, 实际测量时, 不一定是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论