📄 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.
; MC68HC708XL36
OutChar brclr 7,SCS1,OutChar
sta SCDR ;output
rts
; Program 7.2. A second assembly subroutine to output a character using the SCI port.
; MC68HC708XL36
OutChar sta SCDR ;output
wait2 brclr 7,SCS1,wait2
rts
; Program 7.3. A third assembly subroutine to output a character using the SCI port.
; MC68HC708XL36
OutChar sta SCDR ;output
wait3 brclr 6,SCS1,wait3
rts
; Program 7.5. Assembly ritual to initialize the SCI port to accept receiver interrupts.
; MC68HC708XL36
RITSCI sei ;make atomic
lda #$32 ;4800 baud
sta SCBR
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.
; MC68HC708XL36
SCIHAN brset 5,SCS1,INSCI
; Program 7.7. Polling for ones and zeros for receiver interrupts.
; none for MC68HC708XL36
; Program 7.8. Assembly ISR for receiver interrupts.
; MC68HC708XL36
INSCI lda SCS1 ;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.
; MC68HC708XL36
Init mov #$31,SCBR ;9600
mov #$00,SCC1
jsr RxInitFifo ;empty
jsr TxInitFifo ;empty
mov #$2c,SCC2 ;enable
mov #$00,SCC3 ;no DMA
cli
rts
Program 7.11. Assembly subroutines called by the main program to perform serial I/O.
; MC68HC708XL36
InChar jsr RxGetFifo
beq InChar
rts
OutChar jsr TxPutFifo ;save
beq OutChar ;full?
mov #$AC,SCC2 ;arm
rts
; Program 7.12. Assembly ISR for receiver and transmitter interrupts.
; MC68HC708XL36
SCIhdlr lda SCS1 and #$20 ;SCRF? beq ChkSCTE ;Not InSCI lda SC0DRL ;ASCII bsr RxPutFifoChkSCTE lda SCS1 and #$80 ;SCTE? beq SCIdone ;NotOutSCI bsr TxGetFifo beq nomore sta SCDR ;start
bra SCIdone
nomore mov #$2C,SCC2 disarm
SCIdone rti
; Program 7.13. Assembly functions for serial output using DTR synchronization.
; MC68HC708XL36
; PA0 is DTR
OutChar brset 0,PORTA,OutChar
brclr 7,SCS1,OutChar
sta SCDR ;output
rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -