|
微信跳一跳已經(jīng)出來很長一段時間了,把自己做的微信跳一跳輔助分享給大家學(xué)習(xí)。 初次發(fā)貼,大神勿噴~~原理: 利用串口通信,和對舵機(jī)進(jìn)行PWM(脈寬調(diào)制)控制;電腦發(fā)送指定數(shù)據(jù) ,單片機(jī)經(jīng)過解析后計(jì)算出相應(yīng)的舵機(jī)下落時間從兒觸發(fā)小人前進(jìn)指定的步長。
缺點(diǎn):每次需要量兩個樁之間的距離 (從小人底部圓心 到目的地的中心距離)
程序中注釋已經(jīng)添加,方便修改。
舵機(jī)信號的控制波形:(9g舵機(jī),不同舵機(jī)可能存在差異)
舵機(jī)信號.png (33.21 KB, 下載次數(shù): 92)
下載附件
舵機(jī)信號的控制波形(9g舵機(jī),不同舵機(jī)可能存在差異)
2018-7-8 21:52 上傳
玩法:使用串口助手發(fā)送斜杠后面的字符 波特率:9600 ,
串口助手在附件中
玩法.png (9.96 KB, 下載次數(shù): 1505)
下載附件
2018-7-8 21:57 上傳
舵機(jī)信號線接口:P3.7
晶振大。11.0592MHZ
單片機(jī) :12T 89c52rc
源碼如下:
- /*89C52RC 11.0592 M 紅色金屬舵機(jī)*/
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- sbit duoji = P3^7 ;
-
- uchar count; //timer
- //uchar x=15 ; //15抬起 11落下
- uchar x = 10;//刪除此句
- uchar Value ;
- static uchar flag=1; //觸發(fā)標(biāo)志位
- void delay(uint z)//毫秒級延時
- {
- uint i,j;
- for(i = z; i > 0; i--)
- for(j = 500; j > 0 ; j--);
- }
- /*定時器t0中斷*/
- void timer_init()
- {
- TMOD|= 0x02 ; //定時器0 8位自動重裝
- TH0 = 164 ; //100us溢出一次 10次1ms 190次19ms一個周期
- TL0 = 164 ;
- TR0 = 1; //啟動定時器0
- EA = 1; //總中斷打開
- ET0 = 1; //定時器中斷打開
- TR0 = 1; //定時器開關(guān)打開
- }
-
-
- /*串口中斷 */
- void UART_init()
- {
- TMOD |= 0x20; //T1工作模式2 8位自動重裝
- TH1 = 0xfd;
- TL1 = 0xfd; //比特率9600
- TR1 = 1; //啟動T1定時器
- SM0 = 0;
- SM1 = 1; //串口工作方式1 10位異步
- REN = 1; //串口允許接收
- EA = 1; //開總中斷
- ES = 1; //串口中斷打開
- }
-
復(fù)制代碼
PWM個人筆記.png (187.68 KB, 下載次數(shù): 87)
下載附件
2018-7-9 00:34 上傳
0.png (41.52 KB, 下載次數(shù): 97)
下載附件
2018-7-9 00:33 上傳
剩下的所有文件均在附件中。
微信跳一跳.zip
(678.47 KB, 下載次數(shù): 26)
2018-7-8 22:03 上傳
點(diǎn)擊文件名下載附件
微信跳一跳附件 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|