Giao tiếp UART RS232, Kích tải AC + Led 7 đoạn + Nút nhấn, Lập trình Pic

Giao-tiep-uart-rs232-kich-tai-ac-led-7doan-nut-nhan-lap-trinh-pic-phan-cung
Giao tiếp UART RS232 được xem là giao tiếp đơn giản nhất của Vi điều khiển với máy tính, giúp tối ưu được phần cứng và cả phần mềm trong quá trình giao tiếp, được nhà sản xuất hổ trợ thanh ghi, đồng thời có thể giúp sai số khi truyền nhận được giảm đi đáng kể, nhưng hệ thống có nhược điểm lớn là khoảng cách truyền, tốc độ và dữ liệu truyền đi không lớn. Nếu sử dụng nhiều slave việc truyền nhận không hoàn toàn tốt nếu không tối ưu chương trình.

Mua linh kiện điện tử tại Điện tử Nhật Tùng

Liên hệ làm mạch  Phone: 0967.551.477 Zalo: 0967.551.477 Email: dientunhattung@gmail.com Địa Chỉ: 171/25 Lê Văn Thọ, P8, Gò Vấp, Tp HCM Chi tiết: Nhận làm mạch và đồ án Điện tử  
Khóa học Vi điều khiển có phí Hình thức học: Video hoặc Kèm trực tiếp ===>>>>  Kích vào hình để được biết thêm chi tiết khóa học lập trình vi điều khiển online

Tải File bài giải

Pass giải nén: Huynhnhattung.com
===>>>   Nếu bạn chưa có phần mềm giải nén:

Hướng dẫn Tải và Cài đặt phần mềm giải nén Winrar

Video Giao tiếp UART RS232, Kích tải AC + Led 7 đoạn + Nút nhấn

Blog Giao tiếp UART RS232, Kích tải AC + Led 7 đoạn + Nút nhấn

Đề bài giao tiếp UART RS232:

Giao-tiep-uart-rs232-kich-tai-ac-led-7doan-nut-nhan-lap-trinh-pic

Bài giải giao tiếp UART RS232:

Phần cứng chương trình giao tiếp UART RS232:

  • Việc sử dụng hai Vi điều khiển giao tiếp với nhau thông qua UART giúp tối ưu được chương trình và phần cứng. Khi giao tiếp UART thì kết nối sẽ chân RC6/TX của VĐK thứ nhất kết nối với chân RC7/RX VĐK thứ hai, ngược lại chân RC7/RX VĐK thứ nhất kết nối với chân RC6/TX của VĐK thứ hai. Chân RX có chức năng nhận dữ liệu, chân TX có chức năng truyền dữ liệu.
  • Hiển thị thời gian được quy định ra một Led 7 đoạn anot chung được nối vào Port D. Nếu làm mạch thực tế phải gắn trở cho led, cách tính trở 330 xem trong giáo trình thầy Nguyễn Đình Phú
  • Sử dụng một nút nhấn tích cực mức thấp được đấu vào chân RB7.
  • Có 3 led đơn tích cực mức cao được kết nối với RB4, RB5, RB6, khi sử dụng led đơn phải tính trở 330 xem trong giáo trình thầy Nguyễn Đình Phú. Nếu sử dụng tải AC thì phải kết nối với Relay hoặc Opto-Triac để có thể cách ly tốt với hệ thống.
  • Sử dụng dao động ngoài thạch anh 20M gắn vào chân OSC1 OSC2.
  • Các linh kiện chính cần sử dụng tham khảo tại.
    Thông số kỹ thuậtMua Linh kiện
    Pic16F887Pic16F877
    Led đơnLed đơn
    Điện trởĐiện trở
    Nút nhấnNút nhấn
    Thạch anhThạch anh
    Led 7 đoạn AnotLed 7 đoạn Anot
    PL2303PL2303
     
Giao-tiep-uart-rs232-kich-tai-ac-led-7doan-nut-nhan-lap-trinh-pic-phan-cung

