STC51单片机

2025-02-02

STC51单片机(精选9篇)

STC51单片机 篇1

1 概述

1.1 本设计的背景和意义

单片微型计算机作为微型计算机的一个重要分支, 它成为今天工业控制领域、通信设备、信息处理以及日常生活中最广泛使用的计算机, 其中单片机用与电子产品的设计是非常方便。时钟就是一种在我们日常生活应用很广泛的电子产品, 它不但可以告诉人们时间, 还可以应用于其它一些产品中实现时间的控制, 随着数字时钟广泛的应用, 其无论在日常生活中还在其它生产制造领域都起到非常重要的作用, 随着各领域的发展人们应用时钟并对时钟的功能提出了更高的要求。怎样让时钟实现更多的功能很好的为人们服务, 这就要求人们在原有时钟的基础上不断改进设计制造出更多新型多功能时钟。在单片机技术日趋成熟的今天, 其灵活的硬件电路的设计和软件的设计, 让单片机得到了广泛的应用, 在基于单片机系统的数字钟电路中, 除了基本的单片机系统和外围电路外, 还需要外部的控制和显示装置。

1.2 本设计的主要内容和总体思路

本设计中的数字闹钟主要由硬件电路和系统软机设计两部分组成。硬件电路是以单片机为控制核心, 包括铃声电路、显示器及键盘电路等组成, 通过简单的无源晶振电路提供时钟, 通过中断产生定时实时控制, 再经过单片机将时间数据由数码管LED显示, 系统中有按键可以进行定时时间和显示调整。定时时间到时, 音乐电路播放的乐曲。系统软件主要包括一个主程序、5个子程序和1个中断程序。

2 硬件电路的设计

电路以STC-51为主控制器, S1为闹钟设置按键, S2为小时设置按键, S3为分钟设置, 按键S4为闹钟时间显示按键。晶振采用6MHz, 闹铃声信号由P1.7口输出, 经NPN放大后推动喇叭发声。硬件主要由单片机、复位电路、按键电路组成、显示电路和铃声电路组成。

设计思路

3 系统软件的设计

软件设计主要包括主程序、键盘扫描、时间显示、铃声程序, 中断程序。

3.1 变量地址分配设置

30H存放16进制小时中的放的数据;31H存放16进制分中的放的数据;32H存放16进制秒中的放的数据;33H、34H存放数码管中显示的小时数据;35H、36H存放数码管中显示的分数据;37H、38H存放数码管中显示的秒数据;39H存放自己初始设置的小时 (Hour) 时间数;3aH存放自己初始设置的分 (Minute) 时间数;3bH存放自己初始设置的秒 (Second) 时间数;3cH存放自己初始设置的闹钟小时 (Ahour) 时间数;3dH存放自己初始设置的闹钟分 (Am inute) 时间数;3e H存放定时1s所需要的计时次数。

3.2 单片机引脚设置

单片机引脚P3.2闹钟设置 (1正常时间调整;0闹钟时间调整) ;P3.3小时调整键;P3.4分钟调整键;P3.5显示模式 (1正常时间显示;0闹钟时间显示) ;P1.7外接喇叭;P2.3———P2.控制数码管显示。

3.3 中断设置程序

MCS-51单片机的中断源共有两类, 它们分别是外部中断和内部中断, 其中外部中断源包括外部中断0 (INT0) 和外部中断1 (INT1)

内部中断源包括定时器/计数器0 (T0) 、定时器/计数器1 (T1) 和串行口。在本设计中采用内部中断源定时器/计数器0 (T0) , 由于定时器/计数器的功能是由软件编程确定的, 所以一般在使用定时/计数器前都要对其进行初始化, 使其按设定的功能工作, 初始化的步骤一般如下

1) 确定工作方式, 对TMOD赋值。

2) 预置定时或计数的初值, 直接将初值写入TH0、TL0。

3) 根据需要开放定时器/计数器的中断, 接对IE位赋值。

4) 启动定时器/计数器, TR0 1置“1”, 实现了启动要求后, 定时器即按规定的工作方式和初值开始定时。

结合本课题实际需要, 设置如下

4 设计系统仿真

软件利用STC-ISP下载至单片机进行调试, STC-ISP是一款单片机下载编程烧录软件, 是针对STC系列单片机而设计的, 可下载STC89系列, 使用简便, 现已被广泛使用。包括步骤如下:

1) 打开STC-ISP, 在MCU Type栏目下选中单片机STC89C52RC

2) 选中的COM1端口, 波特率一般保持默认, 如果遇到下载问题, 可以适当下调一些

3) 先确认硬件连接正确, 点击“打开文件”并在对话框内找到要下载的HEX文件:

4) 手动按下电源开关便即可把可执行文件HEX写入到单片机内

5 结语

本文介绍了基于基于STC-89C51型单片机的智能闹钟设计, 包括硬件电路和系统软件设计, 具有随机设置闹铃时间的特点, 编程简单。实践证明它具有良好的准确度, 扩展性能好, 具有良好的可靠性。

参考文献

[1]肖洪兵.跟我学用单片机.北京:北京航空航天大学出版社, 2002.

[2]微机原理与接口技术, 长沙.湖南大学出版社, 2004.

[3]单片机技术应用项目教程.北京:电子工业出版社, 2010.

[4]ProtelDxp 2004 SP2原理图与PCB设计.北京:电子工业出版社, 2007.

STC51单片机 篇2

1 系统的总体设计

该智能防火系统以STC89C52 单片机为核心模块进行智能控制。该系统的总体构成主要包括以下几个部分:1 主控的STC89C52 单片机2GSM 移动通信模块3 无线传输模块的设计4实时时钟电路5 防火信息采集与处理模块6 温湿度检测模块与键盘显示模块。该系统的设计是以单片机为核心, 并将其与通信技术和电子检测技术相结合, 从而形成一个稳定的智能化的防火报警系统。

GSM 移动通信模块主要提供无线短信和数据传输的功能。STC89C52 单片机通过依照GSM 通信模块的通信协议对其进行通信并控制, 从而进行短信智能收发。本系统以STC89C52 单片机电路为核心, 控制连接在各子模块上。通过STC89C52 单片机, 可监测室内温度, 湿度, 以及室内可燃气体和烟雾的浓度, 在数据异常时, 可通过控制GSM 移动通信模块, 向预留的号码进行短信报警。

在学生宿舍内部安装信息采集分析模块。当宿舍发生火灾时, 与之相对应的防火报警探测器无线发射电路启动发射无线接收模块在接收到无线信号后, 向主控单片机发送中断请求。主控单片机响应中断后, 读出发送信号的报警器编码比确定是哪个报警器发生异常, 由GSM 通信模块对预先设定好的号码进行短信报警, 短信内容也可预先设定, 说明具体的地址及联系人信息等。

2 系统硬件设计

(1)STC89C52 单片机的说明

STC89C52 是一种带8K 字节闪烁可编程可擦除只读存储器的低电压,高性能COMOS8 的微处理器。STC89C52 主要功能包括兼容MCS51 指令系统,8K 可反复擦写FlashROM,32个双向I/O 口,256x8bit 内部RAM,3 个16 位可编程定时计数器,6 个中断源, 其中直接提供外部中断处理可使用P3.2(INT0)或P3.3(INT1);1 个全双工可编程标准串行口, 其引脚为P3.0(RXD) 和P3.1(TXD);时钟频率0-24MHz2 个串行中断, 可编程UART 串行通道,3 级加密位, 低功耗空闲和掉电模式, 软件设置睡眠和唤醒功能等。该单片机对于程序烧写输入非常方便,故用其作为主控系统。

(2)GSM 短信模块的简介

GSM 短信的远程控制系统, 能够接收远端预定义的短信息指令来控制8 路控制开关, 同时检测4 路按键开关量并通过单片机译码, 由GSM 短信模块传送到远端。郑凌燕. 葛万成针对GSM 具有实时, 方便, 快捷等优点对GSM 短信远程控制系统进行了描述。当单片机向GSM 短信模块发送信息时, 由4 路按键开关输入信息, 由单片机将单片机指令转换成AT 指令后传输给GSM 短信模块, 由GSM 短信模块将信息发送给预留号码, 实现远程信息传输控制的目的。本系统电路主要由四部分组成:GSM 短信模块, 单片机, 控制电路, 显示窗口。

(3) 无线传输模块设计

避开传统有线连接系统的局限弊端, 本系统采用无线传输方式。无线模块是利用无线技术进行无线传输的一种模块,主要由发射器,接收器和控制器组成。它的工作频率:315MHZ/433MHZ( 本设计选用315MHZ), 其发射功率:≤ 500MW, 静态电流:≤ 0.1UA, 发射电流:3 ~ 50MA, 它的工作电压:DC3 ~ 12V。当工作电压为3V 时, 在空旷地传输时距离约40 至50M, 当工作电压为12V 时, 达到最优工作电压, 空旷地传输距离约700-800M。除开无线发射模块外, 还有无线接收模块。平时未接收到发射出的信号时, 输出的只是杂乱的信号; 当无线接收模块接收到发射信号时, 经放大,变频, 滤波等处理后输出控制信号, 送到相应的解码芯片进行解码, 解码有效端口Vt也输出高电平经过一个非门转换送给单片机的外部中断0 接口。单片机在接到外部中断请求后, 执行外部中断服务子程序,读出数据码, 确定发出信号的传感器, 并进行短信报警。

(4) 温湿度测量电路设计

本系统中温湿度传感器采用新型温湿度传感器。这款温湿度传感器可给出全校准相对湿度及温度值输出,具有卓越的长期稳定性,湿度值输出分辨率为14 位,温度值输出分辨率为12位,并可编程为12 位和8 位。其中,两线制的串口设计,使外围系统变得快速简单,能耗低,体积小,不仅节省了资源,也简化了单片机的编程,提高了精度。徐会东()指出,在将STH11 与单片机串口相连后, 初始化传输时, 应首先发出”传输开始”命令, 该命令可在SCK 为高时DATA 由高电平变为低电平, 并在下一个SCK 为高时将DATA 升高。接下来的命令顺序包含三个地址位( 目前只支持”000”) 和5 个命令位, 当DATA 脚的ack 位处于地电位时, 表示SHT11 正确收到命令。如果与SHT11 传感器的通讯中断, 下列信号顺序会使串口复位: 即当DATA 线处于高电平时, 触发SCK9 次以上( 含9 次), 此后应再发一个”传输开始”命令。SHT11 利用两只传感器分别产生相对湿度, 温度的信号然后经过放大, 分别送至A/D 转换器进行模/ 数转换, 校准和纠错。最后通过二线串行接口将相对湿度及温度的数据送至单片机处理, 单片机对处理数据后进行数字显示并作相应的控制。王海宁()针对控制对象的特点, 在系统辨识的基础上对系统的控制算法进行了仿真研究, 最后针对温控系统进行了实验, 通过对实验数据的分析表明本文所述的基于单片机的温度控制系统的设计的合理性和有效性。

