單片機(jī)課程基于ZG使用C語言編程的電子鐘顯示有源代碼_第1頁
單片機(jī)課程基于ZG使用C語言編程的電子鐘顯示有源代碼_第2頁
單片機(jī)課程基于ZG使用C語言編程的電子鐘顯示有源代碼_第3頁
單片機(jī)課程基于ZG使用C語言編程的電子鐘顯示有源代碼_第4頁
單片機(jī)課程基于ZG使用C語言編程的電子鐘顯示有源代碼_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué) 號(hào): 浙江理工大學(xué)課 程 設(shè) 計(jì)題 目實(shí)時(shí)時(shí)鐘顯示設(shè)計(jì)學(xué) 院計(jì)算機(jī)科學(xué)與技術(shù)專 業(yè)計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí) 姓 名 指導(dǎo)教師 2010年11月28日課程設(shè)計(jì)任務(wù)書學(xué)生姓名: 專業(yè)班級(jí): 指導(dǎo)教師: 工作單位: 題 目:實(shí)時(shí)時(shí)鐘顯示設(shè)計(jì)初始條件:1. 課程設(shè)計(jì)使用zg211硬件綜合實(shí)驗(yàn)平臺(tái)(8051單片機(jī)),配有課程設(shè)計(jì)接口芯片和輔助芯片以及器件;2. zg211有程序設(shè)計(jì)集成開發(fā)環(huán)境,程序設(shè)計(jì)語言為c語言;3. zg211硬件綜合實(shí)驗(yàn)平臺(tái)使用說明書;要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,撰寫說明書具體要求)1. 學(xué)習(xí)使用zg211硬件綜合實(shí)驗(yàn)平臺(tái),程序設(shè)計(jì)集成開發(fā)環(huán)境;2.

2、 根據(jù)課程設(shè)計(jì)題目,進(jìn)行需求分析,搞清楚課程設(shè)計(jì)需要設(shè)計(jì)需求和需要解決的設(shè)計(jì)內(nèi)容。3. 查閱和學(xué)習(xí)課程設(shè)計(jì)題目需要的接口芯片資料,掌握接口芯片的使用方法和編程要領(lǐng)。查閱和學(xué)習(xí)課程設(shè)計(jì)題目需要的輔助芯片以及器件資料。4. 設(shè)計(jì)接口芯片和輔助芯片以及器件與8051單片機(jī)連接硬件電路原理圖。5. 設(shè)計(jì)與硬件電路原理圖對(duì)應(yīng)的c語言程序(或8051匯編語言)。給出程序流程圖。在集成開發(fā)環(huán)境中調(diào)試程序。給出程序的詳細(xì)注釋。能夠解釋使用程序模擬電路時(shí)序信號(hào)和數(shù)據(jù)。6. 撰寫課程設(shè)計(jì)報(bào)告,1)詳細(xì)陳述以上的設(shè)計(jì)過程;2)詳細(xì)陳述電路的調(diào)試過程。時(shí)間安排:第13周:1. 熟悉zg211硬件綜合實(shí)驗(yàn)平臺(tái),keil

3、c uvision2 集成開發(fā)環(huán)境;查閱接口芯片資料,熟悉接口芯片和它的使用方法。2. 設(shè)計(jì)硬件電路原理圖。第14周:1. 使用c語言或匯編語言設(shè)計(jì)和調(diào)試接口程序。2. 撰寫計(jì)算機(jī)硬件綜合設(shè)計(jì)報(bào)告。指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任教師)簽名: 年 月 日實(shí)時(shí)時(shí)鐘顯示設(shè)計(jì)1需求分析1.1實(shí)驗(yàn)?zāi)康?.掌握io 口操作。2.掌握顯示及鍵盤芯片的運(yùn)用。3.了解中斷的運(yùn)用。4.了解i2c 總線操作。1.2實(shí)驗(yàn)設(shè)備1. pc 機(jī)一臺(tái);zg-211 單片機(jī)系統(tǒng)實(shí)驗(yàn)板一塊;實(shí)驗(yàn)連接線若干。2.芯片:ch451,89s52,cd4052,pcf8563。3.配套并口編程線一根。4.配套電源一個(gè)。1.2.

4、1 ch451芯片(1)概述ch451 是一個(gè)整合了數(shù)碼管顯示驅(qū)動(dòng)和鍵盤掃描控制以及p 監(jiān)控的多功能外圍芯片。ch451 內(nèi)置rc 振蕩電路,可以動(dòng)態(tài)驅(qū)動(dòng)8 位數(shù)碼管或者64 位led,具有bcd 譯碼、閃爍、移位等功能;同時(shí)還可以進(jìn)行64 鍵的鍵盤掃描;ch451 通過可以級(jí)聯(lián)的串行接口與單片機(jī)等交換數(shù)據(jù);并且提供上電復(fù)位和看門狗等監(jiān)控功能。(2)特點(diǎn)1. 顯示驅(qū)動(dòng) 內(nèi)置大電流驅(qū)動(dòng)級(jí),段電流不小于30ma,字電流不小于160ma。 動(dòng)態(tài)顯示掃描控制,直接驅(qū)動(dòng)8 位數(shù)碼管或者64 位發(fā)光管led。 可選數(shù)碼管的段與數(shù)據(jù)位相對(duì)應(yīng)的不譯碼方式或者bcd 譯碼方式。 字?jǐn)?shù)據(jù)左移、右移、左循環(huán)、右循環(huán)

5、。 各數(shù)字獨(dú)立閃爍控制。 通過占空比設(shè)定提供16 級(jí)亮度控制。 支持段電流上限調(diào)整,可以省去所有限流電阻。 掃描極限控制,支持1 到8 個(gè)數(shù)碼管,只為有效數(shù)碼管分配掃描時(shí)間。2. 鍵盤控制 內(nèi)置64 鍵鍵盤控制器,基于88 矩陣鍵盤掃描。 內(nèi)置去抖動(dòng)電路。 鍵盤中斷,低電平有效輸出。 提供按鍵釋放標(biāo)志位。3. 外部接口 高速的4 線串行接口,支持芯片級(jí)聯(lián),時(shí)鐘速度從0 到10mhz。 串行接口中的din 和dclk 信號(hào)線可以與其它接口電路共用。 完全內(nèi)置rc 阻容振蕩電路,根據(jù)需要可以外接阻容振蕩。 內(nèi)置上電復(fù)位和看門狗watch-dog,提供高電平有效和低電平有效復(fù)位輸出。4. 其它雜項(xiàng)

6、可選多種封裝:dip28、sop28、dip24s。 經(jīng)過授權(quán)采用了2 項(xiàng)專利技術(shù),低成本,簡(jiǎn)便易用。單片機(jī)mcu等ch451外圍芯片8 位數(shù)碼管或64 位發(fā)光管dclkdoutrstrst#loaddin88 矩陣64 鍵鍵盤dig7-0seg7-01.2.2 89s52芯片(1)主要性能 與mcs-51單片機(jī)產(chǎn)品兼容。 8k字節(jié)在系統(tǒng)可編程flash存儲(chǔ)器。 1000次擦寫周期。 全靜態(tài)操作:0hz33hz。 三級(jí)加密程序存儲(chǔ)器。 32個(gè)可編程i/o口線。 三個(gè)16位定時(shí)器/計(jì)數(shù)器。 八個(gè)中斷源。 全雙工uart串行通道。 低功耗空閑和掉電模式。11 掉電后中斷可喚醒。12 看門狗定時(shí)器。

7、13 雙數(shù)據(jù)指針。14 掉電標(biāo)識(shí)符。(2)功能特性描述at89s52是一種低功耗、高性能cmos8位微控制器,具有8k 在系統(tǒng)可編程flash 存儲(chǔ)器。使用atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容。片上flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位cpu 和在系統(tǒng)可編程flash,使得at89s52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。at89s52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)flash,256字節(jié)ram,32 位i/o 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2

8、級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,at89s52 可降至0hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu停止工作,允許ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,ram內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。1.2.3 cd4052芯片(1)簡(jiǎn)要說明cc4052 是一個(gè)差分4 通道數(shù)字控制模擬開關(guān),有a0、a1 兩個(gè)二進(jìn)制控制輸入端和inh 輸入,具有低導(dǎo)通阻抗和很低的截止漏電流。幅值為4.520v 的數(shù)字信號(hào)可控制峰峰值至20v 的模擬信號(hào)。例如,若vdd5v,vss0,vee13.5v,則05v 的數(shù)

9、字信號(hào)可控制13.54.5v 的模擬信號(hào)。這些開關(guān)電路在整個(gè)vddvss 和vddvee 電源范圍內(nèi)具有極低的靜態(tài)功耗,與控制信號(hào)的邏輯狀態(tài)無關(guān)。當(dāng)inh 輸入端“1”時(shí),所有的通道截止。二位二進(jìn)制信號(hào)選通4通道中的一通道,可連接該輸入端至輸出。cc4052 提供了16 引線多層陶瓷雙列直插(d)、熔封陶瓷雙列直插(j)、塑料雙列直插(p)和陶瓷片狀載體(c)4 種封裝形式。(2)推薦工作條件電源電壓范圍3v15v輸入電壓范圍0vvdd(3)工作溫度范圍m類55125e 類.4085(4)極限值電源電壓.0.5v18v輸入電壓0.5vvdd+0.5v輸入電流.10ma儲(chǔ)存溫度65150(5)引

10、出端符號(hào)a0a1 地址端1i0/o01i3/o3 輸入輸出端2i0/o02i3/o3 輸入輸出端inh 禁止端1o/i 公共輸出/輸入端2o/i 公共輸出/輸入端vdd 正電源vee 模擬信號(hào)地vss 數(shù)字信號(hào)地(6)邏輯符號(hào)1.2.4 pcf8563芯片(1)概述pcf8563 是低功耗的cmos 實(shí)時(shí)時(shí)鐘日歷芯片,它提供一個(gè)可編程時(shí)鐘輸出,一個(gè)中斷輸出和掉電檢測(cè)器,所有的地址和數(shù)據(jù)通過i2c 總線接口串行傳遞。最大總線速度為400kbits/s,每次讀寫數(shù)據(jù)后,內(nèi)嵌的字地址寄存器會(huì)自動(dòng)產(chǎn)生增量。(2)特性 低工作電流:典型值為0.25a(vdd=3.0v,tamb=25時(shí))。 世紀(jì)標(biāo)志。

11、大工作電壓范圍:1.05.5。 低休眠電流;典型值為0.25a(vdd=3.0v,tamb=25)。 400khz 的i2c 總線接口(vdd=1.85.5v 時(shí))。 可編程時(shí)鐘輸出頻率為:32.768khz,1024hz,32hz,1hz。 報(bào)警和定時(shí)器。 掉電檢測(cè)器。 內(nèi)部集成的振蕩器電容。 片內(nèi)電源復(fù)位功能。11 i2c 總線從地址:讀,0a3h;寫,0a2h。12 開漏中斷引腳。(3)應(yīng)用 移動(dòng)電話 便攜儀器 傳真機(jī) 電池電源產(chǎn)品(4)功能描述pcf8563 有16 個(gè)位寄存器:一個(gè)可自動(dòng)增量的地址寄存器,一個(gè)內(nèi)置32.768khz 的振蕩器(帶有一個(gè)內(nèi)部集成的電容),一個(gè)分頻器(用于

12、給實(shí)時(shí)時(shí)鐘rtc 提供源時(shí)鐘),一個(gè)可編程時(shí)鐘輸出,一個(gè)定時(shí)器,一個(gè)報(bào)警器,一個(gè)掉電檢測(cè)器和一個(gè)400khz i2c總線接口。所有16 個(gè)寄存器設(shè)計(jì)成可尋址的8 位并行寄存器,但不是所有位都有用。前兩個(gè)寄存器(內(nèi)存地址00h,01h)用于控制寄存器和狀態(tài)寄存器,內(nèi)存地址02h08h 用于時(shí)鐘計(jì)數(shù)器(秒年計(jì)數(shù)器),地址09h0ch 用于報(bào)警寄存器(定義報(bào)警條件),地址0dh 控制clkout 管腳的輸出頻率,地址0eh 和0fh 分別用于定時(shí)器控制寄存器和定時(shí)器寄存器。秒、分鐘、小時(shí)、日、月、年、分鐘報(bào)警、小時(shí)報(bào)警、日?qǐng)?bào)警寄存器,編碼格式為bcd,星期和星期報(bào)警寄存器不以bcd 格式編碼。當(dāng)一個(gè)

13、rtc 寄存器被讀時(shí),所有計(jì)數(shù)器的內(nèi)容被鎖存,因此,在傳送條件下, 可以禁止對(duì)時(shí)鐘日歷芯片的錯(cuò)讀。1.3實(shí)驗(yàn)板模塊真實(shí)實(shí)驗(yàn)板示意圖如下:2實(shí)驗(yàn)要求 能正常操作led 數(shù)碼顯示。 能通過中斷方式接收按鍵信息。 能通過i2c 總線方式與pcf8563 芯片交換數(shù)據(jù)。 能正確解釋并顯示從pcf8563 芯片取出的日期和時(shí)間數(shù)據(jù)。在應(yīng)用所學(xué)計(jì)算機(jī)硬件相關(guān)課程中的知識(shí)的基礎(chǔ)之上,使用c語音實(shí)現(xiàn)對(duì)接口的編程方法。熟悉51系列單片機(jī)原理,并口工作原理和編程方法。學(xué)習(xí)ch451和ds18b20芯片的引腳功能和編程方法。在pc機(jī)上安裝keilc51在線編程軟件,編寫“數(shù)字顯示與鍵盤輸入”程序。使用并口線把zg2

14、11實(shí)驗(yàn)板與pc 機(jī)連接起來,仔細(xì)檢查無誤后接通電源。pc機(jī)上c程序編譯成功后,打開聯(lián)機(jī)下載軟件,將hex 文件下載到89s52 單片機(jī)中去。觀看下載程序在89s52 單片機(jī)中運(yùn)行情況。如有問題,則在pc機(jī)上修改程序,然后再次下載運(yùn)行。能正常操作led 數(shù)碼顯示,通過中斷方式接收按鍵信息。設(shè)計(jì)階段,能夠正確進(jìn)行程序設(shè)計(jì)電路設(shè)計(jì)。課程設(shè)計(jì)實(shí)驗(yàn)階段,能夠正確連接電路;能夠分析和解決在實(shí)驗(yàn)中碰見的問題;解決問題的思路和方法正確;實(shí)驗(yàn)結(jié)果滿足課程設(shè)計(jì)要求。主要任務(wù):1. 學(xué)習(xí)使用zg211硬件綜合實(shí)驗(yàn)平臺(tái),程序設(shè)計(jì)集成開發(fā)環(huán)境;2. 根據(jù)課程設(shè)計(jì)題目,進(jìn)行需求分析,搞清楚課程設(shè)計(jì)需要設(shè)計(jì)需求和需要解決

15、的設(shè)計(jì)內(nèi)容。3. 查閱和學(xué)習(xí)課程設(shè)計(jì)題目需要的接口芯片資料,掌握接口芯片的使用方法和編程要領(lǐng)。查閱和學(xué)習(xí)課程設(shè)計(jì)題目需要的輔助芯片以及器件資料。4. 設(shè)計(jì)接口芯片和輔助芯片以及器件與8051單片機(jī)連接硬件電路原理圖。5. 設(shè)計(jì)與硬件電路原理圖對(duì)應(yīng)的c語言程序(或8051匯編語言)。給出程序流程圖。在集成開發(fā)環(huán)境中調(diào)試程序。給出程序的詳細(xì)注釋。能夠解釋使用程序模擬電路時(shí)序信號(hào)和數(shù)據(jù)。6. 撰寫課程設(shè)計(jì)報(bào)告,1)詳細(xì)陳述以上的設(shè)計(jì)過程;2)詳細(xì)陳述電路的調(diào)試過程。3實(shí)驗(yàn)原理在單片機(jī)應(yīng)用系統(tǒng)中的實(shí)時(shí)時(shí)鐘信號(hào),一般都由專門的時(shí)鐘芯片來提供,單片機(jī)只需要定期讀取時(shí)鐘芯片中固定地址中的時(shí)鐘信息即可。本實(shí)驗(yàn)

16、板采用的是pcf8563 時(shí)鐘芯片。pcf8563 芯片的引腳說明見表下表。符號(hào)管腳號(hào)描述osci1振蕩器輸入osco2振蕩器輸出 /int3中斷輸出(開漏:低電平有效)vss4地sda5串行數(shù)據(jù)i/oscl6串行時(shí)鐘輸入clkout7時(shí)鐘輸出(開漏)vdd8正電源pcf8563 芯片在第一次運(yùn)行時(shí)需要設(shè)置控制寄存器和狀態(tài)寄存器,見表如下,一般均設(shè)置為0。地址位bit符號(hào)描述007test1test1=0;普通模式test1=1;ext_clk 測(cè)試模式5stopstop=0 ;芯片時(shí)鐘運(yùn)行 stop=1 ;所有芯片分頻器異步置邏輯0;芯片時(shí)鐘停止運(yùn)行, (clkout 在32.768khz

17、時(shí)可用)3testctestc= 0;電源復(fù)位功能失效 (普通模式時(shí)置邏輯0)testc=1; 電源復(fù)位功能有效6,4,2,1,00缺省值置邏輯0017,6,50缺省值置邏輯04ti/tfti/tp=0: 當(dāng)tf 有效時(shí)int 有效 (取決于tie 的狀態(tài))ti/tp=1:int 脈沖有效(取決于tie 的狀態(tài))注意:若af 和aie 都有效時(shí),則int 一直有效3af當(dāng)報(bào)警發(fā)生時(shí),af 被置邏輯1;在定時(shí)器倒計(jì)數(shù)結(jié)束時(shí),tf 被置邏輯1,它們?cè)诒卉浖貙懬耙恢北3衷兄?,若定時(shí)器和報(bào)警中斷都請(qǐng)求時(shí),中斷源由af 和tf 決定,若要使清除一個(gè)標(biāo)志位而防止另一標(biāo)志位被重寫,應(yīng)運(yùn)用邏輯指令and。

18、2tf1aie標(biāo)志位aie 和tie 決定一個(gè)中斷的請(qǐng)求有效或無效,當(dāng)af 或tf 中一個(gè)為“1” 時(shí)中斷是aie 和tie 都置“1” 時(shí)的邏輯或。ae=0 :報(bào)警中斷無效;aie=1 :報(bào)警中斷有效tie=0 :定時(shí)器中斷無效;tie=1 :定時(shí)器中斷有效0tie在 pcf8563 芯片中,秒、分鐘、小時(shí)、日、月、年編碼格式為bcd。星期不以bcd 格式編碼。具體格式見表如下。地址說明bit符號(hào)描 述02h秒/vl寄存器7vlvl=0: 保證準(zhǔn)確的時(shí)鐘/日歷數(shù)據(jù) vl=1:不保證準(zhǔn)確的時(shí)鐘/ 日歷數(shù)據(jù)60代表bcd 格式的當(dāng)前秒數(shù)值,值為0099例如:1011001, 代表59 秒03h分

19、鐘寄存器7無效60代表bcd 格式的當(dāng)前分鐘數(shù)值,值為005904h小時(shí)寄存器76無效50代表bcd 格式的當(dāng)前小時(shí)數(shù)值,值為0023:05h日寄存器76無效50代表bcd 格式的當(dāng)前日數(shù)值, 值為0131。當(dāng)年計(jì)數(shù)器的值是閏年時(shí),pcf8563 自動(dòng)給二月增加一個(gè)值,使其成為29 天06h星期寄存器73無效20代表當(dāng)前星期數(shù)值06,這些位也可由用戶重新分配07h月寄存器7c世紀(jì)位;c=0 指定世紀(jì)數(shù)為20,c=1 指定世紀(jì)數(shù)為19,“” 為年寄存器中的值。當(dāng)年寄存器中的值由99 變?yōu)?0時(shí),世紀(jì)位會(huì)改變。65無用08h年寄存器70年代表bcd 格式的當(dāng)前年數(shù)值,值為0099實(shí)驗(yàn)只使用 pcf

20、8563 的時(shí)間讀取功能,只需對(duì)該芯片地址02h-08h 的內(nèi)存進(jìn)行讀寫操作,其它地址的內(nèi)存保持為默認(rèn)值,實(shí)驗(yàn)板上提供電池,可以在掉電后保持時(shí)鐘正常工作。實(shí)驗(yàn)板上pcf8563 的相關(guān)連接原理圖如下圖所示。其中cd4052 芯片的操作見下表。ab選通狀態(tài)00x=x0;y=y010x=x1;y=y101x=x2;y=y211x=x3;y=y34 i2c協(xié)議i2c 總線用兩條線(sda 和scl)在芯片和模塊間傳遞信息。sda 為串行數(shù)據(jù)線,scl為串行時(shí)鐘線。1只有在總線空閑時(shí)才允許啟動(dòng)數(shù)據(jù)傳送。2在數(shù)據(jù)傳送過程中,當(dāng)時(shí)鐘線為高電平時(shí),數(shù)據(jù)線必須保持穩(wěn)定狀態(tài)不允許。有跳變時(shí)鐘線為高電平時(shí),數(shù)據(jù)線

21、的任何電平變化將被看作總線的起始或停止信號(hào)。(1)起始信號(hào)時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從高到低的跳變作為 i2c 總線的起始信號(hào)。(2)停止信號(hào)時(shí)鐘線保持高電平期間,數(shù)據(jù)線電平從低到高的跳變作為 i2c 總線的停止信號(hào)??偩€時(shí)序?qū)懼芷跁r(shí)序起始/停止時(shí)序(3)器件尋址主器件通過發(fā)送一個(gè)起始信號(hào)啟動(dòng)發(fā)送過程,然后發(fā)送它所要尋址的從器件的地址。8位從器件地址的高4 位固定為1010。 接下來的3 位a2 a1 a0 為器件的地址位,用來定義哪個(gè)器件以及器件的哪個(gè)部分被主器件訪問。從器件8 位地址的最低位, 作為讀寫控制位?!?” 表示對(duì)從器件進(jìn)行讀操作,“0” 表示對(duì)從器件進(jìn)行寫操作。在主器件發(fā)

22、送起始信號(hào)和從器件地址字節(jié)后,pcf8563 監(jiān)視總線并當(dāng)其地址與發(fā)送的從地址相符時(shí)響應(yīng)一個(gè)應(yīng)答信號(hào)(通過sda 線)。pcf8563 再根據(jù)讀寫控制位(r/w)的狀態(tài)進(jìn)行讀或?qū)懖僮鳌?4)應(yīng)答信號(hào)i2c 總線數(shù)據(jù)傳送時(shí)每成功地傳送一個(gè)字節(jié)數(shù)據(jù)后,接收器都必須產(chǎn)生一個(gè)應(yīng)答信號(hào),應(yīng)答的器件在第9 個(gè)時(shí)鐘周期時(shí)將sda 線拉低,表示其已收到一個(gè)8 位數(shù)據(jù)。pcf8563 在接收到起始信號(hào)和從器件地址之后響應(yīng)一個(gè)應(yīng)答信號(hào),如果器件已選擇了寫操作,則在每接收一個(gè)8 位字節(jié)之后響應(yīng)一個(gè)應(yīng)答信號(hào)。當(dāng)pcf8563 工作于讀模式時(shí),在發(fā)送一個(gè)8 位數(shù)據(jù)后釋放sda 線并監(jiān)視一個(gè)應(yīng)答信號(hào),一旦接收到應(yīng)答信號(hào),

23、pcf8563 繼續(xù)發(fā)送數(shù)據(jù),如主器件沒有發(fā)送應(yīng)答信號(hào),器件停止傳送數(shù)據(jù)并,等待一個(gè)停止信號(hào)主器件。應(yīng)答時(shí)序圖從器件地址位其中a0、a1 和a2 對(duì)應(yīng)24c02的管腳1、2 和3,pcf8563的從地址讀操作時(shí)為0a3h,寫操作時(shí)為0a2h。(5)寫操作:1.字節(jié)寫在字節(jié)寫模式下,主器件發(fā)送起始命令和從器件地址信息(r/w 位置零)給從器件,在從器件產(chǎn)生應(yīng)答信號(hào)后,主器件發(fā)送pcf8563 的字節(jié)地址,主器件在收到從器件的另一個(gè)應(yīng)答信號(hào)后,再發(fā)送數(shù)據(jù)到被尋址的存儲(chǔ)單元。pcf8563 再次應(yīng)答,并在主器件產(chǎn)生停止信號(hào)后開始內(nèi)部數(shù)據(jù)的擦寫,在內(nèi)部擦寫過程中pcf8563 不再應(yīng)答主器件的任何請(qǐng)求

24、。字節(jié)寫時(shí)序圖2頁寫用頁寫,pcf8563 可以一次寫入16 個(gè)字節(jié)的數(shù)據(jù),頁寫操作的啟動(dòng)和字節(jié)寫一樣,不同在于傳送了一字節(jié)數(shù)據(jù)后并不產(chǎn)生停止信號(hào)。主器件被允許發(fā)送p(pcf8563:p=15;)個(gè)額外的字節(jié)。每發(fā)送一個(gè)字節(jié)數(shù)據(jù)后pcf8563 產(chǎn)生一個(gè)應(yīng)答位并將字節(jié)地址低位加1, 高位保持不變。如果在發(fā)送停止信號(hào)之前主器件發(fā)送超過p+1 個(gè)字節(jié),地址計(jì)數(shù)器將自動(dòng)翻轉(zhuǎn),先前寫入的數(shù)據(jù)被覆蓋。接收到p+1 字節(jié)數(shù)據(jù)和主器件發(fā)送的停止信號(hào)后,芯片啟動(dòng)內(nèi)部寫周期將數(shù)據(jù)寫到數(shù)據(jù)區(qū),所有接收的數(shù)據(jù)在一個(gè)寫周期內(nèi)寫入pcf8563。頁寫時(shí)序圖(6)應(yīng)答查詢可以利用內(nèi)部寫周期時(shí)禁止數(shù)據(jù)輸入這一特性,一旦主器

