基于单片机的水塔水位控制系统设计及仿真 联系客服

发布时间 : 星期四 文章基于单片机的水塔水位控制系统设计及仿真更新完毕开始阅读7bcfa6f1f80f76c66137ee06eff9aef8941e484d

佳木斯大学学士学位论文

开始选通P2.1查表送个位数字,并延时5ms。选通P2.2查表送小数点个位数字,并延时5ms。选通P2.3查表送小数点十位数字,并延时5ms。返回 图3—3 显示子程序流程图

3.2.4 报警子程序的设计

本电路的P3.0,P3.1作为高位和低位的报警控制线,通过设置高低液位报警线

来实现报警功能。本设计要求为:液位在小于1.26米时低位报警灯亮进行低位报警,液位在1.5~3米时灯都不亮,液位在大于4米时高位报警灯亮进行高位报警,流程图如图3-4。 报警程序:

MOV H_TEMP,#153 ;204/255=0.6 高于80%报警 MOV L_TEMP,#77 ;77/255=0.3 低于30%报警 MOV A,ADC ;将A/D转换结果转换成BCD码 SUBB A,L_TEMP ;判断是否低于下限 JC LALM

19

佳木斯大学信息电子技术学学院 佳木斯大学学士学位论文

MOV A,H_TEMP MOV R0,ADC

SUBB A,R0 ;判断是否高于上限 JC HALM CLR TR1 LJMP PROC

LALM: CLR L_ALM ;低位报警 SETB TR1 CLR FLAG LJMP PROC

HALM: CLR H_ALM ;高位报警 SETB TR1 SETB FLAG LJMP PROC

开始设置高位报警线H_TEMP=4.0,低位报警线L_TEMP=1.5

YADC>4.0?NADC<1.5?P3.0为0高位报警NYP3.1为0低位报警P3.0,P3.1为1

返回 图3-4

20

佳木斯大学信息电子技术学学院 佳木斯大学学士学位论文

3.3 软件设计总结

在本章中主要讲述了软件设计的一些情况,对软件的一些功能进行了解释,根据程序组成情况分成六个程序模块,分别介绍了各个程序模块的工作原理和功能,对部分程序进行了简单的注释,通过流程图直观的表现出各个模块的作用及程序运行过程。在本次的软件设计中,运用Keil进行编程,将编辑好的程序进行编译,查看是否语法错误,如果没有错误,设置晶振频率,编译生成.Hex文件,进行仿真。在此过程中,我收益良多,熟悉了单片机汇编语言的使用,对单片机的编程有了进一步的理解,通过和同学的交流,学会了很多以前自己不能解决的问题。

[9]

21

佳木斯大学信息电子技术学学院 佳木斯大学学士学位论文

第4章 调试

4.1 仿真电路调试

在仿真程序中通过模块编程,用Proteus软件与Keil软件相结合进行调试,(调试程序见附录4) (1).建立工程文件

① 点击菜单project,选择new project:

② 然后选择要保存的路径,输入工程文件的名字,比如保存到论文目录里,工程文件的名字为yang.uv2.

③ 这时会弹出一个对话框,选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有要求你的51核的单片机,这里选AT89C51。

这时要新建一个源程序文件,建立一个汇编文件,输入编写好的程序。

保存。选择要保存的路径,在文件名里输入文件名,注意一定要输入扩展名,这里有汇编语言,文件名为:yang.asm。 (2). 调试程序

① 点击Target 1前面的+号,展开里面的内容source Group1:

② 用右键点击Sourece Group 1(注意用鼠标的右键,而不是左键),将弹出一个菜单,选择Add Files to Guoup'Source Group 1'.

③ 选择刚才的文件yang.asm.这时在source group 1 里就有yang.asm文件 ④ 单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5)。硬件仿真原理图如下图 (3). 仿真结果

通过改变电位器阻值的变化来模拟液位的变化,液位数值在数码管上显示,液位在小于1.26米时低位报警灯报警,液位在1.26米到3.0米时不报警,液位大于3.0米时高位报警灯报警。芯片ADC0809的转换精度为1/256,所以本电路的最小分辨率为0.05V。

22

佳木斯大学信息电子技术学学院