📄 tm1628子程序.asm
字号:
/*********************************************************
; 数码管显示
; CS6928数据处理
; 指令说明:
; 1/B0BSET和BSET都是把某位置"1";B0BCLR和BSET都是把某位置"0"
; 2/MOV和B0MOV的功能是一样的
; 3/RRCM右移后存回RAM单元
;
/**********************************************************/
Display_process:
B0BSET P_STB ;启动器件
B0BSET P_DATA ;启动器件
B0BSET P_CLK ;启动器件
CALL Delay_10us ;
B0BCLR P_STB ;启动器件
;---
MOV A,#0x3C ;(0x3C是显示模式数据设置)
B0MOV W_DispData,A ;
CALL SendDispData ;调用发送数据
B0BSET P_STB ;连续发送数据时STB脚要"_|-|_"要出一个高脉冲
CALL Delay_10us ;
B0BCLR P_STB ;连续发送数据时STB脚要"_|-|_"要出一个高脉冲
;---
MOV A,#0x70 ;(0X70是数据设置)
B0MOV W_DispData,A
CALL SendDispData
B0BSET P_STB ;连续发送数据时STB脚要"_|-|_"要出一个高脉冲
CALL Delay_10us ;
B0BCLR P_STB ;连续发送数据时STB脚要"_|-|_"要出一个高脉冲
;---
MOV A,#0xF0 ;(0XF0是地址设置)
B0MOV W_DispData,A
CALL SendDispData ;注意:数据与数据与间STB不要有"1"变"0"
;-----------------------;
@@: ;
B0MOV A,@YZ ;查找RAM的数据,
B0MOV W_DispData,A ;
CALL SendDispData ;发送14字节显示数据
DECMS Z ;递减1不为"0"就跳到@@:
JMP @B ;@B中跳到@@:
;-----------------------;
B0BSET P_STB ;发送完数据要出"_|-|_"
CALL Delay_10us
B0BCLR P_STB ;发送完数据要出"_|-|_"
MOV A,#0x89 ;(0x89显示控制)
B0MOV W_DispData,A
CALL SendDispData
B0BSET P_STB ;
B0BSET P_CLK ;
B0BSET P_DATA ;所有显示数据发送完毕
RET
//--------------------------
; 显示数据传送
//--------------------------
SendDispData:
MOV A,#0x08
B0MOV W_Temp0,A
LoopSendData:
RRCM W_DispData
B0BTS1 FC
JMP Send_Disp_0
B0BSET P_DATA
JMP @F ;@F跳到@@:
Send_Disp_0:
B0BCLR P_DATA
@@:
CALL Delay_10us
B0BCLR P_CLK
CALL Delay_10us
B0BSET P_CLK
DECMS W_Temp0
JMP LoopSendData
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -