Thông báo

Collapse
No announcement yet.

AT89S52 UART sử dụng Internal Baud Rate Generator

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • AT89S52 UART sử dụng Internal Baud Rate Generator

    Mình down cái code mẫu sử dụng UART mode 1 internal baud rate generator: Code Examples for 8051 UART
    Post lại dưới đây cho mấy bạn tiện theo dõi:

    Code:
    #include "reg_c51.h"
    
    char uart_data;
    
    /**
     * FUNCTION_PURPOSE: This file set up uart in mode 1 (8 bits uart) with
     * internal baud rate generator.
     * FUNCTION_INPUTS: void
     * FUNCTION_OUTPUTS: void
     */
    void main (void) 
    {
    	SCON = 0x50;					  /* uart in mode 1 (8 bit), REN=1 */
       BDRCON &=0xEC;               /* BRR=0; SRC=0; */
       BDRCON |=0x0C;               /* TBCK=1;RBCK=1; SPD=0 */
       BRL=0xFD;                    /* 9600 Bds at 11.059MHz */
     	ES = 1; 						     /* Enable serial interrupt	*/
    	EA = 1;						     /* Enable global interrupt */
       BDRCON |=0x10;               /* Baud rate generator run*/
    
       while(1);                    /* endless */
    }		
    
    /**
     * FUNCTION_PURPOSE: serial interrupt, echo received data.
     * FUNCTION_INPUTS: P3.0(RXD) serial input
     * FUNCTION_OUTPUTS: P3.1(TXD) serial output
     */
    void serial_IT(void) interrupt 4 
    {
    
    	if (RI == 1) 
    	{				                 /* if reception occur */
    	  RI = 0; 			           /* clear reception flag for next reception */
    	  uart_data = SBUF;          /* Read receive data */
    	  SBUF = uart_data; 	        /* Send back same data on uart*/
    	}
    	else TI = 0;                  /* if emission occur */
    	 		                        /* clear emission flag for next emission*/		
    }
    Nạp vô AT89S52 sao chẳng thấy động tỉnh gì hết. Theo như mình hiểu cái code đó có chức năng phản hồi tín hiệu nhận được. Mình dùng CuteCom (serial terminal) gửi thử vài ký tự mà chẳng thấy hồi âm gì hết. Phần mềm và cổng serial hoạt động bình thường, đã test với con ATmega328.

    Mình đọc datasheet của AT89S52 thì chổ Special Function Registers chẳng thấy nhắc tới thanh ghi BDRCON và BRL, nên không biết là con AT89S52 có hỗ trợ Internal Baud Rate generator không nữa?

  • #2
    cái code của bạn là dùng cho các con AT89C51xD2

    Comment

    Về tác giả

    Collapse

    spam12345 Tìm hiểu thêm về spam12345

    Bài viết mới nhất

    Collapse

    Đang tải...
    X