Es Chapter10 (1)
Es Chapter10 (1)
Es Chapter10 (1)
Embedded Systems
Muhammad Ali Mazidi, Rolin McKinlay and Danny Causey
PIC Microcontroller
and Embedded
Systems
Muhammad Ali
Mazidi, Rolin McKinlay
and Danny Causey,
February 2007.
Transfers a
Transfers a block of data
single byte at a at a time
time
The PIC uCs 10-7
Half-and Full-Duplex
Transmission
The
The PIC
PICuCs
uCs 10-8
Start and Stop Bits
In the asynchronous method, each
character is placed between start and
stop bits (framing)
MSB LSB
DB-25 DB-9
25-Pin Connector 9-Pin Connector
The
The PIC
PICuCs
uCs 10-12
RS232 Pins (cont’d)
DB-9
9-Pin Connector
The
The PIC
PICuCs
uCs 10-13
PIC18 Connection to RS232
Line driver
The
The PIC
PICuCs
uCs 10-14
Figure 10-6. Null Modem
Connection
Null modem is a communication method to
connect two DTEs (computer, terminal,
printer etc.) directly using a RS-232 serial
cable.
With a null modem connection the transmit
and receive lines are crosslinked.
Depending on the purpose, sometimes also
one or more handshake lines are
crosslinked.
Line driver
The
The PIC
PICuCs
uCs 10-16
PIC18 Connection to RS232
(Cont’d)
Line driver
The
The PIC
PICuCs
uCs 10-17
Section10.3: PIC18 Serial Port
Programming in Assembly
USART has both
Synchronous
Asynchronous
6 registers
SPBRG
TXREG
Rx Port
RCREG
TXSTA
RCSTA
PIR1
If Fosc = 10MHz
X = (156250/Desired Baud Rate) - 1
Example:
X = (156250/1200) – 1
X = 129.21 = 129 = 81H
The
The PIC
PICuCs
uCs 10-20
TXREG Register
8-bit register used for serial
communication in the PIC18
For a byte of data to be transferred via
the Tx pin, it must be placed in the
TXREG register first.
The moment a byte is written into
TXREG, it is fetched into a non-
accessible register TSR
MOVFF PORTB, TXREG
The frame contains 10 bits
The PIC uCs 10-21
RCREG Register
8-bit register used for serial
communication in the PIC18
When the bits are received serially via
the Rx pin, the PIC18 deframes them by
eliminating the START and STOP bit,
making a byte out of data received and
then placing it in the RCREG register
MOVFF RCREG, PORTB
The
The PIC
PICuCs
uCs 10-23
TXSTA (Transmit Status and
Control Register) (Cont’d)
The
The PIC
PICuCs
uCs 10-24
RCSTA (Receive Status and
Control Register)
The
The PIC
PICuCs
uCs 10-25
RCSTA (Receive Status and
Control Register) (Cont’d)
The
The PIC
PICuCs
uCs 10-26
PIR1 (Peripheral Interrupt
Request Register 1)
The
The PIC
PICuCs
uCs 10-27
Programming the PIC18 to
Transfer Data Serially
1. TXSTA register = 20H: Indicating
asynchronous mode with 8-bit data frame,
low baud rate and transmit enabled
2. Set Tx pin an output (RC6)
3. Loaded SPBRG for baud rate
4. Enabled the serial port (SPEN = 1 in RCSTA)
5. The character byte to transmit must be
written into TXREG
6. Keep Monitor TXIF bit
7. To transmit next character, go to step 5
MOVLW B'00100000'
MOVWF TXSTA
MOVLW D'15'; 9600 bps
MOVWF SPBRG
BCF TRISC, TX
BSF RCSTA, SPEN
OVER MOVLW A'G'
S1 BTFSS PIR1, TXIF
BRA S1
MOVWF TXREG
BRA OVER
The
The PIC
PICuCs
uCs 10-29
TXSTA: Transmit Status and
Control Register
MOVLW B'10010000'
MOVWF RCSTA
MOVLW D'15'
MOVWF SPBRG
BSF TRISC, RX
CLRF TRISB
R1 BTFSS PIR1, RCIF
BRA R1
MOVFF RCREG, PORTB
BRA R1
The
The PIC
PICuCs
uCs 10-32
Increasing the Baud Rate
Faster Crystal
May not be able to change crystal
TXSTA.BRGH bit
Normally used low
Can be set high
Quadruples rate when set high