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

正文內(nèi)容

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

2025-07-10 09:53 本頁面
 

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