⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs232.asm

📁 pic单片机串口通信调试程序
💻 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 + -