3. 2按键模块驱动程序
#include "head, file.h"
sbit Natural. _wind. button =P2^0;
sbit Ordinary_wind_button=P2^1;
sbit sleep _wind_ button=P2^2;
sbit Time_ button=P3^6;
sbit Shake_ button=P3^7;
void BUTTON_ Config()
{
Natural__wind_ button= 1;
Ordinary__wind_ buttn= 1;
Sleep__wind_ button=1;
Time__button = 1;
Shake__button= 1;
}
3.3 LED指示灯驱动程序
incude "head fle.n"
sbit Natural _wind__ LED=P2^3;
sbit odinary_ wind_ED=P2^4;
sbit Sleep_wind_ LED=P2^5; .
sbit NO_Wind_LED=P2^6;
sbit Buzzer=P0^3;
void GUIDE. _Led__Config()
{
Natural _wind_LED=1;
Ordinary_wind_LED= 1;
Sleep__wind. LED=1;
NO__Wind_ LED=0;
Buzzer = 0;
}
3.4电机驱动程序
#include "head_file.h"
uchar t0, add0;
uchar t1,add1;
sbit EN0=P3^4;
sbit EN1=P3^5;
sbit IN0=P3^0;
sbit IN1=P3^1;
sbit IN2=P3^2;
sbit IN3=P3^3;
void L298_Config()
{
t0=50;
t1=50;
IN0=0;
IN1=1;
IN2=0;
IN3=1;
}
void TIM_Config()
{
TMOD = 0x11;
THO = (65536-50000)/256;;
TLO = (65536-50000)%256;;
ETO = 1;
TRO = 1;
TH1 = (65536-50000)/256;; .
TL1 = (65536-50000)%256;;
ET1 = 1;
TR1 = 1;
EA= 1;
}
void TIM0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256 ;
if(add0= =100)
{
add0=0;
EN0=1;
}
if(add0= =t0)
EN0=0; .
}
add0++;
}
void TIM1() interrupt 3
TH1=(65536- 50000)/256;
TL1=(65536-50000)%256 ;
if(add1==100)
{
add1=0;
EN1=1;
}
if(add1==t1)
{
EN1=0;
}
add1 ++;
3.3 LED指示灯驱动程序
#include“ head_ file. h"
sbit Natural_ _wind_ LED=P2^ 3:;
sbit 0rdinary_ wind_ LED=P2^ 4:
sbit Sleep_ wind_ LED =P2^ 5:
sbit NO_ _Wind_ LED =P2 6:
sbit Buzzer=P0^ 3:
void GUIDE_ Led_ Conf ig()
{
Natural_ wind_ LED = 1:
0rdinary_ wind_ LED = 1:
Sleep_ wind_ LED = 1:
NO_ Wind_ LED = 0://ID.0. E%uEAA
Buzzer = 0:// . aAu无+ 42 A-
}
3.4电机测温驱动程序
#include“ head_ file.h"
sbitdq=P2^7:
void sdelay (uint i)
{
while(i--):
}
void DS18B20_ Reset()
{
uchar x=0:
dq=1;
sdelay(8) ;
dq=0;
sdelay (80):
dq=1:
sdelay(14) ;
sdelay(20) ;
}
void DS18B20_ Write_ Byte (uchar dat)
{
uchar i=0:
for(i=8:i>0;i--)
{
dq=0;
dq=dat&0x01 :
sdelay(5) :
dq=1;
dat>>=1:
}
}
uchar DS18B20_ Read_ Byte()
{
uchar i=0, dat=0:
for(i=8:i>0;i-)
{
dq=0:
dat>>=1;
dq=1:
if (dq)
dat| =0x80: .
sdelay(4) ;
}
Return(dat);
}
uint GET Temperature()
uchar a=0, b=0;
uint t=0:
float tt=0;
DS18B20_ Reset() ;
DS18B20_ _Write_ _Byte (0xCC) ://1o, yR0M
DS18B20_ _Write_ _Byte (0x44) ://28 E6IATEX*00
DS18B20_ Reset():
DS18B20_ _Write_ _Byte (0xCC) : .
DS18B20_ Write_ Byte (0xBE) ://91A0Y既E -
a=DS18B20_ Read _Byte0 :
b=DS18B20_ Read_ Byte() :
t=b;
t<<=8;
t=t|a.
tt=t*0.0625:
t= tt*10+0. 5:
re turn(t) ;
}
3.6 LCD显示驱动程序
#include "head_ fle.h"
uchar code table[]="temperature 27'c" ; /IONMAX0A .
uchar code table1[]="status NO Wind" ;
sbit Icdrs=P0^0; //>A“eE + Ni Onoy%A
sbit Icdwr=P0^1; //91AD' Oy%A
sbit Icde=P0^2; //AE-NiOy%A
void LCD1206_ config()
uchar i;//9/" 0詠%0%士8A%
init();
write_ com(0x80); //0 0eμAiOA
for(i=0;i<16;++)
//i0E%
{
write_ dat(table[i); .
delay(50); //N6士£_OAOUμ+ %0EUE》AE¥Aa
}
write_ com(0x80+0x40);
for(i=0;<16;i++)
write_ dat(table1[i]);
delay(50);
}
}
**********N6E+X61-Ey*****************/
void delay(uchar x)
uchar ij;
for(i=x;>0;--)
forl(=110;>0j-);
}
*************D”0 A1X 0' **************/
void write_ com(uchar com)
{ // . u816020' %8 IδE%E+日0
P1=com;
lcde=0;
Icdrs=0;
Icdwr=0; .
delay(5); .
lcde=1;
delay(5);
Icde=0;
}
//**************D”ey%YX 0' **************//
void write_ dat(uchar dat)
{
P1=dat;
lcde=0;
lcdrs=1; .
lcdwr=0;
delay(5); .
lcde=1;
delay(5);
Icde=0; .
}
/*********>* x6' Ey"**** **************/
void init()
{
write_ com(0x01); //. |AOEeOA
write_com(0x3f);//i0E%&DOE
write_com(OxOf);//EaEe . K炸Ee0A
write_com(0x06);
}
|