⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ea1010_061022.asm

📁 keil-c开发
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;*******************************************************
;********精简型字符叠加器芯片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 + -