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

📄 zi2188.asm

📁 中兴高频头ZI2188源程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
UP43:  MOV A,R0              ;再把R0中的数送给A
       MOVC A,@A+DPTR        ;从表中把要处理的数据找出来
       CJNE A,#0DH,EXIT43    ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT4
       SETB EN               ;置高EN使能
       LJMP REG53            ;程序跳转到REG5处执行
EXIT43:MOV	R7,#7        ;移位次数7次  
LOOP43:RLC	A            ;左移A中数
       MOV	SDAIN,C      ;把C中的数送入DAT
       NOP                   ;空操作
       NOP                   ;空操作,延时
       SETB	SCLK         ;把CLK置高,使数据DAT写入移位寄存器
       NOP                   ;空操作
       NOP                   ;空操作,延时
       CLR	SCLK         ;把CLK置低
       DJNZ	R7,LOOP43    ;R7不为0,转LOOP4执行
       INC R0                ;R0加1
       SJMP UP43             ;转到UP4
TAB43: DB  00H,3CH,0AH,0DH   ;数据列表

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG6寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG53:                        ;初始化ZI2188寄存器REG5。(从低位到高位,前3位是地址,后面是数据共21位)
        CLR	SCLK          ;把CLK置低  
        CLR      EN           ;EN置低
        MOV DPTR,#TAB53       ;表首地址送DPTR
STAR53: MOV R0,#0             ;把数据0放入R0,给一个偏移量的初值
UP53:   MOV A,R0              ;再把R0中的数送给A
        MOVC A,@A+DPTR        ;从表中把要处理的数据找出来
        CJNE A,#0DH,EXIT53    ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT5
        SETB EN               ;EN置高
        LJMP REG63            ;程序跳转到REG6处执行
EXIT53: MOV	R7,#7         ;移位次数7次  
LOOP53: RLC	A             ;左移A中数
        MOV	SDAIN,C       ;把C中的数送入DAT
        NOP                   ;空操作
        NOP                   ;空操作,延时
        SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
        NOP                   ;空操作,延时
        NOP                   ;空操作,延时
        CLR	SCLK          ;把CLK置低
        DJNZ	R7,LOOP53     ;R7不为0,转LOOP5执行
        INC R0                ;R0加1
        SJMP UP53             ;转到UP5
TAB53:  DB  6CH,24H,8CH,0DH   ;数据列表

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG0寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG63:                        ;初始化ZI2188寄存器REG5。(从低位到高位,前3位是地址,后面是数据共21位)
        CLR	SCLK          ;把CLK置低  
        CLR      EN           ;EN置低
        MOV DPTR,#TAB63       ;表首地址送DPTR
STAR63: MOV R0,#0             ;把数据0放入R0,给一个偏移量的初值
UP63:   MOV A,R0              ;再把R0中的数送给A
        MOVC A,@A+DPTR        ;从表中把要处理的数据找出来
        CJNE A,#0DH,EXIT63    ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT6
        SETB EN               ;EN置高
        MOV P0,#11110011B     ;频道指示灯
        LJMP  KEY_SCAN        ;程序跳转到KEY_SCAN处执行,初始化完后,进行键盘扫描
EXIT63: MOV	R7,#7         ;移位次数7次  
LOOP63: RLC	A             ;左移A中数
        MOV	SDAIN,C       ;把C中的数送入DAT
        NOP                   ;空操作
        NOP                   ;空操作,延时
        SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
        NOP                   ;空操作
        NOP                   ;空操作,延时
        CLR	SCLK          ;把CLK置低
        DJNZ	R7,LOOP63     ;R7不为0,转LOOP6执行
        INC R0                ;R0加1
        SJMP UP63             ;转到UP6
TAB63:  DB  12H,0A6H,20H,0DH  ;数据列表

;;;;;;;;;;;;;;;;;;;以上为CH3初始化ZI2188Z程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;









;;;;;;;;;;;;;;;;;;;以下为CH4初始化ZI2188Z程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG1寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CH4:                          ;初始化ZI2188,先发数据高位,再发低位,从高往低发
REG00:                        ;初始化ZI2188寄存器REG0 。(从低位到高位,前3位是地址,后面是数据共21位)                     
       CLR	SCLK          ;把CLK置低  
       CLR      EN            ;EN置低
       MOV DPTR,#TAB00        ;表首地址送DPTR
