?? chap7.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 + -