《液位监测系统》由会员分享,可在线阅读,更多相关《液位监测系统(18页珍藏版)》请在金锄头文库上搜索。
1、题目:液位监测系统液位监测系统一、设计目的1. 采纳单片机、ADC0809、压力变送器为主要器件,设计水深检测系统;2. 经过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应 用进一步的认识;3. 掌握准时器、外面中止的设置和编程原理;4. 经过此次课程设计能够将单片机软硬件联合起来,对程序进行编写,校验。二、设计要求1. 压力变送器输出为4-20mA电流信号,经过变换电路把其变换为电压信号;2. 办理模拟信号并显示其实质水的深度数值。三、设计器械器件个数器件个数STC89C521晶振(12M)1ADC0809122uf电容1直流电机11KQ电阻19012型三极管410K Q电阻
2、1开关110 Q电阻14位数码管1470 Q电阻1底座2液位变送器1四、设计方案及剖析1单片机最小系统电路单片机最小系统电路如图1所示,由主控器STC89C52、时钟电路和复位电 路三部分构成。单片机STC89C52作为核心控制器控制着整个系统的工作,而时 钟电路负责产生单片机工作所必需的时钟信号,复位电路使得单片机能够正常、 有序、稳固地工作。8ATSSCffi2027281213141Aio2T222324:C1. I C253 &FR1inkXTAL1PajO/AMP5.1/AP1TAL2pa.fi/AMPOfi/AKRSTPD.7/AD7P2Q展M.v/seF2 2问。PSMP2J3/
3、A11ALEP2.4/12甌P2.5/A13P2.0/414P2.7/A15P1.0fE2F3P1.1/T2EXP3J/TP1.2Fl.3P3 3/INT1P1.4P3 4/TOF1.6F3S/T1P-1.6P35ASRPi.7P3.7/RE123021图1单片机最小系统2.时钟电路STC89C52单片机芯片内部设有一个由反向放大器所构成的振荡器。19脚(XTAL1)为振荡器反相放大器和内部时钟发生电路的输入端,18脚(XTAL2)为振荡器反相放大器的输出端。在XTAL1和XTAL2引脚上外接准时元器件,内部振荡电路就会产生自激振荡。本系统采纳的准时元器件为石英晶体(晶振)和电容组成的并联谐振
4、回路。晶振频次为12MHz,电容大小为33pF,时钟电路如下图。图2时钟电路(晶振)3.复位电路STC89C52的复位是由外面的复位电路来实现的,复位电路往常采纳上电复位和按钮复位两种方式,本设计采纳的是最按钮复位电路,其电路图如下图。图3复位电路RSTP1 R1 1P12P13P24 数码管显示电路LED又称为数码管,它主要由8段发光二极管构成的不一样组合,能够显示 a g为数字和字符显示段,h段为小数点显示,经过a g为7个发光段的不一样 组合,能够显示09和AF共16个数字和字母。LED能够分为共阴极和共阳 极两种构造。共阳极构造即把8个发光二极管阳极连在一同。这类装入数码管中显 示字
5、形的数据称字形码,又称段选码。本设计用到的是LED显示器静态显示方式,其电路如下图是发光二极管显示 器(LED )的构造、工作原理及接口电路。FLERMC K-BEFEVAPD FEkUADi F0SAD3 rTAP3 FQUAD PBSADE M崛 t-B FD2/ADT35J*PS畤崖血F3.1fA9FZ3A1D 王JMUl FZ.4?A1Z 2砂1工卜竽FXtfAlt1 研FZ7rA15Z5HETRXb FUfTXt Fi,alTTB PXTIiTl ra.+ma:m/ Q3iI-LOJZ-La白-Emr4zKnEn h n n n9typedef unsigned char uint8
6、;typedef unsigned int uintl6;typedef unsigned long uint32; uint8 a;uint8 j=0;sbit eoc=P3A1;sbit oe=P3A0;sbit st=P3A2;sbit ADDR0=P2A0;sbit ADDR1=P2A1;sbit ADDR2=P2八2;sbit ADDR3=P2A3;sbit clock=P2A4;bit flag=0;code uint8 table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90;void delay()/延时子函数uint8
7、i,K;for(i=1;i0;i-)for(K=10;K0;K-);void diplay()switch(j)case 0:ADDR0=1;ADDR1=1;ADDR2=1;ADDR3=0;/显示第一位数码管j+;P0=tablea0;delay();break;case 1:ADDR0=1;ADDR1=1;ADDR2=0;ADDR3=1; j+;/显示第二位P0=tablea1;delay();break;case 2:ADDR0=1;ADDR1=0;ADDR2=1;ADDR3=1;/显示第三位j+;P0=tablea2;delay();break;case 3:ADDR0=0;ADDR1=
8、1;ADDR2=1;ADDR3=1;/显示第四位j+;P0=tablea3;delay();break;case 4:ADDR0=0;ADDR1=0;ADDR2=0;ADDR3=0;/显示第四位j=0;P0=tablea4;delay();break;default:break;void timer0() interrupt 1flag=flag;clock=flag;main()uint16 temp=P1; TMOD=0x02;TL0=0xFF;TH0=0xFF;TR0=1;EA=1;ET0=1;while(1)st=0;内部全部存放器清零st=1;st=0;启 AD 变换while(!eoc)oe=1;t