標(biāo)題: 根據(jù)報警器功能編寫程序 [打印本頁]
作者: wq1260429171 時間: 2015-1-17 18:49
標(biāo)題: 根據(jù)報警器功能編寫程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit beep=P2^0;
sbit see=P2^2;
sbit smog=P2^3;
sbit lcden=P3^5;
sbit lcdrs=P3^4;
sbit lcdwr=P2^4;
uchar code table0[]=" S I F E ";
uchar code table1[]=" S O S ! ";
uchar code table2[]=" D A Y ";
uchar code table3[]=" N I G H T ";
uchar num;
uchar i,j,mu,flag=1;
void dsp();
void action0();
void action1();
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcdwr=0;
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x10);
}
void dsp()
{
init();
if(mu==1)
{
for(num=0;num<12;num++)
{
write_data(table1[num]);
delay(20);
}
}
else
{
for(num=0;num<11;num++)
{
write_data(table0[num]);
delay(20);
}
}
if(see==0)
{
write_com(0xc0+17);
delay(50);
for(num=0;num<10;num++)
{
write_data(table2[num]);
delay(40);
}
}
else
{
write_com(0xc0+17);
delay(50);
for(num=0;num<13;num++)
{
write_data(table3[num]);
delay(40);
}
}
for(num=0;num<16;num++)
{
write_com(0x18);
delay(20);
}
}
void main()
{
j=1;
EA=1;
EX0=1;
IT0=1;
while(1)
{
dsp;
if(smog==1) mu=1;
if(mu==1) action1();
}
}
void action0()
{
dsp();
for(i=0;i<2;i++)
{
P1=0xfd;
beep=1;
delay(50);
if(flag==0)break;
P1=0xf7;
beep=0;
delay(50);
if(flag==0)break;
flag=1;
}
}
void action1()
{
dsp();
for(i=0;i<100;i++)
{
P1=0xff;
beep=1;
delay(50);
if(flag==0)break;
P1=0xf0;
beep=0;
delay(50);
if(flag==0)break;
mu=0;
flag=1;
}
}
void enter0() interrupt 0
{
flag=0;
}
作者: admin 時間: 2015-1-18 22:06
根據(jù)報警器功能編寫程序?有電路圖嗎?
作者: mybigapple 時間: 2015-1-19 05:20
有個簡單介紹或者加點(diǎn)注釋或者有個圖,比較好。也感謝分享了。
作者: miu 時間: 2017-5-1 18:04
有個簡單介紹或者加點(diǎn)注釋或者有個圖
作者: jamyg 時間: 2017-5-1 21:08
單純的程序,沒有電路圖嗎
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |