ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:322.89KB ,
资源ID:10296009      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10296009.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的加药自动控制电路的设计.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的加药自动控制电路的设计.docx

1、基于单片机的加药自动控制电路的设计摘要加药自动控制电路的设计对早前的加药控制器进行了改进,之前的加药控制器需要人工的监测,加药自动控制电路的设计免去了这种既耗时间又耗经济的弊端。本设计是在基于单片机的基础上实现自动控制,在单片机最小系统,检测电路模块,电源电路模块,报警电路模块,ADC0804模数转换电路模块,显示电路模块和软件编程的基础上来实现药水水位的自动控制。文章结合了1602,蜂鸣器,STC89C52,ADC0804模数转换器,水位传感器等的使用方法,水位传感器是根据内部阻值感应水位高低而改变,继而在整体的电路中产生电压的变化并在LCD上显示电压的变化,功能模块通过水位传感器检测水位高

2、低得到电压的不同值,然后再通过模数转换器把由于水位高低的不同而引起的电压不同值转换成数字信号输入给单片机,单片机在做出相应的处理从而达到设计要求的自动检测水位功能。实践表明,此设计有良好的应用前景。关键词:自动控制;单片机;Altium Designer;LCD1602;ADC0804Abstract This design of Dosing Automatic Control Circuit has refined the previous Dosing Controller which needs artificial monitoring. And the new design of

3、Dosing Automatic Control Circuit has successfully avoided the disadvantages of wasting time and money . This design is based on Single Chip Microcomputer to achieve the automatic control and realize the automatic control of liquid medicine water level through the minimum SCM system, detection circui

4、t module, power circuit module, alarm circuit module, ADC0804 analog digital conversion circuit module, display circuit module and software programming. This article has combined with application methods of 1602 Liquid Crystal Display, buzzer,STC89C52, ADC0804 analog digital converter and water leve

5、l sensor which varies with internal resistance induction of water level and causes changes of the whole circuits voltage accordingly, then makes it showed in the LCD . Afterwards, through the different voltage values inducted by water level sensor which soon will be converted into digital signals by

6、 the analog digital convertor, the function module then inputs the digital signals into the SCM. And the SCM makes corresponding processing, thus meets the design requirements for automatic function of detecting water level. Practice shows that this design has a good application prospect. Key Words:

7、 automatic control; single chip microcomputer; altium designer; 1602 liquid crystal display; ADC0804 analog digital converter1 绪论1.1 引言自动控制理论是研究自动控制共同规律的一门学科。目前,已有工程控制论,生物控制论,经济控制论和社会控制论等多个分支,其中工程控制论是研究工程领域的自动控制,本设计也是用到了工程控制论的加药自动控制。所谓自动控制,就是指在没有人直接参与的情况下,利用控制装置使整个生产过程或设备自动地按规律运行,或使其某个参数按要求变化,此次设计是设

8、计一个自动加药的装置,在工程应用中很是广泛。加药自动控制的设计是在单片机的基础上结合硬件电路模块和软件程序部分共同实现的。自动加药控制电路设计是通过单片机来控制药汞药水水位的监测,外加液晶显示屏来显示设备的运行状况,水位传感器电路来检测药水水位的高低,最后通过报警电路和电机驱动电路来模拟加药水,从而实现智能自动加药,此设计不需要人为监测,省时又省钱,带来了许多方便。在药汞的设计上可以根据用户需求来设计大小,在此设计中通过报警电路的设计来编写程序,从而设定自动加药的间隔时间。加药自动控制在国内外化工行业,农业方面使用都比较普遍,随着科学技术的发展自动控制技术也在不断的提升改进,相信在以后自动控制

9、技术将会给农工行业带来许多的便利,加药自动控制的设计也是在农工行业很是常见。2 系统的整体方案设计2.1 功能要求 实际药水水位的控制在药汞中有个限定的范围,不能过高也不能过低,此次设计中通过运用水位传感器来检测药水水位的高低,继而来控制电动机保持药水水位正常。检测装置是在以单片STC89C52为核心的基础上,通过液晶屏1602和报警电路来实现药水水位过低报警和过高报警并且相应处理的设计要求。2.2 设计要求 现场提出急需一种自动检测水位,当水位降低到某个阈值时,发出报警信号并自动停汞。并让药汞周期性间歇运行,运行周期为一个小时,或者可以随意设定每周期的加药的定时时间的自动控制系统。在通电下,

10、电机会随着水位传感器而工作,药水水位过低时,电机会转动,蜂鸣器也会报下警,液晶屏也会显示药水水位过低。药水水位正常时,电机停止转动,蜂鸣器也会报下警,液晶屏显示药水水位正常。 2.3 单片机选择目前电子市场上有种类较多的单片机,像51单片机,avr单片机和PIC单片机等。由于单片机的种类比较众多,各类单片机的功能也不一样,我们选择单片机的时候不是要求它功能有多好,仅仅只需要符合我们的设计要求即可。性能比较差的单片机不能实现我们设计所需要求,而且性能差的单片机相当不稳定,给我们做设计带来一些麻烦;高性能的单片机却是能满足我们设计所需要求,但是性能高的话,价格一定比较贵并且可能有很多功能不一定会用

11、到,这么一来就显得有点浪费,所以我们做设计时选择单片机不能随便选择,要选择自己最合适的;因此本次设计我选用的单片机是STC89C52单片机。STC89C52的单片机是一个低电压,高性能的CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读存储器和256 bytes的随机存储器,器件采用ATMEL公司高密度,非易失行存储技术生产,兼容标准MCS-51指令系统,片内置通用8为中央处理器和Flash存储单元,STC89C52单片机在电子行业有着广泛的应用。3 系统的硬件设计3.1 电路原理框图单片机最小模块报警电路ADC0804模数转换电路电机驱动电路电源电路检测电路图 3-1 电

12、路原理框图 此次设计的电路设计框图大致如图3-1所示,在单片机最小系统的基础上加上了外围电路来实现设计的要求。电源电路是设计的开端,而后有报警电路和电机驱动电路是根据设计要求在检测水位时蜂鸣器报警和电机转动模拟加水,检测电路应用到了水位压力传感器产生模拟信号,此时加上模数转换电路把模拟信号转换为数字信号输给单片机,让单片机来工作,此次设计的硬件电路模块方面就是这些。3.2 主控芯片简介3.2.1 主控芯片STC89C52概述STC89C52是一种功耗较低,高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得ST

13、C89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。主要特性: 6时钟/机器周期和12时钟/机器周期可以任意选择, 工作电压:5.5V3.3V 工作频率范围:040MHz,实际工作频率 可达48MHz 用户应用程序空间为8K字节 片上集成512字节RAM 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口 用时,需加上拉电阻。 ISP/IAP,无需专用编程器,无需 专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序, 数秒即可完成一片 具有EEPROM功能,门

14、狗功能,3个16位定时器/计数器。即定时器T0、T1、T2 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40+85(工业级)STC89C52引脚功能: VCC:电源电压 VSS:接地 P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作 为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“1”时,可以作为高阻抗输 入。在访问外部程序和数据存储器时,P0口也可以提供低8位地址和8位数据的复用 总线。此时,P0口内部上拉电阻有效。 P1端口(P1.0P1.7,18引脚):P1口是一个带内部上拉电阻的8位双向I/O 口。P1的

15、输出缓冲器可驱动4个TTL输入。对端口写入1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1口作输入口使 用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。 此外,P1.0和P1.1还可以作为定时器/计数器2的外部技术输入 P2端口(P2.0P2.7,2128引脚):P2口是一个带内部上拉电阻的8位双向I/O 端口。P2的输出缓冲器可以驱动4个TTL输入。对端口写入1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2作为输入口使 用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在访问外部程序存储器和16位地址的外部数据存储器P2送

16、出高8位地址。 时, 在访问8位地址的外部数据存储器时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容), 在整个访问期间不会改变。 在对Flash ROM编程和程序校验期间,P2也接收高位地址和一些控制信号。 P3端口(P3.0P3.7,1017引脚):P3是一个带内部上拉电阻的8位双向I/O 端口。P3的输出缓冲器可驱动4个TTL输入。对端口写入1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用 时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。 在对Flash ROM编程或程序校验时,P3还接收一些控制信号。 P3口引脚复用

17、功能 引脚号 P3.0 P3.7复用功能分别如下:RXD(串行输入口)TXD(串行输出口) (外部中断0) (外部中断1)T0(定时器0的外部输入)T1(定时器1的外部输入)(外部数据存储器写选通) (外部数据存储器读选通) RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用 来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输出96个晶 振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。 DISRTO默认状态下,复位高电平有效。 ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8位地址的输出

18、脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。(29引脚):外部程序存储器选通信号()是外部程序存储器选通信号。 VPP(31引脚):访问外部程序存储器控制信号。 XTAL1 :片内震荡反相放大器和时钟发生器电路的输入端当使用片内振荡器时,该引脚接外部石英晶体和微调电容;当采用外接时钟源时,接外部时钟振荡器的信号。 XTAL2 :片内振荡器反相放大器的输出端。当采用片内振荡器时,接外部石英晶体和微调电容;当采用外部时钟源时,悬空。 RST :复位信号输入端,高电平有效。加上大于2个机器周期的高电平,就可以使单片机复位。EA/Vpp : EA是外部程序存储访问允许控制端,Vpp 在对片

19、内Flash进行编程时可用。 ALE/PROG :ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8为地址锁存在片外的地址锁存器中。PROG 在对片内Flash存储器编程时,此引脚作为编程脉冲输入端。 PSEN :片外程序存储器的读选通信号,低电平有效。图3-2 单片机引脚图3.3 液晶屏1602简介3.3.1 液晶屏1602的简单介绍液晶屏1602是一种专门用来显示数字,符号,字母等的点阵型液晶模块,液晶屏1602是由多个5X7或5X11等点阵字符组成,在液晶屏1602中每一个单独的点阵字符位都可以显示一个字符;位与位之间有一个点距的间隔行与行之间也是一样也有间隔,

20、就是这些间隔让液晶屏在显示的时候呈现出字符间的间隔和行距之间间隔,使我们观看的时候更直观,清晰。1602LCD是指在显示屏上我们可以看到16X2,也就是说可以显示两行,每行16个字符液晶模块。液晶屏1602管脚功能特性:第一脚:VSS是接电源地第二脚:VDD接5V电源正极第三脚:V0为液晶显示器对比度调整端口,当V0接至电源正极时,对比度最弱;相反当V0接地时,对比度却是最高。 第四脚:RS是寄存器选择,当是高电平1时选择的是数据寄存器,低电平0时选择的是指令寄存器。第五脚:RW是读写信号线,执行读操作的指令是高电平1时,执行低电平的操作指令是低电平0.第六脚:EN端是使能端。第七十四脚:D0

21、D7是8位双向数据端。第十五十六脚:空脚或背灯电源,15脚是背光正极,16脚背光负极。 1602LCD液晶显示屏的特征:微功耗,体积较小,内容显示比较丰富,超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。液晶1602有三条控制线,RS/数据命令端,RW/读写选择端、EN/使能端,一个8位的数据端3.4 系统功能电路3.4.1 最小系统工作原理 图3-4 单片机最小系统单片机最小包含复位电路和晶振电路。晶振电路是单片机的动力来源,与单片机的XATL1和XATL2两引脚相连接 我选用的是11.0592M的晶振。图3-5 晶振电路上图是复位电路,分为手动按键复位和上电复位两种。上电复位的原理是在系统刚

22、上电时电容两端电压不会突然变化,因此RST上的电平就为高电平,这个过程时间比较短,但是还是能够让单片机复位的。手动按键复位的原理是在系统工作时可以通过手动按键来使单片机复位。图 3-6复位电路3.4.2 蜂鸣器报警电路原理蜂鸣器报警电路使用的是9012PNP三极管驱动,PNP管的发射机接蜂鸣器器然后再接到+5V的电压,集电极接地,基集串连一个1K的电阻连接到单片机的P1.0口。在单片机的P1.0口为低电平时,9012三极管导通,蜂鸣器会报警发出声音,当P1.0口是高电平时,三极管处于截止状态,蜂鸣器没有反应不会发出声音。在实现设计功能时,当传感器检测到药水水位过低,则将P1.0端口拉低使三极管

23、导通,让蜂鸣器报警提示目前水位过低;当传感器检测到水位过高时,也将P1.0端口拉低,三极管导通,蜂鸣器报警,提示当前水位过高,当水位正常时,蜂鸣器是不报警状态,当然单单靠蜂鸣器报警还不能辨别水位是过高还是过低,这还需要设计的另一模块来辅助说明,也就是即将要介绍的电机驱动模块,在设计中我选择的蜂鸣器是有源蜂鸣器。图3-7 蜂鸣器报警电路3.4.3 电机驱动电路电机驱动电路使用的是IRF540N场效应管,与蜂鸣器报警电路工作原理几乎一样,但电机驱动电路接的是单片机的P2.0口,也与蜂鸣器报警电路一样,在P2.0口是低电平时电机转动,高电平时,电机不工作。在实现功能时,电机模块是结合蜂鸣器报警电路来

24、共同提示水位的高低状况的,当水位过低时,蜂鸣器报警而且此时还需要驱动电机转动来实现模拟加水,当水位从低水位上到正常水位时,此时蜂鸣器不报警,电机保持原状态继续转动,一直达到高水位,蜂鸣器报警,电机停止转动。相反,若是水位从高降到正常水位,电机模块也是保持原状态停止转动,直到低水位的时候在驱动转动来实现自动加药水的这一自动控制技术。图3-8 电机驱动电路3.4.4 液晶1602显示功能电路液晶1602显示器共有16个引脚,每一个引脚的意义都不一样。其中4号5号6号是控制引线;7号到14号引脚是信号线。还有就是3号引脚是背光电源指示端,它这个所接电阻阻值不一样,背光就会有不一样的结果,在此我选用的

25、背光电阻是10K的电阻。图3-9 液晶1602显示电路图3.4.5 电源电路电源电路是由变压器,单相桥式整流电路,三端稳压器7805,滤波电路组成。此次的设计需要的是一个5V的直流电源,但我们的日常电压是220V,不能直接接在电路上,所以在这里就需要一个变压器将电压降下来。日常220V电压是交流电压,但我的设计需要的是直流,所以在此加上一个单相桥式整流电路,将交流电压转换成设计所需的直流电压,它是由四个二极管组成,桥式整流电路是利用二极管的单向导电性,四个二极管轮流导通,在负载上产生的一直是一个单向的电压。电解电容是有极性的,阻止电压反相,电容的充放电也起到了滤波的作用,最后引出两个接口作为电

26、源的正极个负极。图3-10 电源电路3.4.6 ADC0804模数转换电路ADC0804是逐次比较性的模数转换芯片,它的一些主要特性如下:1. 工作电压:Vcc =+5V。2. 分辨率:8位。3. 转换时间:100us。4. 模拟输入电压范围:0 到 +5v。5. 参考电压:2.5V。6. 转换误差:+ -11SB。引脚功能说明:6号脚Vin(+)和7号脚Vin(-)是ADC0804模数转换器的两模拟信号输入端。DB0DB7是模数转换器的数据输出端,具有三态特性。AGND:模拟信号地。10号脚:数字信号地。CLKIN:外电路提供时钟脉冲输入端。19号脚CLKR:内部时钟发生器外接电阻端口。1号

27、脚CS:片选信号输入端,是低电平有效,只有在低电平的时候,才能选中该芯片,然后工作。2号脚RD:读信号端,低电平有效,该引脚要正常工作不仅要次引脚是低电平而且前提要CS为低电平。3号脚WR:写信号端,低电平有效,与读信号端一样,要前提选中该芯片即CS为0,才能启动转换。INTR:转换结束输出信号,低电平有效。当它输出低电平时,就代表转换已经完成。图3-11 模数转换电路3.5 系统总原理图系统的总原理图就是以上电路的总和,有单片机最小系统,蜂鸣器报警电路,电机驱动电路,1602液晶显示电路,指示灯,模数转换电路,电源电路。图3-11系统总原理图4 系统的软件设计4.1 编程语言介绍4.1.1

28、C语言介绍 C语言是世界上广泛流行的计算机高级语言。它适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。早期的操作系统软件住哟是用汇编语言编写的(包括UNIX操作系统在内)。但是汇编语言程序可读性和课移植性比较差,所以为了改变这种现状C 语言就在这种情况下应运而生了。C语言是在B语言的基础上发展起来的,根源追溯到ALGOL 60.最初的 C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,Ken Thompsin和D.M.Ritchie合作把UNIX的百分之九十以上用 C语言改写(即UNIX第5版。原来的UNIX操作系统是1969年由美国的贝尔实验室

29、的Ken Thompsin和D.M.Ritchie开发成功的,是用汇编语言来编写的)。后来C语言多次做了改进,在1975年UNIX第6版发布后,C语言的突出优点才引起人们的普遍注意。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言先后移植到大,中,小,微型计算机上,已经独立于UNIX和PDP了。C语言便很快风靡全世界,成为世界上应用最广泛的几种计算机语言之一。C语言是一种结构性语言,层次清晰而且还容易调试和维护。它不仅有非常丰富的运算符和数据类型,便于实现各种比较复杂的数据结构。它还有一项功能是可以直接访问内存的物理地址,进位一级的操作,因为C语言实现了对硬件

30、的编程操作,所以C语言既可以用于系统软件开发,又可以用于应用软件的开发。C语言具有绘图能力强,可移植性强,还有良好的数据处理功能,所以非常实用编写系统软件,动画和多位图,也是树脂计算的高级语言。C语言的主要特点共有8点,具体如下(1)语言简洁,紧凑,使用方便,灵活。(2)运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符(3)数据类型丰富,具有现代语言的各种数据结构。C语言提供的数据类型有:整型,浮点型,字符型,数组型,指针类型,结构体类型,共用体类型等,能用来实现各种复杂的数据结构的运算。尤其是指针类型数据,使用十分灵活和多样化。(4)具有结构化的控制语句(像if.else语句,w

31、hile语句,for语句等)。用函数作为程序的模块单位,便于实现程序的模块化。(5)语法限制不太严格,程序设计自由度大。(6)C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。(7)生成目标代码质量高,程序执行效率高。C语言一般只比汇编程序生成的目标代码效率低百分之十到百分之二十。(8)用C语言编写的程序可移植性好。基本上不做修改就能用于各种型号的计算机和各种系统操作。4.2 系统程序设计4.2.1 程序设计步骤C语言程序设计一般包括三个基本步骤:(1)分析问题:这一步必须做到:a.作为解决问题的一种方法, 确定要产生的数据(输出)。 作为这一子步的一部分, 你应定义表示输出的变量。b.确定需产生输出的数据(称为输入), 作为这一子步的一部分, 你应定义表示输入的变量。c.研制一种算法, 从有限步的输入中获取输出。 这种算法定义为结构化的顺序操作, 以便在有限步内解决问题。就数字问题而言, 这种算法包括获取输出的计算, 但对非数字问题来说, 这种算法包括许多文本和图象处理操作。(2)画出程序的基本轮廓:这一步需要一些句子来画出程序的基本轮廓。每个句子对应一个简单的程序操作。若是个简单的程序,列出程序顺序执行的动作就

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1