国产精品久久成人网站 ,99热都是精品久久久久久,一边添奶一边添p好爽视频,久久国产精品成人片免费,国产免费无码av片在线观看不卡,国产成人亚洲综合网色欲网久下载,日本牲交大片无遮挡,精品国产亚洲福利一区二区
              TDA2030功放電路圖 電動車充電器電路圖 電子電路 功放電路 電子制作 集成塊資料 電子報 pcb 變壓器 元器件知識 逆變器電路圖 電路圖 開關電源電路圖 傳感器技術 led 電磁兼容
              電子電路圖
              當前位置: 首頁 > 電子電路 > 設計編程

              單片機的I2C通信設計

              時間:2019-12-05 09:15:30來源:電子發燒友 作者:admin 點擊:
              I2C每一位信號的時序流程,而I2C通信在字節級的傳輸中,也有固定的時序要求。I2C通信的起始信號(Start)后,首先要發送一個從機的地址,這個地址一共有 7位,緊跟著的第 8

              I2C每一位信號的時序流程,而I2C通信在字節級的傳輸中,也有固定的時序要求。I2C通信的起始信號(Start)后,首先要發送一個從機的地址,這個地址一共有 7位,緊跟著的第 8 位是數據方向位(R/W),“0”表示接下來要發送數據(寫),‘“1”表示接下來是請求數據(讀)。

              我們知道,打電話的時候,當撥通電話,接聽方撿起電話肯定要回一個“喂”,這就是告訴撥電話的人,這邊有人了。同理,這個第九位 ACK 實際上起到的就是這樣一個作用。當我們發送完了這 7 位地址和 1 位方向后,如果發送的這個地址確實存在,那么這個地址的器件應該回應一個 ACK(拉低 SDA 即輸出“0”),如果不存在,就沒“人”回應 ACK(SDA將保持高電平即“1”)。

              那我們寫一個簡單的程序,訪問一下我們板子上的 EEPROM 的地址,另外再寫一個不存在的地址,看看它們是否能回一個 ACK,來了解和確認一下這個問題。

              我們板子上的 EEPROM 器件型號是 24C02,在 24C02 的數據手冊 3.6 節中可查到,24C02的 7 位地址中,其中高 4 位是固定的 0b1010,而低 3 位的地址取決于具體電路的設計,由芯片上的 A2、A1、A0 這 3 個引腳的實際電平決定,來看一下我們的 24C02 的電路圖,它和24C01 的原理圖完全一樣,如圖 14-4 所示。

              <a href=http://m.zskn.com.cn/tags-etagid15-0.html target=_blank class=infotextkey>單片機</a>的I2C通信設計

              圖 14-4 24C02 原理圖

              從圖 14-4 可以看出來,我們的 A2、A1、A0 都是接的 GND,也就是說都是 0,因此 24C02的 7 位地址實際上是二進制的 0b1010000,也就是 0x50。我們用 I2C 的協議來尋址 0x50,另外再尋址一個不存在的地址 0x62,尋址完畢后,把返回的 ACK 顯示到我們的 1602 液晶上,大家對比一下。

              /***************************Lcd1602.c 文件程序源代碼*****************************/

              #include

              #define LCD1602_DB P0

              sbit LCD1602_RS = P1^0;

              sbit LCD1602_RW = P1^1;

              sbit LCD1602_E = P1^5;

              /* 等待液晶準備好 */

              void LcdWaitReady(){

              unsigned char sta;

              LCD1602_DB = 0xFF;

              LCD1602_RS = 0;

              LCD1602_RW = 1;

              do {

              LCD1602_E = 1;

              sta = LCD1602_DB; //讀取狀態字

              LCD1602_E = 0;

              } while (sta & 0x80); //bit7 等于 1 表示液晶正忙,重復檢測直到其等于 0 為止

              }

              /* 向 LCD1602 液晶寫入一字節命令,cmd-待寫入命令值 */

              void LcdWriteCmd(unsigned char cmd){

              LcdWaitReady();

              LCD1602_RS = 0;

              LCD1602_RW = 0;

              LCD1602_DB = cmd;

              LCD1602_E = 1;

              LCD1602_E = 0;

              }

              /* 向 LCD1602 液晶寫入一字節數據,dat-待寫入數據值 */

              void LcdWriteDat(unsigned char dat){

              LcdWaitReady();

              LCD1602_RS = 1;

              LCD1602_RW = 0;

              LCD1602_DB = dat;

              LCD1602_E = 1;

              LCD1602_E = 0;

              }

              /* 設置顯示 RAM 起始地址,亦即光標位置,(x,y)-對應屏幕上的字符坐標 */

              void LcdSetCursor(unsigned char x, unsigned char y){

              unsigned char addr;

              if (y == 0){ //由輸入的屏幕坐標計算顯示 RAM 的地址

              addr = 0x00 + x; //第一行字符地址從 0x00 起始

              }else{

              addr = 0x40 + x; //第二行字符地址從 0x40 起始

              }

              LcdWriteCmd(addr | 0x80); //設置 RAM 地址

              }

              /* 在液晶上顯示字符串,(x,y)-對應屏幕上的起始坐標,str-字符串指針 */

              void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str){

              LcdSetCursor(x, y);//設置起始地址

              while (*str != ‘’){ //連續寫入字符串數據,直到檢測到結束符

              LcdWriteDat(*str++);

              }

              }

              /* 初始化 1602 液晶 */

              void InitLcd1602(){

              LcdWriteCmd(0x38); //16*2 顯示,5*7 點陣,8 位數據接口

              LcdWriteCmd(0x0C); //顯示器開,光標關閉

              LcdWriteCmd(0x06); //文字不動,地址自動+1

              LcdWriteCmd(0x01); //清屏

              }

              /*****************************main.c 文件程序源代碼******************************/

              #include

              #include

              #define I2CDelay() {_nop_();_nop_();_nop_();_nop_();}

              sbit I2C_SCL = P3^7;

              sbit I2C_SDA = P3^6;容-源-電-子-網-為你提供技術支持

              本文地址:http://m.zskn.com.cn/dz/22/15755085833520.shtml


              本文標簽:


              .
              123下一頁尾頁
              頂一下
              0%
              返回首頁
              0
              0%

              ------分隔線----------------------------
              發表評論
              請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
              表情:
              名稱: E-mail: 驗證碼: 匿名發表
              發布文章,推廣自己產品。
              熱門標簽
               
              主站蜘蛛池模板: 免费a级毛片18以上观看精品| 在线观看人成视频免费| 亚洲免费人成在线视频观看| 毛片无遮挡高清免费| 免费午夜福利不卡片在线播放| 亚洲色大成网站WWW永久网站| 亚洲精品一区二区国产精华液| 精品人妻中文av一区二区三区 | 99re6在线视频精品免费下载| 动漫高h纯肉无码视频在线观看| 国产午夜福利精品视频| 久久这里只有精品首页| 国内一区二区三区香蕉aⅴ| 亚洲熟女精品一区二区| 777午夜福利理论电影网| 精品国产国语对白久久免费| 97av麻豆蜜桃一区二区| 亚洲乱码中文字幕小综合| 久久人人97超碰国产精品| 国产精品亚洲av三区色| 国产乱码一区二区三区免费| 人人妻人人爽人人做夜欢视频九色| 无套内射在线观看theporn| 亚洲精品一二三四区| 香蕉伊蕉伊中文视频在线| 97精品国产一区二区三区四区 | 夜夜高潮夜夜爽夜夜爱| 亚州中文字幕午夜福利电影| 国产精品毛片一区视频播| 无套内射在线无码播放| 毛片完整版的免费观看| 亚洲成人av在线资源网| 国产精品理论片在线观看| 久久精品影视免费观看| 蜜芽久久人人超碰爱香蕉| 四虎影视在线永久免费观看| 久久久久人妻精品一区蜜桃| 大战丰满无码人妻50p| 国产精品 精品国内自产拍| 国产白嫩美女在线观看| 国产亚洲精品久久久美女18黄|