wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

松翰SN8F5703單片機IIc例程

[復制鏈接]
跳轉到指定樓層
樓主
ID:856645 發表于 2020-12-8 11:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
松翰單片機5703例程——IIC
  1. //-----------------------------------------------------------------------------
  2. //  FILE:   Master_I2C.c
  3. //-----------------------------------------------------------------------------
  4. //  Copyright 2014 SONiX Technology Corp. All rights reserved.
  5. //
  6. //  AUTHOR:     SONiX
  7. //  DATE:       2014/11/11
  8. //
  9. //  The program is an example of Master I2C to implement it.
  10. //   
  11. //  I2C decription:
  12. //      User need to external pull-high at SDA and SCL pin
  13. //
  14. //
  15. //  The system clock frequency is IHRC 32MHz
  16. //
  17. //  Device:     SN8F5708
  18. //  Tool chain: KEIL C51 V9.50a
  19. //
  20. //-----------------------------------------------------------------------------
  21. // Includes
  22. //-----------------------------------------------------------------------------
  23. #include <string.h>
  24. #include <SN8F5703.h>
  25. #include "GenericTypeDefs.h"
  26. //-----------------------------------------------------------------------------
  27. // Global Constants
  28. //-----------------------------------------------------------------------------
  29. #define MAXDATALEN  5
  30. //-----------------------------------------------------------------------------
  31. // Global Variables
  32. //-----------------------------------------------------------------------------
  33. UINT8 u8I2CFlag = 0;
  34. UINT8 u8I2CData[MAXDATALEN];
  35. UINT8 u8I2CAddr = 0;
  36. UINT8 u8I2CLen = 0;
  37. UINT8 u8I2CCnt = 0;
  38. //-----------------------------------------------------------------------------
  39. // Function Prototypes
  40. //-----------------------------------------------------------------------------
  41. void I2C_Init(void);
  42. UINT8 I2C_Master_Write_One_Byte(UINT8 u8Addr, UINT8 u8data);
  43. UINT8 I2C_Master_Write_N_Byte(UINT8 u8Addr, UINT8 *u8data, UINT8 u8size);
  44. UINT8 I2C_Master_Read_N_Byte(UINT8 u8Addr, UINT8 *u8data, UINT8 u8size);
  45. //-----------------------------------------------------------------------------
  46. // Main loop
  47. //-----------------------------------------------------------------------------
  48. void main(void)
  49. {
  50.     UINT8 u8TxData[MAXDATALEN] = {0xAA,0xBB,0xCC,0xDD,0xEE};                                                                                             // for test
  51.     UINT8 u8RxData[] = {0};
  52.     UINT8 u8SlaveAddr = 0x2C;                                                   // set addr

  53.                 CLKSEL = 0x06;                                                                                                                                                        // Fcpu = 32M/2 = 16M
  54.                 CLKCMD = 0X69;
  55.                 CKCON = 0X10;       
  56.                
  57.     WDTR = 0x5A;                                                                                                                            // clear watchdog if watchdog enable
  58.                
  59.                 P0 = 0;
  60.                 P0M = 0;
  61.                 P0UR = 0xFF;
  62.        
  63.                 P1 = 0;
  64.                 P1M = 0;
  65.                 P1UR = 0xFF;
  66.        
  67.                 P2 = 0;
  68.                 P2M = 0;
  69.                 P2UR = 0xFF;
  70.        
  71.                                        
  72.                 I2C_Init();   

  73.     // Write one data to slave
  74.                 I2C_Master_Write_One_Byte(u8SlaveAddr, u8TxData[0]);

  75.     // Write multi data to slave
  76.                 I2C_Master_Write_N_Byte(u8SlaveAddr, u8TxData, sizeof(u8TxData));

  77.                 // read 1 data form slave
  78.                 I2C_Master_Read_N_Byte(u8SlaveAddr, u8RxData, 1);
  79.                
  80.     // read multi data form slave
  81.                 I2C_Master_Read_N_Byte(u8SlaveAddr, u8RxData, sizeof(u8RxData));
  82.                
  83.     while (1)
  84.                 {
  85.                         WDTR = 0x5A;                                                                                                                        // clear watchdog if watchdog enable
  86.     }
  87. }
  88. //-----------------------------------------------------------------------------
  89. //  Function:   void I2C_Init(void)
  90. //  Description:
  91. //          SCL and SDA need to external pull high
  92. //-----------------------------------------------------------------------------
  93. void I2C_Init(void)
  94. {
  95.                 I2CCON = 0x43;                                                                                                                         // I2C enable (ENS1),Fclk = Fcpu/160 = 100K

  96.                 EI2C = 1;                                                                                                                       // I2C interrupt enable
  97.                 EAL = 1;                                                                                                                        // Interrupt enable
  98. }
  99. //-----------------------------------------------------------------------------
  100. //  Function:   UINT8 I2C_Master_Write_One_Byte(UINT8 u8Addr, UINT8 u8Data)
  101. //  Description:
  102. //
  103. //-----------------------------------------------------------------------------
  104. UINT8 I2C_Master_Write_One_Byte(UINT8 u8Addr, UINT8 u8Data)
  105. {
  106.     if (!u8I2CFlag) {
  107.         u8I2CFlag = 1;                                                                                              // get Use Right            
  108.         u8I2CLen = 1;                                                                                               // set length
  109.         u8I2CCnt = 0;                                                                                               // clear tx count
  110.         u8I2CData[0] = u8Data;
  111.         u8I2CAddr = u8Addr & 0xFE;                                                                                  // write mode               
  112.         I2CCON |= 0x20;                                                                                             // START (STA) = 1

  113.         while(u8I2CFlag);                                                                                           // wait Trasmit end

  114.         return TRUE;
  115.     }
  116.     else
  117.         return FALSE;
  118. }

  119. //-----------------------------------------------------------------------------
  120. //  Function:   UINT8 I2C_Master_Write_N_Byte(UINT8 u8Addr, UINT8 *u8data, UINT8 u8size)
  121. //  Description:
  122. //
  123. //-----------------------------------------------------------------------------
  124. UINT8 I2C_Master_Write_N_Byte(UINT8 u8Addr, UINT8 *u8data, UINT8 u8size)
  125. {
  126.     if (u8size > MAXDATALEN)   
  127.         return FALSE;                                                                                               // over buf size
  128.    
  129.     if (u8size == 0)   
  130.         return FALSE;                                                                                               // error size
  131.    
  132.     if (!u8I2CFlag) {
  133.         u8I2CFlag = 1;                                                                                      // get Use Right
  134.         u8I2CLen = u8size;                                                                                  // set length
  135.         u8I2CCnt = 0;                                                                                       // clear tx count
  136.         u8I2CAddr = u8Addr & 0xFE;                                                                          // write mode            
  137.         memcpy(u8I2CData, u8data, u8size);
  138.         I2CCON |= 0x20;                                                                                     // START (STA) = 1

  139.         while(u8I2CFlag);                                                                                   // wait Trasmit end

  140.         return TRUE;
  141.     }
  142.     else
  143.         return FALSE;
  144. }

  145. //-----------------------------------------------------------------------------
  146. //  Function:   UINT8 I2C_Master_Read_N_Byte(UINT8 u8Addr, UINT8 *u8data, UINT8 u8size)
  147. //  Description:
  148. //
  149. //-----------------------------------------------------------------------------
  150. UINT8 I2C_Master_Read_N_Byte(UINT8 u8Addr, UINT8 *u8data, UINT8 u8size)
  151. {
  152.     if (u8size > MAXDATALEN)   
  153.         return FALSE;                                                                                       // over buf size
  154.     if (u8size == 0)   
  155.         return FALSE;                                                                                       // error size
  156.     if (!u8I2CFlag) {
  157.         u8I2CFlag = 1;                                                                                      // get Use Right
  158.         u8I2CLen = u8size;                                                                                  // set length
  159.         u8I2CCnt = 0;
  160.         u8I2CAddr = u8Addr | 0x01;                                                                          // read mode
  161.         I2CCON |= 0x20;                                                                                     // START (STA) = 1
  162.    
  163.         while(u8I2CFlag);                                                                                   // wait recevier end
  164.    
  165.         memcpy(u8data, u8I2CData, u8size);
  166.    
  167.         return TRUE;
  168.     }
  169.     else
  170.         return FALSE;
  171. }
  172. //-----------------------------------------------------------------------------
  173. //  Function:   I2C interrupt
  174. //  Description:      
  175. //
  176. //-----------------------------------------------------------------------------
  177. void I2C_ISR(void) interrupt ISRI2c                                                                    // Vector @  0x43
  178. {
  179.     switch (I2CSTA)
  180.     {
  181.         // tx mode
  182.         case 0x08:
  183.             I2CCON &= 0xDF;                                                                     // START (STA) = 0
  184.             I2CDAT = u8I2CAddr;                                                                 // Tx/Rx addr
  185.             break;
  186.         case 0x18:                                                                              // write first byte
  187.             I2CDAT = u8I2CData[u8I2CCnt++];
  188.             u8I2CLen--;
  189.             break;
  190.         case 0x28:                                                                              // write n byte
  191.             if (u8I2CLen == 0) {                                                                // chk length if empty
  192.                 I2CCON |= 0x10;                                                                 // STOP (STO)
  193.                 u8I2CFlag = 0;
  194.                 u8I2CCnt = 0;
  195.             }
  196.             else {
  197.                 I2CDAT = u8I2CData[u8I2CCnt++];
  198.                 u8I2CLen--;
  199.             }
  200.             break;
  201.             
  202.         //    rx mode   
  203.         case 0x40:                                                                              // get slave addr
  204.             if(u8I2CLen > 1)        I2CCON |= 0x04;         // AA = 1
  205.                                                 else        I2CCON &= 0xFB;  
  206.             break;
  207.         case 0x50:                                                                              // read n byte
  208.             u8I2CData[u8I2CCnt++] = I2CDAT;
  209.             if (u8I2CCnt == (u8I2CLen-1)) {
  210.                 I2CCON &= 0xFB;                                                                 // AA = 0
  211.             }
  212.             else {               
  213.                 I2CCON |= 0x04;                                                                        // AA = 1
  214.             }
  215.             break;
  216.         case 0x58:                                                                              // read last byte & stop
  217.             u8I2CData[u8I2CCnt] = I2CDAT;
  218.             I2CCON |= 0x10;                                                                     // STOP (STO)
  219.             u8I2CFlag = 0;
  220.             break;
  221.         default:
  222.             I2CCON |= 0x10;                                                                     // STOP (STO)
  223.             u8I2CFlag = 0;
  224.     }
  225.                
  226.     I2CCON &= 0xF7;                                                                             // Clear I2C flag (SI)        
  227. }
復制代碼


5703_I2C_20161104.rar

115.79 KB, 下載次數: 10, 下載積分: 黑幣 -5

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
传媒av在线| av老司机免费在线| 中文字幕欧美日韩一区二区三区| 欧美精选视频在线观看| 国产精品第6页| 日韩精品第1页| 日韩中文视频免费在线观看| 国产精品一区二区三区av麻| 香蕉视频在线免费| 精品国产www| 亚洲av片不卡无码久久| 在线观看91精品国产麻豆| 国产日韩一区| 中文字幕中文字幕在线中高清免费版 | 九九热精品免费视频| 玛丽玛丽电影原版免费观看1977| 欧美亚洲尤物久久| 亚洲一区欧美二区| 国产欧美自拍一区| 黄页视频在线免费观看| 77777_亚洲午夜久久多人| 久久久久亚洲AV成人网人人小说| 国产精品视频白浆免费视频| 一本到一区二区三区| 亚洲精品1区| 久久这里只有精品9| 欧美大尺度做爰床戏| 欧美黑人又粗大| 综合精品久久久| 婷婷亚洲最大| 992tv在线观看| 欧美金发大战黑人最粗videos| av在线播放中文字幕| 亚洲欧洲日韩综合二区| 久久免费观看视频| 色94色欧美sute亚洲线路一久| 久久66热re国产| 日韩成人久久| 亚洲s色大片在线观看| 国产91免费看| 不卡一区二区在线观看| 免费久久久久久| 日本久久久久久久久久久| 欧美日韩在线播| 96av麻豆蜜桃一区二区| 97视频热人人精品免费| 欧美调教sm| 毛片网站大全| 噜噜噜久久,亚洲精品国产品| 一级成人黄色片| 天天色天天综合网| 欧美日韩一区综合| 97香蕉超级碰碰久久免费的优势| 日韩一二在线观看| 国产精品成人一区二区艾草| 国产日韩视频| 欧美日韩三级| 欧美美女在线直播| 色网在线观看| 中文字幕第5页| fc2ppv在线观看| 91精品视频免费在线观看| 波多野结衣 在线| 在线免费观看一区二区三区| 久久精品国产综合精品| 91国产美女视频| 亚洲激情视频网| 一区二区三区美女| 国产69精品久久久久毛片| 97精品国产福利一区二区三区| 老司机成人在线| 欧美电影免费看| 在线免费视频福利| 91看片免费版| 欧美一区二区公司| 国产www在线| 人妻精品久久久久中文| 99sesese| 男人操女人逼免费视频| 欧美日韩免费高清| 欧美一进一出视频| 国产精品2018| 亚洲欧美经典视频| 精品一区精品二区高清| 日本亚洲一区二区| 久久网站免费观看| 久久久久国产精品| 欧美美乳视频| 美国十次综合久久| 97人人爽人人澡人人精品| 欧美bbbxxxxx| jizz日韩| 午夜3点看的视频| 丰满少妇在线观看网站| 一本之道久久| 三级全黄视频| 九色国产视频| 亚洲精品一区二区口爆| 欧美亚洲另类小说| 女人十八岁毛片| 91精品国产一区| 日本aⅴ大伊香蕉精品视频| 久久综合久久美利坚合众国| 日韩精品在线观看视频| 欧美一区二区高清| 欧美疯狂做受xxxx富婆| 亚洲精品自产拍| 欧美大片网站在线观看| 国产精品mp4| 久久国产精品久久| 中文字幕日韩精品无码内射| 2025韩国大尺度电影| 国产天堂视频在线观看| 成人午夜激情网| 国产成人中文字幕| 精品视频一区二区三区四区| 91视频99| 91在线观看免费网站| 1区1区3区4区产品乱码芒果精品| 欧美日韩国产不卡在线看| www污在线观看| 日本中文字幕精品| 波多野结衣三级视频| 亚洲美女精品视频| 2018天天弄| 国产男女猛烈无遮挡在线喷水| 中文字幕高清视频| 亚洲影院在线播放| 原谅我中文字幕| 免费久久网站| 少妇激情av一区二区三区| 91三级在线| 荡女精品导航| 精品国内自产拍在线观看视频| 亚洲综合日本| 精品夜夜嗨av一区二区三区| 奇米综合一区二区三区精品视频| 欧美韩国日本综合| 亚洲国产日韩一级| 综合精品久久久| 精品国产伦一区二区三区观看方式| 精品久久国产字幕高潮| 中文字幕精品视频| 欧美激情免费在线| 欧美第一黄网| 91精品国产高清91久久久久久| 日本中文字幕网| 亚洲图片欧美在线| 亚洲综合小说网| 另类国产精品一区二区| 香蕉网站在线| 欧美成年网站| 日韩va欧美va亚洲va久久| 国产高清视频一区| 欧美国产日韩精品免费观看| 日韩欧美一级二级三级| 最近日韩中文字幕中文| 国产福利一区二区三区在线观看| 欧美亚洲另类在线一区二区三区| 精品亚洲一区二区三区四区| 久久精品人妻一区二区三区| 99热这里只有精品5| 国产女无套免费视频| 天天操夜夜添| 国产午夜精品一区理论片| 麻豆影视在线| 多野结衣av一区| 成人激情久久| 婷婷丁香综合| 国产日本欧美一区二区| 黑人巨大精品欧美一区免费视频| 欧美三片在线视频观看| 97视频com| 成人黄色片免费| 老司机成人免费视频| 国产免费av观看| 欧美福利网站| 视频精品一区| 成人国产亚洲欧美成人综合网| 1000精品久久久久久久久| 日韩成人在线观看| 8090成年在线看片午夜| 免费不卡av在线| 一本加勒比波多野结衣| 丁香六月婷婷综合| 天天看天天色| 电影一区中文字幕| 国产成人亚洲精品狼色在线 | 国产精品一区二区三区毛片淫片| 国产日韩一区欧美| 欧美在线观看成人| 亚洲一级理论片| 日韩欧美一区二区三区不卡视频| 另类图片亚洲色图| huan性巨大欧美| 91蝌蚪精品视频| 99精品视频免费观看| 国产欧美精品一区| 中文字幕日韩在线视频| 亚洲小说欧美另类激情| 在线免费看黄色片| 国产又粗又猛又黄视频| 五月天婷婷综合社区| 欧美大胆视频| 国产欧美日韩麻豆91| 精品久久久av| 日韩三级电影免费观看| 亚洲天堂小视频| 成人午夜无人区一区二区| 欧美人与性动交α欧美精品图片| 久久aⅴ国产紧身牛仔裤| 一区二区三区.www| 日本亚洲欧洲色α| 国产ts在线观看| 欧美一区二区三区久久综| 中文字幕人成乱码在线观看| 夜间精品视频| 欧美高清在线视频| 亚洲精品资源美女情侣酒店| 致1999电视剧免费观看策驰影院| 精品一区二区三区人妻| 国产美女自拍视频| 亚洲s色大片| 精品视频免费在线观看| 亚洲在线一区二区三区| 国产美女精品视频免费观看| 熟女人妻在线视频| 奇米影视狠狠狠| 中文在线а√天堂| bt欧美亚洲午夜电影天堂| 日韩欧美一级二级| 佐佐木明希av| 精品国产伦一区二区三| 亚洲精选av在线| 97色伦图片97综合影院| 在线观看亚洲a| 成人在线播放av| 免费黄色片网站| 超碰色偷偷男人的天堂| 国产精品麻豆| 亚洲男人的天堂在线aⅴ视频| 国产精品一区二区久久精品 | 人妻av无码专区| www五月婷婷| 一级毛片久久久| 国产精品视区| 亚洲美女动态图120秒| 色狠狠久久av五月综合| 亚洲毛片亚洲毛片亚洲毛片| 成人亚洲成人影院| 欧美性色综合| 日韩精品亚洲元码| www.com黄色片| 国产精品美女视频免费观看软件| www视频在线观看| 成人av在线播放网址| 91成人国产在线观看| 国产一二三四五区| 日日干夜夜爽| 欧美一站二站| 91久久精品国产91性色tv | 神马国产精品影院av| 日本中文字幕在线不卡| 无码精品在线观看| 97天天综合网| 久久久久国产一区二区三区四区| 久久久www成人免费精品张筱雨| 中文字幕第22页| 久久er视频| 你懂的在线观看一区二区| 色综合一个色综合亚洲| 高清日韩一区| 中文字幕在线2018| 色多多视频在线观看| 成人午夜在线视频| 久久免费国产精品1| 乐播av一区二区三区| 三级理论午夜在线观看| 影音先锋亚洲精品| 日韩一区二区三区视频在线| 日日鲁鲁鲁夜夜爽爽狠狠视频97| jizzjizz国产| 亚洲黄页网站| 黄色成人av在线| 国产日本一区二区三区| www.久久视频| 在线免费观看黄| 日韩精品视频网站| 亚州国产精品久久久| 日本妇女毛茸茸| 视频一区二区在线播放| 国产精品一二三四区| 久久国产精品久久久久久久久久| 中文字幕无码精品亚洲35| 国产成人va亚洲电影| 欧美日韩免费观看一区=区三区| 久久亚洲欧美日韩精品专区| 波多野结衣一二三四区| 黄污网站在线观看 | 久久资源免费视频| 极品久久久久久| 三级在线看中文字幕完整版| 精品毛片网大全| 缅甸午夜性猛交xxxx| 久草在线视频网| 欧美91福利在线观看| 精品日韩一区二区三区免费视频| 亚洲一级片免费| 超碰在线电影| 成人一区二区三区视频| 久久99国产精品| 青春娱乐分类视频精品2动漫| 一区福利视频| 日本精品久久电影| 国产乱码精品一区二三区蜜臂| 欧美极品免费| 欧美日韩国产免费| 国产a级片网站| 无套内精的网站| eeuss影院一区二区三区| 欧美中日韩一区二区三区| 国产精品欧美色图| 精品一区精品二区高清| 黄色99视频| 国产成人亚洲精品乱码在线观看| 日日骚欧美日韩| 国产伦精品一区二区三区| 在线免费观看高清视频| 欧美韩一区二区| 欧美超级免费视 在线| 精品国产免费观看| 卡通欧美亚洲| 欧美一区二区三区影视| 日韩一区二区a片免费观看| 深夜成人在线| 亚洲国产精品久久| 国产免费a级片| 国产精品一区hongkong| 国产精品福利在线播放| 国精产品一区一区三区视频| 啦啦啦中文高清在线视频 | 国产精品久在线观看| 亚洲av无码片一区二区三区| 欧美日本三区| 成人激情在线观看| 韩国三级午夜理伦三级三| 国产一区不卡在线| 成人免费淫片视频软件| 亚洲日本电影| 免费人成精品欧美精品 | 欧美三级网址| 亚洲黄色免费三级| 日本一区二区欧美| 欧美美女视频| 国产精品亚洲美女av网站| 日韩在线第二页| 国产成人免费视频网站高清观看视频| 亚欧精品在线| 桃乃木かなav在线播放| 亚洲在线视频网站| 国产无套精品一区二区三区| 免费v片在线观看| 亚洲欧美日韩国产中文| 亚洲性猛交富婆| 欧美黄色大片网站| 国产精品麻豆免费版| wwwwww色| 自拍偷自拍亚洲精品播放| 波多野结衣电影免费观看| 偷拍视频一区二区三区| 日韩视频精品在线| 国产精品成人久久| 国产一区二区三区四区| 国产日韩欧美在线播放| 好吊色在线观看| 激情文学综合插| av女优在线播放| 九七电影韩国女主播在线观看| 亚洲国产日韩a在线播放性色| 久久久久亚洲av无码网站| 日韩欧美看国产| 欧美大成色www永久网站婷| 手机在线精品视频| 激情丁香综合| 日本成人黄色免费看| 夜色资源站国产www在线视频| 中文字幕一区二区三区av| 久久久久亚洲av片无码v| 色综合久久久| 亚洲黄色免费三级| 一级全黄少妇性色生活片| 久久精品一本| 欧妇女乱妇女乱视频| 日本成人不卡| 最近的2019中文字幕免费一页| 成人午夜福利视频| 成人精品视频.| 中文字幕人妻熟女人妻a片| 欧洲亚洲精品| 国产精品青草久久久久福利99|