Phần mềm giao tiếp UART RS232:

Khai báo thư viện tiền sử lý của UART RS232:

  • Vi điều khiển hiện tại mình đan dùng là Pic16F887.
  • Hiện dùng thạch anh nội và thạch anh nội khai báo 8M bằng lệnh #Fuses  intrc_io  và  #delay(clock=8M).  
  • Khai báo giao tiếp UART chuẩn rs232 ” #use rs232(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)” gồm tốc độ truyền bằng 2400, không kiểm tra tính chắn lẻ, đồng thời dữ liệu truyền đi 8bit trong đó có 1bit STOP. Khi sử dụng UART bắt buộc phải dùng chân RC6/TX, RC7/RX 
  • Định nghĩa chân: tùy theo chức năng của chân mà tên định nghĩa được bám sát vào nội dung đan thực hiện.
  • Mã 7 đoạn là đoạn mã Anot: Cấu trúc lệnh cho bạn nào cần copy : ” unsigned int8 guil[]={0xff,0x23,0x7b,0x3b,0x2b}; “.
  • Khi gửi giá trị lên trên màn hình máy tính phải gửi chuỗi String tức giá trị là ký tự để gọn tại chuỗi char gui[6]=”0xyzt”; theo yêu cầu đề gửi lên ký tự x, y, z, t đại diện cho 4 ký tự hiển thị của led 7 đoạn. Và bắt đầu từ vị trí số 1 nên vị trí số 0 sử dùng một ký tự bất kỳ để tăng vị trí các ký tự cần gửi lên một đơn vị.
  • Tên khai báo biến phụ thuộc vào chức năng để khai báo cho phù hợp. 
  • Khi các biến không biết được giá trị cuối thì nên khai báo signed int32 tức khai báo biến có dấu 32bit, lúc này giá trị rất rộng không sợ bị thiếu.

Giao-tiep-uart-rs232-kich-tai-ac-led-7doan-nut-nhan-lap-trinh-pic-khai-bao

Chương trình chính UART RS232:

  • Bắt đầu chương trình chính phải khởi tạo ngõ vào ra cho vi điều khiển. Một chân của vi điều khiển thì làm nhiệm vụ I/O vì thế phải khỏi tạo. Port C, Port B có chân RC7/RX nhận tín hiệu từ máy tính gửi xuống, chân RB7 kết nối với nút nhấn để điều khiển hiển thị lên led và màn hình máy tính  nên đóng vai trò nhận tín hiệu vì vậy phải khởi tạo mức 1 nên khởi tạo là 0x80. Port D sử dụng xuất tiến hiệu cho led 7 đoạn vì vậy khởi tạo là 0x00.
  • Các giá trị ban đầu bằng 0, tắt hết các tải AC khi khởi động lên.
  • Kiểm tra nếu có dữ liệu gửi xuống thì kbhit()=1 tiến hành nhận dữ liệu vào biến data, lưu ý biến data phải khai báo char vì giá trị là ký tự. Nếu data bằng “012” thì bật lần lượt các tải AC độc lập, ngược lại nếu data bằng “678” thì tắt lần lượt các tải AC độc lập.
  • Kiểm tra nút nhấn vì nút nhấn t_thai có 4 trạng thái thay đổi trong 4 lần nhấn vì vậy phải sử dụng chương trình chống dội cho nút nhấn. Mỗi lần nhấn biến tt tăng lên một giá trị đồng thời xuất giá trị lên màn hình máy tính bằng lệnh putc(gui[tt]); đây được xem là phương pháp xuất màn hình theo từng ký tự được tối ưu nhất, sau đó xuất giá trị hiển thị ra màn hình led 7 đoạn theo các mã 7 đoạn đã được lưu sẵn.

Giao-tiep-uart-rs232-kich-tai-ac-led-7doan-nut-nhan-lap-trinh-pic-chuong-trinh-chinh

Chúc các bạn có một kỳ thi thành công…!!!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *