辽宁工程技术大学智能仪器课程设计
}
b=value0/10; //b为value的十位 c=value; //c为value的个位
write_com(0x80+0x40+4); //将数据写在第二行,第五个字符处 write_data(0x30+a); //在第二行,第五个字符处写入value百位 write_com(0x80+0x40+5); //将数据写在第二行,第六个字符处 write_data(0x30+b); //在第二行,第六个字符处写入value十位 write_com(0x80+0x40+6); //将数据写在第二行,第七个字符处 write_data(0x30+c); //在第二行,第七个字符处写入value个位
在循环语句中不断调用AD转换程序, ad();,又不断调用显示函数,数据就能实时检测更新。
在待机时,循环程序中不断执行语句:
write_com(0x80+6); //将数据写在第一行,第七个字符处 write_data(table[a]); //在第一行,第七个字符处写入时钟的分钟
write_com(0x80+7); //将数据写在第一行,第八个字符处
由于是在不断循环调用,即不断数据刷新,而a、b、c、d的改变是通过定时器零实现的。
write_data(table[b]); //在第一行,第八个字符处写入闪烁的冒号 write_com(0x80+8); //将数据写在第一行,第九个字符处
write_data(table[c]); //在第一行,第九个字符处写入时钟的秒钟十位 write_com(0x80+9); //将数据写在第一行,第十个字符处
write_data(table[d]); //在第一行,第十个字符处写入时钟的秒钟个位
11
邱微:基于单片机的便携式酒精浓度检测仪
6其它外围设备软硬件设计
6.1 报警电路软硬设计
6.1.1 硬件部分设计
图6-1 报警电路
将蜂鸣器的正端接电源正,负端接P1.0。低电平有效,蜂鸣器响起。
Da,Db,Dc为检测报警指示灯。Da为浓度不超限的指示灯,Db与Dc分别为酒后驾驶指示灯和醉酒驾驶指示灯,低电平有效。
当酒精含量<20mg/100ml时,安全灯(绿色LED灯)亮;
当20mg/ml≤酒精含量≤80mg/ml时,警告灯(黄色LED灯)闪烁; 当80mg/ml≤酒精含量时,危险灯(红色LED灯)闪烁,蜂鸣器报警。
6.1.2 软件部分设计
位定义语句:
sbit beep=P1^0; //定义蜂鸣器 sbit da=P1^2; sbit db=P1^3;
sbit dc=P1^4; //定义报警灯 用程序让蜂鸣器响:
beep=0; //低电平输出时,蜂鸣器打开 用程序让蜂鸣器关闭:
beep=1; //高电平输出时,蜂鸣器关闭 用程序将Da,Db,Dc点亮: Da =0; Db =0;
12
辽宁工程技术大学智能仪器课程设计
Dc =0; //低电平输出时,Da,Db,Dc点亮 用程序将Da,Db,Dc熄灭: Da =1; Db =1;
Dc =1; //高电平输出时,Da,Db,Dc熄灭
6.2待机指示灯软硬件设计
6.2.1 硬件部分设计
图6-2 待机指示灯电路
发光二极管D1为待机指示灯,它的正端接电源正,负端与470K电阻相连再接上P1.1。低电平有效,D1点亮,开始待机。电阻起到限流电阻的作用。
6.2.2 软件部分设计
位定义语句:
sbit d1=P1^1; //待机指示灯 用程序将D1点亮:
D1=0; //低电平输出时,D1点亮 用程序将D1熄灭:
D1=1; //高电平输出时,D1熄灭
6.3 按键软硬件设计
6.3.1 硬件部分设计
图6-3 按键电路
S2和S3分别和单片机的P2.1和P2.0,再与GND相接。S2为待机控制按键。S3为检测控制按键。R18和R19与VCC相连再并接在开关前,是为了在松手时,使I/O获得稳定的高电平。
13
邱微:基于单片机的便携式酒精浓度检测仪
6.3.2 软件部分设计
位定义语句:
sbit k1=P2^0; //S3位定义 sbit k2=P2^1; //S2位定义 S2按键检测:
if(k1==0) //检测按键是否按下 { }
S3按键检测:
if(k2==0) //检测按键是否按下 { }
delay(5); //消抖
if(k2==0) //再检测按键是否按下
flag=1; //写入要进行的操作,这里是将标志数flag置一 while(!k2); //松手检测 delay(5); //消抖
if(k1==0) //再检测按键是否按下
flag=0; //写入要进行的操作,这里是将标志数flag置零 while(!k1); //松手检测
6.4 电源电路
图6-4 电源电路
如上图为本设计的电源电路。接入220V交流电后从变压器输出12V交变电压,再经过桥式整流电路整流,输出直流电。稳压芯片7805使电压稳定在5V, C5和C6为电解电
14
辽宁工程技术大学智能仪器课程设计
容起到滤除杂波的作用
【6】
。S4为紧锁开关,电源总开关。D4与R17串联,跨接在VCC与
GND之间,作为电源指示灯。
6.5 休眠(空闲)状态的设定
当单片机进入掉电模式时,外部晶振停振、CPU、定时器、串行口全部停止工作,只有外部中断继续工作。使单片机进入休眠模式的指令将成为休眠前单片机执行的最后一条指令,进入休眠模式后,芯片中程序未涉及到的数据存储器和特殊功能寄存器中的数据都将保持原值。可由外部中断低电平触发或由下降沿触发中断或者硬件复位模式换醒单片机,需要注意的是,使用中断唤醒单片机时,程序从原来停止处继续运行,当使用硬件复位唤醒单片机时,程序将从头开始执行。
本文中则采用硬件复位唤醒单片机。
让单片机进入休眠(空闲)模式的目的是为了降低系统的功耗,例如在正常使用万用表时表内部的单片机处于正常工作模式,当不用时,又忘记了关掉万用表的电源,大多数表在等待数分钟后,若没有人为操作,它便会自动将液晶显示关闭,以降低系统功耗,通常类似这种功能的实现就是使用了单片机的空闲模式或是掉电模式。以STC89系列单片机为例,当单片机正常工作时的功耗通常为4mA~7mA,进入空闲模式时其功耗降至2mA,当进入掉电模式时功耗可降至0.1μA以下。所以采用休眠对于低功耗是非常重要的。
15