337
CHAPTER 14 8-BIT SERIAL I/O
;--------------------Interrupt processing routine----------------------------------------------------------
WARI CLRB SIOF ; Clears the interrupt request flag.
PUSHW A
XCHW A,T ; Saves A and T.
PUSHW A
MOV SDR,#55H ; Resets transfer data (55
H
).
SETB SST ; Starts serial I/O transfer.
:
User processing
:
POPW A
XCHW A,T ; Returns A and T.
POPW A
RETI
ENDS
; -------------------------------------------------------------------------------------------------------------------
END
■
Program Example for 8-bit Serial Input
● Processing specifications
• The 8-bit serial input program inputs 8-bit serial data from the SI pin of the 8-bit serial I/O. When serial
I/O transfer terminates, an interrupt occurs.
• The program reads transfer data with the interrupt processing routine and inputs it continuously.
• The program uses the external shift clock to be input from the SCK pin.
● Coding example
DDR3 EQU 000DH ; Address of data direction register 3
SMR EQU 0039H ; Address of serial mode register
SDR EQU 003AH ; Address of serial data register
SSEL EQU 003BH ; Address of serial/UART selection register
SIOF EQU SMR:7 ; Defines the interrupt request flag bit.
SST EQU SMR:0 ; Defines the serial I/O transfer start bit.
ILR4 EQU 007EH ; Address of interrupt request setting register 4
INT_V DSEG ABS ; [DATA SEGMENT]
ORG 0FFE2H
IRQC DW WARI ; Sets an interrupt vector.
INT_V ENDS
;--------------------Main program---------------------------------------------------------------------------
CSEG ; [CODE SEGMENT]
; The stack pointer (SP), etc., is already initialized.
:
MOV DDR3,#00000000B ; Sets the P30/SCK and P32/SI pins to input.
CLRI ; Disables interrupts.
CLRB SST ; Stops serial I/O transfer.
MOV ILR4,#11111101B ; Sets the interrupt level to 1.