|
楼主 |
发表于 2011-7-2 10:08:20
|
显示全部楼层
回复【7楼】kebaojun305
-----------------------------------------------------------------------
我写的测速程序,但是貌似不行,请问一下哪里错了,谢谢
#include<reg52.h>
#define uint unsigned char
#define uchar unsigned int
sbit speed=P1^1;
sbit rs=P0^5;
sbit rw=P0^6;
sbit e = P0^7;
sbit psb=P1^7;
uchar low,high;
uint shi , ge , dian , shudu ,count = 0 ,i,j,k,l;
uchar number[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
void delay(uchar);
void com(uchar);
void read(uchar);
void init();
void main()
{
EA=1;
EX0=1;
ET0=1;
IT0=0;
TMOD=0x01;
TR0=0;
init();
while(1)
{
com(0x90);
read(number);
// com(0x93);
read(number[j]);
// read(number[k]);
// com(0x93);
read(number[l]);
}
}
void ex_int()interrupt 0 using 0
{
init();
EX0=0;
TH0=0;
TL0=0;
TR0=1;
while(speed==0);
TR0=0;
low=TH0*256+TL0;
TH0=0;
TL0=0;
TR0=1;
while(speed==1);
TR0=0;
high=TH0*256+TL0;
shudu= ( ( 1000000 ) / (low+high) ) ;
i=shudu/100; //取千位
j=(shudu%100)/10; //取百位
// k=(shudu%100)/10; //取十位
l=shudu%10;
com(0x90);
read(number);
// com(0x93);
read(number[j]);
// read(number[k]);
// com(0x93);
read(number[l]);
EX0=1;
}
void time()interrupt 1 using 0
{
TH0=0;
TL0=0;
count++;
}
void delay(uchar x) //延时;
{
uint i;
while(x--)
for(i=0;i<110;i++);
}
void com(uchar com)
{
// cs1=0;
// cs2=0;
rs=0;
rw=0;
P3=com;
delay(5);
e=1;
delay(5);
e=0;
delay(5);
}
void read(uchar date)
{
rs=1;
rw=0;
P3=date;
delay(5);
e=1;
delay(5);
e=0;
delay(5);
rs=0;
rw=0;
}
void init()
{
psb=1;
com(0x30);
delay(5);
com(0x0c);
delay(5);
com(0x01);
delay(5);
} |
|