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

標題: 51單片機串口發送數據道上位機客戶端 [打印本頁]

作者: dabing89    時間: 2018-10-22 09:23
標題: 51單片機串口發送數據道上位機客戶端
本帖最后由 dabing89 于 2018-10-22 09:25 編輯

串口的應用是及其廣泛的,串口是單片機和外部設備聯系的通道,比如掃描槍,掃描儀,熱敏打印機等等,好多接口都是232或者485接口,如果沒有串口,單片機就只能和自己玩,這是很無聊的,串口分為收信息和發信息,我們先來看一下發信息,下面程序的作用是將HELLO WORLD通過串口軟件,在電腦上顯示出來。
  1. /********************************************************
  2. *描述:串口發送“hello world” 到電腦上  數據幀格式 9600 N 8 1
  3. *      
  4. QQ597627977
  5. ********************************************************/
  6. #include "stc15w.h"
  7. #include "string.h"//字符串比較函數


  8. /*******************************************************************************
  9. * 文件名:位定義
  10. * 描  述:
  11. * 功  能:
  12. * 作  者:大核桃
  13. * 版本號:1.0.1(2017.05.23)
  14. *******************************************************************************/
  15. typedef unsigned char uint8;
  16. typedef unsigned int  uint16;
  17. typedef unsigned long uint32;

  18. bit flag_led = 0;
  19. uint8 Usart1_Cmd = 0;
  20. uint8 Usart1_RxdBuf[20];
  21. uint8 Usart1_Cnt = 0;

  22. sbit LED0 = P1^0;

  23. /*******************************************************************************
  24. * 文件名:函數前置聲明
  25. * 描  述:
  26. * 功  能:
  27. * 作  者:大核桃
  28. * 版本號:1.0.1(2017.05.23)
  29. *******************************************************************************/void Bsp_Power_Init(void);
  30. void UartInit(void);                //9600bps@11.0592MHz
  31. void Usart1_Write_NByte(unsigned char *buf, unsigned char len);        //多字節
  32. void Usart1_Write_Byte(unsigned char buf);//單字節

  33. /*******************************************************************************
  34. * 文件名:主循環入口
  35. * 描  述:
  36. * 功  能:
  37. * 作  者:大核桃
  38. * 版本號:1.0.1(2017.05.23)
  39. *******************************************************************************/
  40. void main(void)
  41. {
  42.         UartInit();                //9600bps@11.0592MHz

  43.         Usart1_Write_NByte("hello world\r\n", sizeof("hello world\r\n") - 1); //發送HELLO WORLD 到串口        
  44. //  Usart1_Write_Byte('h');
  45. //        Usart1_Write_Byte('e');
  46. //        Usart1_Write_Byte('l');
  47. //        Usart1_Write_Byte('l');
  48. //        Usart1_Write_Byte('o');

  49.         while(1);
  50. }

  51. /*******************************************************************************
  52. * 文件名:void UartInit(void)                //9600bps@11.0592MHz
  53. * 描  述: 串口配置
  54. * 功  能:
  55. * 作  者:大核桃
  56. * 版本號:1.0.1(2017.05.23)
  57. *******************************************************************************/
  58. void UartInit(void)                //9600bps@11.0592MHz
  59. {
  60.         SCON = 0x50;                //8位數據,可變波特率
  61.         AUXR &= 0xBF;                //定時器1時鐘為Fosc/12,即12T
  62.         AUXR &= 0xFE;                //串口1選擇定時器1為波特率發生器
  63.         TMOD &= 0x0F;                //設定定時器1為16位自動重裝方式
  64.         TL1 = 0xE8;                       //設定定時初值
  65.         TH1 = 0xFF;                    //設定定時初值
  66.         ET1 = 0;                    //禁止定時器1中斷
  67.         TR1 = 1;                    //啟動定時器1
  68. }

  69. /*******************************************************************************
  70. * 文件名:void Usart1_Write_NByte(unsigned char *buf, unsigned char len)
  71. * 描  述: 串口數據寫入函數,即串口發送函數,待發送數據指針 buf,數據長度 len
  72. * 功  能:
  73. * 作  者:大核桃
  74. * 版本號:1.0.1(2017.05.23)
  75. *******************************************************************************/
  76. void Usart1_Write_NByte(unsigned char *buf, unsigned char len)
  77. {
  78.         while (len--)
  79.         {
  80.                 SBUF = *buf++;//向串口1發送數據
  81.                 while(TI == 0);//等待發送結束
  82.                 TI = 0;
  83.         }
  84. }

  85. /*******************************************************************************
  86. * 文件名:void Usart1_Write_Byte(unsigned char buf)
  87. * 描  述: 串口數據寫入函數,即串口發送函數,待發送數據指針 buf,數據長度 len
  88. * 功  能:
  89. * 作  者:大核桃
  90. * 版本號:1.0.1(2017.05.23)
  91. *******************************************************************************/
  92. void Usart1_Write_Byte(unsigned char buf)
  93. {
  94.         SBUF = buf;//向串口1發送數據
  95.         while(TI == 0);//等待發送結束
  96.         TI = 0;
  97. }



復制代碼


014 串口發.rar (32.1 KB, 下載次數: 135)



作者: kbli    時間: 2020-5-17 10:40
謝謝分享
作者: wyl138    時間: 2022-10-31 19:34
對初學者的我來說,這很直觀和實用.謝謝樓主.




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人网视频 | 国产一区二区免费在线 | 日本又色又爽又黄又高潮 | 一级黄色毛片a | 爱综合 | 欧美成人精品一区二区三区 | 羞羞涩涩在线观看 | 欧美日日 | 久久精品久久久久久 | 午夜影院在线免费观看视频 | 国产视频精品在线 | 日韩一区中文字幕 | 中文字幕国产 | 免费精品| 国产精品视频免费观看 | 波多野结衣二区 | 2019天天操| 久久不卡视频 | 中文字幕视频在线 | 国产日韩欧美一区二区 | 国产亚洲精品久久久久动 | 91精品国产综合久久精品 | 精品久久久久久 | 亚洲精品视频三区 | 男人的天堂久久 | 在线观看视频中文字幕 | 久久大陆| 亚洲欧美另类在线观看 | 在线视频中文字幕 | 91中文字幕在线观看 | 日韩欧美国产精品一区 | 日本不卡高字幕在线2019 | 国产欧美一区二区精品久导航 | 亚洲午夜小视频 | 久久99精品久久久久久国产越南 | 国产精品视频一区二区三区 | 久久久精品一区 | 国产一区二| 亚洲va欧美va人人爽午夜 | 日韩成人在线电影 | 国产激情一区二区三区 |