stc89c52单片机范例6篇

前言:中文期刊网精心挑选了stc89c52单片机范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

stc89c52单片机范文1

关键词:stc89c52单片机;温度控制;温度检测

中图分类号:TP273文献标识码:A文章编号:1009-3044(2011)04-0902-02

A Temperature Control System Based on STC89C52 MCU

WU Jian, HOU Wen, ZHENG Bin

(National Key Laboratory for Electronic Measurement Technology, North University of China, Taiyuan 030051, China)

Abstract: This paper discusses a STC89C52 MCU to increase the technical indexes of accused of temperature control system,Presented the design of the MCU circuitry of system, temperature control output circuit, temperature detecting amplifier circuit and so on. Realized of furnace temperature automatic control and improve the precision temperature control. Be provided with important engineering use value.

Key words: STC89C52 MCU; temperature control; temperature test

随着工业技术的不断发展,利用温度控制表,温度接触器的控制方式已不能满足高精度、高速度的控制要求,其主要缺点是温度波动范围大,受仪表本身误差和交流接触器寿命的限制,通断频率很低。本文设计了一种基于STC89C52单片机控制的温度控制系统。它使用了较少的器件和较为简单的电路设计,因此具有成本低、控制方便,实用性强等特点。

1 系统设计

本系统是对电炉炉温进行控制的微机控制系统。控制方式是单闭环控制形式。温度控制系统是以STC89C52单片机为控制核心,其系统结构框图如图1所示。

键盘将温度设定值和温度反馈值送入单片机,然后经过运算得到输出控制量,输出控制量控制控温输出电路得到控制电压,施加到驱动器上,从而控制电加热炉内温度。

2 系统硬件设计

硬件系统由单片机电路,温度检测放大电路,A/D、D/A转换电路,控温输出电路等组成。下面分别给予介绍。

2.1 单片机电路

STC89C52是一个低功耗,高性能的51内核的CMOS 8位单片机, 具有在线编程功能,不再需要启动像STC89C51那样的12V的VPP编程高压[1]。 使用简单且价格非常低廉。故本文使用STC89C52为系统的主控制器。单片机发送温度设定值和采集温度反馈值,并据此调节I/O的输出来控制温度的值。

2.2 温度检测放大电路

温度检测电路承担着检测电阻炉温度并将温度数据传输到单片机的任务。铂电阻最常应用于中低温区,精度高,稳定性好,具有一定的非线性,温度越高电阻变化率越小,测量范围一般为-200~850℃。目前应用最广泛的是Pt100。Pt100铂热电阻与温度的关系如下:

(1)

其中:Rt――温度为t℃时铂电阻的电阻值(Ω);R0――温度为0℃时铂电阻的电阻值(Ω);A,B,C――常数,3.96847×10-3 (℃-1);-5.847×10-7 (℃-2);-4.22×10-12(℃-3)。

信号放大电路采用OP07E放大器,温度信号输入采用差动放大模式,输入电压范围为+/-14V,输出电压范围为+/-12V。设计电路如图2所示。

U1放大器放大倍数为:

(2)

2.3 A/D转换电路

温度检测电路采集到的温度值为模拟信号,需要转化为数字信号才能被单片机处理。温度控制系统的A/D转换模块采用ADC0804型8位全MOS A/D转换器。转换时间约为100μs,转换时钟信号可以由内部施密特电路和外接RC电路构成的震荡器产生,当/CS与/WR同时有效时便启动A/D转换,经DATA口送入单片机,再采集第二个模拟量进行转换。

2.4 D/A转换电路

温度控制系统的D/A转换芯片采用DAC0832。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成[2]。DAC0832的主要特性参数:分辨率为8位;电流稳定时间1us;可单缓冲、双缓冲或直接数字输入;只需在满量程下调整其线性度;单一电源供电,电压范围为+5V~+15V;低功耗,功耗为200mW。

2.5 可控硅调功控温电路

温度控制电路采用可控硅调功率方式。双向可控硅串在50Hz交流电源和加热丝电路中,在给定周期里改变可控硅开关的接通时间改变加热功率,从而实现温度调节[3]。如图3所示。

可控硅驱动器MOC3041集光电隔离、过零检测功能于一身,具有体积小、功耗低、抗干扰能力强,无噪声等优点[4],RS、CS为吸收电路,起保护作用。经验公式如下:

Cs=(2~4)IT×10-3(uF)(3)

Rs=10~50Ω(4)

R17是触发器输出限流电阻,取51Ω。R16是驱动器的门极电阻,一般取值300-500Ω。

3 PID温度控制算法

温度控制技术大致可分为定值开关控温法,PID线性控温法。定值开关控温法通过硬件电路或软件计算判别,系统温度上升至设定点时关断电源,当系统温度下降至设定点时开通电源,因而无法克服温度变化过程的滞后性,致使被控温度波动较大,精度低。当我们不完全了解被控对象,或不能通过有效的测量手段来获得系统的参数时,最适合用PID控制技术。PID线性控温法主要取决于比例值、积分值、微分值[5]。只要三参数选取的正确,其控制精度是比较令人满意的。当执行机构需要的不是控制量的绝对值,而是控制量的增量时,需要用PID的“增量算法”。增量式PID控制算法可以通过(式5)推导出。

(5)

Uk――控制器的输出值;ek――控制器输入与设定值之间的误差;Kp――比例系数;

Ti――积分时间常数;Td――微分时间常数;T――调节时间。由(式5)可以得到控制器的第k-1个采样时刻的输出值为:

(6)

将(式5)与(式6)相减并整理,就可以得到增量式PID控制算法公式:

(7)

其中:

由(式7)可以看出,如果计算机控制系统采用恒定的采样周期T,一旦确定A、B、C,只要使用前后三次测量的偏差值,就可以由(式7)求出控制量。物理模型如图4所示。

4 系统软件设计

为了便于程序的调试与维护,系统全部程序采用模块化结构。由一个主程序和若干子程序组成。子程序主要包括A/D转换子程序、D/A转换子程序、LED显示子程序、增量式PID控制子程序、键盘控制子程序等,各子程序均能很快返回主程序,不会发生子程序时间过长等问题,子程序对相关事件的处理依靠标志位和判断标志位来完成。主程序通过调用各个子程序来完成所有的温度控制器功能。主程序的流程图如图5所示。

5 设计结果

设计的温度控制系统基于STC89C52单片机,采用了信号放大,可控硅控制等简单的电路,经过焊接、 组装、 调试后,可以很好实现控制功能,具有很强的实用性,尤其是具有体积小、 易移动等优点。 该方案也可以在功能上加以扩展,如加上LED电路,当到达我们想要的温度时绿灯亮,当超过我们想要的温度一定量程时红灯亮。

参考文献:

[1] 张俊谟.单片机中级教程[M].北京:北京航空航天大学出版社,1999:75-86.

[2] 小岛郁太郎.实现数字电路与模拟电路及软件的协调设计[J].电子设计应用,2009(6):15-20.

[3] 王海宁.基于单片机的温度控制系统的研究[D].合肥:合肥工业大学,2008.

stc89c52单片机范文2

关键词:Protues; 密码锁; 单片机; C语言

中图分类号:TN433-34文献标识码:A

文章编号:1004-373X(2010)19-0176-03

Design and Simulation of Electronic Code Lock Using STC89C52 MCU Based on C Language

JIN Gui, XIANG Guo-liang

(Department of Physics & Electronic Information Engineering, Xiangnan University, Chenzhou 423000, China)

Abstract: The implementation of an electronic code lock which was successfully simulated by Protues is introduced. It uses high reliable microcontroller STC89C52 to achieve the unlocking and identification of the code, adopts I2C bus-based E2PROM chip to complete the code′s storage, uses LCD1602 to prompt the program′s running state and working procedures, adopts buzzer to imitate the alarm and LED to imitate the switch. It is convenient to modify and add function by using C language program,which is more transplantable and reliable compared to assembly language.

Keywords: Protues; code lock; single chip microcomputer; C language

0 引 言

电子密码锁是现代生活中常用的加密工具。它克服了机械式密码锁密码量少、安全性能差的缺点,尤其是微控制器的智能电子密码锁,不仅具有电子密码锁的功能,还可引入智能化管理功能,从而使密码锁具有更高的安全性和可靠性。

电子密码锁通常使用ARM和单片机控制[1],单片机相对ARM实现较为简单,功能较为完善,因此使用单片机控制较多。用单片机控制的密码锁常使用汇编语言编写程序,显示器多数用数码管[2-3]。而本文所介绍的电子密码锁使用移植性及可读性强的高级语言C语言编写,便于修改和增减功能;同时采用显示清楚,功率消耗小而且寿命长的1602液晶显示器,显示更加直观,使用更加方便。从经济实用的角度出发, 采用STC89C52[4]单片机设计出一种具有密码设置、报警和防止多次试探密码功能的电子密码锁,通过Protues软件成功地进行了仿真。

1 系统工作原理

本系统以STC89C52单片机为核心,使用4×4矩阵键盘作为数据输入方式,驱动1602显示器提示程序运行过程和开锁的步骤。本系统的密码判断过程如下:

当使用者输入6位密码后按下BESURE键,单片机通过密码逐个比较,如果输入的6位密码和设定的密码完全相同,那么能成功驱动开锁模拟灯将锁打开。若输入6位密码与设定的密码不相同,按下BESURE键后,模拟灯不亮,可以按BACK键重新输入。由于输入密码过程中难免输入失误,如果密码输错,可直接按下BACK键重新输入,但是系统不允许无限次地按BACK键,以免密码被套用,当3次密码输入都错误,单片机将驱动蜂鸣器报警[5]。并且本系统输入密码还有时间限制,若在规定的时间内没有将正确密码输入也会报警。

修改密码功能如下:当密码输入正确后,按下SET键可新设置密码。每设定一位新密码,单片机将其送给E2PROM,当6位新密码都输入完毕,系统将自动回到程序开始,重新读取密码并保存,使用者需输入新的密码才能将锁打开。

2 系统设计

2.1 硬件支持

使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602、矩阵键盘、报警蜂鸣器、独立按键(模拟门的开关)、发光二极管(模拟锁的开关)和┤极管(放大电流)。

2.2 软件设计

本系统软件包括主程序模块、密码比较判断模块、修改密码模块、键盘扫描模块、液晶显示模块及定时程序等模块。系统程序流程如图1所示。

图1 系统程序流程图

2.2.1 主程序模块

主程序主要用于定义全局变量,给全局变量赋初值,初始化E2PROM,启动定时器以及从AT24C02[6]中读取密码,为整个程序提供数据。

2.2.2 密码比较判断模块

该模块的功能是将键盘输入的密码利用if语句与设定的密码进行逐个比较,若密码完全正确则开锁;若不正确,则按下BACK键,重新输入密码,每按下BACK键一次,输入次数将自加1,当3次都出错则报警。

2.2.3 密码修改模块

在密码输入正确情况下,可以按下SET对密码进行重新设置,每设定一位就将密码送给AT24C02存储起来,当设置6位密码完毕后,系统将自动跳到程序开始,调用新设置的密码。

STC89C52向AT24C02写入密码子程序:

void write_byte(uchar date)

{

uchar i,temp;

temp=date;

for(i=0;i

{

temp=temp

scl=0;

delay1();

sda=CY;

delay1();

scl=1;

delay1();

}

scl=0;

delay1( );

sda=1;

delay1( );

}

STC89C52从AT24C02读取密码子程序:

uchar read_byte()

{

uchar i,k;

scl=0;

delay1();

sda=1;

delay1();

for(i=0;i

{

scl=1;

delay1();

k=(k

scl=0;

delay1( );

}

return k;

}

2.2.4 键盘扫描模块[7]

该模块具备功能有:逐列扫描键盘确定被按键的具置、判断键盘上有无键按下、消除去抖动、判断闭合的键是否释放等功能。

2.2.5 定时模块[8]

本模块用于对密码输入时间控制。在程序开始运行时首先对定时器进行了初始化,从按下PUT IN键开始,系统开始计时,当输入的时间达到规定的时间将立即报警。

2.2.6 液晶显示模块[9]

此模块包括液晶初始化、命令的输入、显示数据的输入。其中命令是用于控制液晶状态是否显示光标,光标是否闪烁,是否清除原来数据以及显示的具置。数据显示主要是将要显示的信息按需要准时显示出来。

3 系统仿真

为了方便程序调试,本文采用了Proteus仿真[10],仿真图如图2所示。

图2 系统仿真图

3.1 系统介绍

图2中U1为STC89C52是整个系统的核心,编写的程序以二进制的文件导入其中;U2为AT24C02,┑5和第6个引脚分别与单片机的P1.2和P1.3相连;LCD1为1602液晶显示器,引脚连接如图2所示;独立按键DOOR,当门关上为键按下状态;D1为模拟开锁灯,当密码正确,按下BESURE键D1将亮;BUZ1为蜂鸣器报警。当程序编写好并导入到单片机里后,按下┩2最下面的开始按钮,1602液晶显示器将提示密码锁的运行状态,系统开始工作。

3.2 开锁功能

当电源开启时,1602液晶显示Welcome欢迎界面,当按下PUT IN键后,显示器显示PUT IN CODES提示使用者输入密码,如图3所示。几秒后液晶显示器上提示将自动消失。此时可输入正确密码,且密码输入时显示*而不会将输入的数据显示出来。当输入密码完毕后,按下BESURE键,如果输入的密码正确D1将亮(D1作为开锁的模拟开关)。若密码错误,可以按下BACK键,程序将跳到loop(开始界面),重新输入密码,同时输入次数将增加一次。当3次都输入错误则自动报警,并且输入密码的时间必须在规定的时间完成,否则也会报警。

图3 液晶显示

3.3 密码设定

在密码输入正确后,按下SET键可对密码进行重新设置,液晶显示器显示SET CODS。同样几秒后提示信息将自动消失,此时开始重设密码。在密码设定过程中会将设定的数字显示出来,每输入一位密码需按下YES键确定,当设置的密码达到6位将自动回到启动界面。

4 结 论

(1) 成功仿真实现了1602液晶显示,密码开锁,密码设置,防止多次试探,报警等功能。

(2) 采用C语言编写程序,具有很强的移植性,为系统增减和修改功能带来了方便。

参考文献

[1]郭海英.基于单片机的电子安全密码锁的设计[J].现代电子技术,2005,28(13):95-97.

[2]赵益丹,徐晓林,周振峰.电子密码锁的系统原理、设计程序及流程图[J].嘉兴学院学报,2003(15):103-105.

[3]曾高荣,胡宁,高扬.一种新型电子安全密码锁的设计[J].电子科技,2003(8):44-45.

[4]张天凡.完全手册51单片机C语言开发详解[M].北京:电子工业出版社,2008.

[5]周功明.基于AT89C2051单片机的防盗自动报警电子密码锁系统的设计[J].绵阳师范学院学报,2007(4):112-115.

[6]刘振栋.EPROM芯片的特殊应用[J].电子工程师,1999(6):26-27.

[7]唐德礼,王襄.单片机学习机及编程器的设计与制作[J].现代电子技术,2005,28(12):117-120.

[8]倪淑艳,李晓波,于涵.单片机C8051F303在数字锁相式频率合成器中的应用[J].现代电子技术,2006,29(4):19-21.

stc89c52单片机范文3

【关键词】STC89C52RC;智能小车;超车;红外收发管;光电传感器

一、系统方案

1.1 功能与要求

1.1.1 功能

甲车车头紧靠起点标志线,乙车车尾紧靠边界,甲、乙两辆小车同时起动,先后通过起点标志线,在行车道同向而行,实现两车交替超车领跑功能。跑道如图1-1。

1.1.2 设计要求

(1)甲车和乙车分别从起点标志线开始,在行车道各正常行驶一圈。

(2)甲、乙两车按图1所示位置同时起动,乙车通过超车标志线后在超车区内实现超车功能,并先于甲车到达终点标志线,即第一圈实现乙车超过车。

(3)甲、乙两车在完成(2)时的行驶时间要尽可能的短。

(4)在完成基本要求后,甲、乙两车继续行驶第二圈,要求甲车通过超车标志线后要实现超车功能,并先于乙车到达终点标志线,即第二圈完成车超过乙车,实现了交替领跑。甲、乙两车在第二圈行驶的时间要尽可能的短。

1.2 系统分模块比较与论证

本系统主要由车体、控制器、电机驱动、红外收发传感器、无线收发模块、测距模块组成,现做比较分析如下。

1.2.1 车体的选择比较

方案一:采用四轮双电机电动车。这种电动车具有灵活性和体积较小的优点。但是一般的说来,它还具有如下缺点:首先,这种电动车结构简单,车轮较小而且容易与赛道表面打滑,虽然能够通过两个电机来实现转向,但是不容易控制。其次,这种电动车一般都是两个直流电机通过联轴器带动小车,力矩小,空载转速快,负载性能差,不易调速。

方案二:采用带舵机的电动小车。前端加舵机的电动小车可以精准的控制其转弯方向,能较好的完成题目赛道里的转弯要求。但是舵机小车的转向需要通过MCU对光电收发器进行信号采集,通过处理分别发送给电机和舵机从而控制小车的前进。其优点是转弯精确,能较好的完成转弯路径的实现,但相对其他类型小车成本高,控制较复杂。

方案三:采用履带式电动小车。选择RP5底盘的小车,它是大功率坦克车体,采用带电感的大扭力260马达,组合斜齿+金属齿,形成大扭力系统,具有动力性能强、底盘稳定性高、可原地转圈、转弯灵活精确等特点。履带小车可以完成本次题目的要求,达到转弯灵活,转弯角度可调,可满足小车运行平稳等要求,而且控制两个直流电机相对简单。

综上,选择方案三,使用RP5底盘履带式电动小车。

1.2.2 控制器的选择比较

方案一:采用凌阳公司的16位单片机,它是16位控制器,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点。处理速度高,尤其适用于语音处理和识别等领域。

方案二:采用宏晶科技公司的STC89C52RC单片机作为主控制器。本款单片机是单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。其编程下载使用较方便,而且能够完成对本题目要求较简单的控制。

51单片机控制简单,下载使用方便。其处理能力能够满足本题目的要求,故采用方案二。

1.2.3 红外收发传感器模块的选择比较

方案一:使用红外发射和接收管制作红外收发电路,红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。输出的高低电平通过电压比较器可以得到单片机可以识别的信号,从而进行控制。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响。

方案二:采用TCRT5000型光电对管模块。传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平,指示二极管一直处于熄灭状态;当无检测黑线出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时输出端为高电平。此红外收发模块运行稳定,感应灵敏,可以使单片机采集信号后对小车进行很好的控制。

为使红外收发管感应黑色胶布线保证灵敏从而控制小车,使用方案二的TCRT5000红外收发模块。

1.2.4 电机驱动模块的选择比较

方案一:采用专用芯片L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。

方案二:对于直流电机用分立元件构成驱动电路。由分立元件构成电机驱动电路,结构简单,价格低廉,在实际应用中应用广泛。但是这种电路工作性能不够稳定。

为使电机稳定运行,能够灵活控制小车行进,选用方案一。

1.2.5 避障和牵引模块的选择比较

方案一:采用超声波测距避障。超声测距是一种非接触式的检测方式。与其它方法相比,它不受光线、被测对象颜色等影响。对于被测物处于黑暗、有灰尘、烟雾、电磁干扰、有毒等恶劣的环境下有一定的适应能力。而且超声波传感器具有结构简单、体积小、信号处理可靠等特点。

方案二:采用激光、雷达、摄像等复杂方式测距避障,可以得到精确的距离,但本题并不要求能够得到两车间精确距离,而且控制电路过于复杂,较难实现。

方案三:采用E18-D80NK光电传感器进行避障,这种光电开关具有良好的开关特性,输出测量障碍物距离可调,可自己设置感知物体的距离。在输出端上拉10K电阻后得到5V电压,方便单片机进行控制。

综上,本系统通过避障模块实现的功能是防止撞车的发生而且保证两车间距离,不需要得到精确的距离值,故可以采用方案三,选用E18-D80NK光电传感器进行避障。

1.2.6 总体方案设计与比较

方案一:利用赛道的固定性,采用单片机控制两个小车精准转弯,按赛道和题目要求,严格按照规定好的路线进行两个小车的行进,如转弯和进、出超车区;同时两车间利用无线模块进行通信,通过调节速度实现两个小车的超车;通过光电开关可以进行避障防止撞车发生。此种方案程序复杂,容易受赛道、小车性能等因素干扰,很难实现。

方案二:利用红外反射发送接收开关,使小车在赛道内能够识别边界线、起点/终点标志线、转弯标志线等黑胶带线,从而可以循迹和转弯行进,完成题目要求。此种方案能控制小车按照赛道边缘行进,但在超车区进入和外出部分容易掉出赛道,同时两车进行超车时,单纯利用循迹很难实现。

方案三:综合以上两种方案,在小车的红外收发管检测到转弯标志线车区的信号时,小车按照固定的程序进行相应的行进如转固定角度的方向。同时,可利用红外收发管检测赛道内、外边线,防止小车走出赛道。两车进行超车时,利用无线模块进行通信,调节各自速度,同时有光电传感器的保证两辆车间的距离,使超车安全稳定的完成。此种方案可以完成小车在行车道的行走,并在超车区及附近安全行驶。

综上所述,方案三能够相对完整、稳定的完成题目提出的各项要求。

1.2.7 系统方案确定与系统结构

进过反复论证与实际测试,最终确定系统方案如下:

(1)小车车体采用RP5底盘履带式电动小车两个;

(2)采用STC89C52RC单片机作为系统控制器;

(3)用TCRT5000红外传感器作为光电收发模块;

(4)L298N作为直流电机的驱动芯片;

(5)E18-D80NK光电传感器进行避障和牵引;

二、系统理论分析与计算

2.1 信号检测与控制分析

2.1.1 黑胶带线的检测

小车对黑胶带线的检测是通过接在前端的三个红外收发管完成的,分别标记为左、中、右红外收发管,三个传感器共同工作完成小车的定位和标记识别。对应信号的小车位置和相应动作如表2-1所示。

表2-1:对应信号的小车位置和相应动作

左管 左中管 右中管 右管 小车位置 小车相应动作

× × × × 行车道 正常前进

√ √ √ √ 起点 不动作

转弯标志线 进行转弯

超车标志区(第4条) 进入超车区

√ × × × 跑道内边界 向右调整

× × × √ 跑道外边界 向左调整

2.1.2 前车识别检测与超车

对于小车的超车功能,前车在进过超车标志区后,进行减速缓慢行驶,后车也通过超车标志区后,用光电传感器E18-D80NK对前车进行检测,如果单片机识别到10cm距离的前车,则开启超车程序,在超车区完成超车。

2.2 两车之间的通信方法

两车要完成互相超车的行为,必须进行通信,才能即时的对被超过的车进行控制。甲车进入超车标志区后,进行减速前进,待乙车也进入超车标志区,光电传感器检测到甲车后,按固定路径超车;随后超车完成后,乙车成为前车,再通过甲车前端的光电传感器使其恢复原速前进,从而完成一个超车的过程。

三、电路与程序设计

3.1 电路设计

3.1.1 红外收发管电路设计

TCRT5000红外对管模块采用高发射功率红外光电二极管和高灵敏度光电晶体管组成,输出的高低电平通过电压比较器可以由单片机识别,从而得到传感器信号。传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,光敏三极管一直处于关断状态,此时模块的输出端为低电平;被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,光敏三极管饱和,此时模块的输出端为高电平。

3.1.2 光电传感器电路

E18-D80NK模块是开关电路。集发射与接收于一体的光电传感器。输出端口接上拉电阻可输入至单片机I/O口,进行障碍物的信号检测。

3.1.3 电机驱动电路

电机驱动采用L298N驱动电路,由单片机P1口接四路输入和两路使能信号,从而控制两个电机进行正反转。

3.2 程序设计

程序流程图如图3-1。

四、测试方案与结果

在自制的标准赛道上,将两只小车分别置于起点,小车启动后,均可行进,能完成一圈的行走,最后回到起点。通过观察和测试得到两个小车直行速度不同,一快一慢。这样的情况导致甲、乙两车在多圈互相超车时,不能控制间距,直接导致发生碰撞。因此采用在快车前部、后部和慢车前部安装光电传感器,使得两车间距能够保持一致。这样第一圈和第二圈的软件设计可以得到循环使用,达到多圈互相超车的控制。

测试可得,系统俩只小车能完成各个模块的功能,如检测黑线不出赛道、光电传感开关防止撞车、进入超车区进行超车并继续行进等,但由于赛道材质等原因,超车动作不能稳定实现。

参考文献

[1]黄智伟.全国大学生电子设计竞赛系统设计(第2版)[M].北京:北京航空航天大学出版社,2011.1

[2]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2003

[3]阎石.数字电子技术基础[M].北京:高等教育出版社,1983

[4]韩毅,杨天.基于HCS12单片机的智能寻迹模型车的设计与实现[J].学术期刊,2008,29(18):1535-1955.

[5]张桂香.单片机现场应用中的几个技术问题[B].湖北:华中科技大学出版,2007.6

[6]吴金戍.沈庆阳,郭庭吉. 8051单片机实践与应用[M].山东:山东大学出版社,2003.4

作者简介

薛鹏,男,1989年生,东北大学信息科学与工程学院,检测技术与自动化装置硕士研究生,研究方向:生产过程参数测量与优化控制系统

安哲,男,1989年生,东北大学模式识别与智能系统硕士研究生,研究方向:控制系统设计及半实物仿真

stc89c52单片机范文4

关键词:智能小车;STC89C52单片机;定向行驶;指南针;TCRT5000

1引言

近年来智能小车的发展非常迅速,在工业、科研甚至是军事领域都得到了很广泛的应用,智能小车能实现在无人操作的情况下,按照人为预先设定的情况工作,也可以根据现场的实际情况进行判断做出相应的响应,并稳定工作。本文以STC89C52单片机作为微控制器,设计并实现了块的智能定向循迹小车系统。

2 系统整体设计

整个系统由STC89C52最小系统控制模块、L298N驱动模块、GY-26指南针模块、TCRT5000红外光电传感器模块和电源转换模块构成,如图1所示。

STC89C52模块为核心,通过指令获取指南针模块所测得的方位角度值,并辅以红外模块TCRT5000的边界检测结果,获得小车的方位,再通过分析与比较,将小车的转向以及两电机转速调整的信息输出给电机驱动模块,从而完成小车的行进以及位置调整。电源转换模块负责给系统的各模块供电。

3系统单元模块设计

3.1 控制模块

STC89C52模块控制各个功能模块数据的读入、处理、输出,使各个模块连接在一起组成一个有机整体。主要由STC89C52单片机和电路组成的最小系统。单片机最小系统包括开关指示电路、复位电路、时钟电路等。

3.2 红外检测模块

TCRT5000红外传感器作为红外边界检测模块的核心部分。当红外线未被反射或者发射的信号很弱,光敏三极管会处于关断状态,模块输出高电平;反之,当被测量的物体在检测的范围内,则信号足够大使三极管饱和,模块输出低电平。红外检测模块电路图如图2所示。

3.3 电机驱动模块

采用L298N作为电机驱动芯片,需要两组驱动电路驱动小车的两个后轮。L298N配合单片机的方式可以实现对小车速度的精确控制。驱动电路图如图3所示。

3.4 指南针模块

系统采用GY-26型号的一款平面数字罗盘模块,其电路核心是型号为HMC1022的磁阻传感器和PIC16F690单片机。本模块主要用于实现小车在没有黑色轨迹线的地点进行定向行驶。GY-26指南针模块的计数参数如表1所示。

3.5 显示模块

LCD1602液晶模块作为显示部分,用于显示小车的测量角度值、目标角度值、当前角度值和转向控制等数据。

3.6 电源模块

本系统的中的电机驱动模块采用12V的锂电池供电;其它模块机如单片机最小系统、指南针、红外检测模块需要5V的供电电压,采用LM7805稳压芯片将12V转成5V,达到系统电压的要求。

4 程序设计

4.1 主程序流程图

系统的软件设计部分以指南针模块为主体,小车左右两侧的红外检测模块为辅助,获取小车当前位置角度值,通过单片机分析模块返回的角度数据,判断小车转向及转向角度,驱动两个电机,调整小车位置,并通过液晶显示辅助观察小车行驶情况,从而实现小车的定向行驶功能。主程序流程图如图4所示。

4.2 位置角度值获取程序

位置角度值的获取,依靠的是指南针模块,通过I2C协议,单片机读取其角度值。其整体的程序流程图如图5所示。

4.3 小车转向及角度判断程序

判断转向及转向角度的程序流程如图6所示。根据初始角度值或目标角度值dat0,及当前位置角度值dat1的数值,来调整当前的姿态。

5 结束语

本系统采用指南针模块电路准确定位出小车的所在方向,通过STC89C52系统对采集到的方位数据进行处理并控制L298N驱动芯片,改变两电机的转速,实现了小车直行、转弯功能,无轨迹定向行驶。此外,采用TCRT5000红外光电传感器模块,实现了轨道边沿线及转向标志线的检测及定向转弯。

参考文献

[1] 薛小铃,刘志群,贾俊荣.单片机接口模块应用与开发详例[M].北京:北京航空航天大学出版社,2010.

[2] 高月华.基于红外光电传感器的智能车自动循迹系统的设计 [J].光电技术应用,2009(2):1-5.

stc89c52单片机范文5

关键词:数码管;单片机;智能;DS1302

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)34-0264-03

Abstract: STC89C52 single-chip microcomputer as the core, this system USES special clock chip DS1302 in digital tube display digital electronic clock, and can through the button to adjust their own, the electronic products are widely used, such as conference room, the guard etc. In the age of the electronic products, especially with single-chip microcomputer as the processor's civil electrical appliance products with superior performance, good reliability, high cost performance.

Key words: Digital tube; single chip microcomputer; intelligent; DS1302

电子时钟已成为人们生活中的必需品,广泛用于家庭、车站、会议室等场所,数字化的时钟给人们的生活带来了极大的便利,并且可以在时钟原有的功能上进行扩展,如定时报警、通断动力设备、甚至各种电气的定时启动,因此对电子时钟的设计是具有实际意义的。

1 系统硬件电路设计

1.1 时钟系统方框图

根据系统的功能要求,初步确定该系统由主控模块(STC89C52单片机)、时钟模块(DS1302)、按键模块、显示模块(数码管)共4个模块组成。系统方框图如图1所示。

1.2 r钟系统工作原理

DS1302与主控模块(STC89C52单片机)的连接简单,将引脚I/O、SCLK、RST与单片机的I/O口连接即可,将DS1302中的数据读取到单片机中,单片机将处理后的数据通过数码管显示出来。通过加入的三个独立按键,可进一步对时间进行修改,三个按键分别是菜单、+、-,例如第一次按下菜单键时选中分(此时‘分’闪烁),此时可以通过按下+键来增加分,按下-键来减少分;当第二次按下菜单键时选中时(此时‘时’闪烁)此时可以通过按下+键或-键可以增加或者减少时;当第三次按下菜单键后,修改后的时间数据写入DS1302时钟芯片并通过数码管显示出来。系统原理图如图2所示。

2 硬件电路元件

2.1 主控单元

STC89CC52是STC公司生产的一种低功耗、高性能的八位微控制器,内部具有8K用户应用程序空间。STC89C52沿用了经典的MCS-51内核,并在其基础上做出了改进,使芯片具有一些传统51单片机不具备的功能。内置4KB的EEPROM,复位电路,3个16位定时器/计数器,4 路外部中断,中断触发方式有下降沿触发和低电平触发两种,看门狗定时器,全双工串行口。另外STC89C52有空闲模式、掉电保护两种可供选择的节电模式,空闲模式下,CPU停止工作,但RAM、定时器/计数器、串口、中断等工作不会受到影响。掉电保护方式下,RAM内容被保存,直到下一次单片机工作时数据也不会丢失,但单片机会停止工作,如果让单片机继续工作,按下复位键即可,在单芯片上,由于STC89C52具有8位的CPU和可编程Flash的优点,因此可以为现在大多数嵌入式控制系统提供更多可选择的解决方案。

2.2 时钟芯片

DS1302是一个内部带有RAM的时钟芯片,并且有两个电源引脚(主电源,后备电源),这使DS1302芯片即使在没有主电源的情况下,仍然能够长时间的保证时间的准确性,DS1302芯片通过简单的串行接口与单片机进行通信,其工作电压为2.5V~5.5V。DS1302具有很全的计时功能。例如DS1302芯片具有可自动调整每月的天数和闰年的天数的功能,这使其更加智能化,该芯片还提供秒、分、时、日、月、年的信息,时钟可通过AM/PM 指示决定采用24 或12 小时制,本次系统只采用了时、分、秒进行计时功能。

2.2.1 DS1302与单片机之间的通信

DS1302 与单片机之间通过三个引脚(RST、I/O、SCLK)进行通信,它们之间采用同步串行通信的方式通信。

2.2.2 DS1302的优点

DS1302有两个电源引脚,分别为后备电源(VCC1)、主电源(VCC2),该芯片在不同的供电系统中供电方式也会发生改变,在单电源与电池供电的系统中由VCC1提供低电源,在双电源系统中由VCC2提供主电源。时钟芯片的供电模式取决于VCC1和VCC2的大小,当VCC2大于VCC1时,由VCC2给芯片供电;反之,由VCC1给芯片供电。因此在断电情况下,DS1302以VCC1备用电源进行其内部供电以保证下次开启时时间不会出现错误。对于连续长时间测量的控制系统来说,采用具有良好特性的DS1302作为记录测控系统中的数据记录时,可以进一步提高系统的工作效率。而且由于其软硬件设计也非常简单,因此对于长时间连续的测控系统来说是一个不错的选择。

2.2.3 DS1302引脚功能

VCC1:备用电源;

VCC2:主电源;

SCLK:时钟引脚,数据的输入与输出受其控制

I/O:数据传输接口;

X1和X2是振荡源,外接32.768KHZ晶振。

引脚图如图3所示。

2.3 显示模块

此系统选用的是四位一体的共阴极数码管,其内部已连接好,引脚(正面向上)从左到右顺序依次为1、a、f、2、3、b、dp(+)、dp(-),4、g、c、e,其中a、b、c、d、e、f、g、为段引脚,1、2、3、4分别表示4个数码管的位,dp(+)接电源正,dp(-)接单片机I/O口。

2.4 按键电路

本系统共采用3个独立按键,分别与单片机的P3.5、P3.6、P3.7口连接,分别是菜单、+、-功能。在调整时间时,可通过菜单键、+、-键对时间进行调整。在调整的过程中,数码管对应显示的调节项会闪烁,分别对时、分进行设置。按键电路与单片机的连接可参考图2。

3 软件设计

3.1 系统程序流程图

系统程序流程图如图4所示,程序执行时先进行系统初始化,再判断菜单键是否按下,当菜单键按下时进入时间修改模式,设置完成后把修改后的数据写入DS1302时钟芯片并通过数码管显示。若无按键按下则读取时间数据送入数码管@示。

3.2 DS1302程序流程图

DS1302时钟程序流程图如图5所示,芯片工作时,会进入初始化程序,芯片内的数据会在出现中断信号时被送入单片机中处理并通过数码管显示,然后判断是否按下菜单键,若按下,则设置完成后将数据送入时钟芯片并显示,若无按键按下则直接送入EPROM中并显示。

4 总结

本次系统设计实现了时钟显示及时间调整的功能,从设计前期的查找资料,到后期的动手设计,焊接实物等都让我收获良多,特别是将一个系统分成几部分小的模块,然后逐步实现各模块的功能,最后把它们组合成一个系统,这种方法是值得学习的。以后,我会进一步提高自己的动手能力,丰富自己的知识。

参考文献:

[1] 李朝青. 单片机原理及接口技术[M]. 北京:北京航天航空大学出版社,2012.

[2] 张毅刚.单片机原理及接口技术[M]. 北京:人民邮电出版社,2013.

[3] 李广弟.单片机基础[M]. 北京:北京航空航天大学出版社,2000

[4] 刘军.单片机原理与接口技术[M].上海:华东理工大学出版社,2006

[5] 谭浩强. C语言程序设计[M]. 北京:清华大学出版社,2010.

[6] 邱关源. 电路[M]. 北京: 高等教育出版社,2010.

[7] 郭天祥. 新概念51单片机C语言教程[M].北京:电子工业出版社,2009.

[8] 杨国田,白焰,董玲. 51单片机实用C语言程序设计与典型实例[M].北京:中国电力出版社,2009.

stc89c52单片机范文6

关键词:电磁密码箱,报警,蜂鸣器,STC89C52

一、总体方案设计

它是以STC89C52单片机为核心,配以相应硬件电路,完成密码的设置、存贮、识别、驱动电磁执行器并检测其驱动电流值、接收蜂鸣器送来的报警信号、发送数据等功能,单片机接收键入的代码,并与存贮在EEPROM中的六位密码进行比较,六位密码可以有298万多组密码供主人随意变换,保密性极高,可选密码组是连续排列的,如果密码正确,则驱动电磁执行器开锁;如果密码输入不正确,则单片机通过通信线路向智能报警器发出报警信号。

密码箱主要由矩阵键盘、单片机、外部硬件等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。实际使用时只要将单片机的负载由继电器换成电磁密码箱的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈,单片机将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给单片机的芯片处理,同时将接收来自无限循环的密码识别程序的报警信息也发送给智能报警器,从而使整个密码箱正常运行。

二、硬件现及单元电路设计

1、单片机的时钟电路与复位电路设计

本系统采用STC系统列单片机,相比其他系列单片机具有很多优点。一般STC单片机资源比其他单片机要多,而且执行速度快;STC系列单片机使用串口对单片机进行烧写,下载程序较为方便;STC51单片机内部集成了看门狗电路;且具有很强抗干扰能力。本系统采用内部方式的时钟电路和加电自复位的复位电路,由于单片机P0口内部不含上拉电阻,为高阻态,不能正常地输出高/低电平,因而该组I/O口在使用时必须外接上拉电阻。

2、键盘电路设计

在单片机应用系统中,一般都会设置键盘,主要为了控制运行状态,输入一些命令或数据,以完成特定的人机交互。键盘是与单片机进行人机交互的最基本的途径,其以按键的形式来设置控制功能或输入数据,按键的输入状态本质上是一个开关量。对于简单的开关量的输入可以采用独立式按键,这种方法接口简单,但占用单片机I/O端口资源较多。对于输入参数较多、功能复杂的系统,需要采用矩阵式键盘进行输入控制。本系统采用4×4矩阵式键盘。

3、液晶显示电路设计

液晶显示器(LCD)是一种功耗很低的显示器,它的使用非常广泛,比如电子表、计算器、数码相机、计算机的显示器和液晶电视等。电子密码锁中需要显示的信息比较多,为了能直观的看到结果,并且为了设计显的美观,使用总线和排阻进行简化连接方式,本设计采用液晶显示屏LCD进行显示,

4、存储芯片电路设计

I2C总线(Inter Intergrate Circuit BUS)全称为芯片间总线,它在芯片间以两根连线实现全双工同步数据传送,一条数据线(SDA)和一条串行时钟线(SDL),可以很方便地构成器件扩展系统。I2C总线采用两线制,由数据线SDA和时钟线SCL构成,为了对数据进行存储,本系统使用串行EEPROM芯片,AT24C01系列是典型的I2C串行总线的EEPROM,本系统采用此芯片进行数据存储。

三、系统软件设计方案

1、主程序流图

如图所示为主程序流程图,用户才可以自行设定和修改6位密码,密码输错会有提示声。只有键入6位开锁密码完成正确才能开锁。

四、系统的安装与调试

安装步骤1.检查元件的好坏。按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。2.放置、焊接各元件按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。

参考文献:

[1] 王千. 实用电子电路大全[M]. 电子工业出版社, 2004, 28-36

[2] 彭为. 单片机典型系统设计实例精讲[M]. 电子工业出版社,2 006, 69-88

[3] 张荣. 基于单片机的智能系统设计与实现[M]. 电子工业出版社, 2005, 35-38

[4] 朱勇. 单片机原理与应用技术[M]. 清华大学出版社, 2006, 14-16