// 共陽極 (低電平點亮)
VCC ---- LED anode
LED cathode ---- 電阻 (330Ω~1k) ---- MCU IO
// IO=0 導通,IO=1 截止
// 共陰極 (高電平點亮)
MCU IO ---- 電阻 ---- LED anode
LED cathode ---- GND
// IO=1 導通,IO=0 截止 (需 MCU 有上拉或外接上拉電阻)
| 數字 | a b c d e f g dp | 十六進制 |
|---|---|---|
| 0 | 1 1 1 1 1 1 0 0 | 0x3F |
| 1 | 0 1 1 0 0 0 0 0 | 0x06 |
| 2 | 1 1 0 1 1 0 1 0 | 0x5B |
| 3 | 1 1 1 1 0 0 1 0 | 0x4F |
| 4 | 0 1 1 0 0 1 1 0 | 0x66 |
| 5 | 1 0 1 1 0 1 1 0 | 0x6D |
| 6 | 1 0 1 1 1 1 1 0 | 0x7D |
| 7 | 1 1 1 0 0 0 0 0 | 0x07 |
| 8 | 1 1 1 1 1 1 1 0 | 0x7F |
| 9 | 1 1 1 1 0 1 1 0 | 0x6F |
共陽極編碼 = 共陰極編碼按位取反。
void lcd_init() {
delay_ms(15); // 上電等待
lcd_write_cmd(0x38); // 8-bit, 2行, 5x7點陣
lcd_write_cmd(0x0C); // 顯示開, 關游標
lcd_write_cmd(0x06); // 寫入後地址自增
lcd_write_cmd(0x01); // 清屏
delay_ms(2);
}
| 指令 | 功能 |
|---|---|
| 0x01 | 清屏 |
| 0x02 | 歸家 |
| 0x06 | 輸入模式:地址自增、不移屏 |
| 0x0C | 顯示開、游標關、不閃爍 |
| 0x80 | addr | 設定 DDRAM 地址 (第1行 0x00, 第2行 0x40) |
掌握 LED 極性與限流、數碼管共陽/共陰編碼互反、動態掃描時序、LCD 初始化時序與交流驅動原理,即可應對 90% 單片機顯示驅動需求。