資源簡介
void main()
{
uchar num;
delay_ms(40);
init();
while(1)
{
while(flag2);
while(!flag1&&TR0)
{
if(i--==0)
{
EX1=0;/**/
for(num=0;num<8;num++)
{
lcd_send_data(string2[num]);
}
flag1=2;
}
}
if(flag1==1)
{
time=TH1;
time=(time<<8)|TL1;
distance=time*1.72;
convert(distance);
if(dis[0]=='0')
displayonechar(5,1,' ');
else
displayonechar(5,1,dis[0]);
if((dis[0]=='0')&&(dis[1]=='0'))
displayonechar(6,1,' ');
else
displayonechar(6,1,dis[1]);
if((dis[0]=='0')&&(dis[1]=='0')&&(dis[2]=='0'))

代碼片段和文件信息
#include?
#include?
#include?
#define?uint?unsigned?int
#define?uchar?unsigned?char
uchar?string1[]=“--DISTANCE--“;
uchar?string2[]=“OVERTIME!“;
uchar?dis[7];
uchar?time;
uint?flag1flag2=0;
sbit?p2_0=P2^0;
sbit?p2_6=P2^6;
sbit?lcd_rs=P2^5;
sbit?lcd_en=P2^4;
void?init();
void?lcd_send_command(uchar?command);
void?lcd_send_data(uchar?dat);
void?lcd_display(uchar?xuchar?yuchar?*Data);
void?convert(float?lenth);
void?displayonechar(uchar?x?uchar?y?uchar?DData);
float?distance=0.0;
uint?i=40000;
void?delay_ms(uint?z)
{
uint?xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void?main()
{
uchar?num;
delay_ms(40);
init();
while(1)
{
while(flag2);
while(!flag1&&TR0)
{
if(i--==0)
{
EX1=0;/**/
for(num=0;num<8;num++)
{
lcd_send_data(string2[num]);
}
flag1=2;
}
}
if(flag1==1)
{
time=TH1;
time=(time<<8)|TL1;
distance=time*1.72;
convert(distance);
if(dis[0]==‘0‘)??????
displayonechar(51‘?‘);
????else???
displayonechar(51dis[0]);
????if((dis[0]==‘0‘)&&(dis[1]==‘0‘))??????
displayonechar(61‘?‘);
????else???
displayonechar(61dis[1]);
????if((dis[0]==‘0‘)&&(dis[1]==‘0‘)&&(dis[2]==‘0‘))??
displayonechar(71‘?‘);
????else???
displayonechar(71dis[2]);
????displayonechar(81dis[3]);
????displayonechar(91dis[4]);
????displayonechar(101dis[5]);
????displayonechar(111dis[6]);
????displayonechar(121‘c‘);
????displayonechar(131‘m‘);
}
else
?????{
lcd_send_command(0x01);/*顯示清屏*/
??????for(num=0;num<12;num++)
{
lcd_send_data(string1[num]);
}
?????}
? ??TH1=0;
??TL1=0;
??????flag1=0;
??flag2=1;
????delay_ms(100);
}
}
void?init()
{
uchar?num;
TMOD=0X12;
//TR0=1;定時器
ET0=1;?/*允許定時器0中斷*/
EX1=0;
TH0=250;
TL0=250;
EX0=1;
IT0=1;
TH1=0;
TL1=0;
IT1=0;
EA=1;
lcd_en=0;
lcd_send_command(0x38);/*顯示模式設(shè)置*/
lcd_send_command(0x0c);/*顯示開及光標移動設(shè)置*/
lcd_send_command(0x06);/*顯示光標移動設(shè)置*/
lcd_send_command(0x01);/*顯示清屏*/
lcd_send_command(0x80+3);/*設(shè)置數(shù)據(jù)地址指針*/
for(num=0;num<12;num++)
{
lcd_send_data(string1[num]);
}
}
void?lcd_send_command(uchar?command)
{
lcd_rs=0;
P1=command;
delay_ms(5);
lcd_en=1;
delay_ms(5);
lcd_en=0;
}
void?lcd_send_data(uchar?dat)
{
lcd_rs=1;
P1=dat;
delay_ms(5);
lcd_en=1;
delay_ms(5);
lcd_en=0;
}
void?displayonechar(uchar?x?uchar?y?uchar?DData)
{
????y?&=?0x1;
????x?&=?0xF;?//限制X不能大于15,Y不能大于1
????if?(y)?x?|=?0x40;?//當要顯示第二行時地址碼+0x40;
????x?|=?0x80;?//算出指令碼
????lcd_send_command(x);?//發(fā)命令字
????lcd_send_data(DData);?//發(fā)數(shù)據(jù)
}
void?convert(float?lenth)
{
unsigned?long?lenth1;
lenth1=lenth*100;
dis[6]=lenth1%10+0x30;
lenth1=lenth1/10;
dis[5]=lenth1%10+0x30;
lenth1=lenth1/10;
dis[4]=‘.‘;
dis[3]=lenth1%10+0x30;
lenth1=lenth1/10;
dis[2]=lenth1%10+0x30;
lenth1=lenth1/10;
dis[1]=lenth1%10+0x30;
dis[0]=
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????164??2009-02-12?16:02??測試程序\測試程序.plg
?????文件???????3482??2009-02-11?19:15??測試程序\測試程序.c
?????文件??????14599??2009-02-11?19:15??測試程序\測試程序.M51
?????文件???????4795??2009-02-11?19:15??測試程序\測試程序.hex
?????文件???????2009??2009-02-11?19:04??測試程序\測試程序_Uv2.Bak
?????文件???????8758??2009-02-11?19:15??測試程序\測試程序.LST
?????文件??????12877??2009-02-11?19:15??測試程序\測試程序.OBJ
?????文件?????????48??2009-02-11?19:15??測試程序\測試程序.lnp
?????文件??????11634??2009-02-11?19:15??測試程序\測試程序
?????文件???????2128??2009-02-11?19:15??測試程序\測試程序.Uv2
????.......??????1265??2009-02-11?19:15??測試程序\測試程序_Opt.Bak
?????文件???????1266??2009-02-12?16:02??測試程序\測試程序.Opt
?????目錄??????????0??2009-02-12?08:50??測試程序
-----------?---------??----------?-----??----
????????????????63025????????????????????13
- 上一篇:atsha204 認證程序基于I2C通信
- 下一篇:433M發(fā)射接收模塊資料
評論
共有 條評論