HIỂN THỊ 0 - 9 STM32 DÙNG MBED.
Ở Đây ta xử dụng led 7 đoạn dương chung( Anode chung). Chân Anode chung bạn nối lên 5v.
PHẦN 1: TÌM HIỂU LED 7 ĐOẠN BẠN CÓ THỂ TÌM Ở ĐÂY.
https://uss-technology.blogspot.com/2021/07/hien-thi-led-7-oan.html
PHẦN 2: TÌM HIỂU THUẬT TOÁN.
BusOut - Flexible way to write multiple DigitalOut pins as one value.
( BusOut - Cách linh hoạt để ghi nhiều chân DigitalOut dưới dạng một giá trị ).
Ví dụ sử dụng hàm này:
Bước 1: khai báo chân cho bus.
BusOut LED7SEG( PB_0, PA_2, PA_7, PB_1, PB_11, PC_4, PA_5, PC_5);
Trong đó ứng a b c d e f g h
Bước 2: khai báo số 0 - 9 như sau:
// Mã Led 7 đoạn - Dgfe dcba D :trong đó là Diot Led nhỏ tròn phía dưới.
const int s0 = 0x3F; // 0011 1111
const int s1 = 0x06; // 0000 0110
const int s2 = 0x5B; // 0101 1011
const int s3 = 0x4F; // 0100 1111
const int s4 = 0x66; // 0110 0110
const int s5 = 0x6D; // 0110 1101
const int s6 = 0x7D; // 0111 1101
const int s7 = 0x07; // 0000 0111
const int s8 = 0x7F; // 0111 1111
const int s9 = 0x6F; // 0110 1111
Đưa Mã 0 - 9 vào 1 Mảng .
const int So[] = {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9};
vị trí : 0 1 2 3 4 5 6 7 8 9
VD Hiển thị Số 0.
LED7SEG =So[0] // Hiển thị số 0.
LED7SEG =So[1] // Hiển thị số 1.
LED7SEG =So[2] // Hiển thị số 2.
LED7SEG =So[3] // Hiển thị số 3.
LED7SEG =So[4] // Hiển thị số 4.
LED7SEG =So[5] // Hiển thị số 5.
LED7SEG =So[6] // Hiển thị số 6.
LED7SEG =So[7] // Hiển thị số 7.
LED7SEG =So[8] // Hiển thị số 8.
LED7SEG =So[9] // Hiển thị số 9.
Bây giờ bạn muốn hiển thị liên tục từ 0 - 9 bạn có thể dùng vòng for như sau :
for(int i=0 ; i<10 ; i++)
{
LED7SEG =So[i] ;
wait(0.5);
}
#include "mbed.h" BusOut LED7SEG (PB_0, PA_2, PA_7, PB_1, PB_11, PC_4, PA_5, PC_5); //h=>dot/DP int main() { const int s0 = 0x3F; // 0011 1111 const int s1 = 0x06; // 0000 0110 const int s2 = 0x5B; // 0101 1011 const int s3 = 0x4F; // 0100 1111 const int s4 = 0x66; // 0110 0110 const int s5 = 0x6D; // 0110 1101 const int s6 = 0x7D; // 0111 1101 const int s7 = 0x07; // 0000 0111 const int s8 = 0x7F; // 0111 1111 const int s9 = 0x6F; // 0110 1111 // mãng chứa 0 -9 const int So[] = {s0, s1, s2, s3, s4, s5, s6, s7, s8, s9}; while(1) {for(int i=0 ; i<10 ; i++)
{
LED7SEG =So[i] ;
wait(0.5);
}
}
}