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

📄 chap7.asm

📁 摩托罗拉Mc6805利程
💻 ASM
字号:
; Chapter 7 6808 assembly language programs
; Jonathan W. Valvano
; This software accompanies the book,
; Real Time Embedded Systems published by Brooks Cole
;

; Program 7.1. Assembly subroutine to output a character using the SCI port.
; MC68HC05C8
; RegA is data to output
OutChar brclr 7,SCSR,OutChar   
        sta SCDR ;output
        rts

; Program 7.2. A second assembly subroutine to output a character using the SCI port.
; MC68HC05C8
; RegA is data to output
OutChar sta SCDR ;output
wait2   brclr 7,SCSR,wait2
        rts

; Program 7.3. A third assembly subroutine to output a character using the SCI port.
; MC68HC05C8
; RegA is data to output
OutChar sta SCDR ;output
wait3   brclr 6,SCSR,wait3
        rts

; Program 7.5. Assembly ritual to initialize the SCI port to accept receiver interrupts.
; MC68HC05C8
RITSCI sei      ;make atomic
       lda #$31 ;4800 baud
       sta BAUD
       lda #00  ;M=0, 8 bit
       sta SCCR1 ;1 stop
       lda #$2C 
       sta SCCR2
       bsr CLRQ  ;Init FIFO
       cli       ;Enable
       rts  

; Program 7.6. Simple polling for receiver interrupts.
; MC68HC05C8
SCIHAN  brset 5,SCSR,INSCI

; Program 7.7. Polling for ones and zeros for receiver interrupts.
; MC68HC05C8
SCIHAN  lda SCSR  XX1XXXX0
        and #$21  RDRF set?
        cmp #$20  Bit0=0?
        beq INSCI

; Program 7.8. Assembly ISR for receiver interrupts.
; MC68HC05C8
INSCI lda SCSR ;status  
      and #$0E ;OR NF FE  
      bne ERROR   
      lda SCDR ;data ack  
      bsr PutFifo ;Communicate  
      bcs ERROR ;FIFO full?  
      rti

; Program 7.10. Assembly ritual to initialize the SCI port to accept receiver and transmitter interrupts.
; MC68HC05C8
Init lda #$30  ;9600 baud
     sta BAUD
     lda #$00  ;mode
     sta SCCR1
     jsr RxInitFifo ;empty
     jsr TxInitFifo ;empty
     lda #$2c  ;just RDRF
     sta SCCR2 ;enable SCI
     cli
     rts

Program 7.11. Assembly subroutines called by the main program to perform serial I/O.
; MC68HC05C8
InChar jsr  RxGetFifo
      beq  InChar
      rts
OutChar jsr  TxPutFifo ;save
      beq  OutChar  ;full?
      lda #$AC   ;arm both
      sta SCCR2  ;TDRE, RDRF
      rts

; Program 7.12. Assembly ISR for receiver and transmitter interrupts.
; MC68HC05C8
SCIhdlr lda SCSR        and #$20    ;RDRF?        beq ChkTDRE ;NotInSCI   lda SCDR    ;ASCII         bsr RxPutFifoChkTDRE lda SCSR        and #$80    ;TDRE?        beq SCIdone ;NotOutSCI  bsr TxGetFifo        beq nomore        sta SCDR   ;start 
        bra SCIdone
nomore  lda #$2C
        sta SCCR2  ;disarm 
SCIdone rti

; Program 7.13. Assembly functions for serial output using DTR synchronization.
; MC68HC05C8
; PA0 is DTR
; RegA is data to output
OutChar brset 0,PORTA,OutChar   
        brclr 7,SCSR,OutChar   
        sta SCDR ;output
        rts

⌨️ 快捷键说明

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