这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » HoltekHT45F5Q控制三位數七段顯示器

共3条 1/1 1 跳转至

HoltekHT45F5Q控制三位數七段顯示器

工程师
2023-12-28 19:44:15     打赏

我用Holtek HT45F5Q 控制三位數七段顯示器,透過三根PIN來控制

目前沒辦法三個顯示不同的數字,想請教各位大大有沒有想法或是我的程式上有問題,謝謝

image.png

未命名.png





关键词: Holtek     HT45F5Q    

助工
2023-12-28 19:44:42     打赏
2楼

Holtek HT45F5Q是一個微控制器,而三位數七段顯示器是一種輸出裝置。如果你想要控制顯示器顯示不同的數字,你需要設計一個程式來控制微控制器的輸出引腳和顯示器的段選位該段開啟或關閉。

以下是一個簡單的程式範例來控制三位數七段顯示器,該範例使用三個輸出引腳(PIN)來控制顯示器的段選位:

```c
#include

#define SEG_A P00
#define SEG_B P01
#define SEG_C P02
#define SEG_D P03
#define SEG_E P04
#define SEG_F P05
#define SEG_G P06
#define DIGIT_1 P10
#define DIGIT_2 P11
#define DIGIT_3 P12

void delay(unsigned int ms) {
    unsigned int count = 500 * ms;
    while(count--);
}

void displayDigit(unsigned char digit) {
    switch(digit) {
        case 0:
            SEG_A = SEG_B = SEG_C = SEG_D = SEG_E = SEG_F = 1;
            SEG_G = 0;
            break;
        case 1:
            SEG_B = SEG_C = 1;
            SEG_A = SEG_D = SEG_E = SEG_F = SEG_G = 0;
            break;
        // ... 完成其他數字的顯示
    }
}

void main() {
    unsigned char num1 = 0;
    unsigned char num2 = 1;
    unsigned char num3 = 2;
   
    while(1) {
        displayDigit(num1);
        DIGIT_1 = 1;
        delay(10);
        DIGIT_1 = 0;
        
        displayDigit(num2);
        DIGIT_2 = 1;
        delay(10);
        DIGIT_2 = 0;
        
        displayDigit(num3);
        DIGIT_3 = 1;
        delay(10);
        DIGIT_3 = 0;
        
        num1++;
        num2++;
        num3++;
        
        if(num1 > 9) num1 = 0;
        if(num2 > 9) num2 = 0;
        if(num3 > 9) num3 = 0;
    }
}
```

這個程式的主要功能是在三位數七段顯示器上循環顯示0到9的數字。它使用了三個輸出引腳DIGIT_1、DIGIT_2和DIGIT_3來控制三位數顯示器的不同位,並使用SEG_A到SEG_G引腳來控制每個段該開啟或關閉。

你可以根據你的需求進一步修改這個程式,例如更改顯示的數字範圍、顯示的順序或速度。


专家
2023-12-29 08:45:40     打赏
3楼

感谢分享


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]