当h=d时,传感器电阻阻值左为0,对应W=系统处于go%水位。
其中,环形振荡器产生的方波周期T(或f)可通过单片机P87LPC744BN的两个泄时/讣数器(TO、T1)来确定,T1用来计数,TO用来泄时。
所以,水位传感器测水位的基本原理如下:
(m为T1的计数值,#上为丁0的左时值)o
(2)水温传感器
本设计可选选用具有负温度系数的热敏电阻来测水温,热敏电阻及普通电阻不同,它具有负的温度特性,当温度升髙时,电阻值减小,它的应用是为了感知温度.
现选用MF51型直热式负温度系数热敏电阻,它的技术特性如下:
型号
标称电阻(°)
材料常数(疋)
温度系数(xlO2/°C)
使用温度范围
MF51
1〜
5K
±5%
3300
±5%
3。
7
_55〜
0c+300°
5〜
20K
+10%
3600
4o0
20-80K
3900
4。
3
80-
100K
±20%
4300
4.7
它能满足本设计的测量灵敏度要求和2%的测量精度要求,性价比较高.
测虽原理:
及水位传感器一样,在设立好合适的参数(Rl、R2.Rs、C)后,对应每个热敏电阻阻值,环形振荡器便能产生一个特定周期的矩形波。
7^2.2(耳+&+鸟)*0
T可通过单片机的TO外部汁数和T1内部立时的方式确定。
然后通过下列公式求温度:
l=T^KRt
其中上被测温度
£及热敏电阻特性有关的参数
及热敏电阻特性有关的系数
外—热敏电阻阻值
以上计算均可由软件编程实现,把汁算出的温度转化成BCD码,然后再存放于显示缓冲区中,执行相应的功能程序.
3.3键盘中断:
本系统存储容量不大,4KROM,128RAM足够,,由于只有二个键,且不经常操作,所以本设计中采用了中断方式,其中及P0.2口的键盘是用于手动上水功能,及P0.3口连接的键盘用于水位设置的功能.
3.4显示接口:
本设计中采用了共阴极接法,对于显示水温水位的程序作如下说明:
1在动态扫描过程中,调用延时子程序Dell,英延迟时间为1ms,这是为了使扫描到哪位显示器稳泄的点亮一段时间,犹如扫描过程中在每一位显示器上都一段驻留时间,以保证其显示亮度。
2本设汁接口电路是软件为主的接口电路,对显示数据以查表方法得到其字形代码,为此在程序中有字形代码Table.从0开始依次写入十六进制数的字形代码。
为了进行查表操作,使用査表指令MOVCA,@A+DPTR,由DPTR提供16位基址,由A提供变址,因此显示数据送A后,再由A送P0.1〜P0。
6输岀给显ZK器。
(1)水位显示:
本系统需显示水位,水位分缺水、20、50、80%五档,均用发光二极管来指示。
(2)水温显示:
本系统需显示水温,测量范囤为0-99°C,用两个八位LED数码管显示。
1)LED结构和显示原理.LED(LightEmittingDiode)显示器是由发光二极管作为显示字段的显示器件,最常见的是由7段型发光二极笛(a~g7段)和1个圆点型发光二极管(常以dp表示,主要用来显示小数点)组成的LED显示器,其排列形状如下图所示。
这种LED显示器也可称为7段数码显示器(或8段数码显示器)。
LED显示中的发光二极管根据其连接的方法有共阴极和共阳极两种结构。
共阴极结构:
把各段发光二极管的阴极连接在一起构成公共阴极,如图a所示。
使用时,公共阴极接地,根据要求需点亮发光二极管的阳极输入髙电平,不需点亮的发光二极管的阳极输入低电平。
共阳极结构:
把各段发光二极管的阳极连接在一起构成公共阳极,如图b所示。
使用时,公共阳极接+5V,根据要求需要点亮发光二极管的阴极输入低电平,不需点亮的发光二极管的阴极输入髙电平。
c:
外形和引脚
通过控制7个段的发光二极管的亮暗的不同组合,可以显示多种数字.字母以及其他符号.
2)字段码。
为了显示各个数字或字符,就需要为LED提供相应的代码,因为这些代码是控制各段的亮或火,供显示器显示字形的,所以称为字段码(也可以称为段选码或字形码)。
七段发光二极管再加上1个小数点位,共计8段,因此提供给LED显示器的字段码正好1个字节代码位的对应关系如下:
D7D6D5D4D3D2D1DO
下图所示为共阴极LED所显示的不同字符的字段码,测量范用为0〜99吃,当温度超岀范甫时,显示器均显示F。
1显示字符
共阴极字段码
0
3FH
1
06H
2
5BH
3
4FH
4
66H
5
6DH
6
7DH
7
07H
8
7FH
9
&FH
F||71H
3)N位LED显示器•在单片机应用系统中,实际使用的LED显示器有多个,N位LED显示器的显示要从两个方面来控制:
其一是控制N位的字段显示(即显示什么字符):
其二是控制字位(即哪一位到哪一位亮)。
由LED的显示原理可知,要使某N位LED显示器的某一位显示某个字符,就必须将此字符转换为对应的字段码来控制该位的8个段,同时,该位的字位线也要控制有效,这要通过一定接口来实现。
LED显示器有两种显示方式,即静态显示方式和动态显示方式。
N位LED显示器有N根字位选线(简称:
“位选线“)和N*8根字段选线(简称:
“段选线“)•根据显示方式不同,位选线和段选线的连接方式也不同。
各种字符的字段码的获取方法有两种:
即软件译码和硬件译码法。
目前通常所用的各种型号的单片机开发系统或实验装置普遍采用软件译码。
当单片机应用系统中的LED显示器位数较多时,为了简化电路降低成本,本设汁采用动态显示的方式。
动态显示方式的接口电路的连接方法是:
将所有LED位的段选线(a~dp)同名并联,即所有a段并联,所有b段并联。
依次类推,然后由一个8位I/O接口来控制各个段,而所有位的位选线则由另外一个相应的I/O接口线来控制。
这样用两个8位I/O接口就能控制8位LED显示器。
LED显示器是由电流型控制器件,其工作电流为2mA〜20mA,使用时须加限流电阻。
本设汁中限流电阻选用IKe
动态扫描显示控制方式就是逐个地循环点亮齐位显示器,即在某一瞬间,只让某一位的位选线处于选通状态(共阳极的为高电平,共阴极的为低电平)其它各位的位选线处于段开状态,同时段选线上输岀相应位要显示字符的字段码。
这样在每一个瞬间,8位LED中只有选通的那一位LED显示出字符,而英它7位则是熄火的.同样,在下一瞬间,只显示下1位LED•如此继续下去,等8位LED都显示完毕后,在循环进行。
虽然这些字符是在不同的瞬时轮流点亮的,但由于人眼的视觉残留效应,看到的是8位稳主显示的字符,及静态显示的效果完全一样。
所以为了简化电路、降低成本,此系统中采用动态显示方式.
3.5电磁阀:
由于本系统中执行机构控制的是电磁阀,因此需用三极管进行功率放大。
3。
6晶振:
为给单片机提供工作所需要的时钟信号,本设讣中采用了6MHZ的晶振.故系统中CPU执行的每一个机器周期为2us.
3。
7主机:
主机的选择是关键,选得好,可节省许多外围电路,本设计采用的是由Philips公司生产的P87LPC764BN芯片,是20脚封装的单片机,适合于要求高集成度、低成本的场合。
采用8OC51加速处理器结构,指令执行速度是标准8OC51的两倍。
片内有4K字节OTP程序存储器,128字节的RAM.32Byte用户代码区可用来存放序列码及设置参数;有看门狗电路、复位电路(使用片内上电复位时不需要外接组件);2个16位定时/计数器,2个A/D转换器:
所有口线均有20mA的驱动能力;电源电压Vdd=4o5~6。
0(操作频率为20MHZ).
本设计中已经充分利用了该单片机的所有I/O口,且已能满足设计的要求,性价比高,组成了一个最小,最优化的系统。
现对P87LPC764BN这块芯片作如下介绍:
(1)槪述:
P87LPC76X是20脚封装的单片机,适合于许多要求高集成度、低成本的场合。
可以满足许多方而的性能要求•作为Philips小型封装系列中的一员,P87LPC76X提供髙速和低速的晶振和RC振荡方式,可编程选择°具有较宽的操作电压范围。
可编程I/O口线输出模式选择,可选择施密特触发输入,LED驱动输出。
有内部看门狗定时器。
P87LPC76X采用8OC51加速处理器结构,指令执行速度是标准80C51MCU的两倍。
P87LPC76X采用增强型80C51MCU,苴运行速度是标准8OC51的2倍,这意味着P8兀PC76x在5MHZ时性能和标准80C51采用10MHZ时性能相同。
一个机器周期由6个振荡周期组成,大多数指令执行时间为6或12个振荡周期,用户亦可选择工作在标准80C51MCU时序,这时一个机器周期变为12个振荡周期。
“MCU时钟”指控制内部指令执行的时钟。
当系统被设置成为标准8OC51时序(由CLKR位确泄)或通过设定DIVM寄存器分频时,“MCU时钟”和外部所加时钟不同.
(2)特性:
二操作频率为20MHz时,除乘法和除法指令外,加速8OC51指令执行时间为300〜600nsoVDD=4o5〜6.0V时,时钟频率可高达到20MHz,VDD=2U7〜4.5V时,时钟频率最大为lOMHZo
ZVDD=4a5〜6。
0V(P87LPC765HDH)□数字信号的操作电压为2。
7〜6.0V。
0P87LPC762为2K字节OTP程序存储器,P87LPC764为4K字节OTP程序存储器,128字节的RAM。
32Byte用户代码区可用来存放序列码及设置参数.
二2个16位左时/计数器,每一个均可设置为超时溢出时相应端口输出。
:
:
八个键盘中断输入,另加2路外部中断输入。
4个中断优先级.
二看门狗定时器利用片内振荡,无需外接元件,看门狗左时器溢出时间有8级选择。
二低电平复位。
使用片内上电复位时不需要外接元件.
二低电压复位•可选择预先设龙好的两种电压之一复位,当掉电时允许系统安全关闭。
也可将英设置为一个中断源。
二可选择片内振荡及其频率范围和RC振荡(用户通过对EPROM位编程选择)。
选择RC振荡器时不需外接振荡器件。
二如果选择片内振荡及复位时,P87LPC76X仅需要连接电源线和地线。
二20脚DIP、SO和TSSOP封装。
管脚配宜:
X2/CLKOUT/P2.0丽/PMSDA/m/P1.3SCL/TO/P12
Ki
CWP2/P0.0[T
P1.7s
P1,6S
RST/P1.53
VssE
X1/P2.1E
P0.1/CIN2B
P0.2/CIN2A
P0.3/CIN1B
P0.4/CIN1A
P0.5/CMPREF
VDO
P0.6/CMP1
P0.7/T1
Pl.O/TxD
Pl.l/RxD
逻辑符号:
CMP2
CIN2B
CIN2A
CIN1B
CIN1ACMPREF
一一
CLKOIJT/X2—
X1—
1
OJLKod
一一
方框图:
管膵描述
助删
o
P0.0-PO.7
1.1J.14
PORT/PORTOM户町認义鸟出娄鬼的$位I0;hPORTO孩心器4准双向換式中firitihfCTGl中的PRHI位确紀复位石弓人T"还“POKTO山耐配卅必翻1企为*出輛入様九毎吨均可单檎跖2册&伶籾0口ftise和DC惱曲分,
PORTO丨上位建蛊鑰入申析功企・
PORTO1】辻町Hfl血MY殊血剋
1
0
POOCMPiIt狡戮2笛出
20
I
MlCK2B忆较器2iF向教入B
19
I
M.1CIN2A比较娶2正向输入A
18
I
同.3CINIB比蚁器1正向笛入B
17
1
M.4CIXIA比较器!
正向苗入A
16
I
W5CMPREF比较JS參桃反册入
14
0
M6OiPlUO1^:
11
13
10
W.7TL定时讣数JS1外时毂输入站W澄出精出
Pl.O-Pf
21.£12
POKTh除二个錢閒下曲另“说明外P0RT1宦一个用户可定义細決星的8位10II.PORT!
慟(|•嚣伍准双向啟代申的配出由UCFG1中的PRH1位晞宦夏位后写入「1”逐楚“0”P0RT11HlJlltM//55故定为输卅或输入摂式,蒔一也血可单蝮建定.祥OT^IOil豐紳DC电特件盼・
MKT1!
:
%川作如卜郴劝魁
12
0
?
1.0TxD窗行11宙岀
11
I
PL1RxD窗行H输入
10
10
10
Pl.2TO定B-jil&SO外«;计数输入或门时溢出输;II・
SCLFC弗行时冲为入眉肚力了和1七洛式…效.FL权咸输出时为开灌SML
9
I
10
Pl・3INTO外部屮祈㈱入•
SDA1七疗市故妳输人输収为了和FC能N—更为配霍成创1附知礁黜儿
8
I
Pl.4KT1外駆中斷1箱入
4
圭
?
1.5RST外例gi入VJ道itEPROMfiliVil择)•低电Ft!
低使10U棚外田忌伴W认燧处理■从0曲址怙地片川fIOI谢P•汕刨储辎贏U
P2.0-P2.1
6.7
PORT:
:
P0RT2许阳九用义翻K啖乜的8^1011.PORT:
存馮彳准d问投处中配说•山UCfGlPRHI位f^tUeS^AT
还;TO:
FORMH曲【1配垃奇召器该定为*出或输入復成•毎咆旬可弧輕设定疔细请多尊EO口配凰和DC地特性部分.
PORT:
1加町川作如下&我血能£
7
?
2.0X2山EPROMil掙为赢低按0时加厲器幽肚
CLKOU砸过便袋SFRG:
(ji接工内覩RC那务或外眾时忡期入囱频舉除以6点滎出.
6
I
?
2.lX!
IllEPROMil择人人洛尊治入或内阴M伸发生划地
VSS
<
r
;存1**11*^1L1•1eieEjXS1丄:
.:
J
I
VDD
1S
1
»6®:
iEW悯心'蚀撰式辟电桥人妙翊
(3)键盘中断(KBI):
键盘中断功能主要是使得连至P87LPC76X特殊脚的键盘上任一键被按下时能产生一个中断(见图12).该中断可用于将MCU从空闲模式或掉电模式中唤醒。
此特性尤其适合便携式且使用电池供电的系统。
P87LPC76X允许端口0的部分或全部引脚被使能触发中断,这是通过对KBI寄存器对应位置位完成的,如图13所示。
当打开KBI中断功能后,任一被使能引脚被拉低都会将AUXR1寄存器内键盘中断标志(KBF)置位。
如若中断允许则将产生一中断。
注意KBF位必须由软件淸除.
由于人对时间分辨精度及键开关闭合的机械延迟,KBI特性通常可用于中断服务程序轮流査询端口0以确泄按下的是哪个键,甚至决立处理器从低功耗模式唤醒。
参见低功耗模式部分。
存-70*
EKB
」{fromIEN1
register
hi12t
建盘中斷
KBI地忧:
86H
不可世寻址
7
6
5
4
i
1
0
見世他为;OOH
KB17
KBI6
KBI.S
KBI4
KB13
KBI.2
KBI.1
KBI.0
也
符号
KBI.7
a
讪允许P0.7引发键盘中畅
KBI.6
■
宦位时允许HL6引发犍盘中断
KBI.5
■
庄位时允许P0.5引发佬川卩趾
KB1.4
■
讷沧许引发惟盘中断
KBI.3
■
比位HjjciTM3引发键0中断
KBI.2
■
世位时允许POJ引发犍g中断
KBI.1
•
KW兒许引发雜毋中断
KBI.0
■
宦也时允许me引发犍盘巾断厂
iI:
勻律範P朗打开后KBI雷(俺h4"乱屮曲I;I«K3riLAUXRI的:
】•汀
>:
13谴蠢中斯崙存MKBI)
本系统存储容咼不大,4KROM,128RAM足够,由于只有二个键,且不经常操作,所以本设计中采用了中断方式,其中及P0。
2口的键盘是用于手动上水功能,及P0.3口连接的键盘用于水位设置的功能.当产生键盘中断时,用软件判断按下的是哪个键,框图如下:
本设计中键盘中断要实现两个功能:
水位设置和手动上水:
1)其中水位设宜键及P0.3口连接,具体功能叙述如下:
当水位不足情况下,未按下水位设置键时,默认预置水位为50%,在上水过程中,水位指示灯火。
当按一下水位设置键时,80%水位指示灯亮,表明要上水到80%;
当按第二下水位设置键时,100%水位指使灯亮,表明要上水到100%:
当按第三下水位设置键时,20%水位指示灯亮,表明缺水时,要上水到20%;
肖按第四下水位设置键时,预苣水位又为50%,表明要上水到50%:
在具体的软件判别中,可通过査表P0。
3是否置髙电平来确认键盘有没按下,可用MOVA,P0:
JNBACC、3等几条指令来实现。
通过对每一次的键盘按动进行加1记录,即当每次P0。
3为髙电平时,加一条INCR,指令,当R1为5时,又重新赋值为1,而后对R1的值进行判断,以确认水位设宜键到底设程了哪个水位,框图如下:
2)手动上水键及P0。
2口连接,可用MOVA.PO;JNBACC.2两条指令来
査看手动上水键有没被按下.
它的具体功能如下:
按''上水”键,若水位低于预宜水位,可上水至预程水位;若水位已达到预置水位,则在原水位的基础上再加一档;若水位已加满,则停止手动加水,在上水过程中,按“上水“键,可停止上水.
同水