显示时间
驱动数码管:
使用74HC595实现多路扫描:
c
复制代码
void UpdateDisplay(uint8_t hour, uint8_t minute) {
// 按位分解时间,如12:34 -> 分别显示1, 2, 3, 4
uint8_t digits[4] = {hour / 10, hour % 10, minute / 10, minute % 10};
for (int i = 0; i < 4; i++) {
SelectDigit(i); // 选择数码管的位
ShowSegment(digits[i]); // 显示数字
HAL_Delay(5); // 消影
}
}
驱动LCD:
使用HD44780库显示时间:
c
复制代码
char timeStr[16];
sprintf(timeStr, "%02d:%02d:%02d", hour, minute, second);
LCD_SetCursor(0, 0);
LCD_Print(timeStr);
|