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

📄 zi2188.asm

📁 中兴高频头ZI2188源程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
       SETB EN                ;置高EN使能
       LJMP REG1B             ;程序跳转到REG1处执行      
EXIT0B:MOV	R7,#7         ;移位次数7次  
LOOP0B:RLC	A             ;左移A中数
       MOV	SDAIN,C       ;把C中的数送入DAT
       NOP                    ;空操作
       NOP                    ;空操作,延时
       SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
       NOP                    ;空操作,延时
       NOP                    ;空操作,延时
       CLR	SCLK          ;把CLK置低
       DJNZ	R7,LOOP0B     ;R7不为0,转LOOP执行
       INC R0                 ;R0加1
       SJMP UP0B              ;转到UP处执行
TAB0B: DB  26H,88H,02H,0DH    ;数据列表
	
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG2寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG1B:                        ;初始化ZI2188寄存器REG1。(从低位到高位,前3位是地址,后面是数据,共21位)                       
       CLR	SCLK          ;把CLK置低  
       CLR      EN            ;EN置低
       MOV DPTR,#TAB1B        ;表首地址送DPTR
STAR1B:MOV R0,#0              ;把数据0放入R0,给一个偏移量的初值
UP1B:  MOV A,R0               ;再把R0中的数送给A
       MOVC A,@A+DPTR         ;从表中把要处理的数据找出来
       CJNE A,#0DH,EXIT1B     ;是否为结束符号0DH,如果是,则往下执行,如果不是,则跳到EXIT1
       SETB EN                ;置高EN使能
       LJMP REG2B             ;程序跳转到REG2处执行
EXIT1B:MOV	R7,#7         ;移位次数7次  
LOOP1B:RLC	A             ;左移A中数
       MOV	SDAIN,C       ;把C中的数送入DAT
       NOP                    ;空操作
       NOP                    ;空操作,延时
       SETB	SCLK          ;把CLK置高,使数据DAT写入移位寄存器
       NOP                    ;空操作
       NOP                    ;空操作,延时
       CLR	SCLK          ;把CLK置低
       DJNZ	R7,LOOP1B     ;R7不为0,转LOOP1执行
       INC R0                 ;R0加1
       SJMP UP1B              ;转到UP1
TAB1B: DB  64H,14H,0A4H,0DH   ;数据列表

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

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

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

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

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

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








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

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

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

;REG3:                       ;初始化ZI2188寄存器REG3。(从低位到高位,前3位是地址,后面是数据共21位)
                             ;预留
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;ZI2188  REG5寄存器初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REG43:                       ;初始化ZI2188寄存器REG4。(从低位到高位,前3位是地址,后面是数据共21位)
       CLR	SCLK         ;把CLK置低  
       CLR      EN           ;EN置低
       MOV DPTR,#TAB4B       ;表首地址送DPTR
STAR43:MOV R0,#0             ;把数据0放入R0,给一个偏移量的初值

⌨️ 快捷键说明

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