储罐液位控制系统程序.doc
《储罐液位控制系统程序.doc》由会员分享,可在线阅读,更多相关《储罐液位控制系统程序.doc(13页珍藏版)》请在三一文库上搜索。
1、硬件系统设计储罐液位控制系统计算机控制技术课程设计 核心:单片机89s52 片外扩展:8KB RAM 存储器6264, I/O 口扩展8155 转换器:ADC0809,DAC0832 锁存器等:74HC373, 74H377,74HC245 和 3-8 译码器 74HC138 输入/输出部件:6个LED,4个按键89S52的RD及PSEN用与门接在一起后送入 6264的OE端,使得6264既可以作为数据存储器,也可以作为程序存储器务芯:片片选;1也址"酉己交口卞3-S译 码器引 脚Y0Y1Y2Y3Y4Y5Y6Y716位 地址0000H2000H4000H6000HS000HA000H
2、COOOHEOOOH选中芯液位U4U11电压值空 从ADU9(0832)C0809US的IN0弓U7 lO入U6 (字位 ,WD ?U5(字段 转换后存储。 液位给定值由键盘设定,与液位信号比较得出偏差值。若超限,则 报警,LED4现实P同时以P1.0驱动报警器,以P1.1驱动蜂鸣器 按达林算法计算控制器的输出值。 输出值经D/A转换得到模拟电压值并输出。 液位信号的电压值经标度转换后,变为液位值存储 ,送LED显示。6个LED显示如图a所示。LED5显示H或L,LED4为超限指示, LED3LED0显示液位值,LED1数码管加小数点,显示范围为 000.0999.9。显示器与键盘设置LED5
3、 LED4LED3 LED2 LED1 LED0H199.软件系统设计5 键盘设定液位的高低报警限。采用 4键方式,4个按键的功能如图 b所示。显示与键盘循环扫描,无键按下时,LED显示实时液位,右 键按下时,进入液位报警限的修改。先按选择键方可进入修改,先按 其他3个键无效。进入修改状态后,待修改的显示位 LED5闪动,按 +或-键可循环选择H或L,同时后4位LED显示对应的液位值。按 确认件后调到下一个待修改的显示为 LED3并闪动,按+或-键循环修 改09数字,再按确认键调到下一位置,如此进行,知道4个数字修 改完毕后退出修改状态。在修改状态时,若不按确认键,则8秒后退出修改状态。从视觉
4、舒适的角度考虑,数字应为每0.4秒闪动一次。显示器与键盘设计选择+ -确定数据采集:A/D转换,采样周期为10s数字滤波:采用5个数平均滤波法标度转换:将液位变送器的标准电压信号转换为液位值。动态显示:动态循环显示。键盘扫描:读键值并判断功能。控制计算:达林算法。控制输出:D/A转换。报警处理:超过高、低报警器限时驱动报警灯及蜂鸣器。算法:一 6) + 0,8377e(*) 一 0.8054e(* 一 Dz:T&L.1Ita1XTM1nJJJ/'WR3 W2AW raawXTAUR2 *AXPC$A»RJiAMERJ IMm»2M” gK2AWPWV *Lt
5、W JAH tr 4AirF2MUI KMU nVAKFl BFT7V JWI*FIJCDCn ifla 7 2 kAnaerf*WjWWms搭2F1J”叱Rfiorv 10 yUO: 一"1 M /3/rm /17Krcs yf36 /m加A&»«IIQ«MCmoaieIIMl«"i24INV3-9OTMT24«K2-4omumrCLOCK:«£MCCGNOvnt伽 vw»e/实现程序 / #include <reg52.h> #include <math.h>
6、 #define uchar unsigned char #define uint unsigned int uchar xdata *p=0x0000; uchar xdata *p1=0x2000; uint getdata;/ 采样值 uint w=0,jishi8=0;/ 计数加长计时, 时间 uint yh,yl,ye;/ 液位高低限及期望值 sbit jin gde ng=P"O;sbit jin gshe ng=P1X;uchar code table=/段码0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77
7、,0x7c, 0x39,0x5e,0x79,0x71,0x76,0x73,0x38;/19 个字符 uchar dispbuf4=0,0,0,0;float e2=0,0,u6=0,0,0,0,0,0;float con=0; jingdeng=0;/ 警灯jingsheng=0;/ ,蜂鸣器初始化viod main()void intdingshi();/ 定时器初始化/键盘扫描及修改设定值 /void keyscan();/实时液位显示 /void led() ;/达林算法实现, DAC 控制输出 /void dalin() ;void control() ; /输出控制量 /报警程序 /
8、void baojing();while(1)/键盘扫描及修改设定值 / keyscan();/实时液位显示 / led();/达林算法实现, DAC 控制输出 / dalin() ; control() ;/ 输出控制量/报警程序 / baojing();viod delay(uchar i)/延时 while(i-) _nop_(); /实现每八秒采样一次 / void intdingshi()/ 定时器初始化TMOD=0x01; IT0=1;TH0=0x3C; TL0=0xB0;/ 定时 50ms TR0=1;/ 启动定时器EA=1;/ 开中断 ET0=1;void dingshi()
9、interrupt 1 / 定时器 0 中断,实现八秒定时 TH0=0x3C; TL0=0xB0;/ 定时 50ms w+;jishi8+; while(w=200) p=0x8000;/ 指针 ADC 地址 *p=0x00;/qi dongEX0=1;/ 打开外部中断 0,采样一次 w=0;TR0=1;/ 启动定时器void waibu() interrupt 0 /外部中断 0,实现 ADC 采样 5 次 ,取平均值 uint i=0,a5=0; p=0x8000;/ 指针 ADC 地址P0=*p; getdata=P0;a5=a5+getdata;i+;if(i=5)qy=a5/5;/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 储罐液位 控制系统 程序
链接地址:https://www.31doc.com/p-12453825.html