📄 ea1010_061022.asm
字号:
;*******************************************************
;********精简型字符叠加器芯片EA1010演示板汇编程序*******
;*******************************************************
;说明:
;本文件分两大部分:演示程序 和 子程序
;为了读起来便于理解,程序有许多重复的地方,实际应用时需要简化
;版本:eazf1010
;日期:20061018
;济南怡安科技发展有限公司
C_Start EQU 55H ;启动数据
C_OKReadOK EQU 59H ;刷新显示区成功
C_ErrRead EQU 5aH ;刷新显示区数据串错误,校验出错
C_Readed EQU 52H ;已读通讯信息
C_ClrScreen EQU 140 ;//清屏
P_iic_SDA EQU P0.6 ;iic引脚
P_iic_SCL EQU P0.7
Fg_Ack EQU 00H
RB_IICWRCounter EQU 30H
RB_IICDelayLed EQU 31H
RB_IIC_BUFF EQU 32H
CB_IIC_Display EQU 50H ;写数据起始地址
RB_iicVerify EQU 65H
ORG 00H
START:
LJMP MAIN
ORG 03H
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LJMP MAIN
ORG 13H
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LJMP MAIN
ORG 30H
MAIN:
MOV SP,#70H ;堆栈指针
CLR EA ;关闭所有中断
;*******************************************
;****************演示程序*******************
;*******************************************
MAIN1:
;---------第一屏----------
MOV RB_IICDelayLed,#62
LCALL F_DelayLED
MAIN1A:
MOV CB_IIC_Display, #2 ; 第1显示区(字符行)地址
MOV CB_IIC_Display+1, #00 ; 第1显示区起始行数
MOV CB_IIC_Display+2, #27 ; 第1显示区起始列数
MOV CB_IIC_Display+3, #17 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 第1显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #51 ;视
MOV CB_IIC_Display+6, #52 ;
MOV CB_IIC_Display+7, #53 ;频
MOV CB_IIC_Display+8, #54 ;
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, #63 ;芯
MOV CB_IIC_Display+18, #64 ;
MOV CB_IIC_Display+19, #65 ;片
MOV CB_IIC_Display+20, #66 ;
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#2
LCALL F_DelayLED
LCALL F_iic_ReadSign ;读通讯信息
MOV A,RB_IIC_BUFF
CJNE A,#C_OKReadOK ,MAIN1A ;如果读出的信息为非刷新成功信息,重新刷新
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #31 ; 第2显示区起始行数
MOV CB_IIC_Display+2, #30 ; 第2显示区起始列数
MOV CB_IIC_Display+3, #14 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 第2显示区数据长度(总长度-2)
;EA1010(精简型)
MOV CB_IIC_Display+5, #14
MOV CB_IIC_Display+6, #10
MOV CB_IIC_Display+7, #1
MOV CB_IIC_Display+8, #0
MOV CB_IIC_Display+9, #1
MOV CB_IIC_Display+10, #0
MOV CB_IIC_Display+11, #47
MOV CB_IIC_Display+12, #67
MOV CB_IIC_Display+13, #68
MOV CB_IIC_Display+14, #69
MOV CB_IIC_Display+15, #70
MOV CB_IIC_Display+16, #71
MOV CB_IIC_Display+17, #72
MOV CB_IIC_Display+18, #48
MOV CB_IIC_Display+19, #50
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
; MOV RB_IICDelayLed,#16
; LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #82 ; 第3显示区起始行数
MOV CB_IIC_Display+2, #27 ; 第3显示区起始列数
MOV CB_IIC_Display+3, #17 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 第3显示区数据长度(总长度-2)
; 济南怡安公司出品
MOV CB_IIC_Display+5, #73
MOV CB_IIC_Display+6, #74
MOV CB_IIC_Display+7, #75
MOV CB_IIC_Display+8, #76
MOV CB_IIC_Display+9, #77
MOV CB_IIC_Display+10, #78
MOV CB_IIC_Display+11, #79
MOV CB_IIC_Display+12, #80
MOV CB_IIC_Display+13, #81
MOV CB_IIC_Display+14, #82
MOV CB_IIC_Display+15, #83
MOV CB_IIC_Display+16, #84
MOV CB_IIC_Display+17, #85
MOV CB_IIC_Display+18, #86
MOV CB_IIC_Display+19, #87
MOV CB_IIC_Display+20, #88
LCALL F_iicVerify20; 计算校验
LCALL F_iic_Write22; 发送数据组
LCALL F_iic_Stop
; MOV RB_IICDelayLed,#16
; LCALL F_DelayLED
MOV CB_IIC_Display, #8 ; 第4显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 第4显示区起始行数
MOV CB_IIC_Display+2, #10 ; 第4显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 第4显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#200
LCALL F_DelayLED
;--------第二屏-------------------
MOV CB_IIC_Display, #2 ; 第1显示区(字符行)地址
MOV CB_IIC_Display+1, #20 ; 第1显示区起始行数
MOV CB_IIC_Display+2, #27 ; 第1显示区起始列数
MOV CB_IIC_Display+3, #13 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 第1显示区数据长度(总长度-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 RB_IICDelayLed,#16
; LCALL F_DelayLED
MOV CB_IIC_Display, #4 ; 第2显示区(字符行)地址
MOV CB_IIC_Display+1, #70 ; 第2显示区起始行数
MOV CB_IIC_Display+2, #27 ; 第2显示区起始列数
MOV CB_IIC_Display+3, #17 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 第2显示区数据长度(总长度-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,#16
; LCALL F_DelayLED
MOV CB_IIC_Display, #6 ; 第3显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 第3显示区起始行数
MOV CB_IIC_Display+2, #1 ; 第3显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 第3显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
; MOV RB_IICDelayLed,#16
; LCALL F_DelayLED
MOV CB_IIC_Display, #8 ; 第4显示区(字符行)地址
MOV CB_IIC_Display+1, #144 ; 第4显示区起始行数
MOV CB_IIC_Display+2, #1 ; 第4显示区起始列数
MOV CB_IIC_Display+3, #1 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #5 ; 第4显示区数据长度(总长度-2)
MOV CB_IIC_Display+5, #0 ;
LCALL F_iicVerify5; 计算校验
LCALL F_iic_Write6; 发送数据组
LCALL F_iic_Stop
MOV RB_IICDelayLed,#20
LCALL F_DelayLED
MOV CB_IIC_Display, #2 ; 第1显示区(字符行)地址
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, #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 RB_IICDelayLed,#8
LCALL F_DelayLED
MOV CB_IIC_Display, #2 ; 第1显示区(字符行)地址
MOV CB_IIC_Display+1, #20 ; 第1显示区起始行数
MOV CB_IIC_Display+2, #27 ; 第1显示区起始列数
MOV CB_IIC_Display+3, #13 ; 一列中显示的字符数
MOV CB_IIC_Display+4, #20 ; 第1显示区数据长度(总长度-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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -