• 大小: 21KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签:

资源简介

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);/*显示模式设置*/
lcd_send_command(0x0c);/*显示开及光标移动设置*/
lcd_send_command(0x06);/*显示光标移动设置*/
lcd_send_command(0x01);/*显示清屏*/
lcd_send_command(0x80+3);/*设置数据地址指针*/
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); //发命令字
    lcd_send_data(DData); //发数据
}


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


评论

共有 条评论

相关资源