AT89S51单片机(共7篇)
AT89S51单片机 篇1
摘要:介绍了一种基于AT89S51单片机的数字电压测量的设计方法。本文中数字电压测量装置的核心采用AT89S51单片机,A/D转换器采用TLC549为主要硬件,实现数字电压测量的硬件电路与软件设计。该系统的数字电压测量电路简单,所用的元件少,成本低。数字电压测量装置可以测量0~500V的电压值,并在四位LED数码管上显示。
关键词:数字电压测量,AT89S51,TLC549
0 引言
电压测量的数字化显示是将连续的模拟量,如交流电压转换成不连续的离散的数字形式并加以显示,这有别于传统的以指针加刻度盘进行读数的方法,避免了读数的视差和视觉疲劳。本文A/D转换器采用TLC549对输入的模拟信号进行转换,控制核心AT89S51再对转换的结果进行运算和处理,最后驱动输出显示数字电压值。
1 数字电压测量装置硬件电路设计
硬件电路设计主要包括:AT89S51单片机系统,A/D转换电路,显示电路。测量最大电压为500V,显示最大值500.0V。
1.1 AT89S51单片机系统和显示电路
由于单片机体积小、重量轻、价格便宜,所以本测量装置采用AT89S51单片机。AT89S51是一个低功耗,高性能COMS 8位单片机,片内含4KB ISP(In System Programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4KB Flash片内程序存储器,128字节的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟震荡器。
AT89S51的P0、P1.0、P1.1、P2.3、P2.6端口作为四位LED数码管显示控制,数码显示电路如图1所示。P2.2端口作TLC549的A/D转换数据读入用,P2.1、P2.3段口用作TLC549的A/D转换控制。
1.2 A/D转换电路TLC549模拟输入电压由图2整流稳压电路提供。
A/D转换由德仪的TLC549完成。TLC549是8位的AD转换器,转换速度最大可到17us,TLC549芯片引脚中,VCC为芯片工作电源正电压,电压范围为3V到6V。REF+为正参考电压,电压范围为2.5V到VCC+0.1V,REF-为负参考电压,电压范围为-0.1V到2.5V。AIN引脚是模拟输入电压,电压范围为0到VCC,CS为芯片使能,IOCLK为输入时钟,DOUT是转换数据输出引脚。如图3是A/D转换电路。
2 数字电压测量装置软件设计
系统上电后,A/D转换子程序用来控制模拟输入电压的A/D转换,显示子程序采用动态扫描实现四位数码管的数值显示。该装置的程序流程图如图4所示。
3 结束语
数字电压测量装置可以测量0~500V的电压值,89S51为8位处理器,当TLC549输入电压为5V时,输出数据为255。因此最大分辨率为1.96V(5/255)。如要获得更高的精度要求,应采用位数更高的A/D转换器。
参考文献
[1]李翔,朱从乔.用单片机测试超声波传感器的性能.微计算机信息,2009,13期.
[2]戴丽霞,马铁华,刘双峰.基于PS021的微小电容测量模块.光电技术应用,2009,02.
[3]张晨光,闫英敏,陈永利.数字式直流伺服系统性能测试系统设计.电子测量技术,2010,08.
AT89S51单片机 篇2
1 系统设计
本电子琴系统主要包括MCS-51单片机,键盘模块,发声模块以及显示模块,电路设计框图如图1所示。
2 硬件系统设计
2.1 MCS-51单片机
本系统的单片机选用AT89S51单片机[1],AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。[1,4,5]
AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。AT89S51在空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。AT89S51单片机管脚图如图2所示。
2.2 键盘模块
本设计键盘模块采用4*4矩阵键盘,原理图如图3所示。
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。采用矩阵法来连接键盘是非常合理的矩阵式结构的键盘显然比独立式键盘复杂一些识别也要复杂一些在上图中列线通过电阻接电源并将行线所接的单片机4个I/O口作为输出端而列线所接的I/O口则作为输入端这样当按键没有被按下时所有的输出端都是高电平,代表无键按下。行线输出是低电平一旦有键按下,则输入线就会被拉低,这样通过读入输入线的状态就可得知是否有键按下了。[5,6]
2.3 发声模块
本设计发声模块主要采用LM386,LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
LM386内部电路原理图如图4所示。与通用型集成运放相类似,它是一个三级放大电路。
第一级为差分放大电路,T1和T3、T2和T4分别构成复合管,作为差分放大电路的放大管;T5和T6组成镜像电流源作为T1和T2的有源负载;T3和T4信号从管的基极输入,从T2管的集电极输出,为双端输入单端输出差分电路。使用镜像电流源作为差分放大电路有源负载,可使单端输出电路的增益近似等于双端输出电容的增益。
第二级为共射放大电路,T7为放大管,恒流源作有源负载,以增大放大倍数。
第三级中的T8和T9管复合成PNP型管,与NPN型管T10构成准互补输出级。二极管D1和D2为输出级提供合适的偏置电压,可以消除交越失真。
引脚2为反相输入端,引脚3为同相输入端。电路由单电源供电,故为OTL电路。输出端(引脚5)应外接输出电容后再接负载。
电阻R7从输出端连接到T2的发射极,形成反馈通路,并与R5和R6构成反馈网络,从而引入了深度电压串联负反馈,使整个电路具有稳定的电压增益。
2.4 显示模块
LED显示模块是利用AT89S51单片机的P0端口的P0.0-P0.7连接到一个共阴数码管的a-h的笔段上,数码管的公共端接地。在数码管上循环显示0-9数字,时间间隔0.2秒。
3 发声原理及程序流程图
3.1 音乐发声原理
用电子琴可以演奏出各种美妙的音乐,而音乐是由音符组成。不同的音符是由相应频率的振动产生。由8051单片机模拟产生音符,只需算出音频周期T=1/f,利用音频的变化产生不同电平驱动发声模块,来达到产生音乐的目的,因此我们只要把一首歌曲的音阶对应频率关系弄正确即可。
利用AT89C51的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶,例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。
计数脉冲值与频率的关系式是:
式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。
其计数初值T的求法如下:
例如:设K=65536,fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。
低音DO的T=65536-500000/262=63627
中音DO的T=65536-500000/523=64580
高音DO的T=65536-500000/1046=65059
单片机12MHZ晶振,高中低音符与计数T0相关的计数值如表1所示。
3.2 音乐发声程序流程图
图5为发声程序流程图。
4 结束语
本系统是利用AT89S51单片机设计的电子琴,硬件电路简单,如果设计对象是更为复杂的电子琴系统,其实际原理与方法与本设计基本相同。另外,实例所设计的计算器是用LED数码管显示的,当然也可以用其他的器件显示,如LCD液晶显示屏,这样就可以显示出更加丰富的字符,在此基础上,还可以编写更加完善的程序来实现更多的功能。
摘要:单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。该文阐述的主要内容是一种基于51单片机的电子琴的设计,其核心芯片是AT89S51单片机,内部电路包括键盘模块、发声模块和显示模块,本系统运行稳定,功能较为完善,控制系统可靠,性价比较高等,具有一定的实用价值。
关键词:AT89S51单片机,电子琴,LM386,LED
参考文献
[1]龙威林,杨冠声,胡山.单片机应用入门:AT89S51和AVR[M].北京:化学工业出版社,2008.
[2]黄鑫,马善农,赵永科.基于CPLD的电子琴研究与设计[J].科技广场,2007(5).
[3]赵亮,侯国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2003.
[4]杨恢先,黄辉先.单片机原理及应用[M].北京:人民邮电出版社,2006.
[5]张虹.单片机原理及应用[M].北京:中国电力出版社,2009.
AT89S51单片机 篇3
关键词:AT89单片机,串行通信,运用
AT89单片机是当前电气运行中运用较多的单片机产品之一, 笔者结合自身工作经验, 通过实例设计阐述了串行通信的特点和应用, 方便理解学习单片机串行通信的知识点, 并利用串行通信把单片机和计算机应用到一起。
AT89单片机的串行口具有两条独立的数据线——发送端TXD和接收端RXD, 它允许数据同时往两个相反的方向传输。一般通信时发送数据由TXD端输出, 接收数据由RXD端输入。
AT89单片机的串行口既可以用于网络通信, 亦可实现串行异步通信, 还可以用作同步移位寄存器。如果在串行口的输入输出引脚上加上电平转换器, 就可方便地构成标准的RS-232接口。
常用于数据通信的传输方式有单工、半双工、全双工和多工方式。AT89单片机的串行接口是一个全双工通信接口, 它有两个物理上独立的接收、发送缓冲器SBUF, 可以同时发送和接收数据。但是发送缓冲器只能写入, 不能读出;接收缓冲器只能读出, 不能写入。两个缓冲器共用一个地址 (99H) 。
1 串行通信系统的硬件设计
1.1 系统所需设备及软件
本系统硬件的实现需FX-A单片机实验实训平台、A51编程器及FX-51pro编程软件、计算机及Keil uVision3编译软件。
FX-A单片机实验实训平台是我院专为单片机初学者设计, 通过该平台能够完成单片机课程中的所有实验项目及实训项目。FX-A单片机实验实训平台由实验板区和万用开发板区两部分组成。实验板区电路固定, 有各种控制模块, 其中有流水灯、蜂鸣器、键盘、IIC存储、232通信接口、数码管显示、液晶1602显示;单独控制或组合控制可以完成各种各样的实验及仿真程序调试, 主要完成单片机程序的测试, 帮助初学者完成51单片机学习中的软件实验。万用开发板区可以亲自动手搭建各种单片机电路, 能够完成单片机系统的整体开发过程。
A51编程器工作电压为直流9V, 工作时功率小于0.5瓦, 满足对个别芯片需要12V编程的要求。与编程器配套的有九芯串口线和外接电源, 编程器电路板中带有电源开关和工作指示灯。监控芯片的功能设计是整个编程器的核心技术之一, 对编程的所有操作都需要通过监控芯片来完成调度, 我们采用AT89S52芯片来做监控芯片, 在监控芯片里设计了一套与计算机的通信协议, 使编程器的硬件功能得到了充分的展示, 自主的知识产权对我们今后对编程器功能进行升级提供的技术保障。
编程器使用中的具体性能如下:
1) 使用串口通讯, 编程过程中的擦除、烧写、校验各种操作完全由编程器上的监控芯片控制, 不受PC配置及其主频的影响, 因此烧写成功率高可以达到100%, 烧写速度很快并且烧写速度和微机的档次无关。
2) 采用57600高速波特率进行数据传送, 编程速度可以和一般并行编程器相媲美, 经测试, 烧写一片4K ROM的AT89S51仅需要9.5S, 而读取和校验仅需要3.5S。
3) 体积小巧, 外接电源适配器向编程器提供9V电源, 最大程度的保护用户计算机, 电源开关方便用户不使用时不必使编程器长期带电。
4) 软件界面友好, 菜单、工具栏、快捷键齐全, 全中文操作, 提供加密功能, 可以保护您的创作产权。
5) 功能完善, 具有编程、读取、校验、空检查、擦除、加密等系列功能。
6) 40pin和20pin锁紧插座, 所有器件全部以第一脚对齐, 无附加跳线, 对于DIP封装芯片无需任何适配器。
7) 采用优质万用锁紧插座, 和接触不良等问题彻底说再见, 可烧写40脚单片机芯片和20脚单片机芯片。
8) 因为采用了9针传口通讯, 这样一来就不会再和打印机抢一个打印口, 随时随地想烧就烧。
Keil C51是德国知名软件公司Keil (现已并入ARM公司) 开发的基于8051内核的微控制器软件开发平台, 是目前开发8051内核单片机的主流工具。它支持众多不同公司的MCS51架构的芯片, 它集编辑, 编译, 仿真等于一体, 同时还支持PLM、汇编和C语言的程序设计, 它的界面和常用的微软VC++的界面相似, 界面友好, 易学易用, 在调试程序, 软件仿真方面也有很强大的功能。
使用Keil的开发工具其项目开发周期和任何软件开发项目都大致一样:创建C或汇编语言的源程序;编译或汇编源文件;纠正源文件中的错误;从编译器和汇编器连接目标文件;测试连接的应用程序并下载。
1.2 系统所用电子元器件
如表1所示。
1.3 系统硬件原理图
如图1所示。系统上电后, K1键将进行加一操作, 并在LED管上显示, K2键将进行减一操作, 并在LED管上显示, K3以外部中断1的方式发出当前LED管显示的二进制信息, 同时, 系统能随时接收上位机发过来的二进制数据, 并在LED上显示, 系统与PC机的通信格式为8位, 无校验, 1200BPS。串行口接收数据采用查询接收标志位来判断是否有接收数据。
2 串行通信系统的软件设计
系统软件功能流程图如图2。
在AT89S51中应用串行口通信时需要考虑下述步骤, 但顺序依据编程人员自身特点进行合理安排。
1) 设置外部中断请求允许位, 设置IE寄存器中的EA、ES;
2) 根据需要设置SCON寄存器, 确定串行口的工作方式并初始化标志位;
3) 波特率与T1有关则设置TMOD寄存器, 设定T1的工作方式;
4) 推算出对应波特率T1寄存器的初值, 传递到T1;
5) 启动T1定时器, T1便成为了波特率发生器;表1
6) 将电源控制寄存器PCON最高位SMOD设置成1, 单片机系统的波特率将翻一倍;
7) 编写中断处理子程序, 注意该子程序的中断编号是4。
源程序代码如下:
此源程序已经过FX-A单片机实验实训平台的测试, 运行稳定可靠。
3 结束语
该串行通信方法具有电路结构简单清晰、程序容易实现等特点, 通过实际操作证明可行。通过以上系统设计的实现, 阐述了单片机串行通信从硬件到软件的知识点和应用技巧, 方便大家理解学习。
参考文献
[1]王静霞.单片机应用技术 (C语言版) [M].北京:电子工业出版社, 2009.
[2]唐继贤.51单片机工程应用实例[M].北京:北京航空航天大学出版社, 2008.
AT89S51单片机 篇4
1 系统的硬件设计
本设计采 用Motorola公司的MPXV53GC6U硅压式传感器和Atmel公司AT89S51系列的单片机为主要器件构成电子血压计。该系统包括MCU、传感器、LCD液晶显示器、操作面板、充放气控制电路、气泵和气阀、蜂鸣器、存贮器、电源等部分。
单片机是整个电子血压计的核心中枢,其自身的运行质量和运行效率将会直接影响到整个电子血压计的运行质量和效率,所以对单片机的选择至关重要,依据系统设计要求本文选择Atmel公司的16位AT89S51系列单片机,这种单片机本身拥有一定的自动控制能力,除了具备系统监控、数据处理的能力之外,还能够根据系统整体的运行情况主动对系统部件的参数进行重新设置,这种主动权配置和主动能力,让其具备了一定的自主能力和智能能力。
传感器电路是电子血压计血压测量功能得以实现的关键系统,从系统功能的角度来看,其本身应该具有线性条件优良、噪声小、反应速度快等特点,根据这一标准要求,本文选择了Motorola公司生产的MPXV53GC6U硅压式传感器,这种传感器不仅满足了电子血压计对传感器电路的设计要求,同时在恒流电源供电的情况下还能够自动形成对温度差异的补偿。在实际的电压测量活动中传感器对血压的测量信号经过滤波器滤波之后,由放大机放大,通过对传感器电路信号的综合处理,将计算得出的收缩压 (SP)、舒张压(DP)、平均压 (MP) 结果显示在电子血压计综合显示屏上。
当前电子血压计存在的主要问题就是测量传感器的噪声问题,宽幅度、高频率的噪声,使得电气血压传感器的测量信号淹没在背景噪声当中,处理器无法对其进行有效处理,进而影响到电子血压计测量结果的准确性和稳定性。所以在电子血压计电路中增加滤波电路是十分必要的,滤波器位于系统传感器的后方,在测量传感信号的传递过程中,对信号中存在的杂波信号进行过滤,降低信号的平均噪声水平,提升测量信号质量。1100
充放气电路是系统中的主要动作电路,是系统传感器测量功能得以实现的重要辅助设备,从系统结构角度出发来看,主要的工作状态分为电磁阀充气和电磁阀放气两种状态。但是在具体的测量活动中还是存在着快速充气、快速放气、精确控制气量的实际问题,在系统设计活动中为了满足上述充放气电路的要求,选择压力值控制系统对充放气电路进行具体操作。具体而言其操作流程如下,首先按下START键开始血压测量套袖的充气流程,当套袖内的压力达到设定值以后,充放气电路会控制电磁阀进入放气程序,其运行状态就会转为匀速放气,直到压力检测系统发现套袖中的气压降低到30mm Hg的时为止,这时可以认为血压测量工作已经完成,充放气电路会命令完全开放电磁阀,全速放气指导套袖中的压力降到零为止。
液晶显示器是电子血压计与传统血压计之间最明显的区别,同时也是电子血压计的优势所在,通常情况下为了保证电子血压计便携性并有效控制成本,都会选用小型液晶显示器。本文选取的是小型的液晶系统LMS0192A,它的外观尺寸为79×42mm,具有44个引脚和160×64的点阵显示。这一显示器突出的特点是内部应用了大规模集成电路和控制器,自身的数据显示功能与单片机完全兼容,能够同时显示8为的串行数据,同时其自身带有一定的数据缓存功能,能够对一定时间内的检测数据进行存储和现实。这一液晶显示模块还配有电源驱动电路,能够帮助液晶显示器最大限度的优化电能资源配置,以最小的电力消耗实现最佳的测量显示效果。
其六、电源模块的设计 , 本次实验的系统电源采用两节1.5V的电池供电,经过AT89S51芯片升压至3.5V直接为系统提供电源。
2 系统的软件部分设计
当用户按下“测量”按键时 , 开始测量血压,首先AT89S51会发出一个控制信号给气泵,提示加压充气。在充气的过程中,从压力传感器发出的血压信号会放大、滤波后送入A / D转换模块,信号经A /D转换后送入MCU系统执行相应的信号处理算法,计算出心率、收缩压和舒张压的值。MCU计算出测量值以后,保存本次测试结果至Flash芯片,如果测量结果正常,则LCD显示出所测的数据并执行快速放气操作 ;如果测量出的结果超出正常范围,则显示相应提示信息,同时发出警报声音。如果在测量过程中出现错误,系统将停止充气并启动电磁阀进行放气,蜂鸣器也会发出报警声音,同时显示测量出错的提示信息。
3 系统调试
在配套的软件系统中设定了一个压力标定程序 , 它主要负责调试运行。调试运行的过程如下 :当让传感器与大气连通供给系统零压力时,经过一段时间的稳定,系统会自动记录零点脉宽 ;接着它会提示调试者,供给系统300mm Hg的压力,这时调试者应将显示的数值调整到16268±100。
经过以上专业的分析研究和改进调试,我们测试的要求在系统上达到了较好的应用。应该注意的是当我们在测量的过程中,应保持不动,以免因为被测者的动作形成一个假脉冲信号,从而可能改变CP信号值的精确度。当然实验还需要进一步提高准确性和可靠性,另外传感器线性、PCB板布线、气泵和气阀选择等等都需要做进一步的改进调试。
摘要:在现代社会生活的实际需求推动下,在电子传感技术的支持下,电子血压计产生并逐渐壮大,应用范围不断拓展,与传统血压计相比,电子血压计具有反应迅速、刺激小、兼容性好等优势,但是同时也存在准确性和重复性的劣势。所以在现代医疗卫生活动中的应用存在一定局限性。针对电子血压计在应用中存在的实际问题,本文提出使用MPXV53GC6U高性能硅压式传感器,以符合测量实际情况的噪声补偿算法,对测量时因噪声影响而产生的结果差异进行补偿,以达到从整体上提升电子血压计准确性和稳定性的目的。
AT89S51单片机 篇5
因此, 瓦斯浓度监测监控器所要实现的功能包括根据所选的瓦斯传感器来设定瓦斯浓度预警值, 采集瓦斯浓度并进行浓度显示及处理。当实际浓度超限时进行声光报警并同时控制排风扇进行排风以降低浓度含量。
1 总体方案
随着超大规模数字集成电路、单片机技术的发展, 利用单片机及其他外围芯片实现对瓦斯的监测成为一种可能, 并且成为一种发展趋势。它体积小、操作简单、携带方便、功能较齐全等优点, 而且性能价格比也很高, 应用前景非常广泛。因此此次设计整体上是基于AT89S51单片机来实现煤矿瓦斯浓度监测报警。在这里我们运用到的气敏传感器是MQ-4, 它是用来监测外部瓦斯的浓度, 并将监测到得模拟信号转化为电压信号输出出来。然后再将电压信号输入到AD7109进行A/D转换变成数字信号, 并在51单片机的控制下将其输入, 然后在内部软件编程下进行数值变化处理。在单片机进行完整数据处理后就将其结果输出显示, 从而显示出瓦斯气体的浓度, 其中显示部分我们采用四位的LED数码管, 用于显示瓦斯浓度值。若实际瓦斯浓度超限则在单片机的控制下进行声光报警。系统框图如图1所示。
2 报警器硬件设计
2.1 硬件总体设计
此次设计的煤矿瓦斯监测报警器主要由气体传感器MQ-4、A/D转换器ICL7109、单片机AT89S51、LED显示电路、键盘控制电路、声光报警装置和附件电路组成。
煤矿瓦斯监测报警器的硬件部分设计师以单片机系统为核心, 用于整个设计的数据处理、声光报警电路等正常工作。在这里我们选用ATMEL公司生产的8位单片机AT89S51, 这种单片机与以往采用的AT89C51相比新增加了很多功能, 性能有了较大提升, 片内4K的FLASH存储空间也能满足我们设计的要求, 价格较之AT89C51基本不变甚至更低[2]。
甲烷传感器采用MQ-4气敏传感器, 用于探测采集瓦斯的浓度。由于该传感器的输出信号为模拟电压信号, 要想将采集到得数据送至单片机系统进行数据处理则需要将模拟信号转换成数字信号, 所以在这里我们还要选用ICL7109芯片进行模数转换处理。这里的ICL7109是一种双积分的12位A/D转换器, 其性能价格比较高, 是一种高精度、低噪声、低漂移A/D转换器。
瓦斯浓度显示部分采用四位的LED数码管显示, 在这里我们采用动态扫描方法显示各种参数。
2.2 监测电路
根据煤矿安全规程规定, 甲烷浓度超过1%时, 检测仪表应进行报警;超过1.5%时, 井下设备应断电;超过2%时应立即撤离所有人员。本项目所设计的矿瓦斯监测报警器范围为0%~2%, 完全满足煤矿安全规程的要求。报警器能否正确显示瓦斯浓度, 取决于传感器的好坏以及它的监测电路。监测电路是这个报警器中最重要的部分, 我们设计的MQ-4检测电路如图2所示, 其中可调节电阻R3是用来调整传感器[3]。该检测电路的特点: (1) 桥路输出电压呈线性; (2) 响应速度快; (3) 具有良好的重复性、选择性; (4) 元件工作稳定、可靠。
2.3 A/D转换电路
A/D转换部分电路是由A/D转换器ICL7109构成的, 根据转换器的的性能指标, 考虑到系统的精度, 我们选用了ICL7109转换器, 它是一种高精度、低噪声、低漂移和低价格的双积分式A/D转换器, 其数据输出为12位二进制数, 配有较强的接口电路, 能方便地与各种微处理器连接。本文所设计的AT89S51和ICL7109连接电路原理图如图3所示。
其主要作用是将气体传感器MQ-4所得到的模拟电压信号转换成数字量 (该模拟电压信号与瓦斯气体的体积分数相对应) , 便于输入到单片机中进行数据处理。
2.4 数据显示电路
在显示器件的选择中我们采用了数码管进行显示数据。其中数码管显示器有两种显示方式, 即静态显示方式和动态显示方式。由于此次显示电路是为了显示瓦斯浓度值其浓度变化的, 所以我们采用动态显示。
由于采用动态显示, 因此除了要给显示器提供显示段码之外, 还要对显示器进行位的控制, 即通常所说的“段控”和“位控”。因此对于采用动态显示的电路来说, 单片机都需要提供两种输出口, 一种用于输出显示段码, 另一种用于输出位控信号[4]。“位控”实际上就是对LED显示器的公共端进行控制, 位控信号的数目与显示器的位数相同。
显示电路设计为四位LED, 由单片机89S51的串行输出口经串行输入转并行输出来控制段选, 位选接在P1口的P1.3~P1.6。这种设计是为了采用动态显示方式, 如图4所示。
2.5 电源电路
此次设计中我们用到的电源只用±5V, 所以我们只需设计
3 报警仪的软件设计
3.1 主程序
单片机系统上电后, 首先要对系统进行初始化, 初始化程序包括内存空间的分配、初始变量的设置、设定堆栈指针等。正常初始化后开放定时器中断, 外部中断和串行口中断, 然后启动定时器定时。每隔一段时间对瓦斯的浓度采集一次, 将采集到的模拟量浓度数据存到寄存器中, 当系统在取数据进行显示的过程中要产生中断, 调用中断处理子程序, 在中断处理子程序中进行数据转换及显示浓度。主程序编好后编制各从属的程序和子程序, 最后完成整个系统的软件设计。系统软件设计中要实现的功能有:用户机的单片机系统要完成定时地对瓦斯浓度进行检测, 将瓦斯浓度值进行A/D转换, 动态地显示采集到的瓦斯浓度值, 声光报警。
3.2 数据处理/采集程序
由A/D转换器的8位二进制数反映的是AD7109的输入电压的对应关系, 而要显示瓦斯浓度, 并且进行报警, 就要根据它们之间的对应关系转换为反映瓦斯浓度的BCD码。当瓦斯浓度变化1%时, 测试电路输出16mV电压, 在经过放大电路放大, MQ-4传感器对瓦斯气体检测的最大浓度为2%, 因此调节放大电路的放大倍数, 使瓦斯浓度为2%时经放大电路放大后输出为+5V的直流电压。MQ-4传感器对于瓦斯的检测呈线性变化, 因此, ICL7109输出的数字信号与瓦斯浓度存在线性关系, 为了实时地显示瓦斯浓度, 采用中断的形式对ICL7109转换的数据进行采集。整个采集由微处理器的若干指令完成。
3.3 中断子程序
为了较准确的检测瓦斯浓度, 我们需要对瓦斯浓度进行数据采集, 这里是指单片机的数据采集。其硬件电路包括MQ-4、A/D7109及单片机, 浓度经过传感器变换为模拟电压再经数模转换为数字信号送入单片机中, 数据转换完毕之后是通过中断的方式送入单片机的。通过外部中断INTI来完成, 由于检测瓦斯浓度在时间上较严格, 更不允许丢失数据, 所以INTI的终端优先级设定为高。其流程图6所示。
3.4 声光报警程序
当声光报警开启后, 当达到提醒人们离开的目的后, 需要接触声光报警, 接触报警有两种途径, 一种是手动解除, 一种是系统自动解除, 若没有手动解除报警, 则系统可通过调用20s的延时时间来自动解除报警。声光报警流程图如图7所示。
4 结束语
该报警器以AT89S51单片机为核心, 采用高精度敏感元件MQ-4测量瓦斯浓度值, 采用AD623新型集成运算放大器、AD7109数模转换器, 是一种电路设计新颖、参数测量准确、结构简单、成本低、控制能力强、操作方便的瓦斯浓度报警器。它具有以下特点:测量范围宽、精度高、可检测的瓦斯浓度为0.00%~2.00%;具有设定报警下限值和声、光报警功能;仪器输出为低功耗, 工作电压为直流+5V。
本课题设计的便携式甲烷报警仪, 为今后便携式仪器的研制和实用化提供了较好的实现方式, 并且为该领域的研究提供了很好的参考依据。
参考文献
[1]王元庆.新型传感器原理及应用[M].北京:机械工业出版社, 2002:67-69.
[2]贾好来.MCS-51单片机原理及应用[M].北京:机械工业出版社, 2007:32-34.
[3]李永生, 杨莉玲.半导体气敏元件的选择性研究[J].传感器技术.2002, (3) :1-3.
[4]阎石.数字电子技术基础[M].北京:高等教育出版社1998.
AT89S51单片机 篇6
学校的空闲教室是学生们最喜欢用于上自习的地方, 在教室自习虽然避免了下课后去图书馆找座的时间浪费。但是, 由于每间教室分配的教学任务不同, 其使用的时间和状况也不同, 所以想要在自己上课的教学楼找到一个空闲的教室也不是一件容易的事。
通过采用单片机控制的自习室管理系统, 可以简单有效地解决上述问题, 方便学生快速有效地找到合适的自习教室。通过单独置于的教室的子系统对当前教室的使用情况和使用人数进行记录, 然后在教学楼相应的区域进行显示。这样, 学生可以通过系统显示的内容在其所处的教学楼内进行自习室的选择, 大大节省了盲目找座的时间, 对教室资源的高效使用也有很大的意义。
1. 系统总体设计
本系统主要包含两个主体部分:教室单元和大厅单元 (即总显示部分) 。系统的工作流程如下:
每个教室的使用状态有“上课中”、“自习 (人少) ”和“自习 (人多) ”3种。现用3种不同颜色的LED灯表示当前教室状态:红色代表“上课中”;绿色代表“自习 (人少) ”;黄色代表“自习 (人多) ”。单片机通过对当前教室信息进行判断, 并且实时将教室信息用LED灯表示, 并且在本楼层进行显示。每个教室的使用信息数据由单片机通过有线通信的方式向上一级发送, 然后位于大厅的单片机读取各个楼层教室的使用数据并且点亮大厅的教室使用状态灯。
各模块间的关系如图1所示。
2. 系统各功能模块实现
自习室管理系统的主要部分是对教室的状态信息进行采集与判断, 这里采用单片机作为控制中心。
AT89S51是一种低功耗高性能的8位单片机, 片内带有一个4KB的Flash在线可编擦除只读存储器, 它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术, 而且其输出引脚和指令系统和51系列单片机兼容。片内的存储器允许在线重新编程或用常规的非易失性存储器编程器来编程。同时已具有三级程序存储器保密的性能。在众多的51系列单片机中, 要算ATMEL公司的AT89S51更实用, 因为它不仅和MCS-51系列单片机指令、管脚完全兼容, 而且它将通用CPU和在线可编程Flash集成在一个芯片上。AT89S51单片机对开发设备的要求很低, 开发时间也大大缩短, 方便使用。
2.1 教室单元设计
2.1.1 教室人数
对于自习室的使用来说, 并不需要精确知道每个教室当前有多少人, 因此采用红外对管的方式对教室人数进行计算, 原理如图2所示。
将两组红外线发射接收对管安装在图2中所示的墙壁上, 外侧的红外线发射接收对管的位置为P1, 内侧的位置为P2, 这里P1的P2之间需要有一定的间隔距离。此时根据P1和P2的触发顺序可以有两种情况:P1先触发, P2后触发;P2先触发, P1后触发。前者表示有人进入教室, 这时总人数加1, 后者表示有人离开教室, 此时总人数减1。
计数过程流程图如图3所示, 其中Pa=1代表位置P1处的红外线发射接收对管被触发, Pb=1代表位置P2处的红外线发射接收对管被触发。
部分计数代码如下:
2.1.2 教室状态
每个教室的使用状态有“上课中”、“自习 (人少) ”和“自习 (人多) ”3种。现用3种不同颜色的LED灯表示当前教室状态:红色代表“上课中”;绿色代表“自习 (人少) ”;黄色代表“自习 (人多) ”。上课状态由控制按键决定, 按键按下表示处于“上课中”, 否则处于“自习”状态。
取教室容量为A, 当前教室学生数为B, 考虑到一般自习教室的自习人数大约为教室容量A的80%, 因此可令教室容量A的70%作为判断教室容量状态的标志:在自习状态下, 若B>70%A, 则亮黄灯, 否则亮绿灯。
2.1.3 数据收发
通过有线通信的方式实现AT89S51单片机与上位机的数据收发。给每个教室分配不同的端口地址。由于自习教室人员流动情况较小, 单片机与服务器的通信频率采用当有新数据需要传送时进行通信, 以降低系统的资源占用, 提高系统的使用效率。
2.1.4 教室系统设计
考虑到实际应用情况, 采用AT89S51单片机的中断系统对是否上课进行判断, 当中断未出现时, 单片机继续监控学生出入, 当“上下课”中断产生时, 单片机跳出主程序, 优先执行中断, 实现教室状态信息灯的控制。具体设计流程如图4所示。
由AT89S51单片机的P3.2引脚引入外部中断INT0, 外部中断源INT0为低电平有效, 当P3.2引脚输入低电平时, 单片机相应该中断, 执行相应的中断处理子程序。
部分主要代码如图5所示。
需要说明的是, 跳出执行的中断处理子程序的功能只负责修改状态灯的亮灭情况, 不对计数器进行任何操作。
2.2 大厅单元设计
放置在大厅的是系统的总显示系统, 用于集中显示各教室的使用状况。通过一片AT89S51单片机接收下级系统发送的状态信息, 并且由特定的端口地址取出对应教室的使用状况数据, 点亮对应状态指示灯。
结语
本文所设计的系统具有体积小、效率高、成本低、结构简单和可靠性强的优点。通过安装该系统, 可以使高校的教室得到更加合理地利用, 提高资源的利用率, 避免了教室的空置和浪费。对于学生来说, 该系统提供的教室信息也便于其快速有效地选择自习教室, 从而避开上课教室和自习人多的教室, 大大减少了时间的浪费。相较于其他单片机来说, AT89S51具有价格低廉、功能强大的特点, 因此, 基于AT89S51单片机的该系统容易得到接受与推广, 具有很高的实用价值。
摘要:本文以AT89S51单片机为核心, 设计了一个自习室管理系统, 以帮助学生快速有效地选择自习教室, 使得学校教室资源可以得到合理高效地利用。教室部分系统作为基本主题, 通过红外计数、按键等方式对教室状态进行采集判断, 然后采用有线通信方式与上位机进行通信, 具有体积小、效率高、成本低、结构简单和可靠性强的优点。
关键词:AT89S51,单片机,红外计数,自习室管理系统
参考文献
[1]兰建军, 潘凤红.图书馆阅览室座位信息管理系统[J].科技信息, 2007 (34) :608-623.
[2]刘大杰.基于单片机和红外接近开关的图书馆座位管理系统[J].电子工程师, 2006, 32 (5) :73-75.
[3]周兴华.单片机智能化产品C语言设计实例详解[M].北京:北京航空航天大学出版社, 2006.
[4]范洪刚, 魏学海, 任思璟.51单片机自学笔记[M].北京:北京航空航天大学出版社, 2010.
AT89S51单片机 篇7
温、湿度控制广泛应用于人们的生产和生活中,人们通常使用温度计、湿度计来采集温度和湿度,通过人工加热、加湿、通风和降温设备来控制温湿度,这样不但控制精度低、实时性差,而且操作人员的劳动强度大。即使有些用户采用半导体二极管作为温度传感器,但由于其互换性差,效果也不理想[1]。在某些行业中对温湿度的要求较高,由于温度过高或过低引起的元器件失效或由于环境湿度过高而引起的事故时有发生,对系统的可靠运行造成影响,甚至危及到系统局部及操作人员的安全。所以实施对温度的监控也日显重要。针对这一情况,作者结合微电子技术和AT89系列单片机技术研制了一种稳定性高、成本低的温湿度控制仪[2]。
2 系统组成及工作原理
这种基于单片机控制的温湿度控制仪的控制系统工作原理如图1所示。该温度控制仪的控制系统不以PC上位机作为数据处理器,而是直接以单片机作为其控制系统的核心部件,其硬件电路以AT89S51为核心,并配以键盘、LED显示器、继电器等元件。其中硬件电路部分主要由时钟电路、上电复位电路、595引脚电路、键盘接口电路、LED显示电路以及继电器接口电路组成[3]。
其中时钟电路部分主要是为了保证计算机的正常工作,并使内部各功能电路必须在该时钟信号的同步下按时序工作。上电复位电路的作用主要是将计算机内部的硬件初始化,使CPU和系统中的其他部件都处于这个确定的初始状态,并从这个状态开始工作。595引脚电路的作用主要是将温湿度控制仪内部的硬件电路联系在一起。键盘接口电路主要是用来控制以及查询电路的,通过键盘设置温湿度的上下限值,使得温湿度在期望值之内,当温湿度超过上下限值,报警电路接通,随后通过单片机控制继电器使温度回到设定值之内。LED显示电路是采用软件动态扫描四位数码管的方式,及时地将室内的温湿度显示出来,完成对温湿度的实时监测。继电器接口电路起着自动调节、安全保护、转换电路等作用[4]。整套系统是利用AT89S51单片机作为控制系统的核心来采集周围环境的温湿度值,以数字量的形式存储和显示,并独立作为一种设备对温湿度进行控制,经过简单的运算,发出各种控制命令,并能动态地显示当前温湿度值,设定目标控制温湿度值,同时,作为数据采集装置,为上位机进行复杂运算决策提供数据来源。
3 主要硬件电路设计
3.1 时钟电路
单片机的工作过程就是不断执行指令的过程[5]。CPU每执行一条指令,都要经过取操作码、取操作数和执行等几个过程,这些有效的操作都是在CPU时钟脉冲控制下有序的进行,而这些脉冲就是由CPU的定时控制器提供的,因此该温湿度控制仪的时钟电路主要是利用了MCS-51单片机芯片内部的一个用于构成时钟振荡电路的高增益反相放大器,XTAL1为该放大器的输入端,XTAL2为输出端,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路便产生自激振荡,故该系统使用的是内部方式产生时钟,其时钟电路原理如图2所示。
3.2 键盘接口电路
按键连接方式有两种:独立式按键和矩阵式键盘,本次设计采用了独立式非编码4×4键盘,是每个按键独立地占用一条数据输入线,当某一按键闭合时,相应的I/O线变为低电平,这样通过键盘上的高低电平来检测有无按键被按下,读入相应的数值,键盘输入的是温/湿度的阀值,键盘接口电路如图3所示。
3.3 LED显示接口电路
显示子程序采用动态扫描法实现四位数码管的数值显示,以减少硬件电路[6]。由SHT11测得的温湿度的值经其自身所带的A/D转换数据放在内存单元中,由51单片机的P3.5串行输入到595,595给出合适的时钟脉冲后,由Q0~Q7输出,点亮相应位段。有四个数码管,具体哪一个选通,由51单片机P0.0~P0.3发出选通信号DIS0~DIS3来选择。测量数据在显示时需转化为十进制BCD码。本设计采用软件动态扫描实现数据显示功能。
3.4 继电器接口电路
当温度或湿度高于或低于设定值时,需要通过继电器来控制,本设计选用的继电器型号为:G2R-1A-12DC,并使用了高耐压、大电流、内部由七个硅NPN 达林顿管组成的驱动芯片ULN2003A进行驱动,其接口电路如图4所示。
3.5 复位电路
复位电路采用了高电平复位,刚上电时电容两端没有电压,三极管不导通,节点RESET被R45拉至高电平,随着电容充电的进行两端电压逐渐升高,直到三极管进入导通状态,R45有电流流过,RESET电压降低,最后三极管饱和,RESET点的电压只是三级管的饱和压降,0.3 V左右,至此完成复位,复位时间是电容充电时间[7]。复位电路如图5所示。
4 控制仪的器件选型
4.1 微控制器的选择
AT89S51 是美国ATMEL生产的低功耗、高性能CMOS八位单片机,片内含 4 Kbytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术生产, 兼容标准 8051 指令系统及引脚。它集Flash程序存储器既可在线编程(ISP)也可用传统方法进行编程及通用八位微处理器于单片机芯片中, 该单片机的功能强大,出色地表现在以下几方面:①为一般控制应用的八位单芯片;②晶片内部具时钟振荡器,最高工作频率可至 12 MHz;③内部程式存储器(ROM)为 4 KB ;④内部数据存储器(RAM)为 128 B;⑤32 条双向输入输出线,且每条均可以单独做 I/O 的控制,五个中断向量源;⑥两组独立的 16 位定时器;⑦单芯片提供位逻辑运算指令,此外AT系列单片机可以应用到各种领域,基于上述几方面,采用低价位 AT89S51 单片机为本系统的控制核心。
4.2 温湿度数据检测模块器件选择
Sensiron公司在2002年率先研制成功了SHT11型智能化温度/湿度传感器,其外形尺寸仅为7.6 mm×5 mm×2.5 mm,体积与火柴头相近,它不仅能准确测量相对湿度,还能测量温度和露点。测量相对湿度的范围是0~100%,分辨率达0.03%RH,最高精度为±2%RH。测量温度的范围是-40~+123.8 ℃,分辨率为0.01 ℃。测量露点的精度小于±1 ℃。在测量湿度、温度时A/D转换器的位数分别可达12位、14位。利用降低分辨率的方法可以提高测量速率,减小芯片的功耗。SHT11的产品互换性好,响应速度快,抗干扰能力强,不需要外部元件,适配各种单片机,可广泛用于医疗设备及温度/湿度调节系统中。而且芯片内部包含相对湿度传感器、温度传感器、放大器、14位A/D转换器、校准存储器(E2PROM)、易失存储器(RAM)、状态寄存器、循环冗余校验码(CRC)寄存器、二线串行接口、控制单元、加热器及低电压检测电路,集成度高,在本设计中由于不需要上位机传输信号,因此使用该产品作为本系统的温湿度传感器。
5 系统软件设计
本设计是从主程序、温湿度处理部分、键盘设置、数码管显示、继电器控制几个方面进行具体描述的[8]。整个程序的思路是:主程序以“测温湿——处理温湿——查询键盘——继电器控制”进行着,定时器0定时时间到了,保护现场,进行数码管动态扫描,之后恢复现场,中断返回,继续回到主程序。
主程序的主要功能是负责温湿度的实时显示,读出并处理SHT11测量出的温湿度值,并设定一个预期值,使实时温湿度值与之对比,当温湿度低于设定值时,相应的灯会亮,并使继电器相应开关闭合,给其加温或加湿;当温湿度高于设定值,继电器开关处于断开状态。温湿度程序设计中,包含了以下子程序:写程序、读程序、传输启动程序、复位程序、计算及修正温湿度值程序[9]。键盘程序设计的思路如下:先进行键扫描,确定是哪个键被按下。如果先按K1或K2,当前状态继续进行,数码管显示也不会发生改变。当先按到K3或K4时表明要设定值了,此时再扫描,看K1或K2有没有被按下,按下则进行相应的加减1操作,当操作完后,再按下K3或K4表示此次设置完成。继电器在本设计中的作用就是:当此时温湿度高于设定值时,继电器开关是打开的,不对其进行操作;当温湿度低于设定值时,继电器开关是闭合的,驱动后设,来改变温湿度值。继电器闭合时,加温加湿相应指示灯亮[10]。主程序流程如图6所示。
6 结 论
经过长时间的试验与测试,这种基于单片机控制的温湿度控制仪,能够实现对温度的精确控制,能将温度误差控制在±0.1 ℃之间,而且该产品不需要上位机的控制信号,结构简单实用,且生产成本较低,在实际运行中可以节约能源,提高工作效率,达到较好的控制效果。
参考文献
[1]文生平,赵国平,江剑强.基于MATLAB的熔体温度控制设计研究[J].化工自动化及仪表,2007,34(6):17-18.
[2]王学武,王冬青,陈程,等.基于混沌RBF神经网络的气化炉温度软测量系统[J].化工自动化及仪表,2006,33(5):13-14.
[3]史军勇,冀捐灶,杨宝强.基于AT89C2051的温湿度控制仪[J].电子技术,2004,(1):21-23.
[4]ZHAO Yong-zhong,DONG Xing-wan,TANJin-lin,et al.ZWB-2 Intelligent Multimeter,Intelligent Processing Systems[C]//1997 IEEE International Conference.1997:1470-1472.
[5]夏方林.一种基于单片机AT89C51的温湿度控制仪的设计[J].工业仪表与自动化装置,1999,(1):32-34.
[6]王宝库.多功能检测控制系统的设计[J].微计算机信息,2006,22(4-1):103-105.
[7]赵亮,赵国锐.单片机C语言编程与实例[M].北京:人民邮电出版社,2003.
[8]张志利,蔡伟.基于AD590的温度测控装置研究[J].自动化与仪器仪表,2001,(2):37-39.
[9]王福瑞.单片微机测控系统设计大全[M].北京:北京航空航天大学出版社,1998:282-283.
【AT89S51单片机】推荐阅读:
AT89S5209-25
AT89S52处理器08-27
AT牵引供电06-18
AT供电系统07-23
含at的英语短语07-05
AT89LV5210-11
AT89C205106-02
三年级At the zoo英语教案09-05