STAR00:MOV R0,#0              ;把数据0放入R0,给一个偏移量的初值
UP00:  MOV A,R0               ;再把R0中的数送给A
       MOVC A,@A+DPTR         ;从表中把要处理的数据找出来
       CJNE A,#0DH,EXIT00     ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT
       SETB EN                ;置高EN使能
       LJMP REG11             ;程序跳转到REG1处执行      
EXIT00:MOV	R7,#7         ;移位次数7次  
LOOP00:RLC	A             ;左移A中数
       MOV	SDAIN,C       ;把C中的数送入DAT
       NOP                    ;空操作
       NOP                    ;空操作,延时
       SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
       NOP                    ;空操作,延时
       NOP                    ;空操作,延时
       CLR	SCLK          ;把CLK置低
       DJNZ	R7,LOOP00     ;R7不为0,转LOOP执行
       INC R0                 ;R0加1
       SJMP UP00              ;转到UP处执行
TAB00: DB  26H,88H,02H,0DH    ;数据列表
	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG2寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG11:                         ;初始化ZI2188寄存器REG1。(从低位到高位,前3位是地址,后面是数据,共21位)                       
        CLR	SCLK           ;把CLK置低  
        CLR      EN            ;EN置低
        MOV DPTR,#TAB11        ;表首地址送DPTR
STAR11: MOV R0,#0              ;把数据0放入R0,给一个偏移量的初值
UP11:   MOV A,R0               ;再把R0中的数送给A
        MOVC A,@A+DPTR         ;从表中把要处理的数据找出来
        CJNE A,#0DH,EXIT11     ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT1
        SETB EN                ;置高EN使能
        LJMP REG22              ;程序跳转到REG2处执行
EXIT11: MOV	R7,#7          ;移位次数7次  
LOOP11: RLC	A              ;左移A中数
        MOV	SDAIN,C        ;把C中的数送入DAT
        NOP                    ;空操作
        NOP                    ;空操作,延时
        SETB	SCLK           ;把CLK置高,使数据DAT写入移位寄存器
        NOP                    ;空操作
        NOP                    ;空操作,延时
        CLR	SCLK           ;把CLK置低
        DJNZ	R7,LOOP11      ;R7不为0,转LOOP1执行
        INC R0                 ;R0加1
        SJMP UP11              ;转到UP1
TAB11:  DB  64H,14H,0A4H,0DH   ;数据列表

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG4寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG22:                        ;初始化ZI2188寄存器REG2。(从低位到高位,前3位是地址,后面是数据共21位)
       CLR	SCLK          ;把CLK置低  
       CLR      EN            ;EN置低
       MOV DPTR,#TAB22        ;表首地址送DPTR
STAR22:MOV R0,#0              ;把数据0放入R0,给一个偏移量的初值
UP22:  MOV A,R0               ;再把R0中的数送给A
       MOVC A,@A+DPTR         ;从表中把要处理的数据找出来
       CJNE A,#0DH,EXIT22     ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT2
       SETB EN                ;置高EN使能
       LJMP REG44             ;程序跳转到REG4处执行
EXIT22:MOV	R7,#7         ;移位次数7次  
LOOP22:RLC	A             ;左移A中数
       MOV	SDAIN,C       ;把C中的数送入DAT
       NOP                    ;空操作
       NOP                    ;空操作,延时
       SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
       NOP                    ;空操作
       NOP                    ;空操作,延时
       CLR	SCLK          ;把CLK置低
       DJNZ	R7,LOOP22     ;R7不为0,转LOOP2执行
       INC R0                 ;R0加1
       SJMP UP22              ;转到UP2
TAB22: DB  70H,08H,88H,0DH    ;数据列表

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;REG3:                       ;初始化ZI2188寄存器REG3。(从低位到高位,前3位是地址,后面是数据共21位)
                             ;预留
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG5寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG44:                       ;初始化ZI2188寄存器REG4。(从低位到高位,前3位是地址,后面是数据共21位)
       CLR	SCLK         ;把CLK置低  
       CLR      EN           ;EN置低
       MOV DPTR,#TAB44       ;表首地址送DPTR
STAR44:MOV R0,#0             ;把数据0放入R0,给一个偏移量的初值
UP44:  MOV A,R0              ;再把R0中的数送给A
       MOVC A,@A+DPTR        ;从表中把要处理的数据找出来
       CJNE A,#0DH,EXIT44    ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT4
       SETB EN               ;置高EN使能
       LJMP REG55            ;程序跳转到REG5处执行
EXIT44:MOV	R7,#7        ;移位次数7次  
LOOP44:RLC	A            ;左移A中数
       MOV	SDAIN,C      ;把C中的数送入DAT
       NOP                   ;空操作
       NOP                   ;空操作,延时
       SETB	SCLK         ;把CLK置高,使数据DAT写入移位寄存器
       NOP                   ;空操作
       NOP                   ;空操作,延时
       CLR	SCLK         ;把CLK置低
       DJNZ	R7,LOOP44    ;R7不为0,转LOOP4执行
       INC R0                ;R0加1
       SJMP UP44             ;转到UP4
TAB44: DB  00H,3CH,0AH,0DH   ;数据列表

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG6寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG55:                        ;初始化ZI2188寄存器REG5。(从低位到高位,前3位是地址,后面是数据共21位)
        CLR	SCLK          ;把CLK置低  
        CLR      EN           ;EN置低
        MOV DPTR,#TAB55       ;表首地址送DPTR
STAR55: MOV R0,#0             ;把数据0放入R0,给一个偏移量的初值
UP55:   MOV A,R0              ;再把R0中的数送给A
        MOVC A,@A+DPTR        ;从表中把要处理的数据找出来
        CJNE A,#0DH,EXIT55    ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT5
        SETB EN               ;EN置高
        LJMP REG66            ;程序跳转到REG6处执行
EXIT55: MOV	R7,#7         ;移位次数7次  
LOOP55: RLC	A             ;左移A中数
        MOV	SDAIN,C       ;把C中的数送入DAT
        NOP                   ;空操作
        NOP                   ;空操作,延时
        SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
        NOP                   ;空操作,延时
        NOP                   ;空操作,延时
        CLR	SCLK          ;把CLK置低
        DJNZ	R7,LOOP55     ;R7不为0,转LOOP5执行
        INC R0                ;R0加1
        SJMP UP55             ;转到UP5
TAB55:  DB  6CH,24H,8CH,0DH   ;数据列表

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG0寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG66:                        ;初始化ZI2188寄存器REG5。(从低位到高位,前3位是地址,后面是数据共21位)
        CLR	SCLK          ;把CLK置低  
        CLR      EN           ;EN置低
        MOV DPTR,#TAB66       ;表首地址送DPTR
STAR66: MOV R0,#0             ;把数据0放入R0,给一个偏移量的初值
UP66:   MOV A,R0              ;再把R0中的数送给A
        MOVC A,@A+DPTR        ;从表中把要处理的数据找出来
        CJNE A,#0DH,EXIT66    ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT6
        SETB EN               ;EN置高
        MOV P0,#11111100B     ;频道指示灯
        LJMP  KEY_SCAN        ;程序跳转到KEY_SCAN处执行,初始化完后,进行键盘扫描
EXIT66: MOV	R7,#7         ;移位次数7次  
LOOP66: RLC	A             ;左移A中数
        MOV	SDAIN,C       ;把C中的数送入DAT
        NOP                   ;空操作
        NOP                   ;空操作,延时
        SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
        NOP                   ;空操作
        NOP                   ;空操作,延时
        CLR	SCLK          ;把CLK置低
        DJNZ	R7,LOOP66     ;R7不为0,转LOOP6执行
        INC R0                ;R0加1
        SJMP UP66             ;转到UP6
TAB66:  DB  12H,0C0H,0C0H,0DH  ;数据列表

;;;;;;;;;;;;;;;;;;;以上为CH4初始化ZI2188Z程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

END                           ;程序结束

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -