|
求助一个程序
程序要求是,一个用AT89x51单片机控制利用霍尔传感器测电机转速,然后将数据发送给
数码管。大体程序已经完成,但是,一直用KEIL调试不成,烧到单片机里无法操作。可能其中有些许错误,希望有这方面的大神对小弟小小的指导一下。
#include"at89x51.h"
#define uint unsigned int
#define uchar unsigned char
uchar code duanma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管
uchar code zifu[9]={"zhuansu= "}; //转速字符空格
uchar code enter[] = {"/n"}; //换行字符 uint fan100;//转速值
uchar fan[3];//存转速的百十个位
uint count;
uint T0count;//进入T0的中断次数
void delay_ms(uint z)
{
uint x,y; //延时程序
for(x=z;x>0;x--)
for(y=240;y>0;y--);
}
void init_es (void)//初始化串口
{
SCON=0x40; //方式1
TH1 = 0xfd; //晶振11.059 波特率9600
TL1 = 0xfd;
TMOD= 0X20;
TR1 =1;
} void init_T0(void) //初始化定时器
{
TMOD = 0x21;
TH0 = 0X3c;
TL0 = 0Xb0;
} void display_LED(void) //数码管动态显示
{
P0=0x01;
P1=duanma[fan[0]];
delay_ms(100);
P0= 0x20;
P1=duanma[fan[1]];
delay_ms(100);
P0=0x40;
P1=duanma[fan[2]];
delay_ms(100);
} void sent_es(void) //串口发送函数
{
uchar ii;
for(ii=0;ii<9;ii++)
{ SBUF =zifu[ii];
while(RI==0);
RI=0;
|
|