AT89S52

2024-09-25

AT89S52(共9篇)

AT89S52 篇1

1 概述

无线呼叫系统的应用让人们的生活变得越来越方便。因此, 人们也是运用各种研究方法, 以便得到更好的呼叫系统。各种各样的呼叫系统的快速发展, 例如“伽利略计划”、“gps导航”、“北斗星导航”都是利用卫星构建了一个海天地一体化的综合信息服务网站, 实现了基于位置的信息服务。基于呼叫系统优点及其广泛的应用, 本论述设计了一种以AT89S52单片机为主控制器的无线呼叫系统。它的中央处理器采用价格低廉, 性能可靠的at89c52单片机。该无线呼叫系统的工作原理是从机按键 (a, b, c) 呼叫, 主机的led灯亮, 同时蜂鸣器响来报警, 1602显示呼叫的从机提示主机;主机通过按键回复从机。该系统的主要工作模块是:51单片机最小系统, 无线收发系统, 按键模块, 1602显示模块, 声光报警模块。该系统在使用过程中安全可靠, 可应用于医院、餐厅等。

2 无线呼叫系统总体方案设计

该系统主要由主机和从机两个部分组成。主机的主要模块是51单片机控制模块、液晶显示模块、声光报警模块、按键模块、无线收发模块。从机的主要模块是51单片机控制模块、液晶显示模块、按键模块、无线收发模块。主要功能是从机按键向主机发射信号呼叫主机, 主机受到从机信号后, 声光报警启动, 同时在液晶屏上显示是按键的序号。然后, 主机再通过按键回复从机接收到信号, 并在从机液晶屏上显示。

整个无线呼叫系统分主机和从机俩个部分:主机由中央处理模块、液晶显示模块、声光报警模块、按键模块、无线收发模块, 见图1所示;从机由中央处理模块、液晶显示模块、按键模块、无线收发模块组成, 见图2所示。

通过几种方案的比较, 为了保证设计的稳定度及节约成本。中央处理模块选择STC89C52。无线收发模块选择pt2262/pt2272组成的模块, 为了达到更好的显示效果, 没有采用数码管而是采用液晶显示。通过串口通讯电路将电脑上的软件烧到单片机中。

3 系统硬件设计

为保证发射机发射载频的稳定度和保证整个系统的稳定性。本论述设计方案, 使用无线发射和接收模块, 采用315MHz的频率作为载波, 采用幅度键控 (ASK) 调制。

3.1 单片机最小系统电路

单片机的最小系统是由组成单片机系统必需的一些元件构成的, 除了单片机之外, 还需要包括电源供电电路、时钟电路、复位电路。本设计采用的是STC89C52单片机。STC89C52是宏晶科技生产的新一代增强型的8051单片机, 指令代码完全兼容传统的8051单片机, 12时钟/机器周期和6时钟/机器周期可任意选择, 最新的D版本内部集成MAX810专用复位电路。STC89C52单片机最小系统见图3所示。

3.2 无线发射接收模块

无线发射接收模块采用的编码解码芯片是PT2262/PT2272。PT2262/PT2272芯片是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位的通用编解码电路, 编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码子, 解码芯片PT2272接收到信号后, 其地址码经过两次比较核对后, VT脚才输出高电平, 如果发送端一直按住按键, 编码芯片也会连续发射。当发射键没有按键按下时, PT2262不接通电源, 其17脚为低电平, 所以315MHz的高频发射电路不工作, 当有按键按下时, PT2262得电工作, 其第17脚输出经调制的串行数据信号, 当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号, 当17脚为低电平期间315MHz的高频发射电路停止震荡。所以高频发射电路完全受控于PT2262的17脚输出的数字信号, 从而对高频电路完成幅度键控 (ASK调制) , 相当于调幅度为100%的调幅。无线发射接收模块见图4所示。

3.3 声光报警模块

蜂鸣器发声原理是电流通过电磁线圈, 使电磁线圈产生磁场来驱动震动膜发声的, 因此需要一定的电流才能驱动它, 单片机IO引脚输出的电流较小, 单片机输出的TTL的电平基本上驱动不了蜂鸣器, 因此需要增加一个电流放大的电路。文章采用ULN2003高耐压、大电流达林顿陈列, 由7个硅NPN达林顿管组成。ULN2003是大电流驱动阵列, 多用于单片机、智能仪表、PLC、数字量输入卡等控制电路中。可直接驱动蜂鸣器、继电器等负载。同时, 74ls14是六反向施密特触发器。不存在放大的功能。施密特触发电路功能。当输入电压由低向高变化时, 若电压超过正向阈值电压Vt+, 输出为低电平。当输入电压由高向低变化时, 输入要低于另一个阈值电压Vt-时, 输出为高电平。相当于一个带缓冲的反相器。声光报警模块见图5所示。

4 结束语

本设计的目的是设计一个可以远程通过无线电磁波发射信息的系统。系统硬件设计比较合理。主要分51单片机最小系统、无线收发模块、液晶显示模块、声光报警模块。经过具体实验测试。液晶显示稳定, 无线收发模块收发数据准确, 系统基本实现了设计要求, 具有较强的实用推广性。

摘要:随着通信产业的发展, 人类的生活变得越来越方便, 互联网、卫星通信等技术影响着人们生活的方方面面。尤其是无线通信技术, 不仅节约成本, 而且不受地域的限制, 拥有前所未有的美好前景。在人们的日常生产生活中, 对讲机、收音机等一些应用无线技术产品的使用, 使人们的生活品质有了很大提高。针对这个问题, 本论述提出了一种基于AT89S52无线呼叫系统, 解决了现有呼叫布线麻烦, 安装困难等问题, 且具有即安即用, 使用方便, 具有一定现实意义。

关键词:AT89C52,无线发射,无线接收,蜂鸣器

参考文献

[1]吴碧.基于AT89S52温度测控系统的设计与实现[D].电子科技大学, 2011.

[2]彭泽林, 陈健.一种基于AT89C51的433MHz无线呼叫系统的设计[J].电子科技, 2005 (09) :2-5.

[3]杨小平.基于AT89S52和DHT21的温湿度测量系统设计[J].无锡职业技术学院学报, 2011 (01) :62-63.

[4]朱慧, 唐梦佳.基于无线射频技术的医院病房无线呼叫系统设计[J].医疗卫生装备, 2011 (02) :37-38.

[5]邵婷婷, 张明, 范圣花.基于单片机的太阳能病床呼叫系统设计[J].信息技术, 2011 (08) :61-62.

[6]果争, 许丽艳, 冯一航, 程亚冰.无线病房呼叫系统的设计[J].青岛大学学报 (工程技术版) , 2012 (02) :32-35.

[7]张世英, 刘万莹, 李仁兵.基于AT89S52单片机的温湿度监控系统设计[A].中国自动化学会, 2006.

[8]张恒.基于AT89S52和FAT16的SD卡读写系统设计[J].单片机与嵌入式系统应用, 2009 (08) :53-55.

[9]董秀洁, 赵程程.基于AT89S52和nRF905的无线遥控系统设计与实现[J].中原工学院学报, 2010 (04) :27-29.

[10]王安, 丁晓迪, 常亮.基于AT89C52单片机的病房无线呼叫系统的设计[J].硅谷, 2010 (20) :108.

AT89S52 篇2

关键词: AT89S52单片机 脉搏测量

1、引言

随着生活水平的提高,人们对各种测量仪器的要求越来越高,脉搏的测量是评价人体生理状况很好的方法。本文设计的脉搏测量器可以通过手指准确测量出脉搏跳动的次数,通过发光二极管显示脉搏的跳动,并通过数码管显示出1分钟内脉搏跳动的次数。它解决了传统测量方法的不确定性和随机性,是一款性价比较高的脉搏测量器。

2、方案设计

基于AT89S52单片机的脉搏测量器由电源模块、复位电路、晶振电路、AT89S52单片机、脉搏感应电路、脉搏处理电路、脉搏次数显示电路以及脉搏显示发光二极管等组成。系统设计框图如图1所示。

3、硬件设计

电源电路为单片机以及其他模块提供标准5V电源;晶振模块为单片机提供时钟标准,使系统各部分能协调工作;复位电路模块为单片机系统提供复位功能;单片机作为主控制器,根据输入信号对系统进行相应的控制;红外发射和接收模块用来检测脉搏信号;信号变换模块用来把红外接收头接收的脉搏信号进行放大和滤波,以便单片机进行处理;显示模块用来显示具体的脉搏测量结果,它会记录脉搏一分钟跳动的次数;发光二极管可以通过发光的形式显示脉搏的跳动。设计出基于AT89S52脉搏测量器电路原理图如2所示。

4、软件设计

4.1 程序流程图

基于AT89S52单片机脉搏测量器的程序流程图如图4所示。其中初始化包含了定时器的设定、优先级的设定和初始值的设置。

4.2 程序清单

基于AT89S52单片机脉搏测量器的程序清单如下所示。

#include

unsigned char i,j,t,m,YSHSHJIAN,YSHHCHONG[3];

unsigned int n,MBO;

unsigned char code

WXUAN[3]={0xf7,0xef,0xdf}; //位选

unsigned char code

XSHB[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84}; //字形码

sbit SHRU= P3^0;

void YSHI(YSHSHJIAN);

main() //主程序

{

TMOD=0X01; //定时器 T0 工作于方式 1

TH0=0xec;

TL0=0X78; //T0 定时时间为 5ms

IE=0X83; //开中断

IT0=1; //外部中断 0 为边沿触发方式

TR0=1; //开定时器 T0

for (;;) //脉搏指示灯控制

{

if(SHRU==0)

{

YSHI(200);

SHRU=1;

}

}

}

externa10()interrupt 0 //外部中断服务程序

{

SHRU=0; //点亮指示灯

if(n==0)

MBO=0;

else

MBO=12000/n; //计算每分钟脉搏数

YSHHCHONG[2]=MBO%10; //取个位数

MBO=MBO/10;

YSHHCHONG[1]=MBO/10; //取十位數

YSHHCHONG[0]=MBO/10; //取百位数

n=0;}

Timer0() interrupt 1 //定时中断服务程序

{

TH0=0xec;

TL0=0X78;

t=WXUAN[j]; //取位值

p3=p3|0x38; //P3.3~P3.5送 1

P3=P3&t; //P3.3~P3.5输出取出的位值

t=YSHHCHONG[j]; //取出待显示的数

t=XSHB[t]; //取字形码

p1=t; //字形码由 P3输出显示

j++; //j作为数码管的计数器,取值为0~2,显示程序通过它确认显示哪个数码管

if(j==3)

j=0;

n++;

if(n==2000) //10秒钟测不到心率,n复位

n=0

}

void YSHI(YSHSHJIAN) //延时子程序

{

for(;YSHSHJIAN>0;YSHSHJIAN--)

{

for(i=;i<250;i++)

}

}

5、系统仿真及调试

应用系统设计完成之后,就要进行硬件调试和软件调试了。硬件调试主要是把电路的各种参数调整到符合设计要求,软件调试可以利用开发及仿真系统进行调试。先排除电路故障,包括设计性错误和工艺性故障,一般原则是先静态,后动态。

5.1 硬件调试

利用万用表或逻辑测试器器,检查电路中的各器件以及引脚的连接是否正确,是否有短路故障。先要将单片机AT89S52芯片取下,对电路板进行通电检查,通过观察看是否有异常,是否有虚焊的情况,然后用万用表测试各电源电压。这些都没有问题后,接上仿真机进行联机调试,观察各接口线路是否正常。

5.2 软件测试

软件调试是利用仿真工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。

程序调试一般是分模块进行,分子程序调试,最后连起来统调。在单片机上把各模块程序分别进行调试使其正确无误,可以用系统编程器将程序固化到AT89S52的FLASH ROM中,接上电源脱机运行。

6、结束语

脉搏测量器利用单片机芯片为核心的数字控制,不仅减少了电子元器件的使用,而且有效的降低了控制电路对元器件参数的敏感,其精确度和可靠性得到明显的提高,而控制装置体积也随之变小,携带更方便。利用单片机强大的逻辑功能实现复杂的控制,进而提高整个控制装置的灵活性和适应性。

参考文献

[1]杨西明,朱骐.单片机编程与应用入门[M].北京: 机械工业出版社,2004

[2]董晓红.单片机原理及接口技术[M].西安:西安电子科技大学出版社,2004

AT89S52 篇3

本设计的目标是能够自动控制物体的升降, 并且上升时能在最高端自动停止;下降时, 在最低端自动停止。采用由步进电动机和单片机等组成的核心电路。综合考虑系统中各部分的逻辑关系与协调能力, 将该系统分为单片机控制部分、传动部分、显示部分等模块。

1.1 电动机模块

综合考虑, 电动机采用步进电动机。步进电动机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下, 电动机的转速、停止的位置只取决于脉冲信号的频率和脉冲数, 而不受负载变化的影响, 即给电动机加一个脉冲信号, 电动机则转过一个步距角。这一线性关系的存在, 加上步进电动机只有周期性的误差而无累积误差等特点, 使得在速度、位置等控制领域用步进电动机来控制则非常简单。它的定位性能非常优越, 可以和数字控制技术接轨, 不需要A/D转换, 能直接将数字脉冲信号转换为角位移。每当给步进电动机一个控制脉冲, 它就将转过一个角位移, 设计中所用的步进电动机每次转1.8°。

1.2 电动机驱动模块

采用的步进电动机型号为42BYG028, 是四相步进电动机, 需同时放大四路驱动信号。

控制芯片L0298是步进电动机专用的控制芯片。该芯片通过使能端同时控制四路三极管的工作状态。

四路三极管驱动制作过程简单, 稳定性良好, 而且价格低廉。因此采用自己手工制作的三极管驱动。

1.3 显示模块

采用点阵式液晶显示器 (LCD) 。点阵式液晶显示模块具有低功耗、稳定性良好, 能显示当前状态、当前高度、制定位置等一系列复杂显示, 从而使设计具有人性化、智能化等优点。

2 系统设计与主要参数的选择

