久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
基于8051單片機的循跡小車 帶測速程序
[打印本頁]
作者:
Mr.lovable
時間:
2017-7-2 22:50
標題:
基于8051單片機的循跡小車 帶測速程序
基于8051單片機的循跡小車
0.png
(37.83 KB, 下載次數: 109)
下載附件
2017-7-3 02:53 上傳
單片機源程序如下:
/*
!!!!!!!!!
1.
使用PWM波寫驅動程序時,切記PWM波的周期不要太短
(20ms左右應該是可以的!!此程序就是因為pwm波周期太短,燒壞4個驅動,8個電機,多么痛的領悟~~)
2.
因為當時考慮用到超聲速壁障,蜂鳴器,紅外測速,液晶等多個外設,需要使用多個中斷,單個單片機資源不足,
所以此寫了兩個程序分別寫入兩個單片機,如果只是使用測速,液晶的話應該可以用中斷嵌套的方法寫入一個單片機即可。
!!!!!!!!!
*/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar b=0xf;
static uint delay=0;//定義接收紅外數據變量
static uchar m=0;
//static uint time=1;
uchar signal;
uchar i=0;
uchar persent_l=100;
uchar persent_hl=100;
uchar persent_r=100;
uchar persent_hr=100;
sbit left=P1^3; //定義前方左側1紅外探頭
sbit Left_zhong=P1^2; //定義前主左側2紅外探頭
sbit right=P1^0; //定義右方1紅外探頭
sbit right_zhong=P1^1; //定義右方2紅外探頭
sbit pwm_l=P1^1; //定義電機l正向端口
sbit pwm_hl=P1^2; //定義電機l反向端口
sbit pwm_r=P1^4; //定義電機r正向端口
sbit pwm_hr=P1^5; //定義電機r反向端口
sbit ENA=P1^3;
sbit ENB=P1^0;
void delay1(uchar z)
{
uchar i,j;
for(i=0;i<=100;i++)
for(j=0;j<=z;j++);
}
/*uchar signal()
{
uchar temp=0x0f;
temp&=P0;
return temp;
}*/
void time0_init()
{
EA=1;
TH0=(65536-200)/256;
TL0=(65536-200)%256;
TMOD=1;
ET0=1;
TR0=1;
}
void time0() interrupt 1 //3 為定時器1的中斷號 1 定時器0的中斷號 0 外部中斷1 2 外部中斷2 4 串口中斷
{
static uchar time=1;
EA=0;
TH0=(65536-200)/256;
TL0=(65536-200)%256; //0.2ms
if(time<10)
{
if(time<persent_l)
{pwm_l=1;pwm_hl=0;}
else pwm_l=0;
if(time<persent_r)
{pwm_r=1;pwm_hr=1;}
else pwm_r=0;
if(time<persent_hl)
{pwm_hl=1;pwm_l=0;}
else pwm_hl=0;
if(time<persent_hr)
{pwm_hr=1;pwm_r=0;}
else pwm_hr=0;
time++;
}
else
{m++;time=1;if(m==5){delay++;m=0;}} //每2ms m加1 每0.01s delay++;
EA=1;
}
void forward(uchar a)
{
/*pwm_l=0;
pwm_r=0;
pwm_hl=0;
pwm_hr=0;*/
persent_l=11;
persent_r=11;
persent_hl=0;
persent_hr=0;
while(delay<=a);
delay=0;
}
void dun_l(uchar a)
{
/*pwm_l=1;
pwm_r=1;
pwm_hl=0;
pwm_hr=0;*/
persent_l=0;
persent_r=9;
persent_hl=0;
persent_hr=0;
while(delay<=a);
delay=0;
}
void dun_r(uchar a)
{
/* pwm_l=1;
pwm_r=1;
pwm_hl=0;
pwm_hr=0;
*/ persent_l=9;
persent_r=0;
persent_hl=0;
persent_hr=0;
while(delay<=a);
delay=0;
}
void zhi_l(uchar a)
{
/* pwm_l=1;
pwm_r=1;
pwm_hl=0;
pwm_hr=0;
*/ persent_l=0;
persent_hl=4;
persent_r=8;
persent_hl=0;
while(delay<=a);
delay=0;
}
void zhi_r(uchar a)
{
/* pwm_l=1;
pwm_r=1;
pwm_hl=0;
pwm_hr=0;
*/ persent_l=8;
persent_hl=0;
persent_r=0;
persent_hr=4;
while(delay<=a);
delay=0;
}
void rui_l(uchar a)
{
/*pwm_l=0;
pwm_r=1;
pwm_hl=1;
pwm_hr=0;*/
persent_l=0;
persent_hl=0;
persent_r=8;
persent_hr=0;
while(delay<=a);
delay=0;
}
void rui_r(uchar a)
{
/* pwm_l=1;
pwm_r=0;
pwm_hl=0;
pwm_hr=1;
*/ persent_l=8;
persent_hl=0;
persent_r=0;
persent_hr=3;
while(delay<=a);
delay=0;
}
void back(uchar a)
{
/* pwm_l=0;
pwm_r=0;
pwm_hl=1;
pwm_hr=1;
*/ persent_l=0;
persent_r=0;
persent_hl=7;
persent_hr=7;
while(delay<=a);
delay=0;
}
//全白0000 0x0 全黑1111 0xf
//左鈍角 0100 0x4 左直角 1100 0xc 左銳角1000 0x8
//右鈍角 0010 0x2 右直角 0011 0x3 右銳角0001 0x1
//100是1s
void track()
{
// delay1(10);
// if(i==0)
signal=0xf;
signal&=(P2>>4);
// else signal=b;
switch(signal)
{
case 0x0: {forward(10);break;}
case 0xf: {forward(10);break;}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
循跡小車.zip
(100.77 KB, 下載次數: 38)
2017-7-2 22:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2017-7-3 02:57
測速程序:
#include<reg52.h>
//液晶及測速
#define uint unsigned int
#define uchar unsigned char
#define zhouchang 20 //20cm
unsigned int i=0;
sbit P36=P3^6;
sbit beep=P2^0;
unsigned char j;
unsigned int kop;
uchar code table[]="2013 (^_^) 4-17 ";
uchar table1[]=" -I- ";
uchar table2[3];
uchar code haode[16]=" WE ^_^ THE ";
uchar code haode1[16]=" CHAM ARE PION";
uchar code hao[16]= " p_q ^_^ ";
uchar code hao1[16]=" -I- -- -I- ";
uchar flag=1;
uchar time1=0;
//液晶端口
sbit rs = P3^1;//Pin4
//sbit rw= P3^5; //Pin5
sbit lcden = P3^0;//Pin6
uchar time=1;
sbit dula=P2^6; //鎖存器控制端定義
sbit wela=P2^7;
uchar num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
// rw=0;
rs=0;
P1=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
// rw=0;
rs=1;
P1=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_sfm(uchar add,uchar date)
{
write_com(0x80+0x40+add);
write_data(0x30+date);
}
void init()
{
dula=0;
wela=0;
lcden=0;
/*write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x10);
*/
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void zhongduan_init()
{
EA = 1;
TH0=0x00;
TL0=0x00;
ET0=1;
ET1=1;
TMOD = 0x15;// 打開定時器和計數器T0,因此矩形脈沖輸入端接P3.4
TH1=0x3C; //50ms
TL1=0xB0;
TR0 = 1;
TR1 = 1;
}
void main()
{
P2=0xff;
init();
// flag=0;
zhongduan_init();
while(1)
{
if(flag==0)
{
EA=0; //關閉中斷
write_com(0x80);
for(num=0;num<15;num++)
{
write_data(table[num]);
delay(20);
}
//速度
write_sfm(1,table1[0]);
write_sfm(2,table1[1]);
write_sfm(3,table1[2]);
//時間
write_sfm(10,table2[0]);
write_sfm(11,table2[1]);
write_sfm(12,table2[2]);
// write_sfm(8,0x73);
flag=1;
EA=1;
// while(1); //開啟中斷
}
}
}
timer3() interrupt 3 //定時器中斷時間到,就讀取計數器值 //3 為定時器1的中斷號 1 定時器0的中斷號 0 外部中斷1 2 外部中斷2 4 串口中斷
{
TH1=0X3C;
TL1=0XB0;
i++;
if(i==20) //1s才進行技術脈沖值顯示,即每秒更新一次速度 這里一會兒要給!!!!!!!!!1
{
time++; //記時間
time1++;
kop=TH0;//計數器計入脈沖,每來一個矩形脈沖計數值加1
kop=kop<<8;
kop=kop+TL0; //kp單位是cm,周長20cm,20個空隙,一個空隙1cm
beep=1;
if(kop>45)
{
beep=0;
}
table1[0]=kop/100; //顯示計數器的值即實際測得速度
table1[1]=kop%100/10;
table1[2]=kop%100%10;
table2[0]=time/100; //顯示計數器的值即實際測得速度
table2[1]=time%100/10;
table2[2]=time%100%10;
i=0;
TH0=0;//計數器速度獲取后清零,進行下次獲取
TL0=0;
flag=0;
if(time1==20)
{
write_com(01);
write_com(0x80);
for(num=0;num<15;num++)
{
write_data(haode[num]);
delay(20);
}
write_com(0x80+0x53);
for(num=0;num<15;num++)
{
write_data(haode1[num]);
delay(20);
}
delay(300);
}
if(time1==10)
{
write_com(01);
write_com(0x80);
for(num=0;num<15;num++)
{
write_data(hao[num]);
delay(20);
}
write_com(0x80+0x53);
for(num=0;num<15;num++)
{
write_data(hao1[num]);
delay(20);
}
delay(400);
}
}
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲天堂影院
|
国产精品一区三区
|
亚洲午夜网
|
成人精品视频在线观看
|
黄网站涩免费蜜桃网站
|
久久久一区二区
|
在线中文字幕av
|
日韩精品视频中文字幕
|
女人毛片a毛片久久人人
|
欧美日韩视频
|
国产人成精品一区二区三
|
一区中文
|
午夜一区二区三区在线观看
|
欧美亚洲视频
|
久久久久久亚洲精品
|
亚洲综合一区二区三区
|
成人午夜视频在线观看
|
草久久久
|
蜜桃av鲁一鲁一鲁一鲁
|
91福利在线观看
|
免费在线播放黄色
|
91色综合
|
国精日本亚洲欧州国产中文久久
|
久久久国产精品视频
|
欧美一级二级在线观看
|
在线成人
|
欧日韩在线观看
|
精品不卡
|
国产亚洲黄色片
|
免费v片
|
日韩精品二区
|
在线中文字幕视频
|
欧美日韩中文在线
|
久久久久国产一区二区三区四区
|
福利精品
|
久久亚洲精品久久国产一区二区
|
久操伊人
|
精品一区av
|
成人欧美一区二区三区黑人孕妇
|
激情在线视频网站
|
夜夜操av
|