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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7209|回復: 1
收起左側

中穎單片機UART1串口實現自動硬件地址識別和通訊SH88F516源程序

[復制鏈接]
ID:246796 發表于 2017-11-18 05:16 | 顯示全部樓層 |閱讀模式
SH88F516代碼工程與串口調試工具:
0.png

中穎單片機UART1控制源碼如下:
  1. /***************************
  2. 說明: 串口1擁有獨立的波特率發生器,不需要占用定時器資源,在多機通訊時還具有自動硬件地址識別和幀出錯檢測
  3. 功能。本程序代碼可以很好的實現自動硬件地址識別和通訊功能,利用串口調試助手發送地址和數據命令,單片機接
  4. 收有效命令后,將數據再發送到串口調試助手。操作注意點如下:發送十六進制數據55(55在程序中定義為硬件地址),
  5. 選擇偶校驗(偶校驗保證了輸出第8位為1),發送后會返回十六進制數據55,說明地址匹配,下面可以任意發送數據
  6. (除了FF和AA)進行通訊,發送的數據都可以返回到串口調試助手,十六進制FF(偶校驗為1)為系統默認的廣播命令,
  7. 十六進制AA為程序中定義的通訊結束命令,因而可以發送AA結束此次通訊。串口調試助手(serial V2.2.exe)在UART1文
  8. 件夾中。
  9. 要求:打開撥碼開關J4,使串口1有效。
  10. *************************/
  11. #include <sh88f516.h>

  12. unsigned char data RCV_num;
  13. bit flag1;
  14. void init();
  15. void SendChar(unsigned char value);

  16. main()
  17. {
  18.         init();
  19.                                        
  20.     while(1)
  21.         {         
  22.                 if(flag1)
  23.                 {
  24.                         flag1 = 0;
  25.                         SendChar(RCV_num);
  26.                 }
  27.         }

  28. }


  29. void init()
  30. {

  31.         CLKCON = 0x00;                        //時鐘設置 系統時鐘=晶振頻率   Fsys=16MHz

  32.         SADDR1 = 0x55;          //多機通訊時的從機地址設置=0x55
  33.         SADEN1 = 0xFF;                  //從機地址屏蔽設置

  34.         SCON1 = 0xF0;                     //工作在方式3 ,多機通訊模式
  35.         SBRT1 = 0xFF;                    //工作在方式3時,BAUDRATE=(1/16)*Fsys/(32768-SBRT[1:0])          Fsys=16MHz
  36.         SBRT0 = 0x98;                    //BAUDRATE=9600時, SBRT[1:0]=0x7F98,   SBRT1.7=1        -->        SBRT1=0xFF,         SBRT0 = 0x98;
  37.         
  38.         IEN1 = 0x04;                    //ES1=1,不可位尋址
  39.         EA = 1;                                    //開啟總中斷

  40. }


  41. void UART1_RCV_INT() interrupt 9  using 3  //串口接收中斷的中斷號為9.
  42. {

  43.         IEN1 &= 0xFB;                                                   //關閉串口1中斷
  44.         SCON1 &= 0xDF;                                                   //SM12_TXCOL = 0;

  45.         RCV_num = SBUF1;


  46.         if(RCV_num==0xAA)                                           //收到0xAA就結束此次通訊
  47.         {
  48.                 SCON1 |= 0x20;                           //SM12_TXCOL = 1;
  49.         }        
  50.         
  51.         flag1 = 1;

  52.         RI1 = 0;                                                           //清除串口1中斷標志位
  53.         IEN1 |= 0x04;                                                   //打開串口1中斷
  54. }

  55. void SendChar(unsigned char value)
  56. {
  57.         IEN1 &= 0xFB;               //ES1=0;               
  58.         SBUF1=value;                            //寫SBUF1,激活發送
  59.         while(TI1==0);                          //等待轉換結束
  60.         TI1=0;                                                //清除發送標志位
  61. …………
  62. …………
  63. …………限于本文篇幅 余下代碼請從51黑下載附件…………

復制代碼



壓縮包里面包含有中穎單片機sh88f516常用功能的源碼,中文注釋都很詳細
下載地址:http://m.zg4o1577.cn/bbs/dpj-98300-1.html



回復

使用道具 舉報

ID:168808 發表于 2019-9-18 08:16 | 顯示全部樓層
樓主,我現在用這個程序測試時:為什么發送0x55,要沒有帶奇偶校驗才能中斷收到,加了奇偶校驗收不到0x55,而發送數據如果不加檢驗位,多個字節會出現亂碼?用的是SH88F516,外部晶振12MHZ,波特率:9600,請問這個是什么問題?是不是哪里沒有設置好,還有SH88F516用成專用接口怎么設置,規格書沒有寫?比如SPI接口,幫忙回復一下謝謝。
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色综合天天综合网国产成人网 | 日韩精品一二区 | 国产一级在线视频 | 一级片免费播放 | 日韩精品免费在线观看 | 日韩一区二区三区在线 | 午夜性影院 | 蜜桃精品视频 | 鲁鲁鲁鲁鲁鲁鲁777777 | 中文字幕2021 | 一区二区国产在线 | 中文在线观看免费网站 | 成人午夜在线视频 | 中文字幕在线观看网址 | 精品亚洲一区二区 | 国产一区中文字幕 | av在线成人 | 亚洲视频免费 | 91久久久久国产一区二区 | 久久中文字幕视频 | 成人永久免费 | 伊人久久网站 | 久草福利资源 | 精品蜜桃一区二区三区 | 中文字幕国产 | 欧美久久视频 | 日本免费在线观看视频 | 久久久午夜精品 | av一区二区在线观看 | www99热| 午夜成人影片 | 999国产视频| 天堂99 | 国产精品免费看 | 福利在线看 | 欧美国产在线视频 | 国产日韩欧美精品 | 国产精品一级二级 | 999在线视频 | 久久黄色大片 | 亚洲午夜视频在线观看 |