冰楓論壇

標題: STC15W204S-35I-SOP8製作(每進一球得10分)投籃機 [打印本頁]

作者: 洪嵐峰    時間: 2023-4-5 06:45
標題: STC15W204S-35I-SOP8製作(每進一球得10分)投籃機
以下是使用 STC15W204S-35I-SOP8 芯片製作每進一球得10分的投籃機的電路圖、引腳連接和示例代碼。

電路圖:


       +-----------+
       |           |
       |           |
  VCC -+ 1     8 +- GND
  P3.3 -+ 2     7 +- P3.2
  P3.5 -+ 3     6 +- P3.4
       |           |
       |           |
       +-----------+
引腳連接:

P3.2連接一個發射按鈕
P3.3連接一個進球檢測傳感器
P3.4連接一個10位二極管數碼管的第1位
P3.5連接一個10位二極管數碼管的第2位
示例代碼:


#include <STC15W204S.H>

#define MAX_SCORE 99  // 最大得分

unsigned char score = 0;

void delay_ms(unsigned int ms)  // 延時函數
{
    unsigned int i,j;
    for(i=0; i<ms; i++)
        for(j=0; j<110; j++);
}

void display_score()  // 顯示得分函數
{
    P3 &= 0xCF;  // 數碼管全部清零
    P3 |= (score % 10);  // 顯示個位數
    P3 |= ((score / 10) << 4);  // 顯示十位數
    delay_ms(5);
}

void main()
{
    P3 = 0xFF;  // 初始化P3口為輸入模式
    while(P3 & 0x04);  // 等待發射按鈕按下
    P3 = 0xFE;  // 將P3口最高位設置為輸出模式
    while(1)
    {
        if((P3 & 0x08) == 0)  // 進球檢測到信號
        {
            score += 10;  // 增加得分
            if(score > MAX_SCORE)
            {
                score = MAX_SCORE;  // 限制得分不超過最大值
            }
            display_score();  // 顯示得分
            while((P3 & 0x08) == 0);  // 等待進球檢測傳感器復位
        }
    }
}




歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