標(biāo)題: STC單片機(jī)使用第二串口功能(STC12C5A60S2+GPS+串口2+1602LCD) [打印本頁(yè)]

作者: ynzsc001    時(shí)間: 2020-1-9 21:36
標(biāo)題: STC單片機(jī)使用第二串口功能(STC12C5A60S2+GPS+串口2+1602LCD)
終于將STC單片機(jī)使用第二串口功能(STC12C5A60S2+GPS+串口2+1602LCD)給整出來(lái)了。作為新人真的真的是欣喜若狂,無(wú)語(yǔ)言表。。!
再此將來(lái)之不易的心得寫(xiě)出來(lái),讓和我一樣的單片機(jī)小朋友一起共勉......
1、注意串口的引腳,如果你沒(méi)有設(shè)置著的話(P1.2  Rx腳,P1.3  Tx腳)。我就犯了這個(gè)習(xí)慣性的錯(cuò)誤,太無(wú)語(yǔ)了。!
2、一定要將單片機(jī)設(shè)置為1T的。

      

單片機(jī)源程序如下:
  1. #include "GPS.h"

  2. unsigned char RX_Buffer[68];                //此數(shù)組用于直接儲(chǔ)存來(lái)自GPS的原始數(shù)據(jù)
  3. unsigned char RX_Count = 0;

  4. bit Flag_GPS_OK = 0;


  5. void Uart_Init()                                                                     
  6. {
  7.         SCON = 0X50;  //UART方式1;8位UART
  8.         REN  = 1;     //允許串行口接收數(shù)據(jù)
  9.         PCON = 0x00;  //SMOD=0;波特率不加倍
  10.         TMOD = 0x20;  //T1方式2,用于產(chǎn)生波特率
  11.         TH1  = 0xFD;  //裝初值
  12.         TL1  = 0xFD;
  13.         TR1  = 1;     //啟動(dòng)定時(shí)器1
  14.         EA   = 1;     //打開(kāi)全局中斷控制
  15.         ES   = 1;     //打開(kāi)串行口中斷        
  16. }



  17. void RECEIVE_DATA(void) interrupt 4 using 3                  //串口中斷函數(shù),收到GPS的數(shù)據(jù)時(shí)進(jìn)入此中斷        
  18. {
  19.         unsigned char temp = 0;
  20.         ES=0;                                                                                //先關(guān)閉串行口中斷
  21.         temp = SBUF;                                                                //接收SBUF中的數(shù)據(jù)
  22.         RI = 0;                                                                                //接收完成的標(biāo)志位清零
  23. //        LED1 = ~LED1;
  24.         
  25.         if(temp == '



  26. )                                                                //若是統(tǒng)一的數(shù)據(jù)頭,則作為數(shù)組第一個(gè)元素
  27.         {
  28.                 RX_Count = 0;
  29.                 Flag_GPS_OK = 0;               
  30.         }

  31.         RX_Buffer[RX_Count++] = temp;                                //收到的數(shù)據(jù)放到數(shù)組中

  32.         if(RX_Count >= 66)                                                        //序號(hào)大于66的數(shù)據(jù)無(wú)用,統(tǒng)一放到第66位覆蓋掉
  33.         {
  34.                 RX_Count = 66;
  35.         }

  36.         if(temp == '*')                                                                //收到*,則完成一幀數(shù)據(jù)的接收,不管是否完整有效
  37.         {
  38.                 Flag_GPS_OK = 1;                                                //標(biāo)志變量置為1
  39.         }

  40.         ES=1;                                                                                 //重新打開(kāi)串行口中斷
  41. }
復(fù)制代碼

所有資料51hei提供下載:
009版本IIC-GPS+1602+C52-海拔、速度、衛(wèi)星 +溫度 - (GPS接串口2).7z (31.69 KB, 下載次數(shù): 166)




作者: qwe8062216    時(shí)間: 2020-1-10 20:19
新手過(guò)來(lái)學(xué)習(xí)
作者: 93mxt    時(shí)間: 2020-2-15 18:57
樓主你好,能給個(gè)原理圖參考嗎?
作者: 93mxt    時(shí)間: 2020-2-20 22:08
樓主,你好,我做出來(lái)的在1602屏只有上面的一氣白色方塊,有原理圖我自己接一下嗎?先謝謝了,或者發(fā)我郵箱:93mxt@163.com
作者: 93mxt    時(shí)間: 2020-2-20 22:51
樓主,把1602屏的引腳到Mcu的輸出口標(biāo)示一下行嗎,或者發(fā)到我郵箱:93mxt@163.com ,先謝了
作者: 有心插花花木蘭    時(shí)間: 2020-4-15 17:47
上位機(jī)軟件用的是什么?
作者: zbfdyw    時(shí)間: 2020-4-16 11:04
你的資料很好,果斷的下載學(xué)習(xí)
作者: cdlhb    時(shí)間: 2022-8-19 22:18
用的是串口1吧!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1