(4)低电压和低功耗[4]
4.3单片机AT89C51的特性
AT89C系列单片机是Atmel公司生产的一款标准型单片机。其中数字9表示内含Flash存储器,C表示CMOS工艺。其管脚图如图4-2所示。
24
图4-2 AT89C单片机管脚图
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性: ·与MCS-51 兼容
·4K字节可编程闪烁存储器 寿命:100写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道
·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 2.管脚说明: VCC:供电电压。
25
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外
26
部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
4.4本章小结
本章重点介绍了单片机的一些基本知识,如单片机的内部结构,单片机的工作原理等,只有详细了解单片机的工作原理,才能更好的使用单片机,用单片机来设计电路。
本系统所用的单片机是Atmel公司生产的AT89C51,DIP封装,40引脚。它的特点是内含Flash存储器,采用CMOS工艺,这种型号的芯片是目前应用得最普遍的一种。AT89系列的单片机可分为标准型、低档型和高档型三类,均属于8位机。我们所使用的AT89C51是标准型的,本章详细介绍了它的特性和参数。
27
第5章 电路调试及误差分析
5.1电路的调试
通过多次实验,对电路各部分进行了测量、调试和分析。
首先测试发射电路对信号放大的倍数,先用信号源给发射电路输入端一个40kHz的方波信号,峰-峰值为3.8V。经过发射电路后,其信号峰-峰值放大到10V左右。
40kHz的方波驱动超声波发射头发射超声波,经反射后由超声波接收头接收到40kHz的正弦波,由于声波在空气中传播时衰减,所以接收到的波形幅值较低,经接收电路放大,整形,最后输出一负跳变,在单片机的外部中断源输入端产生一个中断请求信号。
该测距电路的40kHz方波由单片机编程产生,方波的周期为1/40ms,即25μs,半周期为12.5μs。每隔半周期时间,让方波输出脚的电平取反,便可产生40kHz方波。由于12M晶振的单片机的时间分辨率是1μs,所以只能产生半周期为12μs或13μs的方波信号,频率分别为41.67kHz和38.46kHz。本系统在编程时选用了后者,让单片机产生约38.46kHz的方波。
5.2系统的误差分析
5.2.1声速引起的误差
声波是媒质中传播的质点的位置、压强和密度对相应静止值的扰动。高于20kHz 时的机械波称为超声波,媒质包括气体、液体和固体。流体中的声波常称为压缩波或压强波,对一般流体媒质而言,声波是一种纵波,传播速度为
?E?c??? (5-1)
???2式(5-1)中E为媒质的弹性模量,单位kg/mm;ρ为媒质的密度,单位kg/mm;E 为复数,其虚数部分代表损耗; c也是复数,其实数部分代表传播速度,虚数部分则与衰减常数(每单位距离强度或幅度的衰减)有关,测量后者可求得媒质中的损耗。声波的传播与媒质的弹性模量密度、内耗以及形状大小(产生折射、反射、衍射等)有关。
从式(5-1)可知,声波传输速度与媒介的弹性模量和密度相关,因此,利用声速测量距离,就要考虑这些因素对声速影响。在气体中,压强、温度、湿度等因素会引起密度变化,气体中声速主要受密度影响,液体的深度、温度等因素会
23
28
引起密度变化,固体中弹性模量对声速影响较密度影响更大,一般超声波在固体中传播速度最快,液体次之,在气体中的传播速度最慢。气体中声速受温度的影响最大。
声速受温度的影响为
?????c??c0?1???? (5-2)
?273???2图5-1根据上式测量的温度-声速图。
图5-1 空气中温度-声速图
由式(5-2)和图5-1可见,当温度θ从0~40℃变化时,将会产生7%的声速变化,因此,为了提高测量准确度,计算时必须根据温度进行声速修正。工业测量中,一般用公式计算超声波在空气中的传播速度,即
c??331?0.6? (5-3)
5.2.2单片机时间分辨率的影响
不管是查询发射波与回波,还是由其触发单片机中断再通过软件启停定时器,都需要一定的时候,中断的方式误差相对要小一些。
相对而言,单片机的时间分辨率还是不太高,如晶振频率为12MHz时,时间分辨率为1μs。
随机误差