51单片机对SAA7113初始化和控制的程序
时间:2023-09-29 10:32来源: 作者: 点击: 次用51对7113化和
的化就是对寄存器配置合适的参数,使其能够有符合要求的输出。寄存器配置通过I2C总线来进行,很多可以I2C总线的器件都可以作为主器件对7113进行化,这里介绍用51初始化7113的例子。
51和7113的硬件连接非常简单,只要把单片机的两个I/O口(如P1.0、P1.0)直接和7113的SCL、SDA管脚相连,再加上上拉电阻即可。
用单片机初始化7113的主要任务是的编写,首先要熟悉I2C总线协议,根据I2C总线的原理写出启动、停止、应答信号等的子,由子再写出发送、接收1个字节的程序,然后根据7113的寄存器操作格式写出读写寄存器的程序,最后根据以上的子程序写出初始化7113的程序段。
对7113的一般是改变色度、亮度等指标以及输出管脚的输出信号,这可以通过修改相应寄存器的值来完成,程序上写出“读写命令”即可。
下面以程序段的形式给出初始化以及读写寄存器的具体例子,以供参考。
SDA BIT P1.0
SCL BIT P1.1
I2C_ERROR BIT 00H ;I2C总线数据传输出错标志
DeviceaddressW EQU 4AH ;7113器件地址+写
DeviceaddressR EQU 4BH ;7113器件地址+读
Subaddress EQU 4DH ;7113寄存器地址字节在单片机中的存放地址
DATA_I2C EQU 50H ;设置写入或读出数据在单片机中的存放地址
;*************启动**************
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
;************送应答位************
SEND_ACK: CLR SCL
NOP
CLR SDA
NOP
SETB SCL
NOP
?NOP
CLR SCL
NOP
SETB SDA
RET
;***********送非应答位***********
SEND_NOACK: SETB SDA
NOP
SETB SCL
NOP
NOP
CLR SCL
NOP
RET
;***********检查应答位************
CHECK_ACK: NOP
CLR SCL
NOP
SETB SDA