标题:
能请大佬们看看程序有啥问题啊 求帮助
[打印本页]
作者:
at89sc51
时间:
2019-5-15 16:42
标题:
能请大佬们看看程序有啥问题啊 求帮助
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit cs=P3^5;
sbit rd=P3^7;
sbit wr=P3^6;
sbit lcdrs=P2^0;
sbit lcdrw=P2^1;
sbit lcden=P2^2;
sbit s1=P2^4;
sbit s2=P2^5;
sbit s3=P2^6;
sbit s4=P2^7;
sbit speaker=P3^2;
sbit D1=P3^0;
sbit D0=P3^1;
unsigned char timer0h,timer0l,time;
uchar code table[]="Humidity ";
uchar code table1[]="%";
uchar code table2[]="Low";
uchar code table3[]="% High";
uchar result,Low=202,High=216;
void been(void)
{
unsigned char k,i;
int sszymmh[20];
TMOD=1; //?CT0??????1
EA=1;
ET0=1;//IE=0x82 //CPU???,CT0???
i=0;
while(i<35)
{
k=sszymmh[i]+7*sszymmh[i+1]-1;
timer0h=FREQH[k];
timer0l=FREQL[k];
time=sszymmh[i+2];
i=i+3;
song();
}
}
void delay(uint i) //????
{
uchar j;
while(i--)
{
for(j=0;j<115;j++)
{
};
}
}
void init_ad() //???AD
{
cs=0;
}
void start_ad() //??AD
{
cs=0;
_nop_();
wr=0;
_nop_();
rd=1;
_nop_();
wr=1;
_nop_();
_nop_();
cs=1;
_nop_();
_nop_();
}
void read_ad() // ?AD?????
{
cs=0;
_nop_();
wr=1;
_nop_();
wr=0;
_nop_();
rd=0;
_nop_();
_nop_();
result=P0;
_nop_();
_nop_();
rd=1;
_nop_();
cs=1;
_nop_();
}
void write_com(uchar com) //???????
{
lcdrs=0;
P1=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar result) //???????
{
lcdrs=1;
P1=result;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init() //??????
{
uchar num;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01); //????
write_com(0x8a); //??????
}
void display() //?????
{
uint num, Low1,Low2,High1,High2;
uchar x,y;
x=result%100/10;
y=result%10;
Low1=Low%100/10;
Low2=Low%10;
High1=High%100/10;
High2=High%10;
write_com(0x80); //??????
for(num=0;num<10;num++)
{
write_data(table[num]);//?????? ????Humidity
delay(5);
}
write_com(0x8c);
delay(5);
write_data(table1[0]) ; //??%
write_com(0x80+0x40);//?????????2?
for(num=0;num<3;num++)
{
write_data(table2[num]);//?????? ?? ??Low
delay(5);
}
write_com(0x80+0x45);
for(num=0;num<7;num++)
{
write_data(table3[num]);//?????? ?? ??High
delay(5);
}
write_com(0x80+0x43); //?????? ?Low??
write_data(Low1+0x30);
delay(5);
write_data(Low2+0x30);
delay(5);
write_com(0x80+0x4c); //?????? High??
write_data(High1+0x30);
delay(5);
write_data(High2+0x30);
delay(5);
write_data(table1[0]) ; //??%
write_com(0x80+0x4e);//?????????2?
}
void keyscan()
{
if(s1==0)
{
delay(10);
if(s1==0)
{
High++;
if(High==99)
High=98;
while(!s1);
}
}
if(s2==0)
{
delay(10);
if(s2==0)
{
High--;
if(High==01)
High=02;
while(!s2);
}
}
if(s3==0)
{
delay(10);
if(s3==0)
{
Low++;
while(!s3);
}
}
if(s4==0)
{
delay(10);
if(s4==0)
{
Low--;
while(!s4);
}
}
}
void delay2(unsigned char t)
{
unsigned char t1;
unsigned long t2;
for(t1=0;t1<t;t1++)
{
for(t2=0;t2<8000;t2++)
{
}
}
TR0=0;
}
void t0int() interrupt 1
{
TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song()
{
TH0=timer0h;
TL0=timer0l;
TR0=1;
delay2(time);
}
void main()
{
lcdrw=0;
init_ad();
init();
Low=Low*0.39;
High=High*0.39;
while(1)
{
keyscan();
start_ad();
delay(10);
read_ad();
delay(10);
result=result*0.39;
display();
delay(1000);
if(result>50)
{
D0=0;;
}
}}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1