毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc

上传人:爱问知识人 文档编号:3945731 上传时间:2019-10-10 格式:DOC 页数:33 大小:4.84MB
返回 下载 相关 举报
毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc_第1页
第1页 / 共33页
毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc_第2页
第2页 / 共33页
毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc_第3页
第3页 / 共33页
毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc_第4页
第4页 / 共33页
毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-基于单片机的加药自动控制电路的设计.doc(33页珍藏版)》请在三一文库上搜索。

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 Dosing Automatic

3、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 circuit module, power c

4、ircuit 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 level sensor which va

5、ries 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 the analog digit

6、al 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: automatic contro

7、l; single chip microcomputer; altium designer; 1602 liquid crystal display; ADC0804 analog digital converter目录摘要IAbstractII1 绪论11.1 引言12 系统的整体方案设计22.1 功能要求22.2 设计要求22.3 单片机选择23 系统的硬件设计43.1 电路原理框图43.2 主控芯片简介43.2.1 主控芯片STC89C52概述43.3 液晶屏1602简介73.3.1 液晶屏1602的简单介绍73.4 系统功能电路83.4.1 最小系统工作原理83.4.2 蜂鸣器报警电路

8、原理113.4.3 电机驱动电路113.4.4 液晶1602显示功能电路123.4.5 电源电路133.4.6 ADC0804模数转换电路143.5 系统总原理图154 系统的软件设计174.1 编程语言介绍174.1.1 C语言介绍174.2 系统程序设计184.2.1 程序设计步骤184.3 程序流程图195 电路焊接调试及体会205.1 硬件的焊接和调试205.2 软件调试206 总结21参考文献22附录一23附录二24附录三29致谢3030基于单片机的加药自动控制电路的设计1 绪论1.1 引言自动控制理论是研究自动控制共同规律的一门学科。目前,已有工程控制论,生物控制论,经济控制论和社

9、会控制论等多个分支,其中工程控制论是研究工程领域的自动控制,本设计也是用到了工程控制论的加药自动控制。所谓自动控制,就是指在没有人直接参与的情况下,利用控制装置使整个生产过程或设备自动地按规律运行,或使其某个参数按要求变化,此次设计是设计一个自动加药的装置,在工程应用中很是广泛。加药自动控制的设计是在单片机的基础上结合硬件电路模块和软件程序部分共同实现的。自动加药控制电路设计是通过单片机来控制药汞药水水位的监测,外加液晶显示屏来显示设备的运行状况,水位传感器电路来检测药水水位的高低,最后通过报警电路和电机驱动电路来模拟加药水,从而实现智能自动加药,此设计不需要人为监测,省时又省钱,带来了许多方

10、便。在药汞的设计上可以根据用户需求来设计大小,在此设计中通过报警电路的设计来编写程序,从而设定自动加药的间隔时间。加药自动控制在国内外化工行业,农业方面使用都比较普遍,随着科学技术的发展自动控制技术也在不断的提升改进,相信在以后自动控制技术将会给农工行业带来许多的便利,加药自动控制的设计也是在农工行业很是常见。2 系统的整体方案设计2.1 功能要求 实际药水水位的控制在药汞中有个限定的范围,不能过高也不能过低,此次设计中通过运用水位传感器来检测药水水位的高低,继而来控制电动机保持药水水位正常。检测装置是在以单片STC89C52为核心的基础上,通过液晶屏1602和报警电路来实现药水水位过低报警和

11、过高报警并且相应处理的设计要求。2.2 设计要求 现场提出急需一种自动检测水位,当水位降低到某个阈值时,发出报警信号并自动停汞。并让药汞周期性间歇运行,运行周期为一个小时,或者可以随意设定每周期的加药的定时时间的自动控制系统。在通电下,电机会随着水位传感器而工作,药水水位过低时,电机会转动,蜂鸣器也会报下警,液晶屏也会显示药水水位过低。药水水位正常时,电机停止转动,蜂鸣器也会报下警,液晶屏显示药水水位正常。 2.3 单片机选择目前电子市场上有种类较多的单片机,像51单片机,avr单片机和PIC单片机等。由于单片机的种类比较众多,各类单片机的功能也不一样,我们选择单片机的时候不是要求它功能有多好

12、,仅仅只需要符合我们的设计要求即可。性能比较差的单片机不能实现我们设计所需要求,而且性能差的单片机相当不稳定,给我们做设计带来一些麻烦;高性能的单片机却是能满足我们设计所需要求,但是性能高的话,价格一定比较贵并且可能有很多功能不一定会用到,这么一来就显得有点浪费,所以我们做设计时选择单片机不能随便选择,要选择自己最合适的;因此本次设计我选用的单片机是STC89C52单片机。STC89C52的单片机是一个低电压,高性能的CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读存储器和256 bytes的随机存储器,器件采用ATMEL公司高密度,非易失行存储技术生产,兼容标准MCS-

13、51指令系统,片内置通用8为中央处理器和Flash存储单元,STC89C52单片机在电子行业有着广泛的应用。3 系统的硬件设计3.1 电路原理框图单片机最小模块报警电路ADC0804模数转换电路电机驱动电路电源电路检测电路图 3-1 电路原理框图 此次设计的电路设计框图大致如图3-1所示,在单片机最小系统的基础上加上了外围电路来实现设计的要求。电源电路是设计的开端,而后有报警电路和电机驱动电路是根据设计要求在检测水位时蜂鸣器报警和电机转动模拟加水,检测电路应用到了水位压力传感器产生模拟信号,此时加上模数转换电路把模拟信号转换为数字信号输给单片机,让单片机来工作,此次设计的硬件电路模块方面就是这

14、些。3.2 主控芯片简介3.2.1 主控芯片STC89C52概述STC89C52是一种功耗较低,高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。主要特性: 6时钟/机器周期和12时钟/机器周期可以任意选择, 工作电压:5.5V3.3V 工作频率范围:040MHz,实际工作频率 可达48MHz 用户应用程序空间为8K字节 片上集成512字节RAM 通用I/O口(32个),复位后为:P1/P2/P3/P4是准双向口/弱上拉,P0 口是漏极开路

15、输出,作为总线扩展用时,不用加上拉电阻,作为I/O口 用时,需加上拉电阻。 ISP/IAP,无需专用编程器,无需 专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序, 数秒即可完成一片 具有EEPROM功能,门狗功能,3个16位定时器/计数器。即定时器T0、T1、T2 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40+85(工业级)STC89C52引脚功能: VCC:电源电压 VSS:接地 P0端口(P0.0P0.7,3932引脚):P0口是一个漏极开路的8位双向I/O口。作 为输出端口,每个引脚能驱动8个TTL负载,对端口P0写入“

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

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

18、端口写入1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3做输入口使用 时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。 在对Flash ROM编程或程序校验时,P3还接收一些控制信号。 P3口引脚复用功能引脚号 P3.0 P3.7复用功能分别如下:RXD(串行输入口)TXD(串行输出口) (外部中断0) (外部中断1)T0(定时器0的外部输入)T1(定时器1的外部输入)(外部数据存储器写选通) (外部数据存储器读选通) RST(9引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用 来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST引脚输

19、出96个晶 振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。 DISRTO默认状态下,复位高电平有效。 ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。(29引脚):外部程序存储器选通信号()是外部程序存储器选通信号。 VPP(31引脚):访问外部程序存储器控制信号。 XTAL1 :片内震荡反相放大器和时钟发生器电路的输入端当使用片内振荡器时,该引脚接外部石英晶体和微调电容;当采用外接时钟源时,接外部时钟振荡器的信号。 XTAL2 :片内振荡器反相放大器的输

20、出端。当采用片内振荡器时,接外部石英晶体和微调电容;当采用外部时钟源时,悬空。 RST :复位信号输入端,高电平有效。加上大于2个机器周期的高电平,就可以使单片机复位。EA/Vpp : EA是外部程序存储访问允许控制端,Vpp 在对片内Flash进行编程时可用。 ALE/PROG :ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8为地址锁存在片外的地址锁存器中。PROG 在对片内Flash存储器编程时,此引脚作为编程脉冲输入端。 PSEN :片外程序存储器的读选通信号,低电平有效。图3-2 单片机引脚图3.3 液晶屏1602简介3.3.1 液晶屏1602的简单介绍液

21、晶屏1602是一种专门用来显示数字,符号,字母等的点阵型液晶模块,液晶屏1602是由多个5X7或5X11等点阵字符组成,在液晶屏1602中每一个单独的点阵字符位都可以显示一个字符;位与位之间有一个点距的间隔行与行之间也是一样也有间隔,就是这些间隔让液晶屏在显示的时候呈现出字符间的间隔和行距之间间隔,使我们观看的时候更直观,清晰。1602LCD是指在显示屏上我们可以看到16X2,也就是说可以显示两行,每行16个字符液晶模块。液晶屏1602管脚功能特性:第一脚:VSS是接电源地第二脚:VDD接5V电源正极第三脚:V0为液晶显示器对比度调整端口,当V0接至电源正极时,对比度最弱;相反当V0接地时,对

22、比度却是最高。 第四脚:RS是寄存器选择,当是高电平1时选择的是数据寄存器,低电平0时选择的是指令寄存器。第五脚:RW是读写信号线,执行读操作的指令是高电平1时,执行低电平的操作指令是低电平0.第六脚:EN端是使能端。第七十四脚:D0D7是8位双向数据端。第十五十六脚:空脚或背灯电源,15脚是背光正极,16脚背光负极。 1602LCD液晶显示屏的特征:微功耗,体积较小,内容显示比较丰富,超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。液晶1602有三条控制线,RS/数据命令端,RW/读写选择端、EN/使能端,一个8位的数据端3.4 系统功能电路3.4.1 最小系统工作原理 图3-4 单片机最小系

23、统单片机最小包含复位电路和晶振电路。晶振电路是单片机的动力来源,与单片机的XATL1和XATL2两引脚相连接 我选用的是11.0592M的晶振。图3-5 晶振电路上图是复位电路,分为手动按键复位和上电复位两种。上电复位的原理是在系统刚上电时电容两端电压不会突然变化,因此RST上的电平就为高电平,这个过程时间比较短,但是还是能够让单片机复位的。手动按键复位的原理是在系统工作时可以通过手动按键来使单片机复位。图 3-6复位电路3.4.2 蜂鸣器报警电路原理蜂鸣器报警电路使用的是9012PNP三极管驱动,PNP管的发射机接蜂鸣器器然后再接到+5V的电压,集电极接地,基集串连一个1K的电阻连接到单片机

24、的P1.0口。在单片机的P1.0口为低电平时,9012三极管导通,蜂鸣器会报警发出声音,当P1.0口是高电平时,三极管处于截止状态,蜂鸣器没有反应不会发出声音。在实现设计功能时,当传感器检测到药水水位过低,则将P1.0端口拉低使三极管导通,让蜂鸣器报警提示目前水位过低;当传感器检测到水位过高时,也将P1.0端口拉低,三极管导通,蜂鸣器报警,提示当前水位过高,当水位正常时,蜂鸣器是不报警状态,当然单单靠蜂鸣器报警还不能辨别水位是过高还是过低,这还需要设计的另一模块来辅助说明,也就是即将要介绍的电机驱动模块,在设计中我选择的蜂鸣器是有源蜂鸣器。图3-7 蜂鸣器报警电路3.4.3 电机驱动电路电机驱

25、动电路使用的是IRF540N场效应管,与蜂鸣器报警电路工作原理几乎一样,但电机驱动电路接的是单片机的P2.0口,也与蜂鸣器报警电路一样,在P2.0口是低电平时电机转动,高电平时,电机不工作。在实现功能时,电机模块是结合蜂鸣器报警电路来共同提示水位的高低状况的,当水位过低时,蜂鸣器报警而且此时还需要驱动电机转动来实现模拟加水,当水位从低水位上到正常水位时,此时蜂鸣器不报警,电机保持原状态继续转动,一直达到高水位,蜂鸣器报警,电机停止转动。相反,若是水位从高降到正常水位,电机模块也是保持原状态停止转动,直到低水位的时候在驱动转动来实现自动加药水的这一自动控制技术。图3-8 电机驱动电路3.4.4

26、液晶1602显示功能电路液晶1602显示器共有16个引脚,每一个引脚的意义都不一样。其中4号5号6号是控制引线;7号到14号引脚是信号线。还有就是3号引脚是背光电源指示端,它这个所接电阻阻值不一样,背光就会有不一样的结果,在此我选用的背光电阻是10K的电阻。图3-9 液晶1602显示电路图3.4.5 电源电路电源电路是由变压器,单相桥式整流电路,三端稳压器7805,滤波电路组成。此次的设计需要的是一个5V的直流电源,但我们的日常电压是220V,不能直接接在电路上,所以在这里就需要一个变压器将电压降下来。日常220V电压是交流电压,但我的设计需要的是直流,所以在此加上一个单相桥式整流电路,将交流

27、电压转换成设计所需的直流电压,它是由四个二极管组成,桥式整流电路是利用二极管的单向导电性,四个二极管轮流导通,在负载上产生的一直是一个单向的电压。电解电容是有极性的,阻止电压反相,电容的充放电也起到了滤波的作用,最后引出两个接口作为电源的正极个负极。图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(

28、-)是ADC0804模数转换器的两模拟信号输入端。DB0DB7是模数转换器的数据输出端,具有三态特性。AGND:模拟信号地。10号脚:数字信号地。CLKIN:外电路提供时钟脉冲输入端。19号脚CLKR:内部时钟发生器外接电阻端口。1号脚CS:片选信号输入端,是低电平有效,只有在低电平的时候,才能选中该芯片,然后工作。2号脚RD:读信号端,低电平有效,该引脚要正常工作不仅要次引脚是低电平而且前提要CS为低电平。3号脚WR:写信号端,低电平有效,与读信号端一样,要前提选中该芯片即CS为0,才能启动转换。INTR:转换结束输出信号,低电平有效。当它输出低电平时,就代表转换已经完成。图3-11 模数转

29、换电路3.5 系统总原理图系统的总原理图就是以上电路的总和,有单片机最小系统,蜂鸣器报警电路,电机驱动电路,1602液晶显示电路,指示灯,模数转换电路,电源电路。图3-11系统总原理图4 系统的软件设计4.1 编程语言介绍4.1.1 C语言介绍 C语言是世界上广泛流行的计算机高级语言。它适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。早期的操作系统软件住哟是用汇编语言编写的(包括UNIX操作系统在内)。但是汇编语言程序可读性和课移植性比较差,所以为了改变这种现状C语言就在这种情况下应运而生了。C语言是在B语言的基础上发展起来的,根源追溯到ALGOL 60.最初的C语言只是

30、为描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,Ken Thompsin和D.M.Ritchie合作把UNIX的百分之九十以上用C语言改写(即UNIX第5版。原来的UNIX操作系统是1969年由美国的贝尔实验室的Ken Thompsin和D.M.Ritchie开发成功的,是用汇编语言来编写的)。后来C语言多次做了改进,在1975年UNIX第6版发布后,C语言的突出优点才引起人们的普遍注意。C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成。1978年以后,C语言先后移植到大,中,小,微型计算机上,已经独立于UNIX和PDP了。C语言便很快风靡全世界,成为世界上应用最广

31、泛的几种计算机语言之一。C语言是一种结构性语言,层次清晰而且还容易调试和维护。它不仅有非常丰富的运算符和数据类型,便于实现各种比较复杂的数据结构。它还有一项功能是可以直接访问内存的物理地址,进位一级的操作,因为C语言实现了对硬件的编程操作,所以C语言既可以用于系统软件开发,又可以用于应用软件的开发。C语言具有绘图能力强,可移植性强,还有良好的数据处理功能,所以非常实用编写系统软件,动画和多位图,也是树脂计算的高级语言。C语言的主要特点共有8点,具体如下(1) 语言简洁,紧凑,使用方便,灵活。(2) 运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符(3) 数据类型丰富,具有现代语言的

32、各种数据结构。C语言提供的数据类型有:整型,浮点型,字符型,数组型,指针类型,结构体类型,共用体类型等,能用来实现各种复杂的数据结构的运算。尤其是指针类型数据,使用十分灵活和多样化。(4) 具有结构化的控制语句(像if.else语句,while语句,for语句等)。用函数作为程序的模块单位,便于实现程序的模块化。(5) 语法限制不太严格,程序设计自由度大。(6) C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。(7) 生成目标代码质量高,程序执行效率高。C语言一般只比汇编程序生成的目标代码效率低百分之十到百分之二十。(8) 用C语言编写的程序可移植

33、性好。基本上不做修改就能用于各种型号的计算机和各种系统操作。4.2 系统程序设计4.2.1 程序设计步骤C语言程序设计一般包括三个基本步骤:(1)分析问题:这一步必须做到:a. 作为解决问题的一种方法, 确定要产生的数据(输出)。 作为这一子步的一部分, 你应定义表示输出的变量。b.确定需产生输出的数据(称为输入), 作为这一子步的一部分, 你应定义表示输入的变量。c.研制一种算法, 从有限步的输入中获取输出。 这种算法定义为结构化的顺序操作, 以便在有限步内解决问题。就数字问题而言, 这种算法包括获取输出的计算, 但对非数字问题来说, 这种算法包括许多文本和图象处理操作。(2) 画出程序的基

34、本轮廓:这一步需要一些句子来画出程序的基本轮廓。每个句子对应一个简单的程序操作。若是个简单的程序,列出程序顺序执行的动作就可以直接生成伪代码;然而复杂点的则需要将整个过程进行有条理的组织。(3) 实现程序:1. 编写程序 2.测试和调试程序 3.提供数据打印结果对于源程序应该包含文字注释的文件编制,以说明程序各个部分实现何种工作。另外还应该包含调试程序段,来测试程序的运行情况,并允许查找编程错误。若程序运行正常,可以删去调试程序段,但文件编制却要保留,便于维护和修改。4.3 程序流程图是否在设定范围内开始蜂鸣器报警,电机转动蜂鸣器报警,电机停止初始化水位检测低NYNY图3-12 程序流程图程序

35、流程图如上图所示,上电之后先初始化,然后对水位进行检测接着就是判断水位是否是在设定的正常水位区间,若是在此区间则表示水位正常不需要做额外的工作返回到水位检测;若开始水位检测部在设定的区间则在判断是不是处于设定的低水位,若是则让蜂鸣器报警,电机转动模拟加水,然后返回水位检测;若不是低水位则表示处于高水位,此时让蜂鸣器报警,电机停止转动,最后也返回水位检测。5 电路焊接调试及体会5.1 硬件的焊接和调试实物图见附录一,此次毕业设计实物的焊接也是很重要的一大部分,做出实物即就是把论文中的理论实践到实物中来,实物的成功能够让我们更加直观的了解设计的功能原理带来的结果,对于实物的焊接,由于我们是手工制作

36、,难免会比较粗糙,在线路的排布引脚的焊接等方面都有可能会出现错误,而且在焊接实物的过程中也是我们进一步的对原理图的认知,能更清楚的了解每一个模块的电路是怎样走线,怎样与单片机连接在一起。所以我们在焊接实物的开始得先画出草图排布好线路的走位,我们是一个一个电路模块的焊接,所以在焊接的同时我们应该穿插每部分的检测在里面,这样做的目的第一是确保我们所焊接的电路模块能够正常导通,第二这样做也能节约时间,若是全部焊接完了再去检测,由于线路比较多,可能会导致我们在检测的行进中速度比较慢,所以第三点就是焊接一部分检测一部分给我们带来了很打的方便。电路的检测是很重要的一部分,在上电后,若是不能正常工作按原理图

37、分模块进行电路检测,是否有虚焊或漏焊现象;如焊接正常,在按信号传递的方向逐级检测,找出出问题的一级,并向该级的上级进行检测,直到将故障排除。电路的调试我们可以分步骤来就行:第一步:元器件在焊接之前用万用表对其进行检测。第二步:焊接完一个小模块电路之后,用万用表检测焊接之间的布线是否导通,因为可能在焊接的时候由于技术的不熟练会导致虚焊。第三步:软件测试,可以编写一个功能小程序来检测电路模块是否能正常工作,若是不能正常工作,在来判断是硬件的焊接错误还是软件程序的编写错误。5.2 软件调试在软件编程过程中,先可以写出单元模块的程序然后在单元模块上进行测试,这样的做法是让我们思路更清晰不会混乱。软件的

38、调试过程中,联机调试非常重要,在硬件电路都正常的情况下,联机调试就成了设计能否成功的关键。6 总结 此次设计是对大学四年所学的一个小总结,涉及到多方面的专业知识,首先根据设计的要求需要选定了STC89C52单片机来作为此次设计的主体,而后在加上总结的构思添加了LCD1602液晶显示模块,ADC0804模数转换模块,蜂鸣器报警电路,电机驱动电路来实现基于单片机的自动加药控制设计。在此次设计的制作过程中熟知了很多新的知识,对LCD1602液晶显示的引脚功能和市场情况都有一定的了解,掌握了A/D转换的原理。最后大概重述下我的设计内容,基于单片机的自动加药控制设计,要求是自动检测水位并且设置自动加水的

39、时间,我的构思是通过水位传感器根据水位的高低不同引起传感器阻值的变化继而相应于电压的变化,然后再通过ADC0804模数转化器把模拟信号电压转换成单片机可读的数字信号,最后在根据设计要求在水位低时,蜂鸣器报警并驱动电机转动模拟自动加药水,在水位过高时,蜂鸣器也报警,但要停止电机转动。程序上对应着电路模块功能相应编程也添加了设计要求的加水周期性时间的设置,最后完成了我的毕业设计,设计中我也了解到基于单片机的自动加药设计在农工业有着广泛的应用,它不需要人为,节约了时间,又节约了金钱。参考文献1 张毅刚,彭喜元,彭宇.单片机原理及应用M.北京:高等教育出版社,2010年.2 薛弘晔,刘原,马永.计算机

40、控制技术M.西安:电子科技大学出版社,2008年.3 华成英,童诗白。模拟电子技术基础M.北京:高等教育出版社,2006年.4 史久贵.基于Altium Designer的原理图与PCB设计M.北京:机械工业出版社.5 谭浩强.C程序设计M.北京:清华大学出版社.6 阎石.数字电子技术基础M.高等教育出版社,2005年.7 聂青.模拟电路设计M.高等教育出版社,2007年.8 王港元.电工电子实践指导M.江西科技出版社,2005年.9 杨宁.单片机与控制技术M.北京航空航天大学出版社,2004年.10 于海生.微型计算机控制技术M.清华大学出版社,1993年.11 程佩青.数字信号处理教程M.

41、北京:清华大学出版社,2007年.12 汪贵平.单电源多量程8通道,12位A/D转换器MAX197的原理和应用M.2005年.13 丁镇生.传感器与传感技术应用M.北京:电子工业出版社,1998年.14 来清民.传感器与单片机接口及实例M.北京:北京航空航天出版社,2008年.15 陈霞,白小军.基于单片机的液位监控系统J.武汉理工大学学报.16 蔡黎.一种基于单片机的水位控制系统设计J.仪器仪表用户,2007年.17 王晓明.电动机的单片机控制M.北京:航空航天大学出版社,2002年.18 Desbourough L, Miller R, Increaser Customer Value o

42、f Industrial Control Performance Monitoring-Honeywell ExperienceJ.AIChESymposium series,2002年. 附录一3-12 实物图附录二#include #include #define uint unsigned int#define uchar unsigned char#define LCD_data P0 /数据口#define delayNOP(); _nop_();_nop_();_nop_();_nop_();sbit lcdrs=P25;sbit lcdrw=P26;sbit lcden=P27;

43、sbit moter=P20;sbit beep=P10;sbit green=P11;sbit red=P12;sbit cs=P22;sbit rd=P24;sbit wr=P23;uchar code str1 = Voltage of Power;uchar code str2 = 00.00 V;double vol,rs,cp;uint t0,t1,dianya;uchar temp;void delay_ms(uint z) uint x,y; for(x=z;x0;x-) for(y=123;y0;y-);void Check_Busy() lcdrs=0; lcdrw=1;

44、lcden=1; P0=0xff; while(P0&0x80)=0x80);/忙则等待 lcden=0;void write_com(uchar cmd) /写命令 Check_Busy(); lcdrs = 0; lcdrw = 0; LCD_data = cmd; lcden = 1; delayNOP(); lcden = 0; void write_date(uchar dat) /写数据 Check_Busy(); lcdrs = 1; lcdrw = 0; LCD_data = dat; lcden = 1; delayNOP(); lcden = 0; void write_str(uchar *p) while(*p) write_date(*p+);void diyihang(uint z) z-; write_com(0x80+z);void dierhang(uint z) z-; write_com(0x80+0x40+z);void lcd_init() /液晶初始化 delay_ms(40); write_com(0x38); /基本指令操作 delay_ms(5); write_com(0x38); /基本指令操作 delay_ms(1); write_com(0x0c); /显示开,关光标

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1