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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7044|回復: 1
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
SH88F516代碼工程與串口調試工具:


中穎單片機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://www.zg4o1577.cn/bbs/dpj-98300-1.html



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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产99国产精品 | 欧美日产国产成人免费图片 | 福利社午夜影院 | 久久久人 | 毛片视频免费 | 欧美激情精品久久久久久变态 | 日韩精品一区在线观看 | 国产成人a亚洲精品 | 国产日韩精品久久 | 欧美性a视频| 免费成人av网站 | 国产激情在线观看视频 | 99九色| 国产精品永久免费 | 日韩成人高清在线 | 日韩欧美一区二区三区免费观看 | 超碰超碰 | 看羞羞视频 | 日韩成人精品在线 | 国产精品一级 | 亚洲日韩中文字幕一区 | 亚洲国产精品99久久久久久久久 | 久久久久国产一区二区三区四区 | 日韩在线一区二区 | 男女羞羞视频在线免费观看 | 欧美激情黄色 | 久久精品一区 | www.欧美 | 成人网在线观看 | 亚洲精品国产电影 | 日韩欧美一区在线 | 久久精品中文字幕 | 国产黄色一级电影 | 国产精品一区二区在线观看 | 自拍视频网站 | 99re6在线| 免费国产视频 | 欧美一级久久 | 国产美女黄色片 | 国产 日韩 欧美 在线 | av特级毛片 |