日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網(wǎng)
單片機首頁|單片機基礎(chǔ)|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
按平臺模式設計的虛擬I²C總線軟件包VIIC
按平臺模式設計的虛擬I²C總線軟件包VIIC
 更新時間:2008-8-18 10:00:40  點擊數(shù):21
【字體: 字體顏色

CLR VSDA
RET
⑤CACK: SETB VSDA ;應答位檢查
SETB VSCL
CLR F0
MOV C,VSDA
JNC CEND
SETB F0 CEND: CLR VSCL
RET
⑥WRBYT: MOV R0,#08H ;向VSDA線上發(fā)送1個數(shù) ;據(jù)字節(jié) WLP: RLC A
JC WR1
AJMP WR0 WLP1: DJNZ R0,WLP
RET WR1: SETB VSDA
SETB VSCL
NOP
NOP
CLR VSCL
CLR VSDA
AJMP WLP1 WR0: CLR VSDA
SETB VSCL
NOP
NOP
CLR VSCL
AJMP WLP1
⑦RDBYT: MOV R0,#08H ;從VSDA線上讀取1個數(shù) ;據(jù)字節(jié) RLP: SETB VSDA
SETB VSCL
MOV C,VSDA
MOV A,R2
RLC A
MOV R2,A
CLR VSCL
DJNZ R0,RLP
RET
⑧WRNBYT: MOV R3,NUMBYT ;虛擬I2C總線發(fā)送N個 ;字節(jié)數(shù)據(jù)
LCALL STA
MOV A,SLA
LCALL WRBYT
LCALL CACK
JB F0,WRNBYT
MOV R1,#MTD WRDA: MOV A,@R1
LCALL WRBYT
LCALL CACK
JB F0,WRNBYT
INC R1
DJNZ R3,WRDA
LCALL STOP
RET ⑨RDNBYT: MOV R3, NUMBYT ;模擬I2C總線接收n個 ;字節(jié)數(shù)據(jù)
LCALL STA
MOV A,SLA
LCALL WRBYT
LCALL CACK
JB F0,RDNBTY RDN: MOV R1,#MRD RDN1: LCALL RDBYT
MOV @R1,A
DJNZ R3,ACK
LCALL MNACK
LCALL STOP
RET ACK: LCALL MACK
INC R1
SJMP RDN1
四、 VIIC1.0應用指南
1. 適用范圍
VIIC1.0適用于80C51系列單主系統(tǒng)中I2C總線外圍器件擴展的應用程序設計。由于時序模擬基于6MHz時鐘設計,在高速時鐘下,可適當增加時序模擬子程序中的空操作指令。
2. 資源占用
VIIC使用了R0,R1,R2,R3,F0,C等資源。
3. 符號單元
PVIIC中有許多符號標記,這些符號標記有:
VSDA 虛擬I2C總線數(shù)據(jù)線;
VSCL虛擬I2C總線時鐘線;
SLA尋址字節(jié)存放單元;
NUMBYT傳送字節(jié)數(shù)存放單元;
MTD發(fā)送數(shù)據(jù)緩沖區(qū);
MRD接收數(shù)據(jù)緩沖區(qū)。
4. 歸一化操作命令
不論總線上擴展什么外圍器件,都只須使用以下三條指令:
MOV SLA,#SLAW/SLAR
MOVNUMBYT,#N
LCALLWRNBYT/RDNBYT
5. VIIC的裝載
由于WRNBYT/RDNBYT都使用長調(diào)用命令LCALL,故VIIC1.0可放在程序存儲器的任意空間。 圖1
6. 通用的應用界面
VIIC1.0的應用界面如圖1所示。與VIIC1.0有關(guān)的只是3條歸一化操作命令;與硬件電路相關(guān)的是器件地址與引腳地址構(gòu)成的尋址字節(jié)和由器件規(guī)定的數(shù)據(jù)操作格式。

 

五、 VIIC1.0應用示例

在本文參考文獻2中給出了一些基于VIIC軟件包的外圍串行擴展應用實例。現(xiàn)就帶I2C總線接口LED顯示驅(qū)動器SAA1064擴展8位LED顯示電路來示范VIIC1.0的應用。
1. 硬件電路與尋址字節(jié)
用2片SAA1064擴展的8位LED顯示電路如圖2(b)所示,圖2(a)為SAA的引腳排列圖。設80C51用P1.1/P1.0來虛擬SDA/SCL口線。兩片SAA1064的ADR引腳分別接地和VCC。SAA1064(1)、(2)的器件地址為0111,引腳地址為000和111,因此它們的尋址字節(jié)SLAW/SLAR分別為70H/71H和76H/77H。
2. 顯示原理與數(shù)據(jù)操作格式
在I2C總線外圍器件的數(shù)據(jù)手冊中,都給出了實現(xiàn)器件功能的數(shù)據(jù)操作格式,以及實現(xiàn)功能的控制命令與寄存器的管理模式。
(1) SAA1064的數(shù)據(jù)操作格式 80C51只須對SAA1064進行寫操作,便實現(xiàn)了LED的顯示驅(qū)動控制。SAA1064的寫數(shù)據(jù)操作格式如下:

