æå½ä¸æ®µæåçç¨åºä¾åèï¼
;------------------ç¸å
³å¯åå¨å®ä¹------------------------
AUXR EQU 8EH ;è¾
å©å¯åå¨
AUXR1 EQU 0A2H ;è¾
å©å¯åå¨1
CLK_DIV EQU 97H ;æ¶éåé¢å¨
S2CON EQU 9AH ;串å£2æ§å¶å¯åå¨
S2BUF EQU 9BH ;串å£2æ°æ®ç¼å²åº
BRT EQU 9CH ;æ³¢ç¹çå¯åå¨
IE2 EQU 0AFH ;ä¸ææ§å¶å¯åå¨2
;-----------------串è¡åå§åç¨åº-------------------------
UART_INIT:
ORL PCON,#80H ;使è½æ³¢ç¹çåéä½SMOD
MOV SCON,#50H ;8ä½æ°æ®,å¯åæ³¢ç¹ç
MOV S2CON,#50H ;8ä½æ°æ®,å¯åæ³¢ç¹ç
MOV BRT,#0FAH ;57600bps@11.0592MHz
ORL AUXR,#14H ;ç¬ç«æ³¢ç¹çåçå¨æ¶é为Fosc,å³1T
ORL IE2,#01H ;å
许串å£2ä¸æ
ANL AUXR,#03FH ;å®æ¶å¨12æ¶é为Fosc,å³12T
ANL AUXR,#0FEH ;串å£1éæ©å®æ¶å¨1为波ç¹çåçå¨
MOV TMOD,#21H ;设å®å®æ¶å¨1为8ä½èªå¨éè£
æ¹å¼,0为16ä½å®æ¶å¨
MOV TL1,#0FFH ;57600bps@11.0592MHz
MOV TH1,#0FFH ;设å®å®æ¶å¨éè£
å¼
MOV SERGET,#0 ;æ¥æ¶RS232 Pointer is 0
MOV SERPUT,#0 ;åå¼RS232 Pointer is 0
MOV RXGET,#0 ;æ¥æ¶RS485 Pointer is 0
MOV RXPUT,#0 ;åå¼RS485 Pointer is 0
CLR P4.4 ;485å¤äºæ¥æ¶ç¶æ
ORL IPH,#10H ;
SETB PS ;串å£1ä¸æä¼å
级11为æé«
CLR ET1 ;ç¦æ¢å®æ¶å¨1ä¸æ
SETB TR1 ;å¯å¨å®æ¶å¨1
CLR BUSY
RET
;-----------------串è¡é讯2ä¸ææå¡ç¨åº-------------------------
SER2INT:
PUSH ACC
PUSH PSW
MOV A,S2CON
JNB ACC.0,SER2INT1 ;S2RI
ANL S2CON,#NOT S2RI
MOV A,S2BUF
MOV B,A
MOV R0,#RXRAM
MOV A,RXPUT
ANL A,#0FH
ORL A,R0
MOV R0,A
MOV A,B
MOV @R0,A
LCALL SENDRXDAT
INC RXPUT
SJMP SERINT2
SER2INT1:
MOV A,S2CON
JNB ACC.1,SERINT2 ;S2TI
ANL S2CON,#NOT S2TI
CLR BUSY
SERINT2:
POP PSW
POP ACC
RETI
;-----------------串è¡é讯1ä¸ææå¡ç¨åº-------------------------
SER1INT:
PUSH ACC
PUSH PSW
PUSH DPL
PUSH DPH
SETB RS0
CLR RS1
JBC RI,SERTIRI1 ;æ¯æ¥æ¶ä¸æ,æ¸
é¤æ¤æ å¿,转æ¥æ¶
CLR TI ;æ¯åéä¸æ,æ¸
é¤æ¤æ å¿,ä¸æè¿å
SJMP SEREND
SERTIRI1:
MOV A,SBUF ;æ¥æ¶(读å
¥)æ°æ®
MOV B,A
SERTIRI2:
MOV R0,#SERRAM
MOV A,SERPUT
ANL A,#1FH
ORL A,R0
MOV R0,A
MOV A,B
MOV @R0,A
INC SERPUT
MOV DLY03,A
SETB SERBIT
SEREND:
POP DPH
POP DPL
POP PSW
POP ACC
RETI
追é®å¤§å¥ æcè¯è¨çåï¼
追çcè¯è¨çå¯ä»¥åèè¿è¯ççæ°æ®æåï¼ä¸è½½å°åï¼www.stcmcu.com