甲醛除味控制系统微型计算机控制技术课程设计.docx
- 文档编号:30665548
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:20
- 大小:499.31KB
甲醛除味控制系统微型计算机控制技术课程设计.docx
《甲醛除味控制系统微型计算机控制技术课程设计.docx》由会员分享,可在线阅读,更多相关《甲醛除味控制系统微型计算机控制技术课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
甲醛除味控制系统微型计算机控制技术课程设计
目录
1设计内容及要求2
2系统概述2
3元器件选择3
3.1气敏元件3
3.2ADC08083
3.3AT89C514
4硬件电路7
4.1晶振电路7
4.2A/D转换电路7
4.3电机驱动电路9
5程序设计9
5.1主程序9
5.2采样程序11
5.3PWM波产生程序11
6仿真结果12
7小结与体会13
参考文献14
附录
(一)15
附录
(二)16
甲醛除味控制系统设计
1设计内容及要求
设计一个甲醛除味控制系统,根据甲醛浓度来控制电机转速进行抽风,降低甲醛浓度。
设计过程中要对传感器进行选型,运用单片机合理设计采集及控制系统。
2系统概述
根据对设计要求的分析可知,可采用模块化设计方法,因此系统主要分为四个部分,它们分别是:
采样模块、A/D转换模块、单片机采集控制模块、电机驱动模块。
其中传感器检测模块功能是完成对空气中甲醛浓度的采集并将其转换成电压信号;A/D转换模块主要对传感器模块输出的电压信号进行A/D转换,然后输出给单片机;单片机部分主要是对A/D转换电路输入的信号进行采集,然后根据采集量对电机进行控制;电机模块主要包括点击驱动电路以及电机,其主要作用是根据单片机输出的信号控制自身转速。
电路的大体工作流程如图1所示。
图1系统工作流程
3元器件选择
3.1气敏元件
本次设计要求对甲醛气体的浓度进行测量,经查阅资料可知道应该选择的气敏元件为MQ183。
但因为仿真软Protues中无MQ183,所以用电压来模拟传感器的输出。
3.2ADC0808
ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808是ADC0809的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
ADC0808芯片有28条引脚,采用双列直插式封装,如图2所示。
图2ADC0808引脚图
ADC0808管脚功能如下:
1~5,26~28(IN0~IN7):
8路模拟量输入端。
8,14,15,17~21:
8位数字量输出端。
22(ALE):
地址锁存允许信号,输入,高电平有效。
6(START):
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
7(EOC):
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
9(OE):
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
10(CLK):
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
12(VREF(+))、16(VREF(-)):
参考电压输入端。
11(Vcc):
主电源输入端。
13(GND):
地。
23~25(ADDA、ADDB、ADDC):
3位地址输入线,用于选通8路模拟输入中的一路。
ADC0808的通道选择,如表1所示。
表1ADC0808通道选择
3.3AT89C51
AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51的管脚图如图3所示。
图3AT89C51引脚图
下面对AT89C51管脚功能进行简要说明。
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功备用能口。
P3.0:
RXD串行输入口。
P3.1:
TXD串行输出口。
P3.2:
/INT0外部中断0。
P3.3:
/INT1外部中断1。
P3.4:
T0记时器0外部输入。
P3.5:
T1记时器1外部输入。
P3.6:
/WR外部数据存储器写选通。
P3.7:
/RD外部数据存储器读选通。
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4硬件电路
总的硬件电路图见附录一,这里这对硬件电路的主要部分进行简单的说明。
4.1晶振电路
晶整电路结构如图4所示。
在AT89C51内部有一个震荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号,图4中电容器C1和C2稳定频率和快速起振。
4.2A/D转换电路
采样电路结构如图5所示。
设计中利用电阻的变化来影响电压的输入来模拟甲醛浓度的变化量,相当于一个甲醛浓度的传感器,真实的传感器中的结构并非如图5中的滑动变阻器这样,这只是一个模拟。
采样电路采用的芯片是ADC0808,输出口OUT1~OUT8接AT89C51的8个输入引脚。
ADC0808通过对输入电压的采样,将之转换为数字信号输入到下一环节,即单片机控制部分。
图4晶振电路
图5A/D转换电路
4.3电机驱动电路
本设计只要求控制电机向一个方向转动,故只需采用直流电机的单向驱动电路即可满足实验要求。
驱动电路如图6所示。
如图6中所示的电机要实现调速则是通过利用三极管对之流电机进行PWM调速控制。
其原理是加在电动机电枢两段的电压是脉动的方波,使此波的幅值和周期不变,而改变脉冲高电平所占的宽度,即改变脉冲的占空比,就可以改变加载电动机两端的电压平均值,从而达到调速的目的。
PWM波形如图7所示。
图6电机驱动电路
5程序设计
程序设计部分主要分为采样程序设计、中断函数的程序、以及主程序。
5.1主程序
主程序部分应该具有以下功能:
将ADC0808转换过后的的采样值输入到单片机中,然后再根据采样值计算当周期为10ms时PWM波为高电平和低电平的时间,然后利用定时器定时输出指定占空比的PWM波。
主程序流程如图8所示。
图7PWM波
图7PWM波形图
图8主程序流程图
主程序代码见附录二。
5.2采样程序
本次设计中ADC0808采用的是直接通过单片机控制其端口的信号,从而使ADC0808分别工作在输入、A/D转换和输出三个状态。
采样程序代码如下:
voidscan()
{
OE=0;
START=0;
_nop_();
_nop_();
_nop_();
START=1;
_nop_();
_nop_();
_nop_();
START=0;
delay
(2);
while(EOC==0);
OE=1;
temp=P1;
delay
(2);
OE=0;
t1=temp*39;
}
5.3PWM波产生程序
PWM的产生原理是先通过单片机对得到的采样值进行计算得到高电平和低电平的持续时间,周期T为10ms,再对高电平和低电平进行延时,从而得到PWM波,通过改变延时时间即可改变占空比。
程序代码如下:
voidtime1(void)interrupt3
{
TR1=0;
t2=10000-t1;
if(P2_7==0)
{
th1=-t1/256;
tl1=-t1%256;
}
else
{
th1=-t2/256;
tl1=-t2%256;
}
TH1=th1;
TL1=tl1;
P2_7=~P2_7;
TR1=1;
}
6仿真结果
先利用keil软件对程序进行调试,再将程序载入单片机进行仿真,可得到仿真结果的PWM波如图9所示。
当模拟电压小于等于1V时,输出低电平,电机不转。
当模拟电压大于1V时,电动机转动,PWM的占空比不同。
当模拟电压等于5V时,电动机转动,但此时输出的为高电平。
图9仿真结果的PWM波形
7小结与体会
此次课程设计让我受益匪浅。
与平常做题不同,课程设计对知识的应用和理解有很大的要求,能够使平常学习的知识得到系统的应用,这一点在本次课程设计中更是显现得淋漓尽致。
本次课程设计我们组所做的题目是设计一个甲醛除味控制系统。
题目不是很难,主要是围绕单片机和A/D转换芯片ADC0808,需要我们了解A/D转换芯片ADC0808的功能及用法,经过一段时间的查阅资料后,我们基本弄清了ADC0808的功能及用法,有了设计思路,并经过一段时间的努力终于完成了设计。
经过此次课程设计,我们学到了很多,对我们分析问题的能力有了很大的提高。
这些恰恰是我们以后走上工作岗位所必须的,这对我们以后的工作有很大的帮助。
参考文献
[1]陈立周.单片机原理及其应用.北京:
机械工业出版社,2006
[2]马忠梅.单片机的C语言应用程序设计.北京:
北京航空航天大学出版社,2007
[3]刘红丽.传感与检测技术.北京:
国防工业出版社,2007
[4]于海生.微型计算机控制原理.北京:
清华大学出版社,1999
附录
(一)
附录
(二)
#include"REG51.H"
#include"intrins.h"
#defineucharunsignedchar
#defineuintunsignedint
sbitSTART=P3^0;
sbitOE=P3^1;
sbitEOC=P3^2;
sbitP2_7=P2^7;
sbitP2_3=P2^3;
uchara;
uchartemp;
uintt1,t2;
ucharth1,tl1,th0,tl0;
voiddelay(uint);
voidscan();
init()
{
TMOD=0X11;
th1=60;
tl1=176;
TH1=th1;
TL1=tl1;
TR1=1;
ET1=1;
IT1=1;
EA=1;
}
voidtime1(void)interrupt3
{
TR1=0;
t2=10000-t1;
if(P2_7==0)
{
th1=-t1/256;
tl1=-t1%256;
}
else
{
th1=-t2/256;
tl1=-t2%256;
}
TH1=th1;
TL1=tl1;
P2_7=~P2_7;
TR1=1;
}
voidmain(void)
{
P0=0XFF;
P1=0XFF;
P2=0XFF;
P3=0XFF;
init();
while
(1)
{
scan();
if(temp<=51)
{
EA=0;
P2_7=0;
P2_3=1;
}
else
{
EA=1;
P2_3=0;
}
delay(100);
}
}
voidscan()
{
OE=0;
START=0;
_nop_();
_nop_();
_nop_();
START=1;
_nop_();
_nop_();
_nop_();
START=0;
delay
(2);
while(EOC==0);
OE=1;
temp=P1;
delay
(2);
OE=0;
t1=temp*39;
}
voiddelay(uintx)
{
uinti,j;
for(i=0;i for(j=0;j<120;j++); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 甲醛 控制系统 微型计算机 控制 技术 课程设计