📄 rs232.asm
字号:
;***************************************************************************
;串口通信调试
;同步脉冲信号作为外部中断信号0(INTO,RB0)
;中断触发T1定时得到控制角,TO定时得到触发脉冲
;26个计数初值循环增加
;****************************************************************************
LIST P=18F458
INCLUDE "P18F458.INC"
data1 equ 20h ;定义一个延时变量寄存器
data2 equ 21h ;定义另一个延时变量寄存器
data3 equ 22h ;定义一个延时变量寄存器
A_H EQU 30H ;除数高8位
A_L EQU 31H ;除数低8位
B1_L EQU 32H ; 被除数的最高8位
B_H EQU 33H ;被除数高8位(商的高8位)
B_L EQU 34H ;被除数低8位(商的低8位)
C1_L EQU 35H ;余数的最高8位
C_H EQU 36H ;余数高8位
C_L EQU 37H ;余数低8位
D1_L EQU 38H
D_H EQU 39H
D_L EQU 3AH
TEMP EQU 3BH
DUAN EQU 3CH ;分段值
YCCSZC EQU 3DH
ACCBLO EQU 23H ;存放被转换的双字节整数低8位
ACCBHI EQU 24H ;存放被转换的双字节整数高8位
ACCCHI EQU 26H ;存放高8位BCD码
ACCCLO EQU 27H ;存放中8位BCD码,最终结果高
ACCDHI EQU 28H ;存放中8位BCD码,最终结果低
COUNT EQU 2FH ;临时寄存器
T1L EQU 40H ;存放T1定时器初值低8位
T1H EQU 41H ;存放T1定时器初值高8位
;*****************************************************************************
ORG 0000H
NOP
GOTO MAIN
ORG 0008H;中断矢量入口
NOP
GOTO INTSERVE
;################中断服务子主程序#################################
INTSERVE
NOP
BTFSS PIR1,RCIF
GOTO ERR_RE
MOVF RCREG,0
MOVWF TXREG
ERR_RE
NOP
RETFIE
;###################################################################
;************************************************系统初始化**************
INITIAL
NOP
MOVLW 19H;
MOVWF SPBRG;定时器清零
MOVLW 04H;
MOVWF TXSTA
MOVLW 80H
MOVWF RCSTA
MOVLW 80H ;0000010;
MOVWF TRISC;
BSF TXSTA,TXEN ;
BSF RCSTA,CREN ;
BSF PIE1,RCIE ;
MOVLW 0C0H
MOVWF INTCON
RETURN
;***********************************
;*******************长延时*************************
ldelay ;子程序名,也是子程序入口地址
movlw 0fh ;将外层循环参数值送到DATA1
movwf data3
llp0 movlw 0ffh ;将内层循环参数值送到DATA2
movwf data2
llp1 movlw 0ffh ;将内层循环参数值送到DATA2
movwf data1
llp2 nop
;CLRWDT ;清狗
decfsz data1,1 ;变量DATA2内容递减,若为0则跳跃
goto llp2 ;跳转到LP1
decfsz data2,1 ;变量DATA1内容递减,若为0则跳跃
goto llp1 ;跳转到LP0
decfsz data3,1 ;变量DATA1内容递减,若为0则跳跃
goto llp0 ;跳转到LP0
return ;返回主程序
;****************************************************
;*********************主程序**********************************************
MAIN
CALL INITIAL
MOVLW 55H ;11110000,总中断使能,外围中断使能,定时器0中断使能,INT0中断使能
MOVWF TXREG
MAIN0
GOTO MAIN0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -