HIỂN THỊ 00 - 99 STM32 DÙNG MBED.
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" int chuc,donvi; BusOut LED7SEG (PB_11, PB_10, PB_1, PB_0, PA_7, PA_6, PA_5, PA_4); //h=>dot/DP DigitalOut EN_LED1(PA_2) ; // CHỐT LED THỨ 1. DigitalOut EN_LED2(PA_3) ; // CHỐT LED THỨ 2. 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 j=0 ; j<100 ; j++)
{
chuc=j/10; donvi=j%10;
for(int i=0;i<70;i++){
EN_LED1=0b1;
LED7SEG = So[chuc];
}
for(int i=0;i<70;i++){
EN_LED2=0b1;
LED7SEG = So[donvi];
}
}
}
}