(5) 可燃气体浓度探测器的`设计

传感器电路中最主要的期间就是QM-N10 气敏半导体传感器,该器件在洁净空气中的阻值大约有几十kΩ,接触到可燃气体时,电导率增大,电阻值急剧下降,下降幅度与瓦斯浓度在0.5% 以下成正比。一旦QM - N10 敏感到可燃气体时,IC1A 的脚处于高电位,此时IC1A 的脚变为低电平,经IC1B 反相后变为高电平,多谐振荡器起振工作,三极管VT2 周期地导通与截止,于是由VT1、T2、C4、HTD 等构成的正反馈振荡器间歇工作,发出报警声。与此同时,发光二极管LED1 闪烁。从而达到可燃气体泄漏告警的目的。

3 系统软件设计

本系统的重点为单片机与短信模块串口通信的设计, 因为它承担着自动运行以及向外报警的功能。本系统采用异步通讯方式, 异步串行通讯规定了字符数据的传递方式, 即每个数据以相同的帧格式传递, 每一帧信息由起始位, 数据位, 奇偶校验位和停止位组成。STC89C52 单片机的串口仅占用了单片机的P3.0和P3.1 脚。当非串口方式工作时, 这两根口线还可以作为一般的I/O 口线使用。

STC51单片机 篇3

近年来, 随着高科技和信息技术的发展, 智能机器走进了智能住宅, 住宅智能化已然成为人类住宅一场新的革命。现代社会家庭正在以家庭智能化带来的多元信息和安全、舒适、便捷的生活环境作为新的目标和追求。然而, 由于目前广大家庭的窗户在智能控制方面的不足, 小孩在室内玩耍时爬上窗台酿成惨剧的情况时有发生, 小偷通过开着的窗户入室盗窃案件屡见不鲜, 对人们的生命财产安全造成极大损失。同时, 愈演愈烈的雾霾天气造成的空气污染、有毒气体对人的生命安全造成威胁、室外高温或者下雨天时开着窗户导致室内环境变差, 这些都对保持良好的居家环境产生了不利影响。

目前, 平移式窗户被广泛使用, 而市场现有的智能产品多是包括窗户本身以及控制系统在内的完整系统, 需要重新更换窗户, 在实际应用中存在较多不便。因此, 在现有窗户的基础上, 设计一种价格低廉、拆卸方便、多功能的平移式窗户启闭器是解决这些现实问题的有效途径。

2 硬件设备

整个单片机系统基于51单片机开发板, 配以多种精心设计的传感器和电机, 成本低、功能全。

系统中的STC89C52RC芯片采用的是8051核在系统可编程芯片, 最高工作时钟频率为80 MHz, 片内含8 KBytes可反复擦写1 000次的Flash只读程序存储器, 器件兼容标准MCS-51指令系统和80C51引脚结构。芯片内集成了通用8位中央处理器和ISP Flash存储单元, 具有在系统可编程 (ISP) 特性, 配合PC端的控制程序即可将用户的程序代码下载进单片机内部, 省去了购买通用编程器这一步, 而且速度较快、功耗低。

防盗和防小孩爬窗功能中的光电传感器采用集发射和接收于一体的E18-D80NK-N传感器, 发射光经过调制后发出, 接收头对反射光进行解调输出, 可有效避免可见光干扰透镜的使用, 能够检测80 cm内的情况, 价格便宜、易于装配、使用方便。

对于空气质量的检测, 结合当今大家比较关注的有毒气体污染和包括PM2.5在内的粉尘污染, 采用有害气体和粉尘、PM2.5空气质量检测器相结合的传感器。

MQ-2/MQ-2S气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡 (Sn O2) 。当传感器所处环境中存在一氧化碳、甲烷等有害气体时, 传感器的电导率随空气中可燃气体浓度的增加而增大, 传感器可将电导率的变化转换为与该气体浓度相对应的输出信号;PM2.5空气质量检测器可以探测1μm以上的粉尘粒子, 使系统根据不同需要作出反应。

对于湿度和温度的检测, 则分别采用模拟输出湿度传感器模块和DS18B20数字温度传感器。

执行机构主要由12 V25GA370直流减速电机马达驱动, 力矩大、噪声小、质量轻、功耗小, 配以L298N电机驱动板, 能够满足带动窗户的需求。

报警采用5 V有源单片机用蜂鸣器, 功耗小、成本低。

整个硬件在能够较好地实现功能的前提下, 其成本可以控制在100元以下, 具有很高的实用性。

3 智能设计

智能窗户启闭器要实现防盗、防小孩爬窗、防空气污染、防室外高温、防雨等基本功能, 主要包括传感器系统、控制系统、执行器系统等子系统;同时, 启闭器要实现在现有平移式窗户基础上可拆卸的机械设计, 成本较低。图1所示为该启闭器各模块及其结构原理图。

当室外有小偷靠近或室内小孩爬窗时, 窗户内、外安置的红外传感器分别将信号传输至单片机, 驱动与之相连的电机反转, 实现关窗, 同时, 蜂鸣器响起, LED灯闪亮, 提醒人们检查、处理;当室外下雨、高温、空气质量较差、有害气体泄漏时, 与之对应的湿度传感器、温度传感器、PM2.5烟雾传感器、有害气体传感器会及时将信号传输给单片机, 驱动电机开、关窗。一段时间后, 如果各传感器均没有检测到相应问题, 单片机控制窗户重新开启, 以通风换气, 改善室内环境。图2所示为智能窗户启闭器的工作流程图。

该窗户启闭器采用了红外、烟雾可燃气体、温度和湿度传感器等多传感器检测, 集防盗、防小孩爬窗、室外防湿、防高温、防空气污染等环境自适应功能于一体, 人性化程度高, 可以为用户提供一个良好的室内环境。

4 结构设计

为满足方便在现有平移式窗户上直接安装使用的要求, 智能窗户启闭器采用如下机械结构:控制系统主体部分集成安装在一块系统板上, 方便拆卸, 将马达电机连接的主动轮固定在窗户上边框, 两个轻质的定滑轮分别固定在下边框两底角处, 主动轮与从动轮之间通过质量轻、韧度强的PE线连接, 在需要控制移动的平移式窗户下端固连一定滑轮, 连接在该PE线上, 马达电机的正反转会带动该扇窗户左右移动, 达到开、关窗的目的。该结构设计简单、成本低廉、实用性强。

5 总结和展望

作为智能住宅的代表, 国家在《2000年小康型城乡住宅科技产业工程项目实施方案》中, 将建设智能化小康示范小区列入国家重点发展方向。智能窗户作为智能家居中不可或缺的一环, 具有广阔的市场前景。统计数据表明, 2009年, 我国窗户消费需求突破500亿元, 并且已安装窗户大多是普通推拉式窗户。

本文针对普通推拉式窗户设计了一种基于51单片机STC89C51的智能窗户启闭器, 通过传感器感知外界环境, 进而控制窗户启闭, 实现智能化家居。结果表明, 该启闭器能够初步完成预定的设计功能, 具有机械结构简单、易于在现有窗户上安装的特点, 可帮助普通家庭轻松实现对现有窗户的智能控制, 具有很好的市场前景和实用价值。

参考文献

[1]侯海涛.国内外智能家居发展现状[J].建材发展导向, 2004 (5) .

[2]罗伟.单片机应用[M].北京:人民邮电出版社, 2010.

51单片机常用语句 篇4

1、定时器中断

{TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;} void time()interrupt 1

{

TMOD=0X01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t0++;

}

2、延时子程序

void delay(int z);

void delay(int z)

{

int x,y;

for(x=z;x>0;x--)

for(y=100;y>0;y--);

}

3、数码管显示数字表

[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77};

4、数码管位选兼&LED左至右

[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

显示子程序

4位数

void dispaly(ints);

{从

for(shu=9999;shu>0;shu--){{qian=shu/1000;bai=shu%1000/100;shi=shu%100/10;ge=shu%10;}for(i=0;i<278;i++)

}

{}} duan=1;P0=duanxuan[qian];duan=0;P0=0xff;wei=1;P0=0xef;wei=0;delay(1);duan=1;P0=duanxuan[bai];duan=0;P0=0xff;wei=1;P0=0xdf;wei=0;delay(1);duan=1;P0=duanxuan[shi];duan=0;P0=0xff;wei=1;P0=0xbf;wei=0;delay(1);duan=1;P0=duanxuan[ge];duan=0;P0=0xff;wei=1;P0=0x7f;wei=0;delay(1);

八位数

void display(long s)

{

for(shu=s;shu>0;shu--)

{

{qianwan=shu/10000000;baiwan=shu%10000000/1000000;shiwan=shu%1000000/100000;wan=shu%100000/10000;qian=shu%10000/1000;bai=shu%1000/100;shi=shu%100/10;ge=shu%10;}

for(i=0;i<10;i++){duan=1;P0=duanxuan[qianwan];duan=0;P0=0xff;wei=1;P0=0xfe;wei=0;delay(1);duan=1;P0=duanxuan[baiwan];duan=0;P0=0xff;wei=1;P0=0xfd;wei=0;delay(1);duan=1;P0=duanxuan[shiwan];duan=0;P0=0xff;wei=1;P0=0xfb;wei=0;delay(1);duan=1;P0=duanxuan[wan];duan=0;P0=0xff;wei=1;

STC51单片机 篇5

随着社会的进步,物质生活水平与生产水平的提高,人们对智能的要求也在不断提高,其中车辆操控的智能化引起人们广泛的关注,其在交通运输、生产自动化、制造业、危险环境作业等领域有着广阔的研究应用前景。

本设计是一个以单片机为控制核心,以摄像头和光电编码器为传感元件,以电机和舵机为驱动与转向装置的智能控制系统。在设计中运用了检测、自动控制、无线通信和电子等方面的技术,集感知、识别、规划、决策、行动为一体,可在特定环境中完成自主寻迹、自行避障、平稳行驶。

2 智能小车系统的总体设计

本智能小车系统是由中央处理器模块、信息检测模块(包括图像采集模块和速度检测模块)、电机驱动模块、舵机控制模块、通信及调试模块、电源模块等组成,其总体结构框图如图1所示。

中央处理器模块选用STC80C51微处理器,是整个智能小车控制系统的核心。图像采集模块采集到的图像数据以及速度检测模块测出的速度信号都需要经过微处理器来进行分析和处理,然后通过电机驱动模块和舵机转向模块控制小车的运行状态,从而实现智能小车稳定自主行驶[1]。

信息检测模块包括图像采集模块和速度检测模块。其中图像采集模块依靠数字摄像头对道路进行监测,由摄像头采集到图像信息,运用灰度处理方法对图像进行处理,转换成控制信号[2]。同时,摄像头采集到图像信息通过Jpge-streamer解码,使之变成JPG格式图片,传送到上位机,实现对小车运行路况的远程监控[3]。速度检测模块是通过光电编码器测速,将小车的速度信息反馈给中央处理器模块,以便进行决策和控制[4]。

电机驱动模块是为智能小车的行驶提供驱动力,同时依据电压大小控制转速原理,将微处理器针对图像采集模块与速度检测模块采集到的数据信号进行表达,从而改变电压占空比来改变直流电机的转速,实现控制智能小车的运行快慢与停止[5]。

舵机转向模块的作用是改变智能小车的运行方向,实现转向功能。在智能小车行驶过程中,由微处理器传送来的控制信号进入调制芯片,获得直流偏置电压。将获得的直流偏置电压与电位器的电压比较,获得电压差输出,电压差传输到电机驱动芯片控制电机的正转与反转[6]。

电源模块为智能小车控制系统中的其他模块提供所需的电源。

3 智能小车的硬件设计

为便于测试与调整,采用模块化的设计,按功能的不同设计成六个模块。以下介绍各主要模块的硬件设计。

3.1 图像采集模块

图像采集模块的核心部件是摄像头,是由镜头、图像传感器、信号处理芯片三个部分集合而成。本设计采用OV6620CMOS数字摄像头,其内包含356´292像素阵列、模拟信号处理器、A/D转换器、数字数据格式化器、寄存器、时序发生器、自动曝光控制、白平衡控制以及视频输出端口、SCCB接口。使用时场中断信号VSYNC引脚连接到STC80C51的中断输入引脚P3.2,行中断信号HREF引脚连接STC80C51的中断输入引脚P3.3,数据输出口Y0-Y7引脚连接到STC80C51的GPIO引脚。

3.2 速度检测模块

速度检测模块采用反射式增量编码器完成速度信息的采集。编码器包括印刷有黑白条纹的码盘、红外线发射器和接收器,码盘紧附在车轮的轮盘上,红外线发射器和接收器对准码盘。发射器发出的红外光照射到码盘上,反射产生与车轮速度成正比的光脉冲信号,投射到接收器,然后转换成电脉冲信号,再传送到微处理器进行计数即可算出小车的运行距离和速度。本设计方案采A6A2-CW5C增量式旋转编码器,其具有较宽的工作电压(5V-24V),工作电流小于20m A,分辨率达500p/r。

3.3 电机驱动模块

电机驱动模块由直流电机和驱动芯片两部分组成。本设计中电机选用RS-380SH电机,是属无刷直流电机,具有0.1W-40W的输出功率。驱动芯片选用LMD18200驱动芯片,是集成有CMOS控制电路以及DMOS功率器件的专用于直流电动机驱动的H桥组件,工作电流为3A-6A,可产生足够大的驱动功率。图2是由LMD18200和RS-380SH构成的电机驱动电路。PWM波由LMD18200的5脚输入,借助调节PWM的占空比就可改变电机的转速,电机的正反转是通过改变3脚电平的高低来实现。此电路具有驱动能力强、运行稳定、操控方便等优点。

3.4 舵机控制模块

舵机控制模块由直流电机、减速齿轮组、舵盘、位置反馈电位计、控制电路等组成,一般把这几部分集成为一体式。本设计中采用Futaba S3010型舵机。图3为舵机转角与PWM脉宽关系曲线,即舵机的输出转角度数与输入的PWM信号值呈线性关系。图4为舵机接口示意图,单片机凭借摄像头收集到的道路信息,通过计算分析,输出PWM控制信号,传送到舵机的PWM输入端,经由舵机控制,改变输出转角,实现小车的转向。

3.5电源管理模块

该模块由蓄电池和稳压电路组成。蓄电池选用7.2V、容量为2000m Ah可充电式的镍镉蓄电池。因为智能小车各个模块的工作电压不同,为此设计了相应的稳压电路,将镍镉蓄电池的电压转换成各个模块所需要的工作电压,并采取稳压措施。

4 智能小车系统的软件设计

4.1 图像采集及黑线提取算法

OV6620摄像头每秒可采集25帧50场14600行图像信号。为减轻处理器的负荷,提高处理效率,根据道路的特点,只需利用每帧图像的部分行信号,就可完成小车的导航。考虑到摄像头的拍摄位置、道路的情况等因素,经过反复的比对调试,我们采用了从100行到400行的图像信号作为提取信号。

为了从提取的图像信号中获取黑线位置,我们采用跟踪边缘算法。这是一种在直接边缘算法的基础上改进而成的算法。直接边缘算法的要点是对提取的每行信号进行逐点灰度值的比较,根据相邻两点的差值是否大于设定的阈值来获得黑线的两个边缘位置坐标,取其平均值作为黑线位置。这种算符因需要对每个像素点进行比对运算,占用的资源较多,影响运算速度。而经过改进的跟踪边缘算法,根据相邻两行的黑线位置比较接近的特点,在利用直接边缘算法找出第一行(或前几行)黑线位置的基础上,在寻找下一行黑线位置时,可在上一行黑线位置的附近寻找即可,无需逐点寻找。这样可节省大量资源,提高运算的速度与效率。

4.2 电机和舵机控制算法

为确保对小车实现精准、快速、平稳的控制,我们对小车运动状态的控制部分采用了控制算法中应用较广且效果良好的PID控制算法。PID控制是将从控制对象采集到的数据反馈到控制器的输入端并与基准值进行比较,得出差值,再依据差值进行比例(P)、积分(I)和微分(D)运算,计算出控制量,传送给控制对象对其进行闭环控制。考虑到控制受车的重量、道路的不平以及小车过去的运动状态等因素的影响,为获得更佳的控制效果,进一步采用PID控制算法中的增量式PID控制算法。其闭环控制如下图5所示。

根据电机控制与舵机控制的不同特点,以及电机与舵机执行能力的差别,尤其要考虑舵机内部已有反馈系统,响应能力更强,所以要分别对电机控制和舵机控制设置相应的比例控制参数、积分控制参数、微分控制参数,并反复进行调试。

5 总结

本设计的智能小车系统,经过反复的调试后,性能良好,响应灵敏、控制准确,运行平稳,可完成以下任务:1)在特定赛道上的平稳运行,包括起步、直线行驶、转弯行驶、S弯道行驶、停止;2)避障,即在运行过程中遇到障碍物,能完成躲避绕行;3)直线上坡和直线下坡;4)实时通讯,实施显示小车当前的道路状况、小车的计算轨道、小车的运行状态参数。

摘要:以STC80C51单片机为控制核心,集光、电、机、无线通信等技术为一体,运用检测技术、自动控制技术、无线通信技术、电子技术,制作一个可用于特定环境下的智能车辆系统,具有感知环境、规划决策、自主识别路线进行行驶,可实现自主寻迹、自行避障。

关键词:STC89C51单片机,循迹,避障

参考文献

[1]王长涛,韩忠华,夏兴华.单片机原理及应用——C语言程序设计与实现[M].北京:人民邮电出版社,2014:98-158.

[2]王建飞.基于单片机控制的自动往返小汽车的新设计[J].现代与电子技术,2006,234(19):127-129.

[3]蔡福喜,黄大贵.基于模块化设计思想的测控系统框架设计[J].测控技术,2009,28(1):55-61.

[4]吴建平,殷战国,曹思榕.红外反射式传感器在自主式循迹小车导航中的应用[J].中国测试技术,2004,48(11):21-23.

[5]沙文,陈诚,葛立峰.基于单片机控制AD9851的信号源研究[J].微处理机,2010,31(1):116-121.

STC51单片机 篇6

如今在工业, 医学等许多方面都对超声波应用的要求越来越高, 由于超声波测距与被测物体无直接接触, 能够清晰稳定地显示测量结果, 广泛应用于液位和物位的非接触式测量以及汽车倒车时的报警。因此, 设计好的超声波测距仪就显得非常重要了。

本设计采用以STC89C51单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。整个电路采用模块化设计, 由主程序、预置子程序、发射子程序、接收子程序、显示子程序等模块组成。各探头的信号经单片机综合分析处理, 实现超声波测距仪的各种功能。

1 超声波测距原理

超声波是高于听觉频率阈值的机械波, 超声波具有直线传播特性, 它的频率越高, 反射能力越强, 而绕射能力越弱, 表现出更强的方向性, 利用超声波的这种特性采用时间差值检测法进行距离的测量, 发射器发出的超声波以速度v在空气中传播, 在到达被测物体时被反射返回, 由接收器接收, 其往返时间为t, 由s=vt/2即可算出被测物体的距离。由于超声波也是一种声波, 其声速v与温度有关, 下表列出了几种不同温度下的声速。在使用时, 如果温度变化不大, 则可认为声速是基本不变的。如果测距精度要求很高, 则应通过温度补偿的方法加以校正。

2 超声波测距仪硬件电路设计

单片机控制超声波发射器发出40k HZ的超声波信号;超声波接收器将接收到的超声波信号, 用接收电路进行检波处理后, 启动单片机中断程序, 测得时间为t, 再由软件进行判别、计算, 并将数据送至LCD显示。

本系统主要由单片机及其显示电路、温度补偿电路、超声波发射电路和接收电路等组成。当第一个超声波脉冲发射后, 计数器开始计数, 在检测到第一个回波脉冲的瞬间, 计数器停止计数, 利用温度检测电路实时地测量环境温度T, 再根据公式计算超声波的速度c, 从而计算出距离, 将数据送到LCD显示。其中单片机是整个系统的核心部件, 协调各部分的工作。

2.1超声波测距系统的硬件电路设计

为检测被测物体之间的距离, 我们通过单片机发出超声波测量其来回之间的时间, 由单片机计算其距离并把测量结果显示在LCD上。本系统的特点是利用单片机控制超声波的发射和对超声波自发射至接收往返时间的测量, 从而计算出物体之间的距离并显示出来。在硬件设计方面, 单片机选用STC89C51, 经济易用, 且片内有4K的ROM, 便于编程。并置有超声波模块, 通过单片机控制能实现精确的计时。

2.2控制及显示系统

控制及显示系统部分为整个系统的关键, 单片机为系统的控制核心部件, 通过对其编程, 来控制超声波发射和接收的信号。显示及操作界面为人机交互的通道, 我们利用LCD来显示被测距离, 从而实现人机的交流。

2.2.1单片机控制系统

采集到反射回来的信号后, 可精确测试从开始至结束全过程所花的时间, 同时利用单片机来判断整个测试过程的时序, 即被测物体之间的距离是由发射信号经过障碍物反射回来之间的距离, 而并不是由发射出来的信号直接被接收器接收之间的距离, 从而正确显示出来。

2.2.2显示及操作界面

显示面板电路采用LCD液晶显示测量的时间和距离, 最大显示距离为5.00M左右, 使用3个键来控制, 一个电源按键, 一个复位按键, 还有一个启动按键。面板还包括仪器的电源指示LED以及蜂鸣器。

3 系统软件的设计

超声波测距仪的软件设计主要由主程序、超声波发生子程序、超声波接收中断程序及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法, 汇编语言程序则具有较高的效率且容易精细计算程序运行的时间, 而超声波测距仪的程序既有较复杂的计算 (计算距离时) , 又要求精细计算程序运行时间 (超声波测距时) , 所以控制程序可采用C语言和汇编语言混合编程。

超声波测距仪的算法设计。超声波测距的原理为超声发生器T在某一时刻发出一个超声波信号, 当这个超声波遇到被测物体后反射回来, 就被超声波接收器R所接收到。这样只要计算出从发出超声波信号到接收到返回信号所用的时间, 就可算出超声波发生器与反射物体的距离。距离的计算公式为:

其中, d为被测物体与测距仪的距离, s为声波的来回的距离, c为声速, t为声波来回所用的时间。在启动发射电路的同时启动单片机内部定时器T0, 利用定时器的计数功能记录超声波发射至收到反射波的时间。当收到超声波反射波时, 接收电路输出端产生一个负跳变, 在INT0或INT1端产生一个中断请求信号, 单片机响应外部中断请求, 执行外部中断服务子程序, 读取时间差, 计算距离。

4 结论

本文介绍了以STC89C51单片机控制制作的超声波模块测距仪, 并讲述了单片机传感器控制的原理及本系统采用的方式。该仪器的提升空间还很大, 若能将超声波接收电路用金属壳屏蔽起来, 则可提高抗干扰能力。

摘要:介绍了一种基于单片机STC89C51的超声波测距系统, 重点阐述该系统的硬件电路设计和软件设计, 并利用温度检测电路有效消除了环境温度变化对传播速度的影响;在数据处理方面, 利用最小二乘法得出实际值与测量值之间的补偿公式, 从而使系统的测量误差进一步减小;在盲区消隐方面, 通过在软件上采用延迟接收技术, 有效消除了串绕信号, 进一步提高了检测的精度及灵敏度。

关键词:超声波,单片机,测距

参考文献

[1]龚军, 罗杰.带有温度补偿和LCD显示的超声波测距仪的设计[J].2008 (10) :50-53.

[2]高川, 谈振藩.基于AT89C2051的超声波测距系统[J].哈尔滨工程大学, 2006 (33) :11-14.

[3]李娣娜, 刘丽丽, 薛宁静等.一种新超声波测距系统的设计[J].延安大学, 2008 (26) :34-36.

[4]张红莲.基于单片机的超声波测距系统的设计[J].华北电力大学, 2008, 9:89-91.

STC51单片机 篇7

关键词:单片机,微喷灌控制系统,节水灌溉

1 概述

微喷灌技术就是一种新型的节水灌溉技术, 它是介于喷灌与滴灌之间的一种灌水方法。喷灌又叫喷水灌溉, 即把经过水泵加压 (或水库自压) 的水用管道送到田间, 由喷头 (水枪) 射到空中, 变成雨点洒落到地面进行灌溉。喷灌工作压力较高, 雨点较大, 适用于竹园、果园和菜园的灌溉。微喷灌即微小水量、微小水压的喷灌。微喷灌喷出来的水如同“毛毛雨”, 适用于易被大水滴“打倒”的作物如蔬菜和花卉等的灌溉, 特别适用于空气湿度要求较高的大棚作物的灌溉。滴灌又称滴水灌溉, 即用滴灌带或滴头把水一滴一滴地渗入土壤。

2 系统的总体设计

整个控制系统由电源、微处理器、键盘、显示器、数据采集电路、数据存储器、输出驱动电路组成, 结构框图如图1所示。

2.1 LED显示接口电路的设计

本系统显示部分主要选用最常用的LED七段数码管来显示系统的数据和参数。如图2所示。

2.2 数据采集电路的设计

TLC549的片选信号由单片机P3.6引脚提供, TLC549的时钟信号由单片机的P3.1脚产生, 最终转换数据由单片机的P3.2脚读取。

3 系统软件的设计

控制系统软件模块主要包括主监控程序、系统时钟程序、按键监控及处理程序、动态显示程序、AD转换驱动程序、24C16驱动程序及输出控制程序, 主要流程图如图3所示。

4 结论

本文主要设计了一款基于STC89C51单片机的智能微喷灌控制器的开发过程, 该控制器以目前比较流行的单片机为控制核心, 硬件电路由电源模块、键盘显示器接口电路、数据采集电路及输出驱动电路等组成;系统软件使用目前最流行的51系列单片机的开发软件Keil软件进行开发, 软件开发过程主要包括:主监控程序的设计、系统时钟程序设计、按键识别和处理程序设计、动态显示程序设计和转换程序的设计等。控制器具有多任务处理能力, 它能同时控制多组电磁阀独立工作, 互不干涉, 以完成不同定时要求的多站灌溉控制。控制器具有多种喷灌控制模式的选择功能, 用户可为每路输出选择不同的喷灌控制模式。可实现无人值守灌溉。

参考文献

[1]庞鸿宾.节水农业工程技术[M].郑州:河南科学技术出版社, 2000.

[2」冯广志.微灌技术研究与推广的几个问题[J].节水灌溉, 2002 (2) .

[3]马学良.国内外设施农业节水灌溉设备技术现状与发展[J].节水灌溉, 1999 (2) .

STC51单片机 篇8

物体只要其温度超过绝对零度就能产生红外辐射, 这种辐射具有光反射与折射等一系列特征, 红外光探测因其非接触特点而得到广泛的重视[1]。在军用上, 红外探测用于火控跟踪、制导、目标侦察、警戒、空降导航、舰船导航等;在民用上, 广泛应用于工业设备安全监控、交通管理、救灾等[2]。红外探测就是用仪器接受被探测物发出或反射的红外线, 从而掌握被探测物所处位置的技术[3]。针对现代故障检测非接触技术指标的要求, 以TN9红外探测器作为测温模块, 单片机STC89C51为核心设计了一种红外测温仪。

1 红外测温原理

红外测温仪的测温原理是黑体辐射定律, 自然界中一切高于绝对零度的物体都在不停向外辐射能量, 物体向外辐射能量的大小及其波长的分布与它的表面温度有着十分密切的联系, 物体的温度越高, 所发出的红外辐射能力越强[4]。黑体的光谱辐射出射度由普朗克公式 (1) 确定。图1是不同温度下的黑体光谱辐射度图。

由图1中曲线可知黑体辐射特征:①随着温度的升高, 与光谱辐射度极大值对应的波长减小;②在某一温度下, 黑体的光谱辐射度随着波长连续变化, 且对应波长一个极大值;③温度变化, 黑体辐射曲线也随着变化[5]。全辐射测温法是根据所有波长范围内的总辐射而定温, 得到的是物体的辐射温度。检测电压之间与辐射体温度的关系式为:

式 (2) 中K=Raεσ, 由实验确定, 定标时ε取1;R-探测器的灵敏度;a-与大气衰减距离有关的常数;ε-辐射率;σ-玻耳兹曼常数, T-被测物体的绝对温度。

由式 (2) 知, 可以通过检测电压而确定被测物体的温度, V与T的四次方成正比, 进行线性化处理并对辐射率修正得到物体的表面温度, 其校正式为:

式 (3) 中Tr为辐射温度 (表观温度) , ε (T) 为辐射率, 取0.1~0.9。辐射率修正后的被测物体的实际温度为温度测量值加上环境温度。

2 红外测温仪硬件设计

2.1 系统方案

红外测温仪采用模块化设计, 它的硬件结构由STC89C51单片机模块, 红外测温模块, RS232转换电路模块, 电源模块, 键盘模块和LCD显示模块组成。系统原理:红外测温模块负责温度数据的采集、测量, 并将采集到的数据通过数据端口传送给STC89C51单片机;STC89C51单片机负责控制启动温度测量、接收测量数据、计算温度值, 并根据取得的键值控制显示过程;RS232转换电路模块可以使单片机方便地同PC机进行串口通信, 系统的硬件结构框图如图2所示。

2.2 处理模块及显示模块

本系统采用STC89C51作为数据处理芯片, 系统通过S键进行复位, 时钟采用外部12MHz振荡电路。图3为单片机STC89C51处理显示模块, 加载相应程序的STC89C51把红外测温模块传来的数据加以处理, 送LCD显示屏显示。系统采用LCD1602A液晶屏, LCD1602液晶第1、2脚接驱动电源;第三脚VL为液晶的对比度调节, 通过在VCC和GND之间接一个10k多圈可调电阻, 中间抽头接VL, 可实现液晶对比度的调节;单片机的P2.5、P2.6、P2.7口分别接液晶控制线RS、R/W、E;单片机的P0口接LCD1602A数据线;液晶显示器 (LCD) 具有功耗低、超薄、体积小等优点, 被广泛用于低功耗智能仪表中[6]。

2.3 红外测温模块

系统采用TN9红外探测器作为测温模块, 它是一种集成的红外探测器, 集成有温度补偿电路和线性处理电路;测量距离大约为30米, 测量回应时间大约为0.5秒;可方便地与单片机 (MCU) 传输数据[7]。该红外测温模块的数据输出信号和脉冲信号分别接单片机P1.5, P1.6口, 测温控制端接P1.7口, 图4是红外测温模块电路图, 其中V为电源引脚VCC (取3.3V) ;D为数据接收引脚;C为2k Hz Clock输出引脚;G为接地引脚;A为测温启动信号引脚, 低电平有效。它通过红外温度传感器扫描被测物体, 并把相应的红外辐射数据通过P1.5和P1.6口传送给单片机模块。红外测温模块在CLOCK的下降沿时接收数据。当系统检测到Item为0x4c H时, 环境温度=Temp/16-273.15, 式中Temp为十进制数。

2.4 MAX232A电平转换模块

系统采用MAX232转换电路完成单片机与PC机进行串口通信。因单片机STC89C51识别的数据为TTL电平, 与PC机的串行MAX232C标准的接口不兼容, 必须经MAX232芯片, 以实现MAX32C接口电平和TTL电平之间的转换[8], 另外, 再加上通信软件, 就可实现PC机和STC89C51之间的串行通信。PC机通过串行口直接传送接收STC89C51传输的串行数据, 把数据存入数据存储器。其传送距离最大约为15米, 最高速度为20kb/s。MAX232转换电路如图5所示。

3 系统软件的设计

红外测温仪的软件设计同样采用模块化, 系统把整个系统分成若干模块, 包括主程序模块, 红外测温模块, 键盘扫描模块和显示模块。当红外测温仪接通电源时, 首先对STC89C51初始化, 接着判断是否有键输入, 若没有键输入, 则继续判断;若有键输入, 则判断是否是红外测温。若不是就返回, 是则进行红外测温, 接收数据, 并将计算的温度值显示出来。并等待结束测温命令。再判定是否结束温度测量, 若没有结束则继续测温, 若收到结束命令则返回开机显示, 重新判断。系统流程如图6所示。

红外测温流程图如图7所示, 其首先定义一个字符型数组用于存放读取到的一帧数据, 然后启动测温, 读取数据, 数据是在脉冲的下降沿一位一位传送的。把五个字节数据都读完后判断第一个字节是否为0x4c或0x66并且第五个字节为0x0d, 若是则计算温度值返回, 否则继续读取数据。

4 结束语

红外不能测量其内部温度, 只能测量物体表面温度。测量时:瞄准目标, 定位热点, 作上下扫描运动, 直至确定热点。系统测试针对酒精灯火焰, 系统用精度较高热电偶测温仪标定后, 对酒精灯火焰温度进行测量。测试表明:系统响应时间0.5秒, 温度值分辨力达到0.1℃, 精度等级达到1级。其与传统的测温方式相比, 具有响应时间短、非接触、操作简洁。采用便携式设计, 可用于大型电气设备温度监测, 电子电路故障检测等各种需要测温场合。使用时注意在蒸汽、尘土、烟雾环境中, 会影响测温准确度。

摘要:在工业生产中, 一些大型电气设备运行中需要监测其表面的温度来判断运行状况是否正常, 依靠人工接触式检测温度既有一定的危险性, 又费时费力。文中在介绍红外测温原理的基础上, 设计了一种以STC89C51单片机为核心的红外测温系统, 包括系统硬件电路和软件系统。STC89C51单片机负责控制启动温度测量、接收测量数据, 并按照单片机中的温度值计算出目标的温度值, 由液晶LCD显示出来。

关键词:红外测温,STC89C51单片机,TN9红外传感器,LCD1602

参考文献

[1]戴景民.多光谱辐射测温技术研究[M].哈尔滨:哈尔滨工业大学, 1995.

[2]贾海瀛, 关代宇, 刘明成.一种精准的红外测温系统的研究[J].天津师范大学学报, 2010, 29 (3) :34-38.

[3]曾健平, 曾云.非接触式红外测温原理及误差分析[J].测量与设备, 2008 (1) :23-25.

[4]柳刚, 黄竹邻, 周旲.非接触式红外测温仪的研制[J].光电子技术及信息, 2009, 17 (6) :69-71.

[5]兰羽, 王纳林.基于仪表放大器电子秤的设计[J].信息技术, 2012 (11) :134-136.

[6]陈东生, 李尚政.红外测温仪在车削工件温度场监测中的应用[J].激光与红外, 2008, 21 (10) :55-59.

[7]孙志远, 李清安, 乔彦峰.提高红外测温系统测温精度的研究[J].仪器仪表学报, 2009, 27 (6) :37-39.

STC单片机波特率自适应方法 篇9

关键词:STC单片机,串口通信,波特率选择,自适应方法

0 引言

串口RS 232是工业控制、仪器仪表、计算机外设常用的一种通信协议。串口通信的波特率一般都是选取标准系列值,并要求通信双方严格遵循相同的波特率,实际应用中,一台设备往往要与多种其他设备联络,为适应各种不同设备的通信速度,就要求该设备能适应不同的波特率,实现这种要求的常见方法有两种,一是增加波特率选择开关,二是设计能自动适应各种常见通信速度的串口。第一种方法增加了硬件,同时针对不同对象需要重新设置开关,在不清楚对方波特率的情况下还无法使用。第二种方法采用软硬件结合,通过检测、计算,自动选择正确的波特率,实际使用极其方便。

自适应波特率串口的实现方法通常有以下几种:

(1)协议约定通信开始时主机固定发送1个字符,从机以不同的波特率试探接收,当接收到的数据与约定相同时,确定该波特率即是正确的通信波特率。

(2)协议约定通信开始时主机发送1串字符,从机以某固定波特率接收,然后通过软件分析接收到的数据,计算出接收数据与发送数据之间的倍数关系,从而确定正确的波特率。

(3)协议约定通信开始时主机固定发送1个字符,从机用单片机定时器检测RXD上的信号宽度,通过计算来确定主机的波特率。

以上3种方法,第一种由于需要多次试探,效率很低;第二种计算量过大,不适合单片机处理;第三种方式单片机有现成的定时器资源,计算也相对简单,所以优选这种。

要测量脉冲宽度,前提是单片机的时钟信号必须稳定。目前很多STC单片机可选外接晶振时钟或片内RC振荡时钟,片内RC振荡时钟省去了外部的晶振等元件,成本降低、电路板的体积也可以缩小,这对成本及体积敏感的应用很具优势。但选用片内RC振荡时,频率会有±15%左右的误差,频率的稳定性也比外接晶振要差,按理论计算值设置波特率参数,无法保证可靠的通信,但按以上自适应波特率串口的第三种方法,每次通信前实测、计算、确定波特率常数,就可以实现稳定可靠的通信,这样充分利用了STC单片机的优势。

1 STC单片机的特点

标准51芯片由于定时器最高分辨率只有1μs,对于较高的通信波特率来说,测量精度不够,导致计算值不准,无法正常工作。STC系列单片机是在标准51单片机基础上发展起来的,它增加了很多实用的接口电路,扩大了时钟的频率范围,设计出了1T时钟的芯片,可以通过软件对系统时钟分频,并提供了片内RC振荡时钟,在目前51芯片的市场占有极大的份额。STC系列单片机采用片内RC振荡时钟、自适应波特率串口通信技术,可以广泛地应用于分布式控制、智能仪表、通信等行业。

2 自适应工作原理

STC单片机采用异步通信,UART工作于模式1(8位UART,波特率可变),用定时计数器2做波特率发生器,工作于模式2(8位自动重装模式),主从机按图1方式连接,从机自适应主机的波特率。

自适应过程由主机发送联络字符开始。为了使从机获得最大的测量脉宽,提高测量精度,由主机发送二进制“0”。如图2所示,二进制“0”由1位起始位,8位数据位(低位在先)及1位停止位构成,其中1位起始位和8位数据位全为0,所以低电平的宽度为9 b。

从机查询RXD引脚的电平,检测到低电平后就启动定时器0开始计时,再检测到高电平就停止定时器0计时,根据定时器0的定时值就可以计算出主机的波特率。

当时钟分频寄存器CLK_DIV=0(不分频),特殊功能寄存器AUXR=0xC0(T0用1T时钟),则:

式中fosc为从机的时钟频率。

而STC51系列单片机在UART模式1,时钟模式为1T时,其波特率公式为:

由式(2),式(3)可导出UART时钟为1T时:

STC51系列单片机在UART模式1,时钟模式为12T时,其波特率公式为:

由式(2),式(5)可导出UART时钟为12T时:

从机UART在模式1下,将式(4)或式(6)计算结果作为定时器1重装值,设定通信参数,通过串口回送应答信号给主机。主机如正确接收到从机回送的信号,就说明从机已完成波特率自适应,可以开始正常通信了。

3 误差分析

为保证可靠通信,要求通信双方的波特率相对误差小于2.5%。

在自适应波特率校准系统中,误差主要来自两个方面,一是定时器T0启动和停止滞后造成的误差ΔT0;二是波特率发生器T1本身固有的一个机器周期误差ΔT1=±1。由于STC51单片机采用1T时钟定时,ΔT0误差只有标准51系列芯片的1 12,系统误差主要由ΔT1决定。

以STC12C5620为例,当采用片内RC振荡,时钟频率通常在5.2~6.9 MHz之间。当时钟频率为5.2 MHz,SMOD=1时,UART时钟分别按12T,1T计算,见表1,表2。

表1、表2中加粗部分表示可以选用的波特率值,由表1、表2可知,只要编程时选择合适的时钟,在5.2 MHz时钟频率下,波特率可以在300~115 200 b/s之间实现自适应,由T1取整带来的误差在0.5%以内。当系统时钟为6.9 MHz时,用同样的方法计算,也可以证明波特率可以在300~115 200 b/s之间实现自适应,由T1取整带来的误差也在0.5%以内。由此可见,STC12C5620采用片内RC振荡,可以在300~115 200 b/s之间完成波特率自适应,实现稳定可靠的通信。

4 软件流程与程序

主机软件流程图如图3所示,从机软件流程图如图4所示。

以下为C51波特率自适应程序:

5 应用实例

采用STC12C5620设计的重力检测开关,如图5所示。为降低成本、缩小体积,采用了片内RC振荡,不设按键及显示。重力检测开关首次工作前需设定一些参数,并校准。由于没有键盘及显示,采用和计算机联机设置、校准。本电路采用了上述的自适应波特率工作方式,由PC机作主机,通过串口来初始化重力检测开关的各参数。

计算机设置界面如图6所示。

设置时,将重力检测开关与计算机之间用RS 232线连接好,然后点击PC机软件界面上的“连接串口”按钮进行波特率自适应,当界面上状态栏提示“连接串口成功!”时,表示波特率自适应工作正确完成,可以进行参数设置和校准操作。设置、校准后,重力检测开关就可脱机正常工作了。

经反复验证,该电路在300~115 200 b/s波特率范围内可稳定通信工作。

6 结语

该波特率自适应方法,可扩展应用于其他单片机系统,解决对方的波特率未知、或对方的波特率有偏差而无法正常通信的问题,即使对方的波特率不是标准值也可正常工作,具有较大的实用价值。

参考文献

[1]南通国芯微电子有限公司.STC12C5628AD数据手册[S].南通:南通国芯微电子有限公司,2011.

[2]刘燕,陈兴文.串行通信的波特率自动检测方法的实现[J].大连民族学院学报,2008,10(1):31-34.

[3]周建华,万书芹,薛忠杰.一种新颖的UART自适应波特率发生器的设计[J].半导体技术,2007,32(12):1052-1055.

[4]赵达飞.波特率自适应的模拟串行通信[J].现代计量仪器与技术,2009(7):58-59.

[5]赵炯.串行数据传输协议的剖析研究[J].计算机工程,2004,30(9):105-108.

[6]马玉春.串行通信协议的研究及应用[J].计算机应用研究,2004(4):228-232.

[7]张雷,梁建武,陈英.串行通信协议的研究与实现[J].现代计算机,2006(9):57-59.

[8]严天华,周辉.效率串行通信协议的设计[J].单片机与嵌入式系统应用,2003(6):75-77.

[9]乔渠,赵国豪,王文记.串行通信波特率的自动识别[J].单片机与嵌入式系统应用,2007(2):33-35.

上一篇:审丑文化下一篇:阻塞高压