|
新人求助,盡力了,第一次接觸這方面,然后課程作業(yè)有需求。在b站看了很多,跟著視頻下的軟件,根據(jù)零基礎(chǔ)做的仿真,然后又一步一步去查串口是什么,但是現(xiàn)在我是完全搞不懂了,就是串口輸入指令那個(gè)藍(lán)牙RXT,TXT也亮了一下,藍(lán)牙應(yīng)該沒(méi)問(wèn)題吧為啥輪子不轉(zhuǎn)呢,求大佬幫忙看看是線路哪里出錯(cuò)了嗎(ps:程序不是自己寫的,up主友情分享愛(ài)了,所以應(yīng)該是本人跟著程序連的線路錯(cuò)了)
單片機(jī)源程序如下:
- #include<reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit LB=P0^0; //左邊馬達(dá)下接口 out2
- sbit LF=P0^1; //左上 out1
- sbit RB=P0^2; //右下 out4
- sbit RF=P0^3; //右上 out3
- void stop()
- {
- LF=0;
- LB=0;
- RF=0;
- RB=0;
- }
- void forward()
- {
- LF=1;
- LB=0;
- RF=1;
- RB=0;
- }
- void back()
- {
- LF=0;
- LB=1;
- RF=0;
- RB=1;
- }
- void left()
- {
- LF=0;
- LB=1;
- RF=1;
- RB=0;
- }
- void right()
- {
- LF=1;
- LB=0;
- RF=0;
- RB=1;
-
- }
- void Com_Int(void) interrupt 4
- {
- uchar receive_data;
- EA = 0;
- if(RI == 1)
- {
- RI=0;
- LF=0;
- RF=0;
- LB=0;
- RB=0;
- receive_data = SBUF;
- switch(receive_data)
- {
- case ('1'):
- forward();break;
- case ('2'):
- back();break;
- case ('3'):
- left();break;
- case ('4'):
- right();break;
- case ('0'):
- stop();break;
- }
- }
- EA = 1;
- }
-
- void UsartConfiguration()
- {
- SCON=0X50; //SCON 是一個(gè)特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志
- TMOD=0X20;
- PCON=0X00;
- TH1=0Xfd;
- TL1=0Xfd; //波特率為9600算出來(lái)的fd
- TR1= 1;
- ES = 1;
- EA = 1;
- }
- void main()
- {
- UsartConfiguration();
- while(1);
- }
復(fù)制代碼 |
|