311
CHAPTER 13 UART
13.7 Program Example for UART
This section provides program example for UART.
■ Program Example for UART
● Program specifications
• Serial data transfer is implemented using the UART communication functions.
• The P30/UCK/SCK, P31/UO/SO, and P32/UI/SI pins are used for communication.
• The transfer rate is set to 300 bps using the internal baud rate generator.
•13
H
is transmitted from the UO pin, and data is received by interrupts.
• The baud rate is the oscillation frequency (F
CH
= 12.5 MHz) at the maximum gear speed (1 instruction
cycle = 4/F
CH
). The clock divider is 2.5. (1/375 bps = 8320 t
INST
)
● Coding example
PDR3 EQU 000CH ; Port data register address
DDR3 EQU 000DH ; Port direction register address
SSEL EQU 003BH ; Serial selection register address
SMC EQU 0028H ; Serial mode control register address
SRC EQU 0029H ; Serial rate control register address
SSD EQU 002AH ; Serial status and data register address
SIDR EQU 002BH ; Serial input data register address
SODR EQU 002BH ; Serial output data register address
UPC EQU 002CH ; Clock divider selection register address
ILR2 EQU 007CH ; Interrupt level setting register address
INT_V DSEG ABS ; [DATA SEGMENT]
ORG 0FFEEH
IRQ6 DW WARI2 ; Reception interrupt vector setting
IRQ5 DW WARI1 ; Transmission interrupt vector setting
INT_V ENDS
;--------------------Main program---------------------------------------------------------------------------
CSEG ; [CODE SEGMENT]
; The stack pointer (SP) and related components have to be
initialized.
:
CLRI ; Disable interrupts.
MOV ILR2,#11101011B ; Set an interrupt level (level 1).
MOV UPC,#11111010B ; Allow operation with the clock whose frequency is divided
by 2.5.
MOV SSEL,#00000000B ; Select UART.
MOV DDR3,#00000000B ; Set the UI pin as the input pin.
MOV SMC,#01011011B ; Set non-parity, the number of stop bits 1, and operating