单片机典型案例开发(一)
扫描二维码
随时随地手机看文章
一、基于GPRS和单片机的彩信报警系统设计方案
摘要:设计一种基于GPRS 和51 单片机的彩信报警系统。利用单片机技术、带彩信协议GPRS 无线通信模块、图像捕获和图像压缩编码功能模块,实现原理图设计到电路板设计开发。用单片机根据seNSor 控制串口摄像头图像采集和压缩处理,采集图像通过彩信的格式发送到用户手机,同时可以通过短信命令随时查看系统状态,或者摄像头采集图像,监控现场情况。
国内传统的电子防盗报警系统方案往往是在用户端通过电子设备检测到盗窃等报警信息, 然后通过通讯器经电话线将信号自动传到报警中心来完成报警过程。这种报警中心往往存在很多局限。例如:报警中心地点和人员需固定,报警通信速度慢,反向查询、控制等操作困难而专业,电话线断线问题难以解决,通信费用、尤其是远程通信费用较高,不利于组建远程网络,通信带宽太小,加载信息量少,音视频信号的技术手段应用困难, 很难应用于家庭安防市场等等。
而彩信业务自中国移动从2002 年9 月正式推出以来,随着彩信网络工程的建立和不断地优化,彩信逐渐进入了高速发展和稳定应用阶段。所以人们越来越关注于依托中国移动网络、基于彩信业务来发展现代的电子防盗报警系统, 从而能在此系统上发挥其随时随地监控、网络涵盖范围大、查询控制等操作简便、费用低、报警通信速度快、音视频应用简易等众多优势,使其能广泛应用于家庭、办公、工厂、商铺等等各种场所。
1 系统硬件设计
1.1 系统总线设计
本彩信报警系统以普通AT89C52 单片机和带有彩信功能的无线模块GPRS,前端设备可以根据控制摄像头采集图片,发送到用户手机上,同时用户可以通过短信命令随时查看系统状态, 或者控制前端摄像头采集图像,监控现场情况。采用此方案设计的产品操作简单,为了降低成本,在最小硬件设计的基础上,系统的功能尽可能用软件程序来实现,以达到降低成本,满足市场需求。
设计的硬件电路主要由三部分组成: 图像捕获和图像压缩编码部分通过串口摄像头实现; 主控制器处理图像数据和任务控制用AT89C52 单片机实现;带彩信协议GPRS 模块无线部分。在设计中使用电路图,在设计的过程中,首先设计了硬件的结构框图,如图1 所示:
图1 系统硬件结构框图
采用单片机AT89C52 为核心组成彩信报警系统,AT89C52 具有快速8051 内核、8kBFlashE2PROM、256BIDATARAM,符合该硬件要求;彩信报警功能,采用GPRSModule 的MC55 芯片,带彩信协议栈MMS 功能;利用串口摄像头实现现场捕获和图像压缩存储功能。
1.2 单片机接口设计
AT89C52 单片机接口中, 作为只要一组串口,GM8123 可以将一个全双工的标准串口扩展成3 个标准串口,并能通过外部引脚控制串口扩展模式。该芯片母串口和子串口的工作波特率可由软件调节,而不需要修改外部电路和晶振频率, 它的外部控制少,应用灵活,编程使用简单,适用于大多数有串口扩展需求的系统。所以利用GM8123 为AT89C52扩展出3 组串口, 可以与串口摄像头和GPRS 模块进行连接通信。如图2 所示。
图2 单片机接口电路设计
1.3 GPRS 数据传输模块硬件设计
由于现场图片需要以彩信的形式发送, 所以选用了带有彩信功能的无线模块, 这里选用的GPRS模块是西门子的MC55[5].GPRS 模块和单片机之间的数据通信主要是通过端口TXD0 与TXD1 之间,RXD0 与RXD1 之间的数据传输来完成。其中GPRS模块上的TXD0 口是用于接收从单片机传来的数据, 而单片机上的扩展TXD2 端口是用于向GPRS模块传送数据的。GPRS 模块上的RXD0 口是用于向单片机发送数据, 单片机的扩展RXD2 口则是用于接收从GPRS 模块传输来的数据。
GPRS 数据传输模块硬件部分的电路原理图如图3 所示。
图3 GPRS 数据传输模块电路设计
1.4 串口摄像头
ZSV-01P 串口摄像头是一款具有视频采集和图像压缩功能的摄像头,具有130 万像素CMOS 摄像头,最大分辨率可达到1 280×960,是一个内含有拍摄控制、视频捕捉、图像数据采集、图像JPEG 压缩、串口通讯等功能的齐全的工业用图像采集设备,最大串口通讯速率可达115.2kbs[6]。本设计采用的带有串口的摄像头, 主机通过串口以约定的协议对摄像头进行控制。主机与相机是一种主从关系,相机的操作命令由主机发出,主机可以控制相机的输出格式、分辨率,相机向主机发送响应消息。具体参数:
(1)接口:主机与相机之间为RS-232 标准接口,波特率为57 600,8 位数据位,无校验,1 位停止位。
(2)图像格式:相机输出的图像格式为JPEG.
(3) 图像分辨率可以是:640×480、320×240、160×120、352×288、176×144.图像分辨率越高,则图像数据量越大。图4 表示分包传输时一幅完整图片采集流程。
图4 串口摄像头采集流程
2 软件设计
2.1 模块软件设计
软件采用标准的C 语言构造,由Keil C51 编译器编译。系统软件设计包括两部分:一是单片机对各个功能芯片的控制字的写入和单片机串口扩展程序;二是GPRS 数据接收发程序设计。
2.1.1 单片机与GPRS 无线模块
程序这个程序主要是完成GPRS 模块与单片机之间的数据传输,单片机有51 系列的,设定的单片机串行口工作方式为模式1,8 位UART, 数据传输率为可变;定时器1 的工作方式为模式2,数据传输率设置为9 600 b/s,晶振为11.059 2 MHz.我们传输的主要是AT 指令, 包括所拨的号码,DNS 服务的IP 地址,GPRS 服务提供商的密码, 接入GPRS 服务的APN.当然还需要建立一个TCP 通讯,此服务的客户内容包括IP、地址以及远方主机的TCP 端口号等所传输的信息。
该程序的主程序是对AT 指令进行发送和接收,在完成发送和接收数据时是分别调用数据发送子程序和数据接收子程序,而这里共包括3 个子程序:数据发送子程序、数据接收子程序以及延时子程序。
2.1.2 单片机摄像头的控制过程。
主机获取摄像头图像时操作:(1) 打开串口;(2)开始采集图像,设置图像分辨率;(3) 获取图像数据;(4) 结束采集图像;(5) 关闭串口。步骤(3) 获取图像可以循环执行。如果重新设置图像分辨率应重新执行步骤(2)。
2.1.3 单片机串口扩展程序设计
与之相关联的各端口状态和含义为:
(1)sbit MS=P3^6; //GM8123 工作模式控制
(2)sbit RESET=P3^7; //GM8123 复位引脚控制
(3)unsigned char SendBuff[5]={ 0x67,0xbc,0xc9};// 需要三个子串口
主程序中定义:
TMOD = 0x20; // 指定定时器1 工作在方式2
IE = 0x90; // 开串行口中断
SCON=0xc0; // 串行口工作在方式3
TH1 = 0xf8; // 装入定时器1 初值,设置主机工作波特率为7 200bs
P1=0x00; // 置GM8123 命令字地址
SBUF=Contr_data; // 设置GM8123 子串口波特率为19 200bs,母串口波特率为11 5200bs
因此,整个控制过程是:定义和初始化各个元器件的控制字和端口,然后单片机发送命令通过串口来检查和控制各个Sensor 和串口摄像头及MCC55 的工作。
2.2 程序流程
系统上电后首先初始化单片机, 设置串行口的波特率和定时器;然后初始化GM8123、各种Sensor传感器;接着执行MC55 上电,然后初始化MC55.
系统程序流程如图5所示。
图5 系统程序流程图
3 结语
本设计选择中深微电子公司的串口摄像头实现了图像捕获和图像压缩编码于一体, 简化了电路的复杂性, 带彩信协议GPRS 模块无线部分选用SIEMENS 公司的MC55,该模块性能稳定、可靠、操作方便。通过实验验证该报警系统运行效果良好,用户可以随时随地用手机远程遥控, 拍摄现场的照片并发送到指定手机或者电子邮箱里。可以外接多种无线传感器报警,例如烟感、无线门磁、红外人体感应器、煤气传感器等,实现多种触发方式的报警,并具有图像移动侦测功能, 能对移动的物体自动触发报警,具有一定的实用价值。
二、基于AT89C52的超声波测距仪的设计方案
摘要:基于提高测量精度的目的,设计了具有温度补偿的超声波测距系统。该系统采用DS18B20温度传感器对现场温度进行检测,并通过软件计算实现温度补偿。实验结果表明:此系统具有测量精度高的优点。
测距技术在物位检测、医疗探伤、汽车防撞等民用、工业领域应用广泛,由于超声波的速度相对于光速要小的多,其传播时间就比较容易检测,并且易于定向发射,方向性好,发射强度好控制,且不受电磁干扰影响,因而利用超声波测距是一种有效的非接触式测距方法。但超声波在不同环境温度下传播速度不同,如忽略温度影响,将影响最终测量精度。本文介绍的超声波测距仪采用渡越时间检测法,使用了DS1 8B20温度传感器对现场温度进行检测,并通过软件计算实现波速的温度补偿,消除了温度对测量结果的影响,使测量误差降低。
1 系统工作原理
超声波测距原理如图1所示。
图1 超声波测距原理
式中c--超声波波速:t--从发射出超声波到接收到回波所用时间。
限制该系统的最大可测距离存在4个因素:超声波的幅度、反射的质地、反射和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。为了增加所测量的覆盖范围、减小测量误差,可采用多个超声波换能器分别作为多路超声波发射/接收的设计方法。
由于超声波属于声波范围,其波速c与温度有关,经过测量得出超声波的波速与温度的关系,如表1所示。
表1 声速与温度的关系表
将测量的速度数据与温度数据进行一阶拟合得出:
c=331.6+0.6107xT (2)
式中T--当地温度。
在测距时,可通过温度传感器自动探测环境温度、确定其时的波速c.波速确定后,只要测得超声波往返的时间t,即可求得距离H,这样能较精确地得出该环境下超声波经过的路程,提高了测量精确度。
本设计方案中使用渡越时间检测法,测距仪工作原理为:在由单片机发出驱动信号的同时,开启单片机中的计时器,开始计时。发射探头发射出超声波,在由接收探头接收到第一回波的同时停止单片机计时器的计时,由于超声波在空气中的速度已知,根据公式即可求得探头与待测目标之间的距离。而且,可以在较短时间内多次发出超声波测量,完成后计算平均值然后显示。
超声波在相同的传播媒体里(大气条件)传播速度相同,即在相当大的频率范围内声速不随频率变化,但其频率越高,衰减得越厉害,传播的距离也越短。考虑实际工程测量要求,在设计超声波测距仪时,选用频率f=40kHz的超声波,波长为0.85cm.
2 系统硬件设计
本系统采用AT89C52单片机作为主控制器,使用3位数码管作为系统显示屏,超声波发射驱动需要的40 kHz脉冲由单片机P0.0发出,使用定时器进行计时和控制,超声波接收使用CX20106A作为接收主控芯片,使用DS18B20作为温度传感器进行温度校正。超声波测距器的系统原理图如图2所示。
图2 系统设计原理图
2.1 超声波的发射电路设计
超声波发送模块是由超声波发射探头组成的,单片机的P0.0端口直接发送40 kHz的信号,使用9012三极管做为驱动放大,驱动压电晶片超声波换能器产生超声波,超声波发射电路如图3所示。超声波发射子程序的流程是,发射时首先装填计时器,并且开始计时,当超声波发射完毕时,定时器计时完毕,并且重新装填等待下次发射。
图3 超声波发射电路
2.2 超声波接收电路设计
在接收电路中使用了红外线接收处理芯片CX20106A,因为它处理的是38 kHz的红外信号,而40 kHz的超声波信号和它比较接近,并且CX20106A芯片具有很强的抗干扰能力,这个芯片的外围电路很简单而且通过外围电阻调节它的中心处理频率,通过改变外围电路电容的大小也可以改变接收电路灵敏度和抗干扰能力。
经过试验后发现用单片机发40 kHz信号与使用CX20106A的电路搭配更加简单合理,使得时间的计算更为精确。
该系统的超声波接收模块是由超声波接收探头和红外线接收处理芯片CX20106A组成。如图4所示。超声波接收子程序的流程是,利用INT0中断检测回波信号,若有回波信号(INT0口低电平)就关闭外部中断,同时停止计时器的计时,将测距成功标志位标记为1(测距成功),同时提取时间值,计算待测距离,保存最终结果后打开外部中断,等待下次测量。
图4 超声波接收电路
2.3 超声波测距显示电路
在显示模块选择时有两种,一种是用液晶显示屏,其具有轻薄短小,分辨率高,可显示汉字等各种符号的优点。但一般需要利用控制芯片创建字符库,编程工作量大;一种则是选用数码管,数码管具有低电耗、寿命长、易于维护的特点,同时精度比较高,称量快,精确可靠,编程容易,操作简单。缺点是不能实现汉字及多数据多行显示。综合考虑本次设计中选择了3位数码管显示。用PNP型三极管驱动数码管,并连接到单片机AT89C52的P0口上作位选。虽然显示上没有液晶显示屏那么完全,但是也能够完整直观地显示出需要的结果。图5为超声波测距硬件设计的显示电路。
图5 超声波测距显示电路
2.4 温度补偿电路设计
本系统中,选择使用温度芯片DS18B20作为温度传感器。DS18B20支持“一线总线”接口,测量温度范围为-55~125℃,在-10~85℃范围内,精度为±0.5℃。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。DS18B20引脚说明如表2所示。
表2 DS18B20引脚说明
DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。
温度补偿电路的设计如图6所示,数据输入/输出脚连接到单片机的P0.1脚,电源接口接入+5 V的电压,外加5.6 kΩ的上拉电阻,因为DS18B20是单总线温度传感器,数据线是漏极开路,如果DS18B20没接电源,则需要数据线强上拉,给DS18B20供电;如果DS18B20接有电源,则需要一个上拉即可稳定的工作。由于DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内,检测的温度值在内部进行转换,温度测量结果直接以数字信号输出,单片机对由DS18B20输出的信号进行读取,经过软件对温度数字值实现处理。
图6 温度补偿电路
2.5 主电路原理图
该系统主电路原理图如图7所示,单片机采用89C52系列,单片机使用外部时钟源,外接6MHZ的晶振,由P0.0口直接输出40 KHZ的驱动信号给放大电路。接收到回波后,经由CX20106的滤波,产生中断信号,并由p3.2口输出进行中断。显示电路采用简单实用的3位数码管,连接单片机AT89C52的P0口,而三极管连接P2口,作数码管的位选。工作时,首先将系统初始化,启动计时器。并由P0.0脚发出40KHZ的驱动信号,同时打开INT0中断,并且开始等待接收到的回波和中断信号,若接收到回波(单片机接收到中断信号),计时器停止计时,保存时间信息,并且根据温度补偿计算出当前环境下的声速,计算出当前待测距离后储存,并调用显示子程序。测出距离后结果将以十进制BCD码方式传送到LED显示,然后再发超声波脉冲重复测量过程。
图7 超声波测距主电路图
3 结论
经过实测,本测距仪能够迅速的测出250 m以内的短距离障碍物,在30-200 cm范围内,误差能控制在1 cm以内,本设计具有简单实用,能耗低,成本低等特点。经过实际测试,发现系统的精度能满足普通需求,若需要进一步提高精度,可采用精度更高但系统更加复杂的双频超声波测距的方法。
三、基于单片机的智能泊车系统设计方案
摘 要:一个有效的智能泊车系统,不仅能帮助驾驶者快速、安全地完成泊车操作,从而减轻驾驶员负担,减少交通事故,而且能够有效提高汽车的智能化程度,增加汽车的附加值,从而带来巨大的经济效益。使用AT89C52单片机作为小车的主控制器,在该控制器基础上,添加了光电避障电路、测速电路、光源引导电路和电机驱动电路,从而实现了智能泊车系统设计。该系统结构简单、成本低,并在实验室中取得了预期的效果,能够使小车进入指定的停车位。
0 引 言
随着我国汽车数量逐年急剧增多,泊车位、停车场的数量却跟不上其增长的步伐,越来越多的人为如何泊车而发愁。日益拥挤的泊车环境要求人们对汽车的泊车技术更加地娴熟,这就更加重了人们工作之外的紧张情绪,降低了人们的生活质量。因此,如何解决泊车过程中的不便利,消除安全隐患,迅速、准确、安全地将汽车停靠到合适的位置,逐渐引起了人们的关注。
1 系统的工作原理及功能
智能泊车系统可分为控制部分和信号检测部分。
其中信号检测部分包括障碍物检测模块,光源检测模块和速度检测模块;控制部分包括控制器模块,电机控制模块。智能泊车系统基本模块方框图如图1所示。
图1 智能泊车系统基本框图
系统工作原理如下:在小车启动之后,通过霍尔传感器A44E进行小车的速度检测,对小车进行智能限速,小车行进过程中通过红外光电传感器避障,车库系统发送光源指示信号,光敏三极管接收车库指示信息,使小车到达指定车库后,停车。
1.1 单片机最小系统设计
AT89C52是51系列单片机的一种,是一个低功耗,高性能,CMOS 8位单片机,片内含8KB的可反复擦写的FLASH只读程序存储器和256B的随机存取数据存储器(RAM),由ATMEL公司采用高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元,片内有ROM/EPROM,因此,这种芯片构成的最小系统简单可靠,只要将单片机接上时钟电路和复位电路即可。
1.2 避障电路设计
红外光电式传感器具有非接触、响应快、性能可靠、体积小、安装轻便等诸多特点,因此在工业自动化装置和智能小车中获得广泛应用。本设计中采用的光电避障传感器是HS0038B.红外光电接收电路工作原理为:当接收到载波频率为38kHz的脉冲调制信号时,首先,HS0038B内的红外敏感元件将脉冲调制红外光信号转换成电信号,再由前置放大器和自动增益控制电路进行放大处理,然后通过带通滤波器进行滤波,滤波后的信号由解调电路进行解调,最后由输出电路进行反向放大并输出低电平;未接收到载波信号时,电路则输出高电平。红外发射电路由555定时电路产生方波,对红外发射管进行调制。
1.3 A44E测速电路设计
霍尔传感器A44E在测速系统中的主要作用是车轮转速采集。车轮每转一周,磁铁经过A44E一次,A44E的第3脚就输出一个脉冲信号,脉冲信号的周期与电机的转速有下列关系:
式中:n为电机转速;P 为电机转一圈的脉冲数;T 为输出方波信号的周期。
脉冲信号作为单片机AT89C52的外中断信号,从P3.2口输入。
1.4 电机驱动电路设计
动作执行单元为驱动小车左右轮的两个减速直流电机,控制它们的转速,就控制了小车的运动状态。但是由动作控制单元发出的控制信号非常微弱,无法直接驱动直流电机,须匹配设计合理的驱动电路,常用的驱动电路为H 桥。在设计过程中发现,由于三极管导通、关断的时间不统一,导致用三极管搭建的H 桥在电机电流换向的时候经常发生微短路,使得三极管发热现象很严重,整个电路电源波动很大,非常耗电。因此,本设计最终采用了集成H 桥L298.除此之外,在设计过程中发现电机转动产生的反向电动势会严重影响传感器的输出状态,将错误的路径信息送给处理器,导致小车经常产生错误动作。因此,本设计采用了双电源供电,即传感器和芯片共用一组电源,电机专用一组电源,中间信号的传输采用了4N25光耦电路进行电气隔离。
1.5 光源引导电路设计
本设计采用光敏三极管作为光源检测传感器,因为其感光电压变化明显(电压值变化在60~100mV 左右),价格便宜。光源引导模块需要在小车前方安装3个光敏三极管,通过车库发出的光源信号来引导小车到指定车库停车,使用LM324作为光源引导模块的核心放大器件,将信号进行放大处理。
1.6 停车场系统设计
为了更好地完成小车避障、光源引导和入库过程,停车场系统设计也是十分重要的。停车场系统设计图如图2所示。
图2 停车场系统设计图
2 软件设计
系统软件设计在Keil C51 集成开发环境下进行。软件主要包括系统主程序、避障子程序、光源引导子程序和测速限速子程序等。泊车系统整体流程如图3所示,避障程序流程图、光源引导程序流程图分别如图4,图5所示。测速限速电路软件设计思路是将每圈的时间换算成速度,再与设定的速度比较,如果所测速度大于设定值,则控制电机减速到设定值;如果所测速度小于设定值,则控制电机加速到设定值,完成小车的智能限速。
图3 智能泊车系统总体流程图
3 各模块测试及连接
各模块连接:小车舵机左转输入端接P3.4;小车舵机右转输入端接P3.5;小车驱动电机前进输入端接P3.6;小车驱动电机后退输入端接P3.7;光电避障模块左传感器输出端接P1.0;光电避障模块右传感器输出端接P1.1;光源引导模块左传感器输出端接P1.2;光源引导模块中间传感器输出端接P1.3;光源引导模块右传感器输出端接P1.4。
小车整体测试:把小车放在停车场入口处,打开小车电源,打开车库中对应车库位置的光源电源,小车避开障碍通过停车场下坡区,到达指定车库前面,依靠光源引导入库,停车。
图4 避障程序流程图
图5 光源引导程序流程图
4 结 论
本文设计的智能泊车系统可以在实验室内实现小车的自动驶入指定停车位的功能。将小车停在停车场入口处,然后车主可以离开小车,此时小车就可以根据停车场内的车辆诱导信号(光源引导信号)将车引入停车场,从而实现自动泊车过程。
四、基于单片机的LED显示数字电压表
1 引言
单片机是一种集成电路芯片,随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。由于单片机具有简单实用、高可靠性、良好的性能价格比以及体积小等优点,已经在各个技术领域得到了迅猛发展。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本设计重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。
2 总体设计方案
2.1 设路计思路
按系统功能要求,决定控制系统采用AT89S51单片机,A/D转换采用ADC0809.系统除能确保实现要求的功能外,还可以方便地进行其功能的扩展。本文采用AT89s51作为核心元件,AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
采用NS公司的分辨率为8位的逐次比较型的高精度的模数转换器ADC0809,ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。把采取的电压进行处理然后通过单片机的P口送到单片机然后经过程序处理,由LED电路把电压数值显示出来。单片机加上外围的串口显示电路由74LS245和数码管三极管组成。
器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89s51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
2.2 设计方框图
图1 数字电压表系统设计方案
3 设计原理分析
3.1 单片机AT89S51
AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
3.2 AT89S51的特点
40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器 此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
主要特性在:
● 与MCS-51单片机产品兼容
● 4K字节在系统可编程Flash存储器
● 1000次擦写周期
● 全静态工作:0Hz-33MHz
● 32个可编程I/O口线
● 2个16位定时器/计数器
● 6个中断源
● 全双工UART串行通道
● 低功耗空闲和掉电模式
● 掉电后中断可唤醒
● 看门狗定时器
● 双数据指针
● 灵活的ISP编程(字或字节模式)
● 4.0---5.5V电压工作范围
3.3 ADC0809的内部逻辑结构
八路数字电压表主要利用A/D转换器,处理过程是先用A/D转换器对各路电压值进行采样,得到相应的数字量,再按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显示出来。设计时假设待测的输入电压为八路,电压值的范围为0~5V,要求能在4位LED数码管上轮流显示或单路选择显示。测量的最小分辨率为0.0119V,c测量误差为±0.02V。
ADC0809是8路8位ADC芯片,片内有8路模拟开关、地址锁存与译码、256电阻梯形网络、电子开关树、逐次逼近寄存器、比较器和3态输出锁存器等,特别适合与微机接口。时钟频率=1.26MHz,转换时间=100μs,转换误差≤±1LSB,内含8路数据选择器以便进行8路ADC。8路8位2进制码LSTTL电平输出,28脚封装。ADC0809多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809的内部逻辑结构如图3.1所示。
图2 ADC0809的内部逻辑结构
3.4 引脚结构
ADC0809具有8路模拟量输入通道IN0~IN7,通过3位地址输入端C、B、A(因脚23、24、25)进行选择。引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存与ADC0809内部的锁存器中,经内部译码电路译码选中相应的模拟通道。引脚6为启动转换控制端START,当输入一个2 us宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。引脚7为A/D转换的结束信号EOC。ADC0809为逐次比较型A/D转换器,当开始转换时,EOC信号为低电平,经过一定时间,转换结束,转换结束信号EOC输出高电平,转换结果存放与ADC0809内部的输出数据锁存器中。引脚9为A/D转换数据输出允许控制端OE,当OE为高电平时,存放与输出数据存储器中的数据通过ADC0809的数据线D0~D7输出。引脚10为ADC0809的时钟信号输入端CLOCK。在连接时,ADC0809的数据线D0~D7与AT89S51的P0口相连,ADC0809的地址引脚、地址锁存端ALE、启动信号START、数据输出允许控制端OE分别与AT89S51的P2口相连,转换结束信号EOC与AT89S51的P3.7口相连。时钟信号输入端CLOCK信号,由单片机的地址锁存控制端ALE提供。单片机的系统时钟为12MHZ。
IN0-IN7:8条模拟量输入通道 。ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条 。ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
数字量输出及控制线:11条 。ST为转换启动信号,当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。
CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为1MHZ,VREF(+),VREF(-)为参考电压输入。
3.5 ADC0809应用说明
ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。 初始化时,使ST和OE信号全为低电平。送要转换的哪一通道的地址到A,B,C端口上。在ST端给出一个至少有100ns宽的正脉冲信号。是否转换完毕,我们根据EOC信号来判断。当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机。
3.6 ADC0809工作原理
8路模拟信号由ADC0809的IN0~IN7端输入,AT89S51单片机的ALE端口输出的脉冲信号送ADC0809的10脚作为ADC的时钟信号(产生CLK信号的方法就得用软件来产生)。A/D转换完成之后,从EOC端返回AT89S51一个转换结束信号,单片机随即用信号将A/D转换的数字输出从D0~D7端经P0口数据总线读入自己的存储器中。A/D转换过程全部结束。再经软件程序转换成a~g 7段码输出,驱动LED数码管。各位数码管由位控信号P3.0、P3.1、P3.2、P3.3控制,由74LS245反相驱动将依次巡回点亮数码管。
3.7 复位电路的设计
本设计采用了上电自动复位和手动复位,上电自动复位是再加电瞬间电容通过充电来实现的,其电路如图3.2所示。在充电瞬间,电容C通过复位电阻R充电,RST端出现正脉冲,以复位。只要电源VCC的上升时间不超过1MS,就可以实现自动复位,既接通电源就完成了系统的复位初始化,手动复位是通过按钮实现的。
图3 复位电路
3.8 时钟电路的设计
任何一块单片机的正常工作都离不开时钟信号,本设计中利用8951内部的高增益反相放大器,外加石英晶体以及两个电容就构成了稳定的自激振荡器。给单片机提供了时钟信号,保持单片机按正常的时序工作。
图4 时钟电路