QC

Serial Communication using 8051

 Serial Communication using 8051

Serial transfer: Trong truyền nối tiếp, dữ liệu được truyền tới thiết bị cách xa vài mét, phương pháp này được sử dụng để truyền dữ liệu khoảng cách xa.

Hãy xem sơ đồ khối của truyền dữ liệu nối tiếp:


Parallel transfer:Trong truyền song song, dữ liệu được truyền trong 8 dòng trở lên. Trong dây dẫn này được sử dụng để truyền dữ liệu đến một thiết bị chỉ cách một vài feet.

Chúng ta hãy xem sơ đồ khối của truyền dữ liệu song song:



Serial transfer: Giao tiếp nối tiếp chủ yếu được sử dụng để truyền và nhận tín hiệu. Bộ vi điều khiển 8051 bao gồm Máy phát thu không đồng bộ đa năng (UART) được sử dụng cho giao tiếp nối tiếp. Các tín hiệu được truyền và nhận bởi các chân Rx và Tx của vi điều khiển.

UART lấy từng byte dữ liệu và gửi từng bit riêng lẻ theo cách tuần tự. Các thanh ghi được sử dụng để thu thập và lưu trữ dữ liệu bên trong bộ nhớ. UART dựa trên giao thức bán song công. Bán song công có nghĩa là truyền và nhận dữ liệu, nhưng không phải cùng một lúc.

Chúng ta hãy xem biểu diễn sơ đồ khối thể hiện giao tiếp nối tiếp giữa bộ nhớ flash và vi điều khiển 8051:


Hãy xem chương trình truyền ký tự 'S' bằng cách sử dụng cửa sổ nối tiếp ở tốc độ truyền 9600:

Coi 28800 là tốc độ truyền tối đa của vi điều khiển 8051 Để lấy 9600 làm tốc độ truyền, giá trị bộ đếm thời gian là,

28800 : 9600 = 3.

Tốc độ truyền '3' này được lưu trữ bên trong một bộ đếm thời gian.


  1. #include<reg51.h>  
  2. void main()  
  3. {  
  4. SCON=0x50;      //starting of a serial communication//  
  5. TMOD=0x20;    //selected the timer mode//  
  6. TH1=3;       // load the baud rate//  
  7. TR1=1;      //Timer is ON//  
  8. SBUF='S';  //store the character inside a register//  
  9. while(TI==0);   //check the interrupt register//  
  10. TI=0;  
  11. TR1=0;      //OFF the timer//  
  12. while(1);  //continuous loop//  
  13. }  

Hãy xem chương trình nhận dữ liệu từ HyperTerminal và gửi dữ liệu đó đến PORT 0 của vi điều khiển với tốc độ 9600 baud:

Coi 28800 là tốc độ truyền tối đa của vi điều khiển 8051 Để lấy 9600 làm tốc độ truyền, giá trị bộ đếm thời gian là,

28800 : 9600 = 3.

Tốc độ truyền '3' này được lưu trữ bên trong một bộ đếm thời gian.

  1. #include<reg51.h>  
  2. void main()  
  3. {  
  4. SCON=0x50;      //starting of a serial communication//  
  5. TMOD=0x20;  //selection of a timer mode//  
  6. TH1=3;       // load the baud rate//  
  7. TR1=1;      //Timer is ON//  
  8. PORT0=SBUF;  //send the data from SBUF to port0//  
  9. while(RI==0);        //checking of an interrupt register//  
  10. RI=0;  
  11. TR1=0;       //OFF the timer//  
  12. while(1); //stop the program when character is received//  
  13. }  



Nap Code vào PY32F003 dùng Stlink

 Nap Code vào PY32F003 dùng Stlink Bước 1: Cài đặt  KeilC v5.39 theo link sau ( chú ý 5.39 keil c mới nạp ok). https://edge07.111.ir.cdn.ir/...