freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設計-基于8051單片機的電子電話薄設計(編輯修改稿)

2025-07-10 09:53 本頁面
 

【文章內(nèi)容簡介】 s()。 //延時 } 應答信號: 圖 應答信號時序 SCL 在高電平期間, SDA 被從 設備拉為低電平表示應答。 應答程序: 調(diào)用方式: void AT24C02_Respons() 函數(shù)說明:私有函數(shù), I2C 專用 */ void AT24C02_Respons() { uchar i=0。 SCL=1; 基于 8051 單片機的電子電話簿的設計 8 Delay5us()。 While((SDA==1)amp。amp。(i255)) i++。 SCL=0。 Delay5us()。 } 上面 代碼中有一個( SDA==1)和( i255)相與的關系,表示若在這一段時間內(nèi)從器件的應答則主器件默認從器件已經(jīng)收到數(shù)據(jù)而不在等待應答信號。 數(shù)據(jù)的建立和有效: 圖 數(shù)據(jù)的建立和有效 上圖表示在傳輸數(shù)據(jù)時, SCL 高電平的時候, SDA 上的數(shù)據(jù)不能變化,因為前面已經(jīng)說明,這是數(shù)據(jù)的變化將會認為是開始或者結(jié)束的信號。在 SCL 低電平時數(shù)據(jù)可以改變。 I2C 規(guī)程運用主 /從雙向通訊。器件發(fā)送數(shù)據(jù)到總線上,則定義為發(fā)送器,器件接收數(shù)據(jù)則定義為接收器。主器件和從器件都可以工作于接收和發(fā)送狀態(tài)。 總線必須由主 器件(通常為微控制器)控制,主器件產(chǎn)生串行時鐘( SCL)控制總線的傳輸方向,并產(chǎn)生起始和停止條件。 SDA 線上的數(shù)據(jù)狀態(tài)僅在 SCL 為低電平的期間才能改變, SCL 為高電平的期間, SDA 狀態(tài)的改變被用來表示起始和停止條件。 2. CI2 的尋址過程 在 CI2 總線上的數(shù)據(jù)傳輸,除了開始和停止之外,由于可以多個從設備共用總線還會有一個尋址過程。尋址過程通過主設備發(fā)送一定格式的尋址命令進行。尋址命令由起個位的從設備地址、一位讀寫標志和一位響應信號組成。七位的從設備地址可以由設計者任意設定,不過 0000000 是一個通用尋址地址。當 主設備需要向所有的從設備傳輸同樣的信息的時候,可以使用通用尋址地址,這時,總線上的所有設備拉低 SDA 線,響應這個命令。此后,主設備往總線上寫的數(shù)據(jù)會被所有的相應這個尋址命令的從設備接收到。但是,一個通用的都命令是沒有意義的,因為有可能不同的從設備會向總線傳送不同的數(shù)據(jù)(電平),從而引起總線沖突。 從設備地址 11111xxx 需要留給將來的應用。有的從設備進一步規(guī)定了尋址的格式。比如 ATMEL 公司 24CXX 系列的 EEPROM 就規(guī)定尋址的開始四位必須是 1010。這是根據(jù)相應器件的說明書設置相應的地址就行了。 讀寫 控制位是 1 的時候執(zhí)行讀操作,是 0 的時候執(zhí)行寫操作。 往總線傳輸時最高位( MSB)最先送出,最后是讀寫指令,當相應器件被尋址的時候,基于 8051 單片機的電子電話簿的設計 9 它會拉低 SDA 線,作為回應。如果沒有器件被正確尋址,或者要尋址的器件忙,則 SDA會保持高。這是主設備就會知道尋址沒有成功,可以發(fā)送一個停止命令,或者重新開始命令。 3. CI2 的數(shù)據(jù)發(fā)送過程 尋址以后就是數(shù)據(jù)發(fā)送過程。這時主設備負責產(chǎn)生時鐘,發(fā)送開始和停止指令,接收設備需要接收到數(shù)據(jù)要發(fā)出回應。時鐘的第九個周期如果 SDA 被拉低,表示接收回應,如果還是保持高,則表示沒有回應。數(shù)據(jù)有八 位,高位先傳輸。 寫一個字節(jié): 調(diào)用方式: void AT24C02_WriteByte() 函數(shù)說明:私有函數(shù), I2C 專用 */ void AT24C02_WriteByte(uchar date) { uchar i,temp。 temp=date。 for(i=0。i8。i++) { temp=temp1。 SCL=0。 Delay5us()。 SDA=CY。 Delay5us()。 SCL=1。 Delay5us()。 } SCL=0。 Delay5us()。 SDA=1。 Delay5us()。 } 串行發(fā)送一個字節(jié)時,需要把這個字節(jié)中的 8 位一位一位的發(fā)出去。 讀一個字節(jié): 調(diào)用方式: uchar AT24C02_ReadByte() 函數(shù)說明:私有函數(shù), I2C 專用 */ uchar AT24C02_ReadByte(uchar date) { uchar i,k。 SCL=0。 Delay5us()。 SDA=1。 for(i=0。i8。i++) 基于 8051 單片機的電子電話簿的設計 10 { SCL=1。 Delay5us()。 K=(k1)|SDA。 SCL=0。 Delay5us()。 } Delay5us()。 return k。 } 串行接收一個字節(jié)時,需要把這個字節(jié)中的 8 位一位一位的接收,然后再組合成一個字節(jié)。 AT24C02 芯片簡單介紹 AT24C02 是 ATMEL 公司生產(chǎn)的 EEPROM。它共有 2K位,按照字節(jié)尋址。下面是它的管腳圖和管腳功能的列表。 A2 A1 A0 是用來設置從設備地址的,這就意味著,可以有八個這樣的器件共享一條總線。外部不連接的地址位缺省為 0。 下面是 AT24C64 芯片管腳圖: 圖 AT24C02 引腳圖和引腳說明 在本系統(tǒng)中,只用到一個 AT24C02 芯片,因此 A2 A1 A0 地址線直接接地, GND 端接地, VCC 端接高電平, SCL 與 SDA 和單片機的 P1 P13 口相連。 1. 器件尋址 當然器件尋址的操作一般不會單獨進行,前面要有開始信號,后面將是讀寫操作。操作 EEPROM 的時候先要尋址希望訪問的器件。尋址命令的結(jié)構(gòu)和前面描述的是一樣的不過,前四個字節(jié)必須是 1010 后面三個才是有效的器件地址。如果器件被正確尋址會輸出0 作為響應,否則進入空閑狀態(tài)。 下面是一個說明尋址命令結(jié)構(gòu)的圖: 基于 8051 單片機的電子電話簿的設計 11 圖 器件尋址 2. 讀時序 圖 讀時序 上面的圖說明了,從 EEPROM 中讀一個字節(jié)的時序。先是開始信號,然后是器件尋址操作,接著是兩個字節(jié)要讀的字節(jié)的地址。這些發(fā)送完 畢以后,主設備要重新發(fā)送開始信號,再進行器件尋址操作,隨后就會讀出指定地址的數(shù)據(jù)。需要注意的是,在發(fā)送地址時的器件尋址操作,讀寫控制位置為寫狀態(tài),在后一個器件尋址操作時,讀寫控制位置為讀。讀出一個字節(jié)后如果不發(fā)送停止信號,可以繼續(xù)讀出下一個字節(jié),依此類推,知道讀到對后一個地址,又會從零地址開始讀出數(shù)據(jù)。 AT24C02 讀程序: uchar AT24c02_ReadAdd(uchar address) { uchar date。 AT24C02_Start()。 AT24C02_WriteByte(0xa0)。 AT24C02_Respons()。 AT24C02_WriteByte(address)。 AT24C02_Respons()。 AT24C02_Start()。 AT24C02_WriteByte(0xa1)。 AT24C02_Respons()。 date= AT24C02_ReadByte()。 AT24C02_Stop()。 return date。 } 3. 寫時序 下圖是寫操作的示意圖 .可以看出寫操作比讀簡單一些。發(fā)送開始信號后,只需要一次器件尋址,讀寫控制置為寫狀態(tài) ,接著發(fā)送要寫入數(shù)據(jù)的地址,然后就是要寫入的數(shù)據(jù)。如果只需要寫入一個字節(jié),傳輸完一個字節(jié)數(shù)據(jù)后發(fā)送停止信號就完成了一次寫操作。不過 24C02 具有按頁寫的功能,每頁 8 個字節(jié),所以寫完一個字節(jié)后還可以最多寫入 63 個字節(jié)的數(shù)據(jù)。地址的高位保持不變。低五位會自動加 1。如果總數(shù)超過了一頁的地址,會把多寫入的字節(jié)寫入這一頁的開頭去。 基于 8051 單片機的電子電話簿的設計 12 圖 寫時序 下面是寫程序 void AT24c02_WriteAdd(uchar address,uchar date) { AT24C02_Start()。 AT24C02_WriteByte(0xa0)。 AT24C02_Respons()。 AT24C02_WriteByte(address)。 AT24C02_Respons()。 AT24C02_WriteByte(date)。 AT24C02_Respons()。 AT24C02_Stop()。 } 帶字庫的 12864 液晶顯示屏介紹 一、液晶顯示模塊概述 12864 中文 漢字圖形點陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置 8192 個中文漢字( 16X16 點陣)、 128 個字符( 8X16 點陣 )及 64X256 點陣顯示 RAM( GDRAM) 。 主要技術參數(shù)和顯示特性 : 電源: VDD ~ +5V( 內(nèi)置升壓電路,無需負壓 ); 顯示內(nèi)容: 128 列 64 行 顯示顏色:黃綠 /藍屏 / 灰屏 顯示角度: 6 : 00 鐘直視 LCD 類型: STN 與 MCU接口: 8 位或 4 位并行 /3 位串行 配置 LED 背光 多種軟件功能:光標顯示、畫面移位、自定義字符、睡眠模式等 二、模塊引腳說明 基于 8051 單片機的電子電話簿的設計 13 圖 12864 引腳說明 邏輯工作電壓 (VDD) : ~ 電源地 (GND) : 0V 工作溫度 (Ta) : 0~ 60 ℃ ( 常溫 ) / 20 ~ 75 ℃(寬溫 ) 三、接口時序 模塊有并行和串行兩種連接方法(時序如下): 8 位并行連接時序圖 MPU寫資料到模塊 基于 8051 單片機的電子電話簿的設計 14 圖 接口時序圖 四、用戶指令集 基于 8051 單片機的電子電話簿的設計 15 圖 12864 指令集 基于 8051 單片機的電子電話簿的設計 16 圖 12864 擴展指令集 備注: 1 、當模塊在接受指令前,微處理順必須先確認模塊內(nèi)部處于非忙碌狀態(tài),即讀取 BF標志時 BF 需為 0, 方可接受新的指令;如果在送出一個指令前并 不檢查 BF 標志 ,那么在前一個指令和這個指令中間必須延 遲一段較長的時間,即是等待前一個指令確實執(zhí)行完成,指令執(zhí)行的時間請參考指令表中的個別指令說明。 2 、“ RE”為基本指令集與擴充指令集的選擇控制位元,當變更“ RE”位元后,往后的指令集將維持在最后 的狀態(tài),除非再次變更“ RE”位元,否則使用相同指令集時,不需每次重設“ RE”位元。 五、顯示坐標關系 : 水平方向 X— 以字節(jié)單位 垂直方向 Y— 以位為單位 基于 8051 單片機的電子電話簿的設計 17 圖 12864 漢字顯示坐標 圖 12864 字符地址 六 、驅(qū)動函數(shù): 引腳定義: sbit LCD_RS=P2^5。 //命令 /數(shù)據(jù)引腳 基于 8051 單片機的電子電話簿的設計 18 sbit LCD_RW=P2^6。 //讀寫引腳 sbit LCD_E=P2^7。 //使能引腳 sbit LCD_PSB=P2^4。 //PSB 腳為 12864 系列的串、并通訊功能切換, PSB=1 為并口,PSB=0 則為串口 寫數(shù)據(jù) void WriteDataLCD(uchar dat)//寫數(shù)據(jù) { LCD_RS=1。 LCD_RW=0。 LCD_E=0。 P0=dat。 DelayMs(1)。 LCD_E=1。 DelayMs(1)。 LCD_E=0。 } 寫命令 void WriteCmdLCD(uchar cmd)//寫命令 { LCD_RS=0。 LCD_RW=0。 LCD_E=0。 P0=cmd。 DelayMs(1)。 LCD_E=1。 DelayMs(1)。 LCD_E=0。 } 液晶初始化函數(shù) void LCDInit()//初始化函數(shù) { LCD_PSB=1。//并口模式 WriteCmdLCD(0x30)。//8 位基本指令操作 DelayMs(5)。 WriteCmdLCD(0x0c)。//顯示開,關光標 DelayMs(5)。 WriteCmdLCD(0x01)。//清屏,把 DDRAM 計數(shù)器地址調(diào)整為 00H DelayMs(5)。 WriteCmdLCD(0x06)。//指定在資料的讀取和寫入時光標的移動方向, DDRAM 的地址計數(shù)器( AC)加 1 DelayMs(5)。 } 基于 8051 單片機的電子電話簿的設計 19 4*4 矩陣鍵盤 獨立鍵盤與單片機連接時,每一個按鍵都需要單片
點擊復制文檔內(nèi)容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1