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

📄 t232.asm

📁 1
💻 ASM
字号:
;主函数

   #include  <P16f877a.inc>        ;定义所用的单片机头文件

COUNT      EQU  0x20 
_WREG      EQU  0x21
_STATUS    EQU  0x22


#define  STAR_RCadd   0x50    ;串口接收数据起始存放地址
#define  END_RCadd    0x70    ;串口接收数据结束存放地址


       org  0x00
RESET  nop         
       goto  Start

    org  0X04
  
INIT_V 
        bcf  INTCON,GIE	
Push
	movwf	_WREG		; 存 WREG状态
	swapf	STATUS,W	; 存 STATUS
	movwf	_STATUS

	bcf    STATUS,RP0
        btfsc  PIR1,RCIF ;读走数据后硬件自动清中断标志,故无须清除
        call   RCintsever

Pop
	swapf	_STATUS,W	; Restore STATUS
	movwf	STATUS
	swapf	_WREG,F		; Restore WREG w/o
	swapf	_WREG,W		; affecting STATUS
        bsf    INTCON,GIE
         retfie

   ORG   0X20; 
Start
   clrf   INTCON 
   CALL   INITDATA 
   clrf   _WREG
   CLRF   _STATUS;
   movlw  0xC0
   MOVWF  INTCON              ; ENABLE GIE,PEIE

   call   InitUart   
   CALL   TXDATA;
   MOVLW  0X50;
   MOVWF  FSR;
   GOTO   $;
;*******************************************


InitUart			;初始化串行口    
	movlw	0x90
	movwf	RCSTA           ;ENABLE UART,8BIT DATA,连续接收允许。
	bsf	STATUS,RP0
        bsf     TRISC,7         ;RX INPUT           
        bcf     TRISC,6         ;TX OUTPUT 		
	movlw	0x24               
	movwf	TXSTA           ;异步方式,发送允许,8位数据,高速波特率(配合4M振荡),TSR满??
	movlw	0X19	        ;9600=4000000/(16*(X+1))->X=25     0.16%  0x19
	movwf	SPBRG		;high speed mode   
        bsf     PIE1,RCIE       ;接收中断允许   
        bcf     STATUS,RP0      
         return

INITDATA
        MOVLW   0X2F;
        MOVWF   FSR;           FSR=2FH  
        MOVLW   0X40;
GOINITDATA        
        INCF    FSR,F;         FSR=30H
        MOVWF   INDF;         
        INCF    INDF,F;       0X41----30H; 
        MOVF    INDF,W; 
        BTFSS   FSR,3;        FSR=38H,FINISH 0X41-0X48-----30H-37H
        GOTO    GOINITDATA;
        RETURN
        
TXDATA	  			;发送数据子程序  
    MOVLW   0X30;
    MOVWF   FSR;
GOTXDATA
    MOVF    INDF,W;          0X41----W
    MOVWF   TXREG;
    BSF     STATUS,RP0;
    BTFSS   TXSTA,TRMT;      
    GOTO    $-1;
    BCF     STATUS,RP0;
    INCF    FSR;
    BTFSS   FSR,3
    goto    GOTXDATA;
    return

RCintsever                ;接收数据中断服务程序
    
	btfsc	RCSTA,OERR     ;溢出
	goto	RCerror
	movf	RCREG,w        
	movwf	INDF	
	incf	FSR,f
	return
RCerror
	bcf	RCSTA,CREN
        bsf     RCSTA,CREN
	return
    end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -