大学本科生毕业设计(论文)
P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个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的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
17
大学本科生毕业设计(论文)
3.3 单片机主机系统电路
3.3.1 复位电路
单片机在RESET端加一个大于20ms正脉冲即可实现复位,上电复位和按钮组合的复位电路如下:
图 3-7 蜂鸣器电路
在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST电位下降,于是在RST形成一个正脉冲。只要该脉冲足够宽就可以实现复位,即
??RC?20ms。一般取R?1K?,C?22uF。
当人按下按钮S1时,使电容C1通过R1迅速放电,待S1弹起后,C再次充电,实现手动复位。R1一般取200?。
3.3.2 时钟电路
当使用单片机的内部时钟电路时,单片机的XATL1和XATL2用来接石
英晶体和微调电容,如图所示,晶体一般可以选择3M~24M,电容选择30pF左右。我们选择晶振为12MHz,电容33pF。
18
大学本科生毕业设计(论文)
图 3-8 时钟电路
3.3.3 按键电路
我们通过P1.0来启动测量,程序中通过查询P1.0的电平来检测是否按键被按下,电路原理如下:
当按下按键时P1.0为低电平,单片机通过 查询到低电平开始测量距离,当松开按键,P1.0即为高电平。在软件中通过软件延时来消除按键的机械抖动。
图 3-9 按键电路
3.3.4 蜂鸣器电路
本次设计通过一只蜂鸣器来提示用户按键按下了,现在单片机开始了测距。蜂鸣器时一块压电晶片,在其两端加上3~5V的直流电压,就能产生3KHz的蜂鸣
19
大学本科生毕业设计(论文)
声。电路如下图
通过单片机软件产生3KHz的信号从P2.1口送到三极管的基极,控制着电压加到蜂鸣器上,驱动蜂鸣器发出声音。
图 3-10 蜂鸣器电路
3.4 温度采集DS18B20电路
波的速度变化为0.6m/s。可见温度对声速影响很大,测量时必须进行温度补偿。常用的温度补偿方法有:热敏电阻、铂电阻、热电偶以及温度传感器补偿。
使用传统的温度传感器,硬件电路复杂,而且输出为电压或是电流值,需要进行周D转换。使用传统的温度传感器,硬件电路复杂,而且输出为电压或电流值,
需要进行川D转换。DS18B20温度传感器是美国DALLAS半导体公司推出的一种改进型智能温度传感器l2v,测温范围为55~125℃,最大分辨率可达0.0625℃。
物理学告诉我们,超声波在空气中的传播速度为:V=334.1+0.61*T,由此可见,超声波的速度和温度密切关系,即温度每增加1°C,超声波速度约增加0.61m/s,本次我们考虑温度补偿,以使我们的设计更加精确,温度的采集通常使用DS18B20一线式数字温度传感器,电路非常简洁,具体电路图如下图所示。DS18B20是美国DALLS公司推出的DS1820的替代产品,具有9、10、11、12位的转换精度,未编程时默认的精度是12位,测量精度一般为0.5°C,软件处理后可以达到0.1°C,温度输出以16位符号扩展的二进制数形式提供,低位在先,以0.0625°C/LSB形式表达。其中高五位为扩展符号位。转换周期与转换精度有关,9位转换精度时,最大转换时间为93.7 ms,12位转换精度时,最大转换时间为750ms。DS18B20引脚判断方法是:字面朝人,从左到右依次是1 (GND)、2(输入/输出)、3(VDD)。图中的R13为上拉电阻,阻值选5K左右。
20
大学本科生毕业设计(论文)
图 3-11 一线式数字温度传感器
3.5 LED数码管显示电路
显示电路采用简单实用的4位共阳LED数码管动态显示,段码用PNP三极管驱动。对于动态显示,一般将所有位的段选线的同名端联在一起,由一个8位刀O口控制,形成段选线的多位复用。而各位的公共阳极或公共阴极则分别由相应的UO口线控制,实现各位形成段的分时选通,即同一时刻只有被选通位才能显示相应的字符,而其他所有位都是熄灭的。由于人眼有视觉暂留现象,只要每位显示间隔足够短,则会造成多位同时点亮的假象。这就需要单片机不断地对显示进行控制,牺牲单片机的CPU时间来换取元件的减少以及显示功耗的降低。
3.6 超声测距系统软件实现
单片机和其开发应用系统具有语言简洁、可移植性好、表达能力强、表达方式灵活、可进行结构化设计、可以直接控制计算机硬件、生成代码质量高、使用方便等优点。本超声测距系统就是用八T89551单片机开发设计的。它采用模块化设计,由主程序、超声波发生子程序、超声波接收中断程序、测温子程序及显示子程序组成[21]。LED(Light-Emitting Diode,发光二极管)有七段和八段之分,也有共阴和共阳两种。LED数码管结构简单,价格便宜。图1-7示出了八段LED数码显示管的结构和原理图。图3-12(a)为八段共阴数码显示管结构图,图3-12(b)是它的原理图,图3-12(c)为八段共阳LED显示管原理图。八段LED显示管由八只发光二极管组成,编号是a、b、c、d、e、f、g和SP,分别与同名管脚相连。七段LED显示管比八段LED少一只发光二极管SP,其他与八段相同。
21