資源簡介
對于運(yùn)用C51作為控制器的自動循跡小車的開發(fā)程序,分享給大家!程序中運(yùn)用的接口,還有中斷這些需要自己讀懂就知道了!
代碼片段和文件信息
#include?
#include?
#include?
#define?uchar?unsigned?char
#define?uint?unsigned?int
#define?c?20
uchar?code?DIS_SEG7[10]={0xc00xf90xa40xb00x990x920x820xf80x800x90};
uchar?code?DIS_SEG8[10]={0x400x790x240x300x190x120x020x780x000x10};
/*uchar?code?DIS_BIT[6]={0xfe0xfd0xfb0xf70xef0xdf};*/?
uint?count;?//計(jì)數(shù)變量
/*uint?r=2;//車輪半徑
uint?c;//輪周長*/
uint?n;//圈數(shù)
uint?sum=0;//總?cè)?shù)
uint?m=0;//上次圈數(shù)
uint?v;//速度
uint?t=0;//時(shí)間
uint?s;//位移
sbit?P1_0=P1^0;
sbit?P1_1=P1^1;
sbit?P1_2=P1^2;
sbit?P1_3=P1^3;
sbit?P1_4=P1^4;
sbit?P1_5=P1^5;
sbit?P1_6=P1^6;
sbit?P1_7=P1^7;
sbit?P2_6=P2^6;
sbit?P2_7=P2^7;
/*****************子函數(shù)聲明**********************/
void?display(void);
void?initial(void);
void?delay(uint?k) //延時(shí)
{?uchar?data?ij;?
?for(i=0;i ?{for(j=0;j<121;j++)
?{;}}
??}
/****************初始化函數(shù)*******************/
void?initial(void)
{???TMOD=0x11;
????TH0=-(50000/256);?//1s鐘產(chǎn)生10個脈沖(定時(shí)50ms)
TL0=-(50000%256);
TH1=-(20000/256);//定時(shí)掃描(20ms)
TL1=-(20000%256);
IE=0x8f;?//允許中斷
IP=0x02;
IT0=1;?//外部中斷邊沿觸發(fā)
IT1=1;?
TR0=1;?//T0開始計(jì)數(shù)
TR1=1;?//T1開始計(jì)數(shù)
P1_4=1;?//電機(jī)1(左邊)正轉(zhuǎn)
P1_5=0;
P1_6=1;?//電機(jī)2(右邊)正轉(zhuǎn)
P1_7=0;
P2_6=1;?//PWM波輸出口
????P2_7=1;
}
/***********************************/
void?display(void)
{????P0=DIS_SEG7[v%10]; //右邊第一位顯示速度的個位(單位是cm/s)
?P2=0xdf;
?delay(1);
?P0=DIS_SEG7[v/10]; //右邊第二位顯示速度的十位
?P2=0xef;
?delay(1);
?P0=DIS_SEG7[(s%100)/10];?//右邊第三位顯示位移的小數(shù)第一位(單位是:米)
?????P2=0xf7;
?delay(1);
?P0=DIS_SEG8[s/100];?//右邊第四位顯示位移的整數(shù)部分
?P
評論
共有 條評論