冰楓論壇
標題:
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 冰楓