📄 汇编程序.htm
字号:
RET<BR>;=============================================<BR>SEND_OFF:<BR>
B0BSET
P1.3<BR> B0BSET
P2.5 <BR>
CALL DEL500US_HIGH<BR>
<BR> B0BCLR
P1.3<BR>
B0BCLR P2.5<BR>SEND_OFF_2:<BR>
CALL
DEL500US<BR> CALL
DEL500US<BR> <BR>
MOV A,#3<BR>
B0MOV
SEND_OFF_BUFF,A<BR>
<BR>SEND_OFF_3:<BR> B0BSET
P1.3<BR> B0BSET
P2.5<BR> CALL
DEL500US_HIGH<BR>
<BR> B0BCLR
P1.3<BR> B0BCLR
P2.5<BR> CALL
DEL500US<BR> <BR>
DECMS
SEND_OFF_BUFF<BR> JMP
SEND_OFF_3<BR> RET
<BR>;=============================================<BR>DEL500US:<BR>
MOV A,#130<BR>
B0MOV
DEL500US_BUFF,A<BR>DEL500US_1:<BR>
DECMS DEL500US_BUFF<BR>
JMP DEL500US_1<BR>
RET<BR>;===========================================<BR>DEL500US_HIGH:<BR>
MOV A,#2<BR>
B0MOV
DEL500US_BUFF,A<BR>DEL500US_HIGH_1:<BR>
B0BSET P1.3<BR>
B0BSET P2.5<BR>
DECMS
DEL500US_BUFF<BR> JMP
DEL500US_HIGH_1<BR> <BR>
<BR> MOV
A,#2<BR> B0MOV
DEL500US_BUFF,A<BR>DEL500US_HIGH_2:<BR>
B0BCLR
P1.3<BR> B0BCLR
P2.5<BR> DECMS
DEL500US_BUFF<BR> JMP
DEL500US_HIGH_2<BR>
<BR> DECMS
DEL500US_HIGH_BUFF<BR> JMP
DEL500US_HIGH<BR> MOV
A,#19<BR>
B0MOV DEL500US_HIGH_BUFF,A<BR>
RET</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4 width="98%"
align=center>
<TBODY>
<TR>
<TD bgColor=#f8f8f8>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD class=bold>雪狼</TD>
<TD align=right>2006-8-4 01:12</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=smalltxt
bgColor=#ffffff>;此为带过零检测的程序,此为用外中断,但是渐明渐暗的过程有梯度<BR>;改进的方法为减少中断时间,把斩波时间作得很细<BR>;接收到的编码为反码<BR>;编程的思想为将接收到的编码存起来,然后取反,再将本机的地址码读入和接收到的<BR>;编码相比较,如果结果相同就开始工作,否则返回(即地址码相同才开始接收)。<BR>;========================================================<BR>KEY_FLAG
EQU
00H<BR>ON_OFF_FLAG
EQU 01H<BR>KEY_BUFF
EQU
02H<BR>NUM_BUFF_05MS EQU
03H<BR>NUM_BUFF_1MS
EQU 04H<BR>NUM_FLAG
EQU
05H ;0:INC 1:DEC 2:ON
3:OFF<BR>NUM_BUFF_SEND EQU
06H<BR>ADDRESS_BUFF_05MS
EQU 07H<BR>ADDRESS_BUFF_1MS
EQU
08H<BR>P2_BUFF_SEND EQU
09H<BR>REC_OFF_FLAG
EQU 0AH<BR>P2_BUFF_REC
EQU 0BH<BR>CHECK_FLAG
EQU
0CH<BR>DEL5MS_BUFF EQU
0DH<BR>DEL5MS_BUFF_1
EQU 0EH<BR>DEL10MS_BUFF
EQU
0FH<BR>DEL10MS_BUFF_1 EQU
10H<BR>ACC_BUFF
EQU
11H<BR>PFLAG_BUFF EQU
12H<BR>FIVE
EQU 13H<BR>DEL1MS_BUFF
EQU 14H<BR>TEN
EQU
15H<BR>LOOP
EQU 16H<BR>LOOP_BUFF
EQU
17H<BR>CHUFA_FLAG EQU
18H<BR>INC_DEC_BUFF
EQU 19H<BR>INC_DEC_BUFF_1
EQU
1AH<BR>;=========================================<BR>CHIP
SN8P2501A<BR>//{{SONIX_CODE_OPTION<BR>
.Code_Option
Noise_Filter Enable<BR>
.Code_Option
Watch_Dog Always_ON
; Watchdog still enable even in Green and Sleep
mode<BR> .Code_Option
16M_IHRC #6
; 16M_IHRC = Normal<BR>
.Code_Option Reset_Pin
P11<BR> .Code_Option
High_Clk
IHRC_16M ; Internal 16M RC
Oscillator<BR> .Code_Option
Fcpu
#5 ; Fcpu = High_Clk/16<BR>
.Code_Option
Security
Enable<BR>//}}SONIX_CODE_OPTION<BR>;=================================================<BR>
ORG 0X00<BR>
JMP START<BR>
ORG 0X08<BR>
JMP
INTERRUPT<BR>;================================================<BR>INTERRUPT:
;1MS中断一次<BR> B0XCH
A,ACC_BUFF<BR>
B0MOV A,PFLAG<BR>
B0MOV PFLAG_BUFF,A<BR>
<BR> B0BTS1
FT0IRQ
;T0<BR> JMP
INT_INTERRUPT<BR>
B0BCLR FT0IRQ<BR>
<BR>LED_ON_OFF:<BR> B0BTS0
ON_OFF_FLAG.0<BR>
JMP HIGH_LOW_VERT<BR>
<BR> B0BCLR
P1.0
;LED OFF<BR> MOV
A,#0<BR> B0MOV
NUM_FLAG,A<BR> B0MOV
ON_OFF_FLAG,A<BR>
B0MOV CHUFA_FLAG,A<BR>
<BR> MOV
A,#11<BR> B0MOV
LOOP,A<BR>
B0MOV LOOP_BUFF,A<BR>
MOV A,#25<BR>
B0MOV INC_DEC_BUFF,A<BR>
B0MOV
INC_DEC_BUFF_1,A<BR> JMP
TTT<BR>;=====================================================<BR>HIGH_LOW_VERT:<BR>
B0BTS0
CHUFA_FLAG.0<BR> JMP
TTT<BR> <BR>
DECMS LOOP<BR>
JMP T0_INTERRUPT<BR>
B0MOV A,LOOP_BUFF<BR>
B0MOV
LOOP,A<BR> B0BSET
P1.0<BR> B0BSET
CHUFA_FLAG.0<BR> JMP
T0_INTERRUPT<BR>TTT:<BR>
B0BCLR P1.0<BR>
B0BCLR CHUFA_FLAG.0
<BR> B0BCLR
FT0ENB<BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -