📄 zi2188.asm
字号:
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 + -