系统分为若干模块, 其中以AT89S52单片机为控制核心, 以42BYG028为传动核心来完成诸如驱动电动机、运转方向与速度控制、物体所在位置和LCD显示的信息等。本系统的设计颇具人性化与智能化。整个系统正常运行需要+5V和+12V直流稳压电源供电, 设计中制作了这两种稳压电源。

2.1 步进电动机运动参数的计算

要保证步进电动机转速稳定, 就必须精确计算与步进电动机有关的各项参数。

1) 以43s匀速上升时, μ=4.186cm/s。所用的步进电动机为42BYG028, 当两相励磁时, 步进角为1.8°, 即200步转一圈, 因此4.186cm/s=20步/秒, 即步进速度为4.784ms。

2) 当以30s匀速上升和120s匀速上升时步进速度分别为3.333ms和13.333ms。

3) 通过以上计算结果, 可以得出步进电动机调速时的一个增量, 这个增量是不变的。

当43s——4.784ms;30s——3.333ms时:

得。

当43s——4.784ms;120s——13.333ms时;

得K3=111.0。

当30s——3.333ms;120s——13.333ms时;

得K3=111.1。

则。

2.2 步进电动机的驱动模块

步进电动机是一种自动化执行部件, 如果和数字系统相结合, 可把脉冲数转换为角位移, 实现其正转、反转和自动控制。使用、控制步进电动机必须由环形脉冲, 功率放大等组成的控制系统。

步进电动机是由脉冲驱动的, 驱动的控制信号来源于单片机的扩展I/O接口。脉冲的控制信号的类型决定步进电动机的工作方式。设计所采用的是4相步进电动机, 具有4个电极, 每个电极上均有绕组。4相电动机有A, B, C, D 4相绕组, 当4相定子绕组轮流接通驱动脉冲信号时, 就在4对电极上轮流产生磁场, 吸引转子转动。一相绕组每通一次电称为一拍, 转动相应的角度称为步距。

给4相绕组通电方式采用单4拍控制4相绕组通电的次序, 实现电动机的正转反转, 控制通电信号的频率, 控制电动机的转速。

1) 控制步进电动机的转向。

如果给定的工作方式为正序换向通电则步进电动机正转, 如果反向通电步进电动机就反转。

2) 转换顺序。

通电换向这一过程称为脉冲分配。正转时其各相通电顺序A-B-C-D, 脉冲顺序必须严格按照这一顺序分别控制A, B, C, D相的通电顺序以实现正转。

3) 步进电动机速度的控制。

步进电动机按其接到的脉冲频率的不同, 产生不同的转速, 调整单片机发出脉冲数的频率就可以让步进电动机具有不同的速度。

设计的驱动采用自制三极管式驱动。电路如图1所示。

2.3 LCD液晶显示器

液晶显示器 (LCD) 具有显示信息丰富、功耗低、体积小、质量轻、超薄等其他显示器无法比拟的优势, 广泛应用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD分为段位式LCD, 字符式LCD, 和点阵式LCD。

设计采用点阵式液晶显示器OCMJX8C。OCMJX8C是一种C系列中文模块可以显示字母、数字符号、中文字型及图形, 具有绘图及文字画面混合显示功能。

2.4 键盘

键盘采用行列式键盘。单片机工作时, 并不经常需要键输入, 使CPU经常处在空扫描状态。为了提高CPU的效率, 可采用中断方式进行扫描, 但这样就会使外部中断源更加紧张, 因此采用了改进的键盘, 在列行加入了74LS08与门。图2为键盘电路的原理图。

2.5 单片机最小系统

单片机最小系统是电动机控制系统的核心, 其CPU采用AT89S52。其外部接口和功能介绍如下:

P0口:控制单片机的8位数据总线;

P2口:8位扫描键盘的数据总线;

P1.0~P1.3:控制电动机的信号线, 其每位控制电动机的一个相位;

P3.0, P3.1, P3.3, P3.4, P3.5接液晶屏的控制线;

P3.2:中断。

3 系统测试与分析

3.1 测试使用的仪器

测试使用的仪器设备如表1所示。

3.2 分析

1) 按上升键时, 能上升到最高端自动停止;按下降键时, 下降到最低端自动停止;

2) 当设定好上升或下降位置时, 能在指定位置自动停止;

3) 能即时显示高度信息, 误差1cm;

4) 可以实现任意位置的准确控制。

4 调试

调试过程分为三部分:硬件调试、软件调试和软硬件连调。

电路按模块调试, 各模块逐个调试通过后再连调。单片机软件先在最小系统板上无误后与硬件连调。

4.1 硬件调试

对于步进电动机的固定, 一定要牢固, 避免电动机震动带来的不必要的误差。整个系统只有两块稳压电源板、一块步进电动机驱动板和一块4×4矩阵键盘组成。

经测试, 各电路运行正常, 尤其是电动机驱动电路, 几乎不发热, 工作很稳定。整个硬件电路调试非常简单。

4.2 软件调试

全部程序用汇编语言编写。确认程序没有问题时, 直接下载到单片机进行调试。采取自下至上的调试方法, 即单独调好了每一个模块, 然后再将其他模块连接连调, 用这种方式降低了程序调试过程的难度与周期。使得修改

更加容易, 降低了出错率。

4.3 硬件连调

软件和硬件之间联系紧密。首先, 对软件和硬件分别单独调试, 软件部分的调试和结果由仿真验证。在软硬件都基本调试好的情况下, 系统的软、硬件连调问题不是很大。

5 总结

设计以单片机AT89S52和42BYG028步进电动机为核心部件, 整个控制系统由单片机控制部分、传动部分、显示部分等组成, 通过键盘指令控制物体的匀速升降。经测试, 该设计还能够实现物体的自动停止与升降时间范围的准确控制, 该设计还能达到任意位置状态的控制。

参考文献

[1]李春旭, 蔡秀鹏, 高东锋, 等.基于单片机控制步进电动机的方法研究[J].机电工程技术, 2006, 35 (11) :38-39, 108.

[2]孙文迁, 王波.高速物料提升机自动控制系统[J].微计算机信息, 2004, 20 (3) :10-11.

AT89S52 篇4

关键词:GPS-OEM板;AT89S52单片机;基本GPS接收机

GPS作为一个测向基准系统,已被广泛用于航天器自主导航、大型工程变形监测等领域,其早期测向产品主要是利用多台GPS接收机组合测量的方法,国内某些科研机构也提出过利用2块独立的GPS-OEM板进行联合测量的方案,但都存在很大的资源浪费,而且针对性不强。而具有性能优良、价格低廉、轻巧灵便、易于开发等优点的小型化双天线GPS原始设备OEM板完全可以解决此类问题,利用OEM板进行二次硬件开发不仅降低了成本,还可以使其功能更具针对性。另外,双天线GPS-OEM板的开发也有利于GPS与RS、GIS的3S集成,对进一步进行测向数学模型的构建也是很有意义的。本文以测向的双天线GPS-OEM板为例,给出了母板的整体设计方案,对各个部分进行了详细的介绍,并对设计产品进行了现场实验。其静态实验结果表明,很好地实现了定位侧向功能。

一、硬件电路设计

(一)系统总体设计

本系统采用GPS25LVS-OEM板(型号为G-501)接收定位信息,并将数据发送给单片机,AT89S52单片机接收、存储数据,并将定位信息通过显示模块显示,应用键盘输入进行初始化配置,同时加入手持终端模块,便于对整个系统的操作和控制。系统框图如图1所示:

(二)GPS-OEM板硬件设计与通信协议

本设计采用的是GARMIN公司的GPS25LVS OEM板与ATMEL公司出品的AT89S52单片机。GPS25LVS OEM板作为GPS接收机的主要组成部分接收来自天线单元的信号,通过变频、放大、滤波等一系列处理过程,实现对GPS卫星信号的跟踪、锁定、测量,从而产生计算位置的数据信息(包括:纬度、经度、高度、速度、日期、时间、航向、卫星状况等),并由RS232标准串口输出串行数据。该OEM板为12通道的GPS接收机,可以同时跟踪多达12颗的GPS卫星,能够实现快速定位。GARMIN的OEM板功耗小,数据更新率为每秒一次。

GPS-OEM板的输入输出语句均按串行通信协议。数据结构为8个数据位、一个起始位、一个停止位,无奇偶校验位,输出数据格式初始化为NMEA0183格式。输出波特率为4800波特。用户通过输入语句对GPS-OEM板进行初始化,设置数据格式、通信波特率、要求输出的种类等;输出语句即向用户输出GPS的各种数据信息(见图2)。

(三)单片机

采用MCS-51系列单片机。虽然信号处理和计算的功能相对差些。但其结构简单、体积小、性价比高、可靠性高、功耗小及应用范围广,适合于小型化作业。因此。因此本系统选用了ATMEL公司的AT89C51单片机作为微控制器。

(四)电平转换模块

单片机与GPS-OEM板的联接是通过一个电平转换芯片实现的。由于GPS OEM板的串口电平是符合RS232标准的电平,而单片机串口采用的是TTL电平,因此需要通过电平转换才能够连接。本系统采用MAX232电平转换芯片,可以实现RS232电平与TTL电平的双向转换。该芯片内部有电压倍增电路和转换电路,对外接0.1uF的电容和+5V电源便可工作,使用十分方便。

(五)手持终端模块

手持终端模块主要用于在一定距离内遥控GPS接收模块,便于进行人机交互,更加方便。

(六)显示及键盘模块

采用4×4的薄膜键盘,由单片机的P2口控制,扫描时采用行列式扫描方法。显示部分采用字符型液晶显示模块作为人机交互界面,规格为20×4的显示器,8根数据线和单片机的P3口连接。液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件。以上5部分具体电路连接如图3所示。

二、软件设计

本系统主要用于接收GPS定位信号,并应用GPS VIEWERR软件在PC上实时显示其经度、纬度、时间以及连接卫星等相关信息。同时提供键盘中断处理、功能字操作控制与实现等功能。采用的通信协议为美国国家海洋电子协会制定的NMEA-0183协议。NMEA-0183输出数据为ASCII码,语句包括GPGGA、GPGLL、GPGSA、GPRMC等,其内容主要有经度、纬度、高度、速度、时间、El期等。根据本系统所需数据的需要,采用GPRMC最小定位信息来获得所需的时间、位置等信息。

由于OEM板与单片机之间采用异步串行通信,所以在执行程序前要对串口进行初始化设置,设置数据存储区来存储初始化配置信息以及OEM板的输出数据等,单片机串口工作方式选择的是串口方式1(一个起始位,8个数据位,一个停止位),这是标准异步通信方式。系统的波特率为4800bps,单片机使用的晶振是11.059MHz,由这两个数值配置相应的寄存器值。主流程图如图4所示。

三、接收机测试

接收机设计完毕,并对功能模块调试成功,开始测试。由于GPS Mouse不间断的在接受卫星信号,并且每秒钟都会刷新数据,为了使测得数据更具可比性,待GPS启动后,每到一个新的地点我们都在两分钟后记录下经纬度的最大最小值(由于与GPS连接的部分卫星信号不稳定,使得输出经纬度在小范围内变动),经纬度采用十进制输出。鉴于空旷地方接收信号容易,因此选择测试地点为武汉大学电子信息学院操场及友谊广场,本系统测量的数据如表1所示,同时用GOOGLE EARTH测量相同地点的经纬度,进行比较,数据如表2所示。

由表1、表2可知:

G501与google earth测得数据相差集中在万分位和十万分位,由于所选地点基本在同一条经线上,做近似计算:地球平均半径R为6371004M,经度的一个千分位相当于π*R/180000=11.1134M,同理经度的一个千分位相当于π*R/1800000=1.1113M。可见两者G501的精确度还是合乎要求的。

G501与google earth两者在操场上的经纬度相差在十万分位,而在友谊广场上的经纬度相差在万分位,这种差别不难解释,操场比友谊广场要空旷,GPS越是在空旷的场地精确度越高。

四、结束语

本次基于OEM板的GPS接收机实现了GPS空间数据的读取、显示以及简单键盘控制等功能,其成本较低,但精度不够高。利用GPS-OEM板进行二次硬件开发,在电源电路设计及整体PCB布线模块还需要更多的考虑,以减少电磁干扰以及增加系统稳定性。如何进一步提高精度,还有待以后进一步研究。此外,还需要考虑系统的人机交互功能,使操作更加便捷简单。

参考文献:

1、刘瑞华.MCS-51单片机与GPS-OEM板的串行通信[J].电讯技术,2004(5).

2、李远,胡修林,赵文同等.基于GPS—OEM板和单片机的定位终端开发[J].湖北邮电技术,2004(6).

3、徐进,周宁.GPS接收机的单片机通讯接口[J].电子器件,1999(3).

AT89S52 篇5

本文给出了一种利用单片机的通信、控制技术和D/A转换器内部的R-2R梯型网络,及其电压输出模式设计的程序控制电源。该程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,同时还实现了对电源输出的可编程控制。

1 程控电源硬件系统

程控电源硬件系统由3部分组成:控制显示电路模块,+5V供电模块和高压电源模块。其中控制显示电路模块包括RS232串行接口,单片机,DA转换器,键盘以及数码显示管。整个系统对外接口有3个:12V直流供电接口,高压电源输出和串行通信接口。程控电源的输出电压设定由外接键盘或者通过串行通信接口RS232连接的上位机实现。程控电源硬件系统的系统框图如图1所示。

1.1硬件系统主要模块

单片机选用Atmel公司的AT89S52,8KB Flash片内程序存储器,256 Bytes的随机存储数据存储器(RAM),2个全双工串行通信接口,看门狗(WDT)电路。完全可以适应本场合对控制和数据处理的要求,而且价格便宜获取方便。DA转换器选用DAC0832,它是一个8位DA转换器,可工作于电流输出模式或电压输出模式。串口电平转换器件使用MAX232。由LM7808,LM7805稳压器组成的电路可以将+12 V电压转换输出为一个+5 V的电压,减少了输入电源种类。高压模块输入电压为(12±1) V,输出电压+4 000 V[4]。

1.2工作在电压输出模式的DA转换器

单片机AT89S52通过RS232串口与上位机相连,所有的命令都通过串口发送给程控电源,由单片机负责对收到的预设电压命令进行解释和执行,并将输出电压通过数码管显示出来。同时,系统还提供了键盘输入,可以在没有上位机接入的情况下使用。

DA转换器DAC0832将数字量转化为模拟低电压信号来控制高压模块输出相应电压。在实际的工程设计中,对DAC0832芯片的设计使用主要关注两个方面:芯片锁存器的工作方式和芯片输出模式的选定。

DAC0832有输入寄存器和DAC寄存器两个锁存器,可以工作在双缓冲或单缓冲方式。本设计中将DAC0832的undefined引脚接低电平,使DAC寄存器工作在直通方式;undefined和ILE引脚分别与P27和P26相连,这样保证了整个DAC0832芯片工作于单缓冲方式。

DAC0832有两种输出模式:电压输出模式和电流输出模式。经过反复地实验和仔细地比较,在本设计中使DAC0832工作于电压输出模式。这样的选择基于以下考虑[3]:

首先,在电压输出模式下,由于输出量是电压,后级无需再接运算放大器,简化了硬件系统。同时应当注意,由于DAC的输出电阻较大,当对输出电阻有要求时,可以外加一个同相放大或电压跟随器来提高带负载的能力。

其次,在电流输出模式下,外接运算放大器将电流量转为电压量后,电压会发生反相,系统将需要一个负电源供电。而如果工作在电压输出模式下就不会发生电压反相,这样系统就无需负电源供电,简化了电源电路。

在将DAC0832应用于电压输出模式时要注意:

第一,DAC的参考电压vref 必须为正。

第二,参考电压vref 要小于+5 V,同时器件电源电压VCC端要比VREF端的输出电压至少高出9 V。

第三,实验中发现,如果发给DAC的数字量为零时,电源模块会输出一个大约+5 V的电压值。这是由于运算放大器的输出饱和电流造成的。如果在运算放大器输出端接入一个2 000 kΩ的电阻可以有效减小这个电压。

单片机与DAC的接口如图2所示。

2程控电源软件系统

本软件系统由上位机软件和下位机软件构成。

上位机软件是利用Microsoft Visual C++6.0提供的MSComm控件开发的串口通信程序,实现计算机与单片机之间的串行通信。程序实现简单,结构清晰。

下位机软件的主要作用是操纵单片机将键盘输入或由上位机发来的数字电压值输出给DA转换器[6]。软件每次都会将新输出的电压值与上一次的输出电压值进行比较:若发现电压值上升,则以电压渐升的方式输出本次电压,以避免对负载的电压冲击;若未发现电压上升,则直接输出新电压值。输出电压值通过数码管显示出来。每次系统开机时电压输出值都被自动设定为零。程序流程图如图3所示。

在软件抗干扰方面,系统利用了AT89S52自带的看门狗电路,它由一个14位计数器(WDT)和一个看门狗定时器复位存储器(WDTRST)构成。只要依次向WDTRST中写入0X1E和0XE1即可启动计数器WDT,之后必须在16383个机器周期内写入01EH和0E1H来复位计数器,避免计数器溢出而复位单片机。C语言代码如下:

3小结

本文提出了一个利用AT89S52单片机和DAC0832实现的程控电源设计。该程控电源系统不仅可作为常规的科研实验电源使用,还可以通过软件编程的方法使稳压电源产生连续变化的输出电压。该系统性能稳定、操控方便、结构简洁、具有较高的性价比。本设计已在实际的产品中使用,取得了良好的使用效果。

摘要:给出一种能够方便的由程序控制的高压电源系统。该系统以AT89S52单片机为核心来实现这种程控电源的方法。在AT89S52单片机的控制下,使工作于电压输出模式的DAC0832能够以减速步进的方式实现升压输出。

关键词:程序控制电源,AT89S52,DAC0832,电压输出模式

参考文献

[1]胡汉才.单片机原理及其接口技术.北京:清华大学出版社,1996

[2]DAC0830/DAC08328-bit uP Compatible,Double-Buffered D to A Converters.Corp National Semiconductor,USA,2002,3

[3]何乐生,黄惟一.利用数模转换器R-2R梯型网络.现代电子技术,2002;5(30~32):

[4]黄珍贵,张玘,刘国福,等.基于D/A转换器的程控电源设计.沈阳工业学院学报,2004;3

[5]周邦雄.实用电源技术手册(三、四).长春:吉林电子出版社,1996

[6]王增福.新编线形直流稳压电源.北京:电子工业出版社,2004

AT89S52 篇6

本文主要从教学角度出发, 讨论单片机驱动步进电机的方法, 前提条件是已经掌握单片机的基本原理与I/O口的使用。在实际应用中, 驱动步进电机的方法有很多, 但在教学中还是希望能采用尽可能低的成本和尽可能简单的电路来实现驱动步进电机的功能。我们已经知道, 普通电动玩具内的小电机可能只需要1.5V的电池就能驱动, 而单片机产生的数字信号即使有5V的电位差也不能驱动小电机, 主要原因就是单片机输出的电流太小, 不足以驱动电机动作。因此必须采用功放器件才能驱动电机。相关的器件也有很多, 本文以L298N驱动芯片为例说明如何让单片机控制步进电机的动作。

步进电机是机电一体化的关键产品之一, 单片机驱动步进电机被广泛应用在各种自动化控制系统中。步进电机是一种将电脉冲转化为角位移的执行器件。当步进驱动器接收到一个脉冲信号, 它就驱动步进电机按设定的方向转动一个固定的角度 (称为"步距角") , 它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量, 从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度, 从而达到调速的目的。步进电机可以作为一种控制用的特种电机, 利用其没有积累误差 (精度为100%) 的特点, 广泛应用于各种开环控制。

二、步进电机的驱动系统

步进电机在单单仅给予电压时, 电机是不会动作的, 必须由脉冲产生器提供位置 (脉波数) 、速度的脉冲信号指令, 以及驱动器驱动电流流过电机内部线圈、依顺序切换激磁相序的方式才能够让电机运转。所以欲使步进电机动作的必要系统组成有:

(1) 脉冲产生器:给予角度 (位置移动量) 、动作速度及运转方向之脉冲信号的电机驱动指令。

(2) 步进驱动器:依控制器所投入的脉冲信号指令, 提供电流来驱动步进电机动作。

(3) 步进电机:提供转矩动力输出来带动负载。

所以步进电机系统构成简单, 不需要速度感应器、位置传感器, 即能依照脉冲产生器所输入的脉冲来做到速度及位置的控制。

步进电机的速度控制

步进电机的运转速度会与输入的脉冲速度成等比例的关系, 所以在脉冲的速度愈快时, 步进电机的转速也会跟着加快;脉波速度愈慢时, 电机的转速自然也跟着变慢。

电机的运转速度 (RPM) 与脉冲速度 (PPS, 又称Hz) 间的关系式如下:

电机的运转速度 (RPM) =脉冲速度 (PPS或Hz) ×60&#247;步进电机分割数/圈

说明:

(1) RPM为一般电机的速度单位, 即每分钟电机所转的圈数;PPS为步进、伺服电机的速度单位, 即每秒所送出的脉冲数。

(2) 由于RPM与PPS的单位不同, 所以于转换的过程中要先将PPS的秒钟乘以60变为分钟。

(3) 步进电机分割数/圈, 又代表要让电机转一圈所必须送出的脉冲数。

(4) 上述公式拆解后之单位表示为→RPM=PPS×60×1/分割数

步进电机的位置控制:步进电机不需要位置传感器 (SEN-SOR) , 就可依照输入的脉冲数决定移动量, 并将负载顺利、正确的送达指定位置点上。而移动量的大小, 是依照电机分辨率的大小与输入的脉冲数来决定。脉冲数 (PULSE) 与移动量间的关系式如下:

位置移动量 (°) =步进电机分辨率 (°) ×输入脉冲数

三、本控制系统的总体设计

本套装置由AT89S52单片机产生相应的脉冲信号, 通过P2口 (P2.0, P2.1, P2.2, P2.3, P2.4, P2.5) 输出, 送到驱动芯片L298N对相脉冲信号进行处理, 驱动步进电机转动。

L298N有十五个引脚, 具体可参阅相关资料。步进电机上的接线柱分别为A, A&apos;和B, B&apos;。详细硬件连接示意图如下图所示:

注意:EN A和EN B必须接与输入到驱动芯片中完全相同的脉冲信号, 否则就无法转动。步进电机旋转所需要的脉冲信号如下图所示。

由上图我们可以得到每转动一个角度所需要的脉冲信号, 如需连续转动, 单片机只需依次向L298N输出上述信号即可。例如状态1时从P2口输出00101011, 然后调用延时20ms子程序, 以此类推, 具体程序略。

说明:

1、改变DELAY子程序中的时间参数就可以改变步进电机的运行转动速度。

2、改变P2口的输出信号也能改变步进电机的转动方向, 由此实现正转、反转的变化。

四、调试中遇到的问题与解决方法

1、如何用简单的方法调整两相步进电机通电后的转动方向?

第一种方法是将电机与驱动器接线的A+和A- (或者B+和B-) 对调即可。第二种方法是按2.3a所示图逆时针输出脉冲信号。

2、步进电机低速时可以正常运转, 但高于一定速度就无法启动, 并伴有啸叫声。

如果要使电机达到高速转动, 脉冲频率应该有加速过程, 即启动频率较低, 然后按一定加速度升到所希望的高频 (电机转速从低速升到高速) 。

3、驱动器通电以后电机在抖动不能转动该如何解决?

遇到这种情况时, 首先检查电机与驱动芯片L298N的连接是否正确;如没有接错再检查输入频率是否太高;是否升降频设计不合理;以上原因都不是, 可能是驱动器烧毁。

五:总结

步进电动机以其显著的特点, 在数字化制造时代发挥着重大的用途。伴随着不同的数字化技术的发展以及步进电机本身技术的提高, 步进电机将会在更多的领域得到应用。使用L298N控制步进电机具有价格低、控制简单、工作可靠的特点, 所以具有很高的推广价值和广阔的应用前景。

摘要:本文主要介绍了步进电机的工作原理与应用, 讨论了由AT89S52单片机和驱动芯片L298N构成了一套二相四线步进电机的驱动系统的方法。重点给出了硬件连接示意图, 以此说明驱动步进电机最基本的应用方法。

AT89S52 篇7

1 实验的设计目的

(1)通过学习该实验,掌握单片机并行口传输数据的方法,以控制数码管和发光二极管的亮灭。(2)掌握用动态扫描方法解决多位LED共用一个P口显示的问题。(3)通过单片机程序的编写,熟练掌握计数器/定时器和中断的使用方法。(4)通过系统的硬件设计,掌握驱动芯片的使用及数码管的连接,将所学的电路理论联系到实践中去。

2 硬件设计

2.1 模拟交通灯控制系统框图

系统主要由单片机最小系统、功能键模块、特殊事件处理模块、接口电路、驱动电路及LED显示模块组成。其中,单片机为系统的主控部件,用以控制其他模块协调工作,文中选择AT89S52为主控芯片[2]。LED显示模块用以显示各车道的通行情况及时间(红灯表示该车道禁止通行;绿灯表示该车道允许通行,黄灯为中间过渡时间);驱动电路用以驱动LED和数码管工作;特殊事件处理模块以外部中断方式进入;接口电路则起到各模块间的连接作用,以使整个系统正常工作。模拟交通灯控制系统的硬件框图如图1所示。

2.2 各模块的硬件结构

(1)LED板模块。

由于交通实际情况是右转不受红绿灯限制,车辆直行与人行道的直行一致,因此该实验设计每块LED板包含一个两位数码管U1、6个LED灯D1~D6,其中,6个LED灯排成两行,每行有红(R)、黄(Y)、绿(G)3个灯,上面一行指示车辆和人行的直行(S)通行,下面一行指示车辆的左转(L)通行。6个LED的阴极连接到一个公共段G1上,当G1为低电平,a为高电平时就可以点亮D1;同样,若要点亮D6,只要使G1为低电平,f为高电平即可。

(2)驱动电路。

ULN2003是常见的驱动芯片,一片可提供8路驱动信号,两片ULN2003共16路,用于驱动8位数码管及4组2×3LED灯的阴极[3],其中U2为LED灯的阴极驱动芯片,U3为数码管的驱动芯片;8个三极管Q1~Q8组成的共集电极电路用于驱动8位数码管的段及LED灯的阳极。

(3)单片机接口电路。

系统中的单片机选择AT89S52芯片,对交通灯的控制主要用其中的定时器完成,一方面要完成对各模块的控制,另一方面是协调好各模块的时序及口线冲突问题。如图1所示,P1为数码管段码和LED灯阳极的控制口,P0和P2分别为数码管和LED灯的位选信号控制口。

(4)按键模块。

图1中,在P3口的P3.2~P3.6引脚各装有一个按键K1~K5,其中,K1用于外部中断0发出一单脉冲向CPU申请中断,K2用于外部中断1发出一单脉冲向CPU申请中断进行模式选择,K3~K5是设置倒计时时间的功能键,K3用于数码管的换位,K4用于进行加1操作,K5用于确认操作。

3 软件设计

3.1 工作模式说明

系统分3种工作模式:正常模式、特殊事件模式和时间设置模式[4],并且通过图1中K1、K2按钮可实现模式选择。交通灯的主要状态示意图,如图2所示,南北方向交通灯亮灭顺序及时间长短如图3所示。

(1)正常模式。

状态1 如图2程序开始运行先南北段通行60 s,其中车辆和人行道的直行通行40 s,数码管显示时间40 s,此时南北段直行通行绿灯亮(SG)、左转红灯亮(LR),东西段直行左转红灯都亮60 s,同时南北段和东西段方向的数码管分别从40 s和60 s开始倒计时。

状态2 南北段直行倒计时至最后5 s时,直行绿灯同时黄灯闪烁(SG SY);左转红灯同时黄灯闪烁(LR LY),如图3所示。

状态3 如图2所示,南北段直行倒计时为0时,数码管显示时间从20 s开始倒计时,直行通行红灯亮(SR)、左转绿灯亮(LG),表示禁止车辆和人的直行,允许左转,左转通行20 s,东西段红灯继续倒计时。

状态4 南北段左转倒计时至最后5 s时,直行红灯继续亮(SR),左转绿灯同时黄灯闪烁(LG LY),如图3所示。

状态5 南北段左转倒计时为0时,数码管显示时间从60 s开始倒计时,直行红灯亮(SR)、左转红灯亮(LR),表示禁止南北段的直行和左转。东西段状态与南北段交替,开始允许直行通行40 s后左转通行20 s,再循环至状态1。

(2)特殊事件模式。

特殊事件指临时需紧急通行的事件,比如急救车、消防车、警车等。此时,应使东西南北4个方向全亮红灯,并延时10 s,以便特殊事件得到解决。

(3)时间设置模式。

如果某路段的时间初始值与该路段的车辆通行状况不符,可按下中断键进入时间设置模式,对该路段各个路口的直行、左转时间长度进行设置。

3.2 程序流程图

软件设计主要用C语言编程,总程序分为3部分:主程序;显示控制、状态处理等子程序;定时、特殊事件和时间设置等中断处理程序[5]。

(1)主程序流程。

系统以正常状态下交通信号灯各状态的循环显示为主程序,如图4所示。在主程序中,调用数码管倒计时子程序和中断延时以实现各种交通状态。

(2)显示控制。

数码管采用动态方式显示交通指示灯的计时时间,查询判断是否计满50 ms,记满后需重置计数初值,循环显示20次直至完成定时1 s,倒计时时间减1。流程如图5所示。

(3)特殊事件通行控制。

发生特殊事件时通行受特殊事件强行通过按键控制,将此按键按下,无论原来信号灯的状态如何,一律强制4个路口红灯点亮,禁止其他车辆通行[6],使特种车放行10 s,其流程如图6所示。

4 实验结果与分析

设计中学习者首先需要在KeilC51环境下对编写的程序进行编译调试,然后要用Proteus软件对模拟交通灯控制系统进行仿真分析[7],实现系统运行所需的功能,最后可在Protel中画出PCB图,动手制作PCB板并组装完成。

为检验学习者做该交通灯综合实验的学习效果,实验前后对63名学习者关于AT89S52单片机部分软硬件设计知识的掌握情况,进行了填表调查,结果如表1所示。

实验结果表明,学习者通过做该模拟交通灯综合实验,可以更灵活、有效、全面地掌握单片机软硬件设计。

5 结束语

该模拟交通灯控制系统硬件部分具有电路简单、成本低、可扩展等优点,通过软件部分,控制4块LED板上的数码管倒计时及红、黄、绿二极管的点亮与熄灭,实现基本的交通灯功能,时间设置功能和特殊事件处理等功能。

摘要:介绍了模拟交通灯控制系统的综合实验设计,系统以AT89S52为核心,采用多种中断处理和P口分时复用功能来控制数码管和LED灯,实现了各种情况下交通灯的正常指示和倒计时功能。实验采用的软件有KeilC51、Proteus、Protel等,统计数据表明,通过实验能使学习者较完整地掌握单片机系统设计。

关键词:综合实验,交通灯控制,AT89S52

参考文献

[1]吴慎将,李党娟.智能交通灯控制器的设计[J].研究与开发,2010,29(11):51-53.

[2]李广弟,朱秀月,冷祖祈.单片机基础[M].3版.北京:航空航天大学出版社,2010.

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

[4]郭强,刘志峰,张爱平,等.基于STC89C52单片机的智能交通灯控系统设计[J].机电一体化,2008,14(11):85-88.

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

[6]王冬梅,张建秋,路敬裿.基于单片机的交通灯控制系统设计与实现[J].佳木斯大学学报:自然科学版,2009,27(1):42-44.

AT89S52 篇8

在以前很多杂志上都介绍了数字钟的制作, 其电路或者较为复杂, 或者所选的单片机很多编程器不支持, 不便于初学者自制。本文设计的数字钟具有电路简单、成本低 (全部元件近30元) 、元件易购、功能全、走时精度高的特点, 很适合万能实验板自制。

1硬件系统设计:

(1) 元件清单:

(2) 电路原理图如图1。

本数字数字钟采用ATMEL公司的AT89S52为主芯片。

AT89S52为40脚双列直插封装的单片机, 与MCS-51单片机产品兼容, 8K字节在系统可编程Flash存储器, 1000次擦写周期, 32个可编程I/O口线, 三个16位定时器/计数器, 八个中断源, 支持ISP, 是单片机初学者首选芯片。

为了简化电路安装, 数码管分别采用1位 (显示星期, 也可以采用2位代替) , 2位 (显示时、分、月、日) , 4位 (显示年) 共阳极数码管, 引脚功能见图, 需要注意的是, 不同厂家的数码管的引脚可能不同, 可用万用表或电池进行测试。

驱动三极管采用1N5401, 也可采用2SC1015等小功率PNP型三极管, 但要注意脚位。

功能按钮采用微动开关, S1为位选择, 接于P3.2口, S2为增1, 接于P3.3口, S3为减1, 接于P3.4口。按一次S1按钮, 分位闪烁, 再按一次, 依次为时、星期、日、月、年位闪烁, 此时, 按S2, 或S3按钮, 选定位加一或减一, 达到调整时钟的目的。在年位闪烁时, 再按一次S1, 返回正常计时状态。由于P3口内有上拉电阻, 所以外部无需上拉电阻。

复位电路, 只要求持续2个机器周期, R*C>2us, 即可对单片机进行复位。S4为复位按钮, 可对数字钟进行初始化复位。

AT89S52 40脚接+5V, 20脚接地, 31脚为EA/VPP, 访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令, EA必须接GND。为了执行内部程序指令, EA应该接VCC。由于该数字钟的程序、数据都存储在AT89S52内部, 所以31脚应接+5V。

18、19脚外接晶体振荡器, 本电路采用12M晶振。

P0口分别接数码管a、b、c、d、e、f、g, 从P0口输出数码。

P1口接年、月、日数码管阳极, P2口接时、分、星期数码管阳极, P3.0口接秒指示灯, 当其为低电平时, 发光二极管发光, 反之熄灭, 用以指示秒。

在设计数字钟过程中, 为了调试方便, 增加了ISP插座, 本人使用的是伟纳ME300B编程器, 该编程器使用10针ISP接口。对于其它编程器, 只要将插针与AT89S52的6、7、8、9、+5v、地对应连接即可。

2软件系统设计:

(1) 软件流程图如图3。源程序见附件。

(2) 软件采用C语言编写, 原理如下:

1) 进行按键扫描中, 应去抖, 再保存于变量中, 确保按键操作的精度和可靠性。由于要对多个时间变量进行操作, 设置了位选择功能, 每按一次选择按钮, 位选择变量加1, 在后面的数码管扫描程序中, 可根据位选择变量的值, 就可对各个时间变量进行调整。在按键扫描过程中要先关中断, 操作完后再开中断;2) 定时器0, 用于动态扫描数码管, 其定时时间不能太大, 否则数码管会闪烁。同时在扫描过程中, 要根据位选择变量的值确定哪位数码管闪烁, 为0时不闪烁, 工作于正常计时状态;3) 定时器1, 1/100秒触发一次, 100次秒变量加1, 60秒后分变量加1, 60分后时变量加1, 24时后日变量、周变量加1, 根据月份, 日变量满28, 30, 31后月变量加1, 月变量满12后年变量加1。

3注意事项:

(1) 定时器初值如采用65536-10000=55536 (十进制) 转化为十六进制为D8F0, 会出现走时不准确, 本人采用KEIL进行仿真, 确定赋值为D912时, 走时最精确。

(2) 本电路简单, 可用万能板搭接, 连接导线用漆包线。

(3) 组装前先确定数码管、单片机芯片的位置, 统筹布局, 做到美观、合理, 本人采用已坏的数字钟外壳, 制作成数字钟见图5, 图5。敷铜板面见图图6。

4功能扩展

(1) 在此基础上, 再加入SD18B20, 修改程序, 可显示当前温度。

(2) 在电源电路中接入6V蓄电池, 保证停电也能正常工作, 且能自动对电池充电。

(3) 此电路中未加入农历功能, 有兴趣的读者可在此基础上添加, 如I/O口不够, 可采用移位寄存器芯片74HC595进行扩展。

(4) 若数字钟的走时精度不高, 可更换5PPM精度较高的32768晶体振荡器。

摘要:采用纯数字集成电路设计制作数字钟电路较复杂, 而单片机数字钟只用了较简单的硬件, 通过编写C程序可实现完善的功能。

AT89S52 篇9

一、电路组成

本电路由一下部分组成:以AT89S52作为核心的控制电路部分,电源电路部分,储存电路部分,继电器控制电路部分,键盘电路部分,声光提示电路等组成。系统结构框图如图1所示。

1. 单片机主控电路

系统采用AT89S52单片机作为系统的主控芯片。AT89S52单片机与其他MCS—51系列单片机兼容,采用Flash存储器结构,支持在线下载方便日后对其进行升级,如日后您家安装了智能家居您就可以为您的锁升级,使其联入智能家居系统。AT89S52主要负责各模块的初始化工作;效验用户输入密码、寄存器的初始值设定、处理键盘响应、声光提示等。

硬件电路连接如图2所示,系统采用12MHz晶振;P1.4为报警输出口,当用户输入错密码超过三次将会输出一低电平;P0口与4×4矩阵式键盘相连;P2.3为报警解除输入端,低电平有效;P2.4为密码初始化,短接J1的1、2脚并按一下RST键即可对其初始化;B为蜂鸣器的控制端;K1为继电器的控制端;CSL、SDA与AT24C02相连。

2. 电源电路

系统采用交流12V电源供电,可由市电经变压器变压获得。交流12V电源经D7~D10组成的整流桥整流,C1滤波后得到直流约12V电压,一路为电磁锁供电,另一路经7805稳压芯片转变成5V直流电为系统的其他电路供电;本电路还有一套备用电池,当用外部电源供电时D11可以防止电源为电池充电而损坏电池,如果外部电源停电后电池可以通过D11放电为系统供电,正常工作时要定期为电池进行充电,防止电池电压过低,停电时不能正常开锁。(下文未说明电路均为5V供电)

3.键盘电路

键盘电路为矩阵式键盘,设置了16个按键(如图4) 0键~D键为密码输入键,由于软件设计上系统最多可以设置12位密码,故可用密码组合有上百亿种。“确认”键则是在密码输入完成后进行确认;“退出”键则是在密码输入错误时退出重新输入。

对于键盘的扫描我采用定时的方式,即利用单片机内部定时器T0,每个隔50毫秒对键盘扫描一次,这样CPU总是定时扫描键盘的状态。

4. 声光提示电路

系统声光提示电路是由四个发光二极管、蜂鸣器和其他元件组成。电路连接图如图5、6所示。根据不同的状态对应的发光二极管会点亮,发光二极管直接由单片机直接驱动;蜂鸣器功率较大故通过8050三极管驱动,当B端为高电平蜂鸣器发声;当按下按键时蜂鸣器会发出提示音,当再报警状态其会发出约十分钟报警声;D12为修改密码时输入确认密码错误时点亮。

5. 继电气控制电路

系统的驱动元件使用继电器,可以增加系统的驱动能力,还可以隔离电磁锁工作时的的电磁干扰,提高了系统工作的可靠性。电路连接如图7所示,当K1端为高电平时时继电器工作驱动电磁锁动作。

6. 储存电路

系统储存电路由AT24C02以及外围元件组成。用户所设的密码都存储在AT24C02中,即使系统复位或断电后用户所设置的密码不会丢失。电路连接如图8所示。AT24C02芯片管脚如图9。管脚功能简介:A0–A1为器件地址输入引脚。SDA:串行数据和地址输入/输出。SDA是双向串行数据传输引脚,漏极开路,需外接上来电阻到VSS。CSL:串行时钟输入。SCL同步数据传输,上升沿数据写入,下降沿读出。WP:写保护,高电平有效。VCC、GND:分别接正电源和地。

二、系统软件设计

系统软件我是用C语言编写。因为C语言的可读性、可移植性较好,而其采用结构化、模块化编程,所以编程方便很多。程序设计时应按“自顶向下,逐步细化”的原则进行设计,确定程序所用的子函数和驱动程序。程序调试前应先确保每个驱动程序可以正常工作,为后面的主程序调试做好准备工作。系统的程序主要包括:AT24C02的驱动程序、键盘的驱动程序、定时器T0、T1子函数、延时子函数、初始化子函数等组成。鉴于篇幅有限就不在进行一一介绍。系统主程序流程图如图10所示,定时器T1中断程序循环如图11所示。

三、调试与安装

系统首次通电时可将J1的1、2脚用短路块短接后按一下复位键后系统密码被初始化为“1111“,然后拔掉短接块,否则系统断电或复位时密码总被置”1111“。J1应和电路板安装在封闭的盒子内防止被他人对系统初始化,更改密码。密码在初始化后必须重新设定密码,否则断电后密码又回到上次的密码。设置新密码时应先对系统密码初始化,输入2次“1111“然后输入两次新密码即完成设置,两次密码必须是相同密码,设置密码过程”设置状态“指示灯常亮。当输入正确密码后电磁锁会得电动作,4 S后断电复位。

安装时可将键盘安装在门外通过电缆与室内的控制板相连,将D2、D3、D4、D12即蜂鸣器安装在键盘上,将D1、D5,手动开关S17, 放在室内。也可以在室内安装一个蜂鸣器,起警示作用。“报警输出“端可以与报警器相连;“报警解除“可以与一个开关相连,也可与其他设备相连以便实现智能化控制。

上一篇:领导践行下一篇:中学数学记忆方法新探

本站热搜