s

SLAW

A

SUBADR

A

COM

A

data1

A

data2

A

data2

A

data4

A

P

只須對SAA1064中首地址為SUBADR的5個寄存器單元中依次寫入控制命令COM和4個LED共陰極段碼datal~data4,SAA1064的SUBADR=00H。
控制命令COM格式及位功能規(guī)定如下:

D7 D0

----

C6

C5

C4

C3

C2

C1

C0

C0靜、動態(tài)顯示選擇。C0=1,動態(tài)顯示。
C1顯示位1,3暗亮選擇。C1=1,選擇亮。
C2顯示位2,4暗亮選擇。C2=1,選擇亮。
C3測試位。C3=1,所有段點亮。
C4,C5,C6驅(qū)動電流控制位。C4,C5,C6為 “1”時,驅(qū)動電流分別為3mA,6mA,12mA;皆為1時輸出驅(qū)動電流最大,達21 mA。
3. 應用程序設計
按下列步驟完成圖2(b)的8位LED顯示程序設計。 圖2
(1) 將VIIC1.0裝入程序存儲器中。
(2) 根據(jù)硬件電路及資源分配,將VIIC1.0中的符號單元賦值如下:
VSDA EQU P1.1 ;用P1.1虛擬SDA
VSCL EQU P1.0 ;用P1.0虛擬SCL
SLA EQU 50H ;50H為尋址字節(jié)存放單元
NUMBYT EQU 51H ;51H為傳送字節(jié)數(shù)據(jù)存放單元
MTD EQU 30H ;30H為發(fā)送緩沖區(qū)首地址
(3) 8位LED顯示子程序設計
這里介紹1個在圖2(b)LED顯示器上顯示“bUAA0706”固定字符的子程序。


根據(jù)SAA1064的數(shù)據(jù)操作格式,點亮4個LED只須依首地址SUBADR順序送入控制命令COM和4個LED共陰極段選碼data1~data4。
設LED驅(qū)動電流為18 mA(C6,C5為高電平;C4為低電平)動態(tài)顯示要求(C2,C1,C0為高電平)故COM=67H。SAA1064(1)顯示“0706”的段碼依次是7DH,3FH,07H,3FH;SAA1064(2)顯示“bUAA”的段碼依次為77H,77H,3EH,7CH。因此,SAA1064(1),(2)的數(shù)據(jù)操作格式具體化為

SAA1064(1)

S

70H

A

00H

A

67H

A

7DH

A

3FH

A

07H

A

3FH

A

P


SAA1064(2)

S

76H

A

00H

A

67H

A

77H

A

77H

A

3EH

A

7CH

A

P

P設顯示“bUAA0706”的子程序名為VSAA8。VSAA8的程序清單如下:
VSDA EQU P1.0
VSCL EQU P1.1
SLA EQU 50H
NUMBYT EQU 51H
MTD EQU 30H
VSAA8: MOV 30H,#00H;將SUBADR,COM,LED共 ;陰極段碼data1~data4 ;依次裝入發(fā)送緩沖區(qū)
MOV 31H,#67H
MOV 32H,#7DH
MOV 33H,#3FH
MOV 34H,#07H
MOV 35H,#3FH
MOV SLA,#70H;尋址SAA104(1)并為發(fā)送 ;狀態(tài)
MOV NUMBYT,#06H;確定發(fā)送字節(jié)數(shù)
LCALL WRNBYT;調(diào)用VIIC1.0中N個字節(jié)寫 ;入子程序
MOV 30H,#00H;將SUBADR,COM,data1~ ;data4依次裝入發(fā)送緩沖區(qū)
MOV 31H,#67H
MOV 32H,#77H
MOV 33H,#77H
MOV 34H,#3EH
MOV 35H,#7CH
MOV SLA,#76H ; 尋址SAA1064(2)并為發(fā) ;送狀態(tài)
MOV NUMBYT,#06H ;確定發(fā)送字節(jié)數(shù)
MOV WRNBYT;調(diào)用VIIC1.0中N個字節(jié)寫 ;入子程序
RET
如果要隨意顯示內(nèi)存中的8個BCD碼,可開辟顯示緩沖區(qū)DISRAM,設計1個子程序,將顯示緩沖區(qū)中的8個BCD碼轉(zhuǎn)換成共陰極段碼再和SUBADR和COM一道送入MTD中,然后使用VIIC1.0的三條操作命令即可。
從上述應用可看出,使用VIIC軟件包后,編寫應用程序不必了解I2C總線原理、協(xié)議和時序,只要了解VIIC的應用操作即可。MES
參考文獻
1何立民. I2C總線應用系統(tǒng)設計. 北京:北京航空航天大學出版社,1995
2何立民. 單片機高級教程. 北京:北京航空航天大學出版社,2000
本刊第3期將刊登“虛擬I2C總線軟件包的開發(fā)及應用”。

  • 上一篇: 基于P87LPC764的Σ-ΔADC應用設計方法
  • 下一篇: 嵌入式系統(tǒng)、智能家電及家居網(wǎng)絡
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術(shù)支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內(nèi)容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1