|
能夠自動尋光,追尋太陽,開關(guān)的作用就是相當(dāng)于光敏電阻,當(dāng)為低電平是,停止尋光
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (24.23 KB, 下載次數(shù): 46)
下載附件
2018-2-15 02:19 上傳
0.png (60.28 KB, 下載次數(shù): 36)
下載附件
2018-2-15 02:19 上傳
單片機源程序如下:
- #include <reg52.h>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
-
- sbit hor1=P1^0; //水平方向正轉(zhuǎn)使能端
- sbit hor2=P1^1; //水平方向反傳使能端
- sbit ver1=P1^2; //垂直方向正轉(zhuǎn)使能端
- sbit ver2=P1^3; //垂直方向反傳使能端
- uchar code FWD[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正轉(zhuǎn)
- uchar code REV[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反轉(zhuǎn)
- bit ka1,ka2,kb1,kb2,hormotor,vermotor;
- uint ia,ib;
- /*******************************************************
- 電機轉(zhuǎn)動延時子函數(shù)
- ********************************************************/
- void delay_dianji(unsigned int t) //電機轉(zhuǎn)動延時函數(shù)
- {
- unsigned int k;
- while(t--)
- {
- for(k=0; k<300; k++) //k從0自加一至300
- { }
- }
- }
-
- void fangxiang() //識別方向子函數(shù)
- {
- if(hor1==0) //水平正傳使能端有效
- {
- ia++;
- if(ia>7)
- ia=0;
- P0=FWD[ia]; //轉(zhuǎn)動方向為正向
- delay_dianji(15);
- }
- if(hor2==0) //水平反轉(zhuǎn)使能端有效
- {
- ia++;
- if(ia>7)
- ia=0;
- P0=REV[ia]; //轉(zhuǎn)動方向為反向
- delay_dianji(15);
- }
- if(ver1==0) //垂直正傳使能端有效
- {
- ib++;
- if(ib>7)
- ib=0;
- P2=FWD[ib]; //轉(zhuǎn)動方向為正向
- delay_dianji(15);
- }
- if(ver2==0) //垂直反轉(zhuǎn)使能端有效
- {
- ib++;
- if(ib>7)
- ib=0;
- P2=REV[ib]; //轉(zhuǎn)動方向為反向
- delay_dianji(15);
- }
- }
- main()
- {
- while(1) //死循環(huán)
- {
- fangxiang(); //識別方向子函數(shù)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
電機.rar
(81.24 KB, 下載次數(shù): 108)
2018-2-14 17:15 上傳
點擊文件名下載附件
太陽能追光 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|