- UID
- 373967
- 帖子
- 8867
- 主題
- 2609
- 精華
- 0
- 積分
- 1000
- 楓幣
- 0
- 威望
- 977
- 存款
- 34822
- 贊助金額
- 0
- 推廣
- 0
- GP
- 1205
- 閱讀權限
- 70
- 在線時間
- 455 小時
- 註冊時間
- 2023-1-12
- 最後登入
- 2024-11-21
|
以下是使用 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); // 等待進球檢測傳感器復位
}
}
} |
|