風淋室單片機主程序匯總
前面我們了解了風淋室軟件系統是如何設計的,現在就再深入一步,探討風淋室單片機的主程序。
#include
#include"isd1720.h"
#define uint unsigned int
#define uchar unsigned char
sbit dula=P0;
sbit a=P2^6;
sbit b=P2^7;
sbit fs=P2^5;//風扇
sbit mc=P2^0;//脈沖輸出
sbit fx=P2^1;//電機方向
sbit key=P3^5;//按鍵
sbit tc=P3^6; //探測
uchar shi,ge;
uchar time=15,number=3;
uint t;
uchar code table[]={
0x
0x66,0x6d,0x7d,0x07,
0x
0x39,0x5e,0x79,0x71};
//風淋室開關門子程序
void men(void)
{
uchar num;
for(num=0;num<60;num++)
{
fx=0;
mc=0;
delay(20);
mc=1;
delay(20);
}
delay(3000);
for(num=0;num<60;num++)
{
fx=1;
mc=0;
delay(20);
mc=1;
delay(20);
}
}
//顯示子程序
void display(uchar date)
{
shi = date/10;
ge = date%10;
b=1;a=0;
P0=table[shi];
delay(1);
a=1;b=0;
P0=table[ge];
delay(1);
}
//定時器0中斷初始化程序
void timer0_init()
{
a=0;
b=0;
P0=0x00;
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
EA=1;
ET0=1;
//TR0=1;
}
//定時器0中斷服務程序
void timer0() interrupt 1
{
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
shi = time/10;
ge = time%10;
display(time);
t++;
if(t>500)
{
time--;
t=0;
if(time==0)
{
TR0=0;
}
}
}
//主函數
void main()
{
key = 0;
tc = 1;
fs=0;
P2=0;
P0=0;
Cpu_Init(); // 系統初始化
ISD_Init(); // ISD1700 初始化
timer0_init();//初始化子程序
while(1)
{
while(!key);
men();//開關門
delay(3000);
number=3;
while(tc&&number)
{
zhuanhuan(2); //請站在感應區內
number--;
delay(2000);
}
if(number==0){goto esc;}
TR0 = 1;
fs=1;
while(TR0);
P2=0;
P0=0;
fs=0;
zhuanhuan(1);//吹淋完畢,請從后門出去
delay(2000);
men();//開關門
delay(3000);
esc:;
}
}
文章來源:http://www.klcfilter.com/ TEL:蘇小姐-13570963006 黃生-13570963007