詳解虛擬I2C總線串行顯示電路
本文主要介紹了虛擬I2C總線串行顯示電路,其中包括SAA1064引腳功能介紹、硬件電路設(shè)計(jì)、片內(nèi)可編程功能以及程序舉例。
本文引用地址:http://www.ex-cimer.com/article/201808/385783.htm1.SAA1064引腳功能
① VDD、VEE:電源、接地端。電源4.5~15V;
② P1~P16:段驅(qū)動(dòng)輸出端。分為兩個(gè)8位口:
P1~P8;P9~P16。P8、P16為高位??阪i存器具有反相功能,置1時(shí),端口輸出0。
③ MX1、MX2:位碼驅(qū)動(dòng)端。靜態(tài)顯示驅(qū)動(dòng)時(shí),一片SAA1064可驅(qū)動(dòng)二位LED數(shù)碼管;動(dòng)態(tài)顯示驅(qū)動(dòng)時(shí),按圖9-10連接方式,一片SAA1064可驅(qū)動(dòng)四位LED數(shù)碼管;
④ SDA、SCL:I2C總線數(shù)據(jù)端、時(shí)鐘端;
⑤ CEXT:時(shí)鐘振蕩器外接電容,典型值2700pF
⑥ ADR:地址引腳端。SAA1064引腳地址A1、A0采用ADR模擬電壓比較編址。當(dāng)ADR引腳電平為0、3VDD/8,5VDD/8、VDD時(shí),相應(yīng)引腳地址A2、A1、A0 分別為000、001、010、011;
2.硬件電路設(shè)計(jì)
3.片內(nèi)可編程功能
CO: 靜動(dòng)態(tài)控制,C0=1,動(dòng)態(tài)顯示,動(dòng)態(tài)顯示時(shí),data1、data2輪流從P8~P1輸出,data3、data4輪流從P16~P9輸出;
C1: 顯示位1、3亮暗選擇,C1=1,選擇亮;
C2: 顯示位2、4亮暗選擇,C2=1,選擇亮;
C3: 測試位,C3=1,所有段亮;
C4、C5、C6: 驅(qū)動(dòng)電流控制位,C4、C5、C6分別為1時(shí),驅(qū)動(dòng)電流分別為3mA、6mA、12mA;C4、C5、C6全為1時(shí),驅(qū)動(dòng)電流最大,可達(dá)21mA。
⑶ 寫數(shù)據(jù)操作格式
紅色部分由80C51發(fā)送,SAA1064接收;黑色部分由SAA1064發(fā)送,80C51接收。
SLAW為寫SAA1064尋址字節(jié),
按圖所示連接電路:SAA1064(1)SLAW=01110000B;SAA1064(2)SLAW=01110110B。其中 0111(D7~4)為SAA1064器件地址,D3~1為A2A1A0尋址字節(jié),末位D0為R/W;SADR為片內(nèi)寄存器地址;COM為控制命令。
4.程序設(shè)計(jì)
例:已知8位顯示符(共陰編碼)已依次存入內(nèi)RAM 51H~58H中,試按圖9-10編程將其輸入SAA1064(1),(2)動(dòng)態(tài)顯示,驅(qū)動(dòng)電流為12mA。設(shè)VIIC軟件包已裝入 ROM,VSDA.VSCL.SLA.NUMB.MTD.MRD均已按8.3.2軟件包小結(jié)中協(xié)議定義。
VSAA: MOV MTD,#00H ;置SAA1064控制命令寄存器COM片內(nèi)子地址
MOV 31H,#01000111B;置控制命令字,動(dòng)態(tài)顯示,驅(qū)動(dòng)電流12mA
MOV NUMB,#6 ;置發(fā)送數(shù)據(jù)數(shù):SADR+COM+data1~4=6
SAA1: MOV RO,#51H ;將51H~54H顯示符數(shù)據(jù)移至32H~35H
LCALL MOVB ;
MOV SLA,#01110000B;置SAA1064(1)寫尋址字節(jié)SLAW
LCALL WRNB ;發(fā)送給SAA1064(1)
SAA2: MOV R0,#55H ;將55H~58H顯示符數(shù)據(jù)移至32H~35H
LCALL MOVB ;
MOV SLA,#01110110B;置SAA1064(2)尋址字節(jié)SLAW
LCALL WRNB ;發(fā)送給SAA1064(2)
RET ;
MOVB: MOV R1,#32H ;顯示符數(shù)據(jù)移至32H~35H子程序
MOVB1:MOV A,@R0 ;讀出
MOV @R1,A ;存入
INC RO ;指向下一讀出單元
INC R1 ;指向下一存入單元
CJNE R1,#36H,MOVB1 ;判4個(gè)數(shù)據(jù)移完否?未完繼續(xù)
RET ;
評(píng)論