51单片机开发测速仪程序代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
s=read_add(1);
delay1ms(10);
count++;
if(key==0)
{
delay1ms(3);
if(key==0)
{
while(!key);
k++;
}
}
if(count>=20)
{
count=0;
ge=((k*314)%1000)/100;
shi=(k*314)/1000;
shifen=(((k*314)%100)/10);
baifen=(k*314)%10;
write_com(0x80+7);
if(shi==0)
{
write_data(' ');
delay1ms(3);
}
else
{
write_data(0x30+shi);
}
write_com(0x80+0x40);
for(i=0;i<16;i++)
{
write_data(display1[i]);
delay1ms(3);
}
}
void init()
{
TMOD=1;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
write_data(' ');
}
s=s+k;
if(key1==0)
{
while(!key1);
s=0;
}
delay1ms(3);
write_add(1,s);
ge1=((s*314)%1000000)/100000;
shi1=(s*314)/1000000;
shifen1=(((s*314)%100000)/10000);
baifen1=((s*314)%10000)/1000;
qianfen1=((s*314)%1000)/100;
write_com(0x80+0x40+8);
if(shi1==0)
{
write_data(' ');
delay1ms(3);
}
else
{
write_data(0x30+shi);
delay1ms(3);
delay1ms(3);
}
write_data(0x30+ge);
if(shifen!=0||baifen!=0)
{
write_data('.');
write_data(0x30+shifen);
write_data(0x30+baifen);
}
else
{
write_data(' ');
write_data(' ');
respons();
start();
write_byte(0xa1);
respons();
dat=read_byte();
stop();
return dat;
}
//**************************EEPROM*************//
//**************************1602***************//
void init_1602()
{
uchar i;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(i=0;i<16;i++)
{
write_data(display[i]);
delay1ms(3);
uchar display1[]="Distant 0 km";
//************************EEPROM*************//
sbit sda=P3^6;
sbit scl=P1^5;
uchar read_add(uchar);
void delay1ms(uint k)
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit key=P3^3;
sbit key1=P3^2;
sbit rs=P2^5;
sbit rw=P2^6;
sbit en=P2^7;
uchar k;
uchar display[]=" Speed 0 m/s";
delay();
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay();
sda=CY;
delay();
scl=1;
delay();
//scl=0;
//delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar read_byte()
{
uchar i,j,k;
TR0=1;
sda=1;
delay();
scl=1;
}
void main()
{
init_1602();
init();
while(1);
}ቤተ መጻሕፍቲ ባይዱ
void time() interrupt 1
{
uchar count,ge,shi,shifen,baifen;
uint s,ge1,shi1,shifen1,baifen1,qianfen1;
void write_com(uchar com)
{
rs=0;
rw=0;
P0=com;
en=1;
delay1ms(5);
en=0;
}
void write_data(uchar dat)
{
rs=1;
rw=0;
P0=dat;
en=1;
delay1ms(5);
en=0;
}
//***************************1602****************//
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
scl=1;
delay();
j=sda;
k=(k<<1)|j;
scl=0;
delay();
}
return k;
}
void write_add(uchar addres,uchar dat)
{
start();
write_byte(0xa0);
{
uint x,y;
for (x=0;x<k;x++)
for(y=0;y<15;y++);
}
void delay()
{ ; ; }
void start()
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}
void stop()
{
sda=0;
delay();
scl=1;
respons();
write_byte(addres);
respons();
write_byte(dat);
respons();
stop();
}
uchar read_add(uchar addres)
{
uchar dat;
start();
write_byte(0xa0);
respons();
write_byte(addres);
}
write_data(0x30+ge1);
write_data('.');
write_data(0x30+shifen1);
write_data(0x30+baifen1);
write_data(0x30+qianfen1);
k=0;
}
}
delay();
sda=1;
delay();
}
void respons()
{
uchar i;
scl=1;
while((sda==1)&&(i<250))i++;
scl=0;
delay();
}
void write_byte(uchar dat)
{
uchar i,temp;
temp=dat;
scl=0;
相关文档
最新文档