用兩片I_2C總線接口通用器件PCF8574擴展的8_8鍵盤_第1頁
用兩片I_2C總線接口通用器件PCF8574擴展的8_8鍵盤_第2頁
用兩片I_2C總線接口通用器件PCF8574擴展的8_8鍵盤_第3頁
用兩片I_2C總線接口通用器件PCF8574擴展的8_8鍵盤_第4頁
用兩片I_2C總線接口通用器件PCF8574擴展的8_8鍵盤_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、器件應(yīng)用I用兩片I叱總線接口通用器件PCF8574擴展的8用鍵盤王勁文章介紹一種用IC總線接口通用器件PCF8574擴展的行列式舊盤 是免片扎應(yīng)用系統(tǒng) 擴展犍盤接口時可選擇的一種簡明而有效的審主,"C總線單片機犍盤© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued. Iittp:/A© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued. Ii

2、ttp:/ASD7SD6SD5SD4SD3SD2SD1SIX)D/ DO S D4 D3 D2 DI LX)1997(181)37 I2C總線是飛利浦公司推出的芯片間串行傳輸總 線它以兩根連線實現(xiàn)全雙工同步數(shù)據(jù)傳送可以方便 地構(gòu)成多機系統(tǒng)和外圍器件擴展系統(tǒng)。I2C總線自行數(shù)據(jù)傳送的主耍特點如下:1二線傳輸。Fc總線上的所有節(jié)點,如主器件 (單片機、微處理器等)、外圍器件等都連到同名端的 SDA(串行數(shù)據(jù)線)、SCL (串行時鐘線)上.并通過這兩 根線在器件之間傳送信息。2系統(tǒng)中有多個主器件時,任何一個主器件在 FC上工作時都可成為主控制器(無中心主機)。3. I2C總線傳輸時釆用狀態(tài)碼管理辦法

3、。數(shù)據(jù) 傳輸時的任何一種狀態(tài)都會產(chǎn)生相應(yīng)的狀態(tài)碼.并由 飛利浦公司提供的標(biāo)準(zhǔn)狀態(tài)處理程序進行自動處理. 無需用戶介入。4. 系統(tǒng)中所有外圍器件采用器件地址和引腳地址 的編址方法避免了片選線的連接方法。5. 所有帶I2C總線接口的外圍器件都具有應(yīng)答功 能。片內(nèi)有多個單元地址時數(shù)據(jù)讀寫都有地址自動 加1功能。這樣準(zhǔn)備好讀寫入口條件后,只需啟動I叱 總線就可對相應(yīng)器件自動完成N個字節(jié)的讀寫操作。I2C87C5528XC552(8OC552、83C552、87C552)為飛利浦公司 的80C51系列中功能最強、用途最廣的單片機.其指 令系統(tǒng)與8051完全兼容。片內(nèi)帶有8 K字節(jié)用戶可 編程EPROM并

4、帶有IC總線接口 .片上的IC邏輯 提供了和FC總線規(guī)約一致的內(nèi)部串行接口 .支持除 低速方式之外的所有傳送方式。在87C552中將I叱 總線接口定義為SIO1。下面主要介紹CPU和IC總 線邏輯接口中需使用的4個特殊功能寄存器。1地址寄存器地址寄存器(SIADR)用來存放自己的7位從地址 和廣播呼叫地址X.其格式如下:SIADR(DBH)該寄存器只在從方式中使用.在主方式中無需向 對方提供自己的地址信息。2數(shù)據(jù)寄存器數(shù)據(jù)寄存器(SIDAT)的數(shù)據(jù)格式如下:SIDAT(DAH)它為串行輸入輸出結(jié)構(gòu)的核心部分用來存放一 個發(fā)送的數(shù)據(jù)字節(jié)或剛收到的一個數(shù)據(jù)字節(jié)。3.控制寄存器控制寄存器(SICON

5、)為可位尋址的特殊功能寄存 器其格式如下:CR2ENSIs r.STo SIAACR1CROSICON(D8H)D7 D6 D5 D4 D3 D2 DI DO各可位尋址位的定義為(僅介紹主方式情況下):CR2、CRl、CR0:時鐘速率位。這三位在IC總線 的主方式確定串行口時鐘頻率。ENS1 :串行口 SIOI使能位。當(dāng)ENSI = I時. SIOI使能:當(dāng)ENS1 =0時.FC接口 SDA、SCL線呈髙 阻態(tài),SIOI禁止。STA :啟動標(biāo)志位。當(dāng)STA = 1時,SIO1將根據(jù)I'c總線的狀態(tài)產(chǎn)生開始信號或重復(fù)開始信號;當(dāng) $丁人=0時公101不產(chǎn)生開始信號或重復(fù)開始信號。STO:

6、停止標(biāo)志位。STO= I時.SIO1處于主方式 時向I'c總線發(fā)送一個終止信號,當(dāng)檢測到總線上的 結(jié)束狀態(tài)時硬件清零:STO = 0時.不產(chǎn)生終止信號。SI:串行中斷標(biāo)志。當(dāng)SI= 1時若中斷允許.則 產(chǎn)生中斷請求:當(dāng)SI = O時.不產(chǎn)生中斷請求。AA :維持響應(yīng)標(biāo)志位。當(dāng)AA= I時.在主接收方 式中接收到一個數(shù)據(jù)字節(jié)后在SCL的應(yīng)答時鐘位上 發(fā)送應(yīng)答位(向SDA發(fā)送低電平):當(dāng)AA = O時.在主 接收方式中接收到一個數(shù)據(jù)字節(jié)后.在SCL的應(yīng)答時 鐘位上發(fā)送非應(yīng)答位(向SDA發(fā)送高電辛)o4狀態(tài)寄存器XXXXX000D7 D6 D5 D4 D3 D2 DI DO狀態(tài)碼SISTA(

7、D9H)狀態(tài)寄存器(S:STA,為只讀的特殊功能寄存器. 存放著當(dāng)前IC總線的狀態(tài)謁.其格式如下:SISTA的最低3位總是零,高5位保存狀態(tài)碼共 有26種可能的狀態(tài).其中F8H沒有相關(guān)的可用狀態(tài) 信息也不會請求中斷。其它的狀態(tài)碼對應(yīng)于SIO1的 相應(yīng)確定狀態(tài)在進入這些狀態(tài)時請求串行中斷(SI =1) 在SI置位1個機器周期以后.SISTA中出現(xiàn)有 效的狀態(tài)碼在SI由軟件復(fù)位后1個機器周期內(nèi).狀 態(tài)碼仍在SISTA中。PCF8574108 8用兩片PCF8574擴展I/O 口組成的8 X8行列式 鍵盤和FC總線的接口電路如圖1所示.圖1中主器 件為87C552單片機。PCF8574是單片CMOS

8、電路,它具有8位準(zhǔn)雙向 口和IC總線接口。PCF8574功耗低.輸出鎖存.驅(qū)動 能力大。該器件還具有中斷請求線.可直接連到單片 機的中斷輸入端。圖2為PC卜8574的引腳圖o引腳功能如下:A0 A2為三位數(shù)字業(yè)坐址:P0P7為八位準(zhǔn)雙向I/O 口線;VSS為地;而為中斷線(低電平有效):SCL為 rc時鐘線:SDA為fc數(shù)據(jù)線;vcc為電源端。圖1兩片PCF8574擴展I/O 口組成的疔列式鍵盤1997438 (182)PCF8574的8位口的每一位口線可以獨立地定義 為輸入線或輸出線。輸入數(shù)據(jù)由CPU通過Fc總線 讀周期從口讀出輸出數(shù)據(jù)由CPU通過IC總線寫周 期寫入口。因為PCF8574為

9、準(zhǔn)雙向口.所以作為輸入 口使用時,應(yīng)直口鎖存器為高電平。在具體應(yīng)用時應(yīng)© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued. Iittp:/AA0 A1 -A2 -P0 -P1 -P2 -F3 VSSg由CPU對PCF8574進行寫1操作。圖1中,兩片少VCC -SDA 一 SCL 一 TnT' 一 P7 一 P6 P5 9卩4PCF8574圖2 PCF8574引腳圖PCF8574 擴展的 I/O 口分別稱作A 口和B 口 其中A 口接至鍵 盤的列線用于送入掃 描字

10、為一輸出口。B 口接至鍵盤的行線用 干讀入行線狀態(tài)因 B 口在讀入行線狀態(tài) 前先要向B 口鎖存器寫入1,所以B 口為輸入輸出 口。A 口的地址為01001110(輸出):B G的地址為 01000000(輸出).01000001(輸入),地址字節(jié)各位的定義如下:D7D6D5D4D3D2DIDO0100XXXR/W器件地址引腳地址.其中最低位R/W為0時表示CPU向I/O 口輸 出信息;R/W為1時.CPU從I/O 口讀取信息。D1 D3為引腳地址.根據(jù)圖1中接法.A 口和B 口的引腳 地址分別為111和000。D4D7為器件地址, PCF8574的器件地址被定為OlOOoI2CFc總線的應(yīng)用程

11、序設(shè)計主耍有以下部分內(nèi)容: 狀態(tài)處理服務(wù)程序:i2c中斷服務(wù)程序:i:c總線初始 化程序和啟動i2c總線:通用讀寫程序。()狀態(tài)處理模塊是26個狀態(tài)處理程序的集合,用來 自動處理總線數(shù)據(jù)傳送時的各種狀態(tài)操作是I'C總 線應(yīng)用程序設(shè)計的核心部分。該模塊必須定位在由 HADD指定的程序存儲器頁地址空間。實際上.由于 飛利浦公司提供了標(biāo)準(zhǔn)的狀態(tài)處理軟件包總線狀態(tài) 處理無須用戶介入.實現(xiàn)了應(yīng)用程序設(shè)計的“傻瓜化”。在通用狀態(tài)處理模塊中,每個狀態(tài)處理程序入口 地址的低8位是相對應(yīng)的狀態(tài)碼即狀態(tài)寄存器 SISTA高5位的內(nèi)容.而高8位由HADD的內(nèi)容決 定。每個狀態(tài)處理程序的指令一般為8個字節(jié).當(dāng)

12、多 于8個字節(jié)時則轉(zhuǎn)移到其余的地址空間所以一個完 整的狀態(tài)處理摸塊要占用2個頁面地址空間。()FcIc中斷后,即執(zhí)行狀態(tài)處理的散轉(zhuǎn)程序轉(zhuǎn)向相 應(yīng)的狀態(tài)處理程序。因IC中斷只有1個,而狀態(tài)處 理程序的入口地址多達26個所以采用子程序返回O 進入IC中斷后.首先將PSW壓入堆棧.然后將 SISTA(狀態(tài)碼)和HADD(由初始化程序裝入的26個 狀態(tài)處理程序的髙位地址)壓入堆棧通過于程序返回 指令RET將相應(yīng)的狀態(tài)處理程序的高位地址HADD 和低位地址SISTA彈出裝入程序計數(shù)器PC.程序轉(zhuǎn) 向執(zhí)行相應(yīng)的狀態(tài)處理程序狀態(tài)處理程序的結(jié)尾處 再執(zhí)行中斷返回指令RETI退出中斷。ORG002BH:1七中斷

13、入口地址IICINT:UMPIICI:轉(zhuǎn)向執(zhí)疔I'c中斷服務(wù)程序IICI:PUSHPSW:保護現(xiàn)場PUSHSISTA :狀態(tài)處理程序低位地址壓入堆棧PUSHHADD :狀態(tài)處理程序高位地址壓入堆棧RET:狀態(tài)豳程序高、低位地址入PC()FcPC中斷入口及狀態(tài)散轉(zhuǎn)程序如下:一般情況下可把I2c總線的初始化和通用讀寫 亍程序合寫為一個包括Ic總線初始化的通用讀寫子 程序。使用時只需滿足通用讀寫子程序的入口條件. 直接調(diào)用通用讀寫子程序就可完成包括啟動I'c總 線在內(nèi)的全部數(shù)據(jù)傳送操作。對干只工作在主方式的本系統(tǒng)來說初始化程序 執(zhí)行下列操作:1 P1.6、P1.7位鎖存器裝入邏輯“1

14、”,以宣I叱總 線接口狀態(tài);2. RAM單元中HADD裝入狀態(tài)處理模塊的髙位 字節(jié)地址;3. 允許I2C中斷并賈中斷優(yōu)先級別;4. 直位SICON中的ENS1和AA位.設(shè)定IC總 線傳送速率。包括初始化的I'C總線通用讀寫于程序如下:TYRW:SETBPl.6SETBPl.7:置Fc總線接口狀態(tài)MOVHADD.#01H:狀態(tài)處遜模塊高位頁地址 為0IHSETBEA:開放中斷SETBESI:允許1叱中斷MOVSICON. #0C5H:IC總線和響應(yīng)正常應(yīng)答位 使能.設(shè)置I'c總線傳送速 率CLRPSI:設(shè)Fc中斷為低優(yōu)先級CLRF0:清正常結(jié)束標(biāo)志位該標(biāo)志 位應(yīng)在正常數(shù)據(jù)傳送結(jié)束

15、 時置1SETBSTA:置起始位RWDD JBCFO.RVVJS.若I'c總線傳送結(jié)束轉(zhuǎn)退 出SJMPRWDD:等待1'c總線傳送結(jié)束RWJS: CLRESI:禁止I'c中斷4(183)39 RET此外,在編制應(yīng)用程序時,還應(yīng)根據(jù)實際應(yīng)用情況 對標(biāo)準(zhǔn)狀態(tài)處理模塊中使用的一些標(biāo)號單元進行空間 容量的規(guī)劃和地址定義。例如.在本系統(tǒng)中需對以下 標(biāo)號單元進行定義:MTDEQU20 H:主發(fā)送緩沖區(qū)單元本殺統(tǒng)只用一個單元MRDEQU21H:主接收緩沖區(qū)單元本系統(tǒng)只用一 個單元SLAEQU22 H:尋址寧節(jié)存放單元NUMBYTEQU23 H:傳送宇節(jié)數(shù)存放單元BACKUPEQU24

16、 H:原始傳送字節(jié)數(shù)備份單元HADDEQU25 H:狀態(tài)處瑾模塊頁地址存放單元鍵處理程序釆用模塊化程序設(shè)計。圖3是犍處理 模塊的軟件結(jié)構(gòu)。鍵處理模塊按功能可分為犍掃描程 序査找卷號及犍號分類程序及健功能程序三部分。()圖3鍵處理模塊程序結(jié)構(gòu)鍵掃描子程序的功能是判斷有無按犍按下以及確 定所拎徐曲傑位冒碼C計有關(guān)的A 口輸出和B 口讀入于程序。 A 口(列線)輸出于程序PAOUT:MOVSLA,#4EH:尋址器件PCF8574(A口輸出)MOVNUMBYT, #01H:傳送字節(jié)數(shù)為1MOVMTD.RO:待輸出數(shù)據(jù)送發(fā)送緩沖區(qū)LCALLTYRW:調(diào)用通用讀寫子程序向A 口輸出數(shù)據(jù)RETB 口(行線)

17、讀入于程序PBIN: MOVSLA,#40H:尋址器件PCF8574(BMOVNUMBYT,#OIH口輸出):傳送字節(jié)數(shù)為1MOVMTD,#0FFH:把B 口口鎖存器置1LCALLTYRW為輸入作準(zhǔn)備MOVSLA,# 41 H:尋址器件PCF8574(BMOVNUMB YT.#01H口輸入):輸入宇節(jié)數(shù)為1LCALLTYRW:讀入B 口電平狀態(tài)RET查找犍號及犍號分類于程序的功能是根據(jù)所按健 的位直碼確定權(quán)號并確定所按鍵的功能類別以供后續(xù) 程序作相應(yīng)的卷功能處理。在本系統(tǒng)中釆用根據(jù)犍的功能確定健號。比如 110號犍為數(shù)字鍵,1125號鍵為顯示健,2640 號譴為設(shè)直遂.4164號犍為測控律。所

18、有的鍵在犍 盤中的排列位置都可以是任意的。只要依次將164 號鍵所對應(yīng)的犍位賈碼在數(shù)據(jù)表中按順序排列通過 調(diào)用査找犍號及犍號分類子程序,就可以方便地確定 犍號及犍功能類別。該于程序流程框圖如圖4所示。()犍功能子程序的功能為根據(jù)查找犍號及犍號分類 子程序提供的犍號及健功能類別,用散轅指令執(zhí)行不 同的犍功能程序以實現(xiàn)簡單的人機通信。© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, © 1994-2009 China Academic Journal Elect

19、ronic Publishing House. All rights rescued, 在圖1所示的8 X8行列式鍵盤中.判斷有無按健 按下的方法是將列線(A 口)所有的I/O線均置為低電 平然后讀取行線(B 口)的電平狀態(tài).若B 口電平狀態(tài) 不全為1 則必有按健按下。判斷犍盤中哪一個按健按下的方法是將列線逐列 宣為低電平然后測試所有行輸入狀態(tài).若全為I則所 按程不在此列。反之則所按犍必在此列。而該卷的犍 位ft碼即為此時的A 口輸出值和B 口輸入值。下面給出褲掃描子程序中和I'C總線應(yīng)用程序設(shè) 40 仃 84)1 本文所介紹的鍵盤工作方式為査詢式。如果采 用中斷工作方式由于IC總線數(shù)

20、據(jù)傳送是在單片機 的中斷服務(wù)程序中進行,因而需實現(xiàn)中斷嵌套這時應(yīng) 把1叱中斷設(shè)直為高優(yōu)先級。2. 如果系統(tǒng)中鍵數(shù)不多.可用1片PCF8574擴展 4 X4»盤。其電路連接更加簡單。3. PCF8574A和PCF8574除了器件地址不同外. 其它完全相同。可用PCF8574A代替PCF8574。19974© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, © 1994-2009 China Academic Journal Electronic Pub

21、lishing House. All rights rescued, © 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, PIC16C56單片機在模糊控制電飯鍋中的應(yīng)用河海大學(xué)計算機及信息工程學(xué)院毛兆榮常州無線電工業(yè)學(xué)校 劉 杰© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, © 1994-2009 China Academic Jo

22、urnal Electronic Publishing House. All rights rescued, 對于一個智能電飯鍋來說餡當(dāng)進行火力控制是 煮出優(yōu)質(zhì)米飯的關(guān)健。傳統(tǒng)電飯鍋以磁鋼對電飯鍋 進行控制其控制溫度不很精確.其燒飯過慳也相芻簡 單。新一代智寵型電飯鍋釆吊革片權(quán)控創(chuàng)系統(tǒng),不僅 使電飯鍋姿現(xiàn)了晉鍛化無巨增加了許多新切£。本 文介紹用PICI6;56芯片開發(fā)的新一代智能型電飯鍋 的控制原謹(jǐn)、外圍電氣原理圖以及主要的軟件流程圖。燒飯工藝過程分成吸水、加熱、沸騰、炯飯、膨脹和 保溫等幾個階段如圖1所示。從上圖可以看出該煮飯射工藝過程各個階段.其溫度 的變化和時間的長短都不同而

23、且隨著燒飯米量的不 同這個工藝過程還要作適當(dāng)?shù)恼{(diào)整這是一種智能化 的控制過程。傳統(tǒng)的電飯鍋以磁鋼對電飯鍋過程進行 控制根本無法完成這種“燒飯專家”的控制過程而采 用數(shù)字單片機揑制系統(tǒng).可實現(xiàn)該工藝過程控制.煮出 質(zhì)量優(yōu)良的米飯。© 1994-2009 China Academic Journal Electronic Publishing House. All rights rescued, 圖I燒飯工藝過程曲線該單片機控制系統(tǒng)的電原理如圖2所示.其核心 為PIC16C56單片機.外圍電路包括電源電路、測溫電 路、參數(shù)設(shè)定及顯示電路、加熱器控制及聲音提示電 路、計時脈沖電路等幾個部分,下面作一簡單說明。()PIC16C56PIC16C56單片機是美國Microchip公司生產(chǎn)的精 簡指令集RSIC單片機.釆用CMOS制造工藝.低功 耗。它具有單周期/單字節(jié)指令.釆用哈佛流水總線結(jié) 構(gòu)O口具有較大的帶負(fù)栽能力oPIC!6C56單片機© 1994-2009 China Academic Jou

溫馨提示

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

評論

0/150

提交評論