📄 ea1010_061022.asm
字号:
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #82 ; 显示区起始行数
MOV CB_IIC_Display+2, #27 ; 显示区起始列数
MOV CB_IIC_Display+3, #5 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 显示区数据长度(总长度-2)
;确定
MOV CB_IIC_Display+5, #144
MOV CB_IIC_Display+6, #145
MOV CB_IIC_Display+7, #146
MOV CB_IIC_Display+8, #147
MOV CB_IIC_Display+9, #50
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 显示区起始行数
MOV CB_IIC_Display+2, #1 ; 显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #82 ; 显示区起始行数
MOV CB_IIC_Display+2, #27 ; 显示区起始列数
MOV CB_IIC_Display+3, #5 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 显示区数据长度(总长度-2)
;确定
MOV CB_IIC_Display+5, #144
MOV CB_IIC_Display+6, #145
MOV CB_IIC_Display+7, #146
MOV CB_IIC_Display+8, #147
MOV CB_IIC_Display+9, #50
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 显示区起始行数
MOV CB_IIC_Display+2, #1 ; 显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #82 ; 显示区起始行数
MOV CB_IIC_Display+2, #27 ; 显示区起始列数
MOV CB_IIC_Display+3, #5 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 显示区数据长度(总长度-2)
;确定
MOV CB_IIC_Display+5, #144
MOV CB_IIC_Display+6, #145
MOV CB_IIC_Display+7, #146
MOV CB_IIC_Display+8, #147
MOV CB_IIC_Display+9, #50
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 显示区起始行数
MOV CB_IIC_Display+2, #1 ; 显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
;************返回第二屏************
MOV CB_IIC_Display, #2 ; 第1显示区(字符行)地址
MOV CB_IIC_Display+1, #20 ; 显示区起始行数
MOV CB_IIC_Display+2, #27 ; 显示区起始列数
MOV CB_IIC_Display+3, #13 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 显示区数据长度(总长度-2)
;调节显示位置
MOV CB_IIC_Display+5, #89
MOV CB_IIC_Display+6, #90
MOV CB_IIC_Display+7, #91
MOV CB_IIC_Display+8, #92
MOV CB_IIC_Display+9, #93
MOV CB_IIC_Display+10, #94
MOV CB_IIC_Display+11, #95
MOV CB_IIC_Display+12, #96
MOV CB_IIC_Display+13, #97
MOV CB_IIC_Display+14, #98
MOV CB_IIC_Display+15, #99
MOV CB_IIC_Display+16, #100
MOV CB_IIC_Display+17, #50
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #70 ; 显示区起始行数
MOV CB_IIC_Display+2, #27 ; 显示区起始列数
MOV CB_IIC_Display+3, #17 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 显示区数据长度(总长度-2)
;取消字符叠加功能
MOV CB_IIC_Display+5, #128
MOV CB_IIC_Display+6, #129
MOV CB_IIC_Display+7, #130
MOV CB_IIC_Display+8, #131
MOV CB_IIC_Display+9, #55
MOV CB_IIC_Display+10, #56
MOV CB_IIC_Display+11, #57
MOV CB_IIC_Display+12, #58
MOV CB_IIC_Display+13, #59
MOV CB_IIC_Display+14, #60
MOV CB_IIC_Display+15, #61
MOV CB_IIC_Display+16, #62
MOV CB_IIC_Display+17, #132
MOV CB_IIC_Display+18, #133
MOV CB_IIC_Display+19, #134
MOV CB_IIC_Display+20, #135
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 显示区起始行数
MOV CB_IIC_Display+2, #1 ; 显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #70 ; 显示区起始行数
MOV CB_IIC_Display+2, #27 ; 显示区起始列数
MOV CB_IIC_Display+3, #17 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 显示区数据长度(总长度-2)
;取消字符叠加功能
MOV CB_IIC_Display+5, #128
MOV CB_IIC_Display+6, #129
MOV CB_IIC_Display+7, #130
MOV CB_IIC_Display+8, #131
MOV CB_IIC_Display+9, #55
MOV CB_IIC_Display+10, #56
MOV CB_IIC_Display+11, #57
MOV CB_IIC_Display+12, #58
MOV CB_IIC_Display+13, #59
MOV CB_IIC_Display+14, #60
MOV CB_IIC_Display+15, #61
MOV CB_IIC_Display+16, #62
MOV CB_IIC_Display+17, #132
MOV CB_IIC_Display+18, #133
MOV CB_IIC_Display+19, #134
MOV CB_IIC_Display+20, #135
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 显示区起始行数
MOV CB_IIC_Display+2, #1 ; 显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #70 ; 显示区起始行数
MOV CB_IIC_Display+2, #27 ; 显示区起始列数
MOV CB_IIC_Display+3, #17 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 显示区数据长度(总长度-2)
;取消字符叠加功能
MOV CB_IIC_Display+5, #128
MOV CB_IIC_Display+6, #129
MOV CB_IIC_Display+7, #130
MOV CB_IIC_Display+8, #131
MOV CB_IIC_Display+9, #55
MOV CB_IIC_Display+10, #56
MOV CB_IIC_Display+11, #57
MOV CB_IIC_Display+12, #58
MOV CB_IIC_Display+13, #59
MOV CB_IIC_Display+14, #60
MOV CB_IIC_Display+15, #61
MOV CB_IIC_Display+16, #62
MOV CB_IIC_Display+17, #132
MOV CB_IIC_Display+18, #133
MOV CB_IIC_Display+19, #134
MOV CB_IIC_Display+20, #135
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#12
LCALL F_DelayLED
MOV CB_IIC_Display, #2 ; 第1显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 第1显示区起始行数
MOV CB_IIC_Display+2, #1 ; 第1显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 第1显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 显示区起始行数
MOV CB_IIC_Display+2, #1 ; 显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 显示区起始行数
MOV CB_IIC_Display+2, #1 ; 显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
LJMP MAIN1
;以上为演示程序部分
;********************************************
;***************子程序部分*******************
;********************************************
;/***********************************
;标号:F_iic_Write22
;功能:发送22字节子程序
;入口:要写的数据放在起始地址为CB_IIC_Display的数组中
;出口:无
;堆栈使用:6
;影响资源:Acc
;调用子程序:F_iic_Start..........2
; F_iic_SendBit........2
; F_iic_Tryresponsion..2
;其他: 如果那一个没写对(没响应)重写
;***********************************/
F_iic_Write22:
PUSH B
PUSH PSW
F_iic_Write22A:
LCALL F_iic_Start ;总线启动
MOV R0,#CB_IIC_Display
MOV RB_IICWRCounter,#22
L_iic_Write22:
mov A,@R0
LCALL F_iic_SendBit
LCALL F_iic_Tryresponsion
JNB Fg_Ack,F_iic_Write22A ;不应答重来
INC R0
DJNZ RB_IICWRCounter,L_iic_Write22
POP PSW
POP B
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -