问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

saa7113的4.用51单片机对7113初始化和控制

发布网友 发布时间:2023-09-26 20:08

我来回答

1个回答

热心网友 时间:2024-11-18 00:16

SAA7113的初始化就是对寄存器配置合适的参数,使其能够有符合要求的输出。寄存器配置通过I2C总线来进行,很多可以控制I2C总线的器件都可以作为主器件对7113进行初始化,这里介绍用51单片机初始化7113的例子。
51单片机和7113的硬件连接非常简单,只要把单片机的两个I/O口(如P1.0、P1.0)直接和7113的SCL、SDA管脚相连,再加上上拉电阻即可。
用单片机初始化7113的主要任务是程序的编写,首先要熟悉I2C总线协议,根据I2C总线的原理写出启动、停止、应答信号等的子程序,由子程序再写出发送、接收1个字节的程序,然后根据7113的寄存器操作格式写出读写寄存器的程序,最后根据以上的子程序写出初始化7113的程序段。
对7113的控制一般是改变色度、亮度等指标以及输出管脚的输出信号,这可以通过修改相应寄存器的值来完成,程序上写出“读写命令”即可。
下面以程序段的形式给出初始化SAA7113以及读写寄存器的具体例子,以供参考。
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
NOP
SETB  SCL
NOP
NOP
MOV C, SDA
MOV I2C_ERROR, C
CLR  SCL
NOP
RET
;*******发送1字节数据,待送数据在A中******
I2C_SEND_1BYTE:
MOV  R0, #8
SEND100: RLC  A
MOV  SDA, C
NOP
SETB  SCL
NOP
NOP
CLR  SCL
DJNZ R0, SEND100
RET
;*******接收1字节数据,接收数据放在A中*****
I2C_RECEIVE_1BYTE:
MOV  R0,  #8
RECV100: SETB  SDA
NOP
SETB  SCL
NOP
NOP
NOP
MOV C,  SDA
CLR SCL
RLC A
DJNZ  R0, RECV100
RET
;*******通过I2C总线向某一寄存器写入一个字节数据*********
I2C_WRITE:  ACALL  I2C_START  ;发启动信号
MOV  A, # DeviceaddressW ;调7113地址+写
ACALL  I2C_SEND_1BYTE ;发送7113地址及“写”命令
ACALL  CHECK_ACK  ;检查7113的应答信号
JNB  I2C_ERROR, WR200  ;应答正确,继续
WR100: ACALL  I2C_STOP  ;应答不对,返回
RET
WR200: MOV  A, Subaddress  ;调寄存器地址
ACALL  I2C_SEND_1BYTE ;发送寄存器地址
ACALL  CHECK_ACK  ;检查7113的应答信号
JB I2C_ERROR, WR100  ;应答不对,返回
MOV  A, DATA_I2C ;调准备写入的数据
ACALL  I2C_SEND_1BYTE ;发送数据字节
ACALL  CHECK_ACK
JB I2C_ERROR, WR100
ACALL I2C_STOP ;发停止信号
RET
;*******通过I2C总线读出某一寄存器的数据*********
I2C_READ:  ACALL I2C_START
MOV  A, # DeviceaddressW ;调7113地址,写入
ACALL  I2C_SEND_1BYTE
ACALL  CHECK_ACK
JNB  I2C_ERROR, RD200
RD100: ACALL  I2C_STOP
RET
RD200: MOV  A, Subaddress  ;调要读的寄存器地址
ACALL  I2C_SEND_1BYTE ; 发送寄存器地址字节
ACALL  CHECK_ACK
JB I2C_ERROR, RD100
ACALL  I2C_START ;重发起动信号
MOV A, # DeviceaddressR ;调7113地址,读
ACALL  I2C_SEND_1BYTE
ACALL  CHECK_ACK
JB  I2C_ERROR, RD100
ACALL  I2C_RECEIVE_1BYTE ;接收读出的数据
MOV DATA_I2C,A ;读出数据转存
ACALL  SEND_NOACK ;发送非应答位
ACALL  I2C_STOP  ;停止
RET
;***************初始化7113,配置各寄存器************************
INIT_SAA7113:  MOV DPTR, #SAA7113_Subaddress
MOV R7, #28
INIT100: MOV A, #0
MOV C A, @A+DPTR
MOV Subaddress,  A ;调寄存器地址
MOV A,#28
MOVC  A, @A+DPTR
MOV DATA_I2C, A  ;调寄存器配置数据
INC  DPTR
ACALL I2C_WRITE ;配置1个寄存器
JB I2C_ERROR, INIT200
DJNZ R7,INIT100
INIT200: RET
;***************SAA7113寄存器初始化配置数据**********************
SAA7113_Subaddress:
DB 01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,0EH
DB 0FH,10H,11H,12H,13H,15H,16H,17H,40H,58H,59H,5AH,5BH,5EH
;共28个
I2C_REG_VALUE_AI11:
DB 08H,0C0H,33H,00H,00H,0EBH,0E0H,0B8H,01H,7EH,46H,43H,01H,01H
DB 0FH,00H,0CH,0A7H,00H,00H,00H,00H,02H,00H,54H,07H,80H,00H
;*************对SAA7113某一寄存器的改写与读出*******************
WRITE_READ: MOV  Subaddress, #0AH  ; 设寄存器地址为0AH
MOV  DATA_I2C, #88H  ;改寄存器的值为88H
ACALL I2C_WRITE  ;改写
ACALL I2C_READ  ;读出
结语
SAA7113在很多产品中都可以应用,但其初始化与控制的原理都一样,本文中的程序段经过实际应用可以保证7113正常工作,其寄存器设置参数与控制方法可以被借鉴或直接应用。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 威斯康星州旅游景点介绍? 西典新能源适合长期干吗 OPPOA9移动数据怎么从2g变回g,系统更新之后就不知道怎么调了?_百度知 ... oppoa9运行内存说有6G怎么只有2G,刚买不久,有时候还闪退,黑屏,按不动... OPPOa9手机上网卡4g变成2g怎么办,在线等,挺急的! 校外培训机构有哪几类? 塔銮节的塔銮介绍 如图,6个正方形无缝拼接成一个大长方形,中间最小的一个正方形的面积为2... 如图,由6个颜色不同的正方形拼成的长方形,如果中间最小的正方形边长为1... ...示意图,它是由6个正方形拼成的长方形,中间最小的正方形A的边长是... 如图,长方形MNPQ是市民健身广场的平面示意图,它是由6个正方形拼成的长... 75平米两室两厅装修技巧75平米装修要点 装修效果图75平方米 信用卡额度是多少 办理房贷,银行说我两年有5次逾期归还,信用卡额度是2000的。现在银行告... 您好,我在农业银行有房贷,银行短信提示今天还款,我过了银行说的5 梦见买红女裤又被退掉 独立包装椰蓉球的保质期 七彩虹战斧C. A75M- GV主板怎么重装系统? 美丽生活不可欺高中作文 如何通过QQ邮箱发送大文件 传祺gs5怎么样优缺点? eve绕杆子一小时有多少lp点啊 EVE 卫队绕杆子收入怎么样? 如何将抖音里的视频快速分享到朋友圈里 贷款期间离职会有影响吗 手机号能绑定几个? 一个手机号码能绑定几个? 下列金融、非金融产品或工具,QDII基金不可购买并进行投资的是... QDII基金可以购买吗?想用一点小钱,做中长线投资理财,对国内的股票和基金... 请英语高手帮我翻译一下这段对话,地道美语,不要翻译器的,口语作业_百 ... 谁能帮我用英语翻译一段话,谢谢啦! 情商高的六种表现 文昌美食(探寻海岛饕餮之旅) 文昌哪些店好吃的 机场过安检,手机放在塑胶篮里,被安检员很大力放在桌上,篮里的物品都... 201只能当废铁卖吗 龙飘飘二十首最好听的歌曲 头扁的人适合戴头戴式耳机吗? 门窗十大品牌,门窗中猫腻你知多少