|
求助一個程序
程序要求是,一個用AT89x51單片機(jī)控制利用霍爾傳感器測電機(jī)轉(zhuǎn)速,然后將數(shù)據(jù)發(fā)送給
數(shù)碼管。大體程序已經(jīng)完成,但是,一直用KEIL調(diào)試不成,燒到單片機(jī)里無法操作。可能其中有些許錯誤,希望有這方面的大神對小弟小小的指導(dǎo)一下。
#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};//數(shù)碼管
uchar code zifu[9]={"zhuansu= "}; //轉(zhuǎn)速字符空格
uchar code enter[] = {"/n"}; //換行字符 uint fan100;//轉(zhuǎn)速值
uchar fan[3];//存轉(zhuǎn)速的百十個位
uint count;
uint T0count;//進(jìn)入T0的中斷次數(shù)
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) //數(shù)碼管動態(tài)顯示
{
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) //串口發(fā)送函數(shù)
{
uchar ii;
for(ii=0;ii<9;ii++)
{ SBUF =zifu[ii];
while(RI==0);
RI=0;
|
|