51單片機(jī)對SAA7113初始化和控制的程序
SAA7113的初始化就是對寄存器配置合適的參數(shù),使其能夠有符合要求的輸出。寄存器配置通過I2C總線來進(jìn)行,很多可以控制I2C總線的器件都可以作為主器件對7113進(jìn)行初始化,這里介紹用51單片機(jī)初始化7113的例子。
51單片機(jī)和7113的硬件連接非常簡單,只要把單片機(jī)的兩個(gè)I/O口(如P1.0、P1.0)直接和7113的SCL、SDA管腳相連,再加上上拉電阻即可。
用單片機(jī)初始化7113的主要任務(wù)是程序的編寫,首先要熟悉I2C總線協(xié)議,根據(jù)I2C總線的原理寫出啟動、停止、應(yīng)答信號等的子程序,由子程序再寫出發(fā)送、接收1個(gè)字節(jié)的程序,然后根據(jù)7113的寄存器操作格式寫出讀寫寄存器的程序,最后根據(jù)以上的子程序?qū)懗龀跏蓟?113的程序段。
對7113的控制一般是改變色度、亮度等指標(biāo)以及輸出管腳的輸出信號,這可以通過修改相應(yīng)寄存器的值來完成,程序上寫出“讀寫命令”即可。
下面以程序段的形式給出初始化SAA7113以及讀寫寄存器的具體例子,以供參考。
SDA BIT P1.0
SCL BIT P1.1
I2C_ERROR BIT 00H ;I2C總線數(shù)據(jù)傳輸出錯(cuò)標(biāo)志
DeviceaddressW EQU 4AH ;7113器件地址+寫
DeviceaddressR EQU 4BH ;7113器件地址+讀
Subaddress EQU 4DH ;7113寄存器地址字節(jié)在單片機(jī)中的存放地址
DATA_I2C EQU 50H ;設(shè)置寫入或讀出數(shù)據(jù)在單片機(jī)中的存放地址
;*************啟動**************
I2C_START: SETB SDA
NOP
SETB SCL
NOP
CLR SDA
NOP
CLR SCL
RET
;***************停止**************
I2C_STOP: CLR SDA
NOP
SETB SCL
NOP
SETB SDA
NOP
RET
;************送應(yīng)答位************
SEND_ACK: CLR SCL
NOP
CLR SDA
NOP
SETB SCL
NOP
?NOP
CLR SCL
NOP
SETB SDA
RET
;***********送非應(yīng)答位***********
SEND_NOACK: SETB SDA
NOP
SETB SCL
NOP
NOP
CLR SCL
NOP
RET
;***********檢查應(yīng)答位************
CHECK_ACK: NOP
CLR SCL
NOP
SETB SDA
評論