新手入门
- 积分
- 26
- 金钱
- 26
- 注册时间
- 2015-4-3
- 在线时间
- 0 小时
|
楼主 |
发表于 2015-4-4 09:50:05
|
显示全部楼层
我重新改了下,不知道行了嘛?
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit C1=P1^1; //PM2.5管脚
sbit F1=P3^7; //蜂鸣器管脚
sbit lcden=P3^4;
sbit lcdrs=P3^5;
uchar tt,jj,num,xians;
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() //初始化
{
lcden=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void main()
{
tt=0;
num=0;
init();
TMOD=0x01; //设置定时器0为工作方式
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
TR1=1; //启动定时器1;
while(1)
{
if(tt==1) //每1ms中断一次
{
tt=0;
if(P1^1==0)
{
num++;
}
}
if(jj==1000) //没1s中断一次,显示器显示
{
jj=0;
if(num<20)
{
write_data('A');
}
else if(num>=20 && num<40)
{
write_data('B');
}
else if(num>=40 && num<60)
{
write_data('C');
}
else if(num>=60)
{
write_data('D');
}
}
}
}
void exter0() interrupt 1 //1ms
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
tt++;
}void exter() interrupt 3
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
jj++;
} |
|