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