25、件發(fā)送停止位指示主器件操作結(jié)束時(shí),pcf8563 啟動(dòng)內(nèi)部寫周期,應(yīng)答查詢立即啟動(dòng),包括發(fā)送一個(gè)起始信號(hào)和進(jìn)行寫操作的從器件地址。如果pcf8563 正在進(jìn)行內(nèi)部寫操作,不會(huì)發(fā)送應(yīng)答信號(hào)。如果pcf8563已經(jīng)完成了內(nèi)部自寫周期,將發(fā)送一個(gè)應(yīng)答信號(hào),主器件可以繼續(xù)進(jìn)行下一次讀寫操作。(7)寫保護(hù)寫保護(hù)操作特性可使用戶避免由于不當(dāng)操作而造成對(duì)存儲(chǔ)區(qū)域內(nèi)部數(shù)據(jù)的改寫,當(dāng)wp管腳接高時(shí)整個(gè)寄存器區(qū)全部被保護(hù)起來而變?yōu)橹豢勺x取。(8)讀操作pcf8563讀操作的初始化方式和寫操作時(shí)一樣,僅把(r/w) 位置為1,有三種不同的讀操作方式:立即地址讀、選擇讀和連續(xù)讀。立即地址讀:pcf8563 的地址計(jì)數(shù)

26、器內(nèi)容為最后操作字節(jié)的地址加1。也就是說,如果上次讀/寫的操作地址為n,則立即讀的地址從地址n+1 開始。如果n=e(這里對(duì)24c02,e=255;對(duì)pcf8563,e=16),則計(jì)數(shù)器將翻轉(zhuǎn)到0 且繼續(xù)輸出數(shù)。pcf8563 接收到從器件地址信號(hào)后(r/w 位置1),它首先發(fā)送一個(gè)應(yīng)答信號(hào),然后發(fā)送一個(gè)8 位字節(jié)數(shù)據(jù)。主器件不需發(fā)送一個(gè)應(yīng)答信號(hào),但要產(chǎn)生一個(gè)停止信號(hào)。立即地址讀時(shí)序圖(9)選擇性讀操作允許主器件對(duì)寄存器的任意字節(jié)進(jìn)行讀操作,主器件首先通過發(fā)送起始信號(hào)、從器件地址和它想讀取的字節(jié)數(shù)據(jù)的地址執(zhí)行一個(gè)偽寫操作。在pcf8563 應(yīng)答之后,主器件重新發(fā)送起始信號(hào)和從器件地址,此時(shí)r/

27、w 位置1, pcf8563 響應(yīng)并發(fā)送應(yīng)答信號(hào),然后輸出所要求的一個(gè)8 位字節(jié)數(shù)據(jù),主器件不發(fā)送應(yīng)答信號(hào)但產(chǎn)生一個(gè)停止信號(hào)。選擇讀時(shí)序圖(10)連續(xù)讀連續(xù)讀操作可通過立即讀或選擇性讀操作啟動(dòng)。在pcf8563 發(fā)送完一個(gè)8 位字節(jié)數(shù)據(jù)后,主器件產(chǎn)生一個(gè)應(yīng)答信號(hào)來響應(yīng),告知pcf8563 主器件要求更多的數(shù)據(jù),對(duì)應(yīng)每個(gè)主機(jī)產(chǎn)生的應(yīng)答信號(hào)pcf8563 將發(fā)送一個(gè)8 位數(shù)據(jù)字節(jié)。當(dāng)主器件不發(fā)送應(yīng)答信號(hào)而發(fā)送停止位時(shí)結(jié)束此操作。從pcf8563 輸出的數(shù)據(jù)按順序由n 到n+1 輸出。讀操作時(shí)地址計(jì)數(shù)器在pcf8563 整個(gè)地址內(nèi)增加,這樣整個(gè)寄存器區(qū)域在可在一個(gè)讀操作內(nèi)全部讀出。當(dāng)讀取的字節(jié)超過e

28、(對(duì)于pcf8563,e=16;對(duì)24c02, e=255)計(jì)數(shù)器將翻轉(zhuǎn)到零并繼續(xù)輸出數(shù)據(jù)字節(jié)。連續(xù)讀時(shí)序圖5實(shí)驗(yàn)步驟5.1 硬件連接將并口線插在實(shí)驗(yàn)板與 pc 機(jī)的并口插座上。按圖連接實(shí)驗(yàn)線路。p10p11p12p13cpu89s52xyab4052j11_8563sclsdaj1_4052x0y0856ch451 與cpu 連接實(shí)驗(yàn)線路。cpu89s52j5_89s52 p34p15p33p32j32_ch451loaddclkdindoutch4515.2 軟件設(shè)計(jì)進(jìn)入 keilc 開發(fā)環(huán)境編寫程序。首先根據(jù)2.3.5 節(jié)i2c 協(xié)議 內(nèi)容,編寫i2c 函數(shù)。在編寫i2c 函數(shù)時(shí),應(yīng)注意

29、代碼的可重用性,方便其它函數(shù)調(diào)用。例如:編寫起始信號(hào)函數(shù)時(shí),可以將它獨(dú)立出來,void begin()程序代碼pcf8563 的i2c 接口最大頻率是400khz,在程序中對(duì)一個(gè)io 口操作完后,需要延時(shí)2.5毫秒(本實(shí)驗(yàn)板cpu 晶振為11.0592mhz,一個(gè)指令周期為1.08 毫秒)。寫好i2c 讀寫函數(shù)后,可對(duì)pcf8563 進(jìn)行操作。先將cd4052 的通道選為0,這樣cpu 與pcf8563 物理聯(lián)接起來了。第一次操作需要對(duì)pcf8563 進(jìn)行初始化設(shè)置。先將0x00 分別寫入pcf8563 中地址為0x0,0x01的寄存器中,接著將要設(shè)置的時(shí)間按:年、月、星期、日、小時(shí)、分、秒的

30、順序,以bcd碼格式寫入地址為0x08-0x02 的寄存器中,具體見表2-8、表2-9。在將時(shí)間按:年、月、星期、日、小時(shí)、分、秒讀出后,按“xx-xx-xx”格式分兩屏顯示出來,顯示接口的應(yīng)用見。6實(shí)驗(yàn)成功標(biāo)志 按下1 號(hào)按鍵,顯示測(cè)量得到的日期。 按下2 號(hào)按鍵,顯示測(cè)量得到的時(shí)間。7程序說明1. send_disp_data向ch451芯片發(fā)送命令。2. send_comm向ch451芯片發(fā)送命令。3. disp_initialize向ch451芯片發(fā)送初始化命令。4. key中斷函數(shù),獲取當(dāng)前按鍵狀態(tài)。5. display_test測(cè)試顯示led數(shù)碼管。6. initmcu初始化mcu

31、。7. delay_1ms毫秒級(jí)延時(shí)。8. chang_4052選擇4052的通道。9. pcf8563start向時(shí)鐘芯片發(fā)送開始信號(hào)。10. pcf8563stop向時(shí)鐘芯片發(fā)送停止信號(hào)。11. pcf8563clock從總線接受一bit數(shù)據(jù)。12. pcf8563ack向總線發(fā)送一個(gè)數(shù)據(jù)接受完成信號(hào)。13. pcf8563nack檢查pcf8563芯片是否接受到一字節(jié)的數(shù)據(jù)。14. pcf8563outbyte向總線發(fā)送一個(gè)字節(jié)的數(shù)據(jù)。15. pcf8563getbyte從總線接受一個(gè)字節(jié)的數(shù)據(jù)。16. pcf8563dummywrite向總線發(fā)送開始信號(hào)和從地址。17. pcf8563read從pcf8563讀取數(shù)據(jù)。18. pcf8563write從pcf8563讀取數(shù)據(jù)。19. set_8563_register設(shè)置pcf8563控制狀態(tài)寄存器。20. get_time讀取時(shí)鐘。21. disp_time顯示時(shí)鐘。8操作過程說明8.1編譯和鏈接用 project 菜單或build 工具欄的build target 命令編譯和鏈接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論