QC

Interfacing 16x2 LCD with STM32F103C8T6

Interfacing 16x2 LCD with STM32F103C8T6




Đối với bất kỳ dự án vi điều khiển nào, việc giao tiếp một đơn vị hiển thị với nó sẽ làm cho dự án dễ dàng hơn và hấp dẫn hơn rất nhiều cho người dùng tương tác. Đơn vị hiển thị được sử dụng phổ biến nhất cho vi điều khiển là các màn hình số Alpha 16 × 2. Những loại màn hình này không chỉ hữu ích để hiển thị thông tin quan trọng cho người dùng mà còn có thể hoạt động như một công cụ gỡ lỗi trong giai đoạn phát triển ban đầu của dự án. Vì vậy, trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chúng ta có thể giao tiếp màn hình LCD 16 × 2 với bảng STM32F103C8T6 STM32 Development và lập trình nó bằng Arduino IDE. Đối với những người đã quen thuộc với Arduino, hướng dẫn này sẽ chỉ là một bước dạo đầu vì cả hai đều rất giống nhau. Ngoài ra, để tìm hiểu thêm về STM32 Blue Pill Board, hãy làm theo hướng dẫn bắt đầu của chúng tôi.

Vật liệu thiết yếu
Ban phát triển thuốc xanh STM32
Màn hình LCD 16 × 2
Lập trình viên FTDI
Kết nối dây
LCD
Giới thiệu ngắn gọn về màn hình LCD ma trận điểm 16 × 2

Như đã nói trước đó, Energia IDE cung cấp một thư viện tuyệt đẹp giúp giao diện trở nên đơn giản và do đó không bắt buộc phải biết bất kỳ điều gì về mô-đun hiển thị. Nhưng, sẽ không thú vị khi hiển thị những gì chúng tôi đang sử dụng !!

Tên 16 × 2 ngụ ý rằng màn hình có 16 Cột và 2 Hàng, cùng nhau (16 * 2) tạo thành 32 hộp. Một hộp duy nhất sẽ trông giống như thế này trong hình dưới đây


Một hộp đơn có 40 pixel (chấm) với thứ tự ma trận gồm 5 Hàng và 8 cột, 40 pixel này cùng nhau tạo thành một ký tự. Tương tự, 32 ký tự có thể được hiển thị bằng cách sử dụng tất cả các hộp. Bây giờ chúng ta hãy nhìn vào sơ đồ chân.





Màn hình LCD có tổng cộng 16 Chân, như hình trên, chúng có thể được phân loại thành bốn nhóm như sau

Các chân nguồn (1, 2 và 3): Các chân này cấp nguồn và mức độ tương phản cho màn hình

Các chân điều khiển (4, 5 và 6): Các chân này thiết lập / điều khiển các thanh ghi trong IC giao tiếp LCD (có thể tìm thêm thông tin này trong liên kết bên dưới)

Các chân dữ liệu / lệnh (7 đến 14): Các chân này cung cấp dữ liệu về thông tin nào sẽ được hiển thị trên màn hình LCD.

Chân LED (15 và 16): Các chân này được sử dụng để phát sáng đèn nền của LCD nếu cần (tùy chọn).

Trong số tất cả 16 chân này, chỉ có 10 chân được sử dụng bắt buộc để màn hình LCD hoạt động bình thường nếu bạn muốn biết thêm về các màn hình LCD này, hãy xem bài viết LCD 16x2 này.


Sơ đồ mạch và kết nối

Sơ đồ mạch giao diện LCD 16 * 2 Dot matrix với bảng STM32F103C8T6 STM32 Blue Pill được hiển thị bên dưới. Nó được thực hiện bằng Phần mềm Fritzing.





Như bạn có thể thấy, kết nối hoàn chỉnh được thực hiện trên breadboard. Chúng ta cần một bo mạch FTDI để lập trình Vi điều khiển STM32. Vì vậy, tương tự như hướng dẫn trước của chúng tôi, chúng tôi đã đấu dây bảng FTDI với STM32, chân Vcc và chân nối đất của bộ lập trình FDTI được kết nối tương ứng với chân 5V và chân nối đất của STM32. Điều này được sử dụng để cấp nguồn cho bảng STM32 và màn hình LCD vì cả hai đều có thể chấp nhận có thể + 5V. Chân Rx và Tx của bo mạch FTDI được kết nối với chân A9 và A10 của STM32 để chúng ta có thể lập trình bo mạch trực tiếp mà không cần bộ nạp khởi động.

Tiếp theo, màn hình LCD phải được kết nối với bảng STM32. Chúng ta sẽ sử dụng màn hình LCD ở chế độ 4 bit, vì vậy chúng ta phải kết nối 4 chân bit dữ liệu (DB4 với DB7) và hai chân điều khiển (RS và EN) với bảng STM32 như được hiển thị trong mạch giao diện LCD STM32F103C8T6 sơ đồ trên. Hơn nữa, bảng dưới đây sẽ giúp bạn thực hiện kết nối.



LCD Pin No.LCD Pin NameSTM32 Pin Name
1Ground (Gnd)Ground (G)
2VCC5V
3VEEGround (G)
4Register Select (RS)PB11
5Read/Write (RW)Ground (G)
6Enable (EN)PB10
7Data Bit 0 (DB0)No Connection (NC)
8Data Bit 1 (DB1)No Connection (NC)
9Data Bit 2 (DB2)No Connection (NC)
10Data Bit 3 (DB3)No Connection (NC)
11Data Bit 4 (DB4)PB0
12Data Bit 5 (DB5)PB1
13Data Bit 6 (DB6)PC13
14Data Bit 7 (DB7)PC14
15LED Positive5V
16LED NegativeGround (G)

Sau khi kết nối xong, chúng ta có thể mở Arduino IDE và bắt đầu lập trình nó.



/*
Program to test 16*2 Alaphanumeric LCD with STM32 (Blue Pill) 
For:

  The circuit:
 * LCD RS pin to digital pin PB11
 * LCD Enable pin to digital pin PB10
 * LCD D4 pin to digital pin PB0
 * LCD D5 pin to digital pin PB1
 * LCD D6 pin to digital pin PC13
 * LCD D7 pin to digital pin PC14
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
*/

#include <LiquidCrystal.h> // include the LCD library

const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; //mention the pin names to with LCD is connected to 
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //Initialize the LCD

void setup() {
  lcd.begin(16, 2);//We are using a 16*2 LCD
  lcd.setCursor(0, 0); //At first row first column 
  lcd.print("Interfacing LCD"); //Print this
  lcd.setCursor(0, 1); //At secound row first column 
  lcd.print("-CircuitDigest"); //Print this
  
  delay(2000); //wait for two secounds 
  lcd.clear(); //Clear the screen
}

void loop() {

  lcd.setCursor(0, 0); //At first row first column 
  lcd.print("STM32 -Blue Pill"); //Print this

  lcd.setCursor(0, 1); //At secound row first column 
  lcd.print(millis() / 1000); //Print the value of secounds
}











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/...