21-04-23 1
Microprocessors 2lesson 7
21-04-23 2
Subjects lesson 7
Planning Interrupts Serial communication /USART Questions
21-04-23 3
Interrupt sources
• External Interrupt RA2/INT • TMR0 Overflow Interrupt • PORTA Change Interrupts • 2 Comparator Interrupts • A/D Interrupt • Timer1 Overflow Interrupt • Timer2 Match Interrupt • EEPROM Data Write Interrupt • Fail-Safe Clock Monitor Interrupt • Enhanced CCP Interrupt
21-04-23 4
Interrupt Logic
21-04-23 5
Program memory map
21-04-23 6
Interrupt Software#include "int16CXX.H"
#pragma origin 4
interrupt int_server( void)
{
int16 var;
int_save_registers
// W, STATUS (and PCLATH)
if (T0IF) { /* TMR0 overflow interrupt */
TMR0 = -255;
CharToLed(var);
var=var*2; if (var>=255) var=1;
T0IF = 0; /* reset flag */
int_restore_registers // W, STATUS (and PCLATH)
}
21-04-23 7
Main program interrupts
void main( void)
{
while (1)
{
}
}
21-04-23 8
Serial CommunicationIntoduction
Morse code telegraphy RS-232 (low-speed, implemented by Serial Ports) RS485 Universal Serial Bus (moderate-speed, for connecting
computers to peripherals) FireWire Fibre Channel (high-speed, for connecting computers
to mass storage devices) InfiniBand (very high speed, broadly comparable in
scope to PCI) Serial Attached SCSI Serial ATA PCI Express
21-04-23 9
RS232-C 1
Half duplex Full duplex 5,6,7,8 databits ASCII (0-127) Stop bit(s) Parity DCE (Data communication equipment) DTE(Data terminal Equipment (PC))
Serial Communication
21-04-23 10
RS232DB9-connector
9 Pin Connector on a DTE device (PC connection)
Male RS232 DB9
Pin Number Direction of signal:
1 Carrier Detect (CD) (from DCE) Incoming signal from a modem
2 Received Data (RD) Incoming Data from a DCE
3 Transmitted Data (TD) Outgoing Data to a DCE
4 Data Terminal Ready (DTR) Outgoing handshaking signal
5 Signal Ground Common reference voltage
6 Data Set Ready (DSR) Incoming handshaking signal
7 Request To Send (RTS) Outgoing flow control signal
8 Clear To Send (CTS) Incoming flow control signal
9 Ring Indicator (RI) (from DCE) Incoming signal from a modem
21-04-23 11
RS232SynchroneA-Synchrone
Synchrone: Always dataflow of bits to
synchronisize A-Synchrone; When no data needed to send no
dataflow. Synchronysation by start and stop bits (So slower)
Serial Communication
21-04-23 12
RS232Voltages
RS232
Level Transmitter (V)
Receiver (V)
Space status (0) +5 ... +15 +3 ... +25
Mark status (1) -5 ... -15 -3 ... -25
Not defined - -3 .. -3 …+3 . +3
Serial Communication
21-04-23 13
Cabellenght versus baudrate
Baud rate Maximum cabellength(m)
19200 15
9600 150
4800 300
2400 900
RS232 kabellengte volgens Texas Instruments
Serial Communication
21-04-23 14
Serial communication
PIC16F688
• Asynchronous
- Auto-wake-up
- Auto baud calibration
- 13-bit Break character
• Synchronous –
selectable clock
• Synchronous –
clock polarity
Serial Communication
21-04-23 15
Transmit status+control register
bit 7 CSRC: Clock Source Select bit
Asynchronous mode:
Don’t care
Synchronous mode:
1 = Master mode (clock generated internally from BRG)
0 = Slave mode (clock from external source)
bit 6 TX9: 9-bit Transmit Enable bit
1 = Selects 9-bit transmission
0 = Selects 8-bit transmission
bit 5 TXEN: Transmit Enable bit
1 = Transmit enabled
0 = Transmit disabled
Note: SREN/CREN overrides TXEN in Sync mode.
bit 4 SYNC: USART Mode Select bit
1 = Synchronous mode
0 = Asynchronous mode
bit 3 SENDB: Send Break Character bit
Asynchronous mode:
1 = Send Sync Break on next transmission (cleared by hardware upon completion)
0 = Sync Break transmission completed
Synchronous mode:
Don’t care
bit 2 BRGH: High Baud Rate Select bit
Asynchronous mode:
1 = High speed
0 = Low speed
Synchronous mode:
Unused in this mode
bit 1 TRMT: Transmit Shift Register Status bit
1 = TSR empty
0 = TSR full
bit 0 TX9D: 9th bit of Transmit Data
Can be address/data bit or a parity bit.
21-04-23 16
Buad ratecontrol
21-04-23 17
Baud ratecalculating
21-04-23 18
SETUPfor serialcommunication
21-04-23 19
Exercise
In the last week of this quarter you have to finish a programm what shows the working of the serial port. You can do this with 2 persons.
The programm on the 2 boards has to send the measured value from AN0 analogue input to the other board. The value received from the other board has to be shown , binary, on the 8 leds
Serial Communication