久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2294|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

stc15單片機(jī)1602串口顯示北斗定位數(shù)據(jù)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:476348 發(fā)表于 2019-3-13 09:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機(jī)源程序如下:
  1. #include "MAIN.H"
  2. #include "DELAY.H"
  3. #include "lcd1602.h"
  4. #include "uart.h"
  5. #include<string.h>
  6. #define Uart1_Buf_Max 70//串口數(shù)據(jù)緩存長度
  7. #define Uart2_Buf_Max 70
  8. #define uint unsigned int
  9. #define uchar unsigned char
  10. /*************        本地常量聲明        **************/
  11. write_com(unsigned char);

  12. /*************        本地變量聲明        **************/
  13. u8 count = 0;
  14. u8 idata  Rec_Buf[Uart1_Buf_Max];  //串口數(shù)據(jù)緩存
  15. u8 point1 = 0;             //綬存指針
  16. u8 a,flag;
  17. u8 xdata  Uart2_Rec_Buf[Uart2_Buf_Max];  //串口數(shù)據(jù)緩存
  18. u8 point2 = 0;     
  19. /*************        本地函數(shù)聲明        **************/



  20. /*************  外部函數(shù)和變量聲明 *****************/
  21. bit        B_TX2_Busy = 0;        


  22. /******************** IO配置函數(shù) **************************/
  23. void        GPIO_config(void)
  24. {
  25.         P5M0 &= ~(1<<5);                //設(shè)置P5.5為準(zhǔn)雙向口
  26.         P5M1 &= ~(1<<5);
  27. }






  28. /******************** 主函數(shù) **************************/
  29. void UartInit(void)                //9600bps@11.0592MHz
  30. {
  31. //注意: STC15W4K32S4系列的芯片,上電后所有與PWM相關(guān)的IO口均為
  32. //      高阻態(tài),需將這些口設(shè)置為準(zhǔn)雙向口或強(qiáng)推挽模式方可正常使用
  33. //相關(guān)IO: P0.6/P0.7/P1.6/P1.7/P2.1/P2.2
  34. //        P2.3/P2.7/P3.7/P4.2/P4.4/P4.5

  35.         PCON &= 0x7F;                //波特率不倍速
  36.         SCON = 0x50;                //8位數(shù)據(jù),可變波特率
  37.         AUXR |= 0x40;                //定時器1時鐘為Fosc,即1T
  38.         AUXR &= 0xFE;                //串口1選擇定時器1為波特率發(fā)生器
  39.         TMOD &= 0x0F;                //清除定時器1模式位
  40.         TMOD |= 0x20;                //設(shè)定定時器1為8位自動重裝方式
  41.         TL1 = 0xDC;                //設(shè)定定時初值
  42.         TH1 = 0xDC;                //設(shè)定定時器重裝值
  43.         ET1 = 0;                //禁止定時器1中斷
  44.         TR1 = 1;                //啟動定時器1


  45.         S2CON = 0x50;                //8位數(shù)據(jù),可變波特率
  46.         AUXR |= 0x04;                //定時器2時鐘為Fosc,即1T
  47.         T2L = 0xE0;                //設(shè)定定時初值
  48.         T2H = 0xFE;                //設(shè)定定時初值
  49.         AUXR |= 0x10;                //啟動定時器2

  50.         UART2_INT_ENABLE();
  51.         ES = 1;
  52.         EA = 1;
  53. }

  54. /*----------------------------
  55. 發(fā)送串口數(shù)據(jù)
  56. ----------------------------*/
  57. void SendData(unsigned char ch)
  58. {
  59.     SBUF = ch;                 //寫數(shù)據(jù)到UART數(shù)據(jù)寄存器
  60.                 while(TI == 0);
  61.                 TI = 0;
  62. }

  63. /*----------------------------
  64. 發(fā)送字符串
  65. ----------------------------*/
  66. void SendString(char *s)
  67. {
  68.     while (*s)                  //檢測字符串結(jié)束標(biāo)志
  69.     {
  70.         SendData(*s++);         //發(fā)送當(dāng)前字符
  71.     }
  72. }
  73. void Send(unsigned char *s,unsigned int len)
  74. {
  75.     for(a = 0;a<len;a++)
  76.         {
  77.           SendData(*s++);           // *s指向ReBuf[0],*s指向下一個ReBuf[1];
  78.         }

  79. }

  80. bit Hand(unsigned char *a)                   // 串口命令識別函數(shù)
  81. {
  82.     if(strstr(Rec_Buf,a)!=NULL)
  83.             return 1;
  84.         else
  85.                 return 0;
  86. }

  87. void CLR_Buf(void)                           // 串口緩存清理
  88. {
  89.         memset(Rec_Buf, 0, Uart1_Buf_Max);      //清空

  90.        point1 = 0;                 
  91. }


  92. /*----------------------------
  93. 通過串口2發(fā)送串口數(shù)據(jù)
  94. ----------------------------*/
  95. void Uart2SendData(unsigned char ch)
  96. {
  97.         while(B_TX2_Busy);        //不忙后發(fā)送數(shù)據(jù)
  98.     S2BUF = ch;                 //寫數(shù)據(jù)到UART數(shù)據(jù)寄存器
  99.         B_TX2_Busy = 1;
  100. }

  101. /*----------------------------
  102. 通過串口2發(fā)送字符串
  103. ----------------------------*/
  104. void Uart2SendString(char *s)
  105. {
  106.     while (*s)                  //檢測字符串結(jié)束標(biāo)志
  107.     {
  108.         Uart2SendData(*s++);         //發(fā)送當(dāng)前字符
  109.     }
  110. }

  111. bit Uart2Hand(unsigned char *a)                   // 串口命令識別函數(shù)
  112. {
  113.     if(strstr(Uart2_Rec_Buf,a)!=NULL)
  114.             return 1;
  115.         else
  116.                 return 0;
  117. }

  118. void Uart2CLR_Buf(void)                           // 串口緩存清理
  119. {
  120.         memset(Uart2_Rec_Buf, 0, Uart2_Buf_Max);      //清空
  121.         
  122.     point2 = 0;
  123.         
  124. }



  125. void main(void)
  126. {
  127.                 unsigned char add;
  128.         unsigned char hh;
  129.         hh=Uart2_Rec_Buf[20],10;
  130.         GPIO_config();
  131.         UartInit();
  132.         Init_LCD1602();
  133.         LCD1602_write_com(0x80);                //指針指向第1行第0個位置
  134.         LCD1602_write_word("weidu ");

  135.          
  136.             
  137.             
  138.                         
  139.         
  140.         LCD1602_write_com(0x80+0x40);        //指針指向第2行第0個位置
  141.         LCD1602_write_word("jingdu ");
  142.         Send(&Uart2_Rec_Buf[32],11);
  143.         
  144.         
  145.         hh=Uart2_Rec_Buf[32];

  146.         LCD1602_write_word("hh  ");
  147.         write_com(0x80+0x40+add);
  148.         

  149. write_date(0x30+hh);
  150.         delay_ms(200);
  151.         
  152.         while(1)
  153.         {
  154.                
  155.                
  156.                 SendString("\r\n");
  157.                         Send(&Uart2_Rec_Buf[0],70);
  158.                                                   
  159.                         SendString("\r\nweidu:\r\n");
  160.                         Send(&Uart2_Rec_Buf[20],10);        
  161.                         
  162.                         SendString("\r\nnanbeibanqiu:\r\n");
  163.                         Send(&Uart2_Rec_Buf[30],1);
  164.                         SendString("\r\n");
  165.                         
  166.                         SendString("jindu:\r\n");
  167.                         Send(&Uart2_Rec_Buf[32],11);
  168.                         SendString("\r\n");

  169.                         
  170.                         SendString("dongxibanqiu:\r\n");
  171.                         Send(&Uart2_Rec_Buf[43],1);
  172.                         SendString("\r\n");


  173.                         SendString("shijian(shi fen miao):\r\n");
  174.                         Send(&Uart2_Rec_Buf[7],6);
  175.                         SendString("\r\n");        
  176.         
  177.                         SendString("shijian(nian yue ri):\r\n");
  178.                         Send(&Uart2_Rec_Buf[61],2);
  179.                         Send(&Uart2_Rec_Buf[59],2);
  180.                         Send(&Uart2_Rec_Buf[57],2);
  181.                         SendString("\r\n");        
  182.         
  183.                         
  184.                         SendString("dimiansudu:\r\n");
  185.                         Send(&Uart2_Rec_Buf[45],6);
  186.                         SendString("\r\n");        
  187.         
  188.                         SendString("dimianhangxiang:\r\n");
  189.                         Send(&Uart2_Rec_Buf[51],6);
  190.                         SendString("\r\n");        


  191.                         SendString("cipianjiaofangxiang:\r\n");
  192.                         Send(&Uart2_Rec_Buf[66],1);
  193.                         SendString("\r\n");        
  194.                         
  195.                    /*
  196.                         flag = 0;                        
  197.                         point1=0;
  198.                         point2=0;
  199.                          ES = 1;   */

  200.                                 clrStruct();
  201.                          SendString("\r\n");
  202.                         Send(&Uart2_Rec_Buf[0],70);
  203.                                                   
  204.                         SendString("\r\nweidu:\r\n");
  205.                         Send(&Uart2_Rec_Buf[20],10);        
  206.                         
  207.                         SendString("\r\nnanbeibanqiu:\r\n");
  208.                         Send(&Uart2_Rec_Buf[30],1);
  209.                         SendString("\r\n");
  210.                         
  211.                         SendString("jindu:\r\n");
  212.                         Send(&Uart2_Rec_Buf[32],11);
  213.                         SendString("\r\n");

  214.                         
  215.                         SendString("dongxibanqiu:\r\n");
  216.                         Send(&Uart2_Rec_Buf[43],1);
  217.                         SendString("\r\n");


  218.                         SendString("shijian(shi fen miao):\r\n");
  219.                         Send(&Uart2_Rec_Buf[7],6);
  220.                         SendString("\r\n");        
  221.         
  222.                         SendString("shijian(nian yue ri):\r\n");
  223.                         Send(&Uart2_Rec_Buf[61],2);
  224.                         Send(&Uart2_Rec_Buf[59],2);
  225.                         Send(&Uart2_Rec_Buf[57],2);
  226.                         SendString("\r\n");        
  227.         
  228.                         
  229.                         SendString("dimiansudu:\r\n");
  230.                         Send(&Uart2_Rec_Buf[45],6);
  231.                         SendString("\r\n");        
  232.         
  233.                         SendString("dimianhangxiang:\r\n");
  234.                         Send(&Uart2_Rec_Buf[51],6);
  235.                         SendString("\r\n");        


  236.                         SendString("cipianjiaofangxiang:\r\n");
  237.                         Send(&Uart2_Rec_Buf[66],1);
  238.                         SendString("\r\n");
  239.                
  240.                
  241.         }
  242. }
  243. void Usart2() interrupt 8 using 1
  244. {
  245.         UART2_INT_DISABLE();        
  246.         
  247.         if(RI2)
  248.     {
  249.                 CLR_RI2();                               //清除RI位
  250.                 Uart2_Rec_Buf[point2] = S2BUF;
  251.                 if(Uart2_Rec_Buf[0]!=


  252. )
  253.                 {        
  254.                         point2=0;
  255.                         return;         
  256.                 }
  257.                 point2++;               
  258.                 if(point2>=Uart2_Buf_Max)         
  259. ……………………

  260. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
08.LCD1602液晶顯示.zip (41.51 KB, 下載次數(shù): 35)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2019-3-13 15:26 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合视频 | 成人综合一区 | 91精品久久久久 | 黄色片大全在线观看 | 99精品视频在线观看免费播放 | 国产一级特黄aaa大片评分 | 久久中文字幕视频 | 日韩一级 | 国产小视频自拍 | 久久久性色精品国产免费观看 | 欧美老妇交乱视频 | 玖玖操 | 天天干夜夜操 | 羞羞视频免费在线观看 | 成人av网站在线观看 | 美日韩一区二区 | 亚洲精品国产第一综合99久久 | 在线免费av观看 | 中文字幕第7页 | 日韩免费激情视频 | 粉嫩粉嫩芽的虎白女18在线视频 | 亚洲国产欧美在线人成 | 又黄又色| 男人的天堂中文字幕 | 日韩精品一区二区三区在线播放 | 成人在线免费观看 | 春色av| 亚洲在线一区 | 亚洲一区二区三区四区五区午夜 | 午夜男人天堂 | 91亚洲免费 | 亚洲欧美日韩成人在线 | 91在线看 | 久久久久久国产精品 | 国产精品久久久99 | 国产成人一区二区 | 色综合色综合色综合 | 亚洲精品久久久久久久久久久久久 | 在线播放亚洲 | 美日韩免费视频 | 亚洲国产精品久久久久婷婷老年 |