#include <reg51.h> /* Include x51 header file */
void Ext_int_Init()
{
EA = 1; /* Enable global interrupt */
ES = 1; /* Enable serial interrupt */
}
void UART_Init()
{
TMOD = 0x20; /* Timer 1, 8-bit auto reload mode */
TH1 = 0xFD; /* Load value for 9600 baud rate */
SCON = 0x50; /* Mode 1, reception enable */
TR1 = 1; /* Start timer 1 */
}
void Serial_ISR() interrupt 4
{
P1 = SBUF; /* Give received data on port 1 */
RI = 0; /* Clear RI flag */
}
void main()
{
P1 = 0x00; /* Make P1 output */
Ext_int_Init(); /* Call Ext. interrupt initialize */
UART_Init();
while(1);
}
#include<reg51.h>
#define LEDs P0
unsigned char receivedChar=0;
void serial_isr() interrupt 4
{
if(RI == 1)
{
receivedChar = SBUF; // Copy the received char
//-----------------------
//수신데이터 처리부분
SBUF = receivedChar; // echo the character back
//-----------------------
RI = 0; // Clear the Receive interrupt flag
}
else if(TI == 1)
{
TI = 0; // Clear the Transmit interrupt flag
}
}
void main()
{
SCON = 0x50; // Asynchronous mode, 8-bit data and 1-stop bit
TMOD = 0x20; // Timer1 in Mode2.
TH1 = 0xFD; // Load timer value for 9600 baudrate
TR1 = 1; // Turn ON the timer for Baud rate generation
ES = 1; // Enable Serial INterrupt
EA = 1; // Enable Global Interrupt bit
while(1)
{
LEDs = receivedChar;
}
}
'공학속으로 > 마이컴' 카테고리의 다른 글
8051 모든 인터럽트 (0) | 2020.03.04 |
---|---|
외부 인터럽트 (0) | 2020.03.04 |
8051/4051 Timers (0) | 2020.03.04 |
8051/4051 UART (0) | 2020.03.03 |
8051 LED Blinking Program (0) | 2020.03.03 |
댓글