標題:
用STC15W104單片機制作電子骰子電路圖和程序
[打印本頁]
作者:
盛世游龍
時間:
2019-6-14 15:18
標題:
用STC15W104單片機制作電子骰子電路圖和程序
和孩子玩飛行棋,骰子找不到了。就想起做個電子骰子。主控用了一塊8腳的單片機STC15W104。考慮單片機直接驅(qū)動LED發(fā)光管,怕單片機電流吃不起,所以使用了一塊74HC573當作輸出驅(qū)動。為了顯示盡量接近骰子,LED發(fā)光管采用了7個。之前用按鈕,玩了一下,感覺不完美,改用離心開關(guān)后,甩動的形式來擲骰子有意思多了。電路見附件,加上一塊鋰電和充電保護板就行。因為待機2分鐘后自動關(guān)閉顯示。關(guān)閉顯示后,待機電流6mA左右,也不必加裝電源開關(guān)了。程序不長,與大家分享!
電路原理圖如下:
電骰電路圖.JPG
(58.64 KB, 下載次數(shù): 145)
下載附件
電路圖
2019-6-14 15:17 上傳
單片機源程序如下:
#include<stc15w.h>
sbit a1 = P3^0;
sbit a2 = P3^1;
sbit a3 = P3^2;
sbit a4 = P3^3;
//sbit beei = P3^4;
sbit k1 = P3^5;
unsigned char i,m,r1;
unsigned int u;
void Delay50ms(unsigned char n) //12.000MHz延時
{
unsigned char i, j, k;
i = n; //3;
j = 72;
k = 161;
do
{
do
{
while (--k);
}
while (--j);
}
while (--i);
}
void Timer0Init() interrupt 1 //50毫秒@12.000MHz
{
TL0 = 0xB0; //設置定時初值
TH0 = 0x3C; //設置定時初值
r1++; //0~5滾動數(shù)值
if(r1 >= 6)
r1 = 0;
if(u > 0) //延時2分鐘關(guān)閉顯示
u--;
else
u = 0;
if(k1 == 0) //離心開關(guān)接通時,重新計時
u = 2400;
}
void main()
{
unsigned char s = 0;
P3 = 0xff;
m = 15;
TMOD = 0x01; //設置定時器為模式1
TL0 = 0xB0; //設置定時初值
TH0 = 0x3C; //設置定時初值
TR0 = 1; //定時器0開始計時
ET0 = 1; //使能定時器0中斷
EA = 1;
while(1)
{
while(u>0) //離心開關(guān)接通后,2分鐘以內(nèi)
{
if(k1 == 0) //離心開關(guān)接通
{
u = 2400;
// i++;
// if(m >= 3)
// m--;
m = 2;
// Delay50ms(2);
// if(i >= 6)
i = r1; //搖中的初值
}
else
{ //骰子慣性效果
if(m == 2)
{
s++;
i++;
Delay50ms(m);
if(i >= 6)
i = 0;
if(s >= 50)
m++;
}
else if(m < 15)
{
i++;
m++;
Delay50ms(m);
if(i >= 6)
i = 0;
}
else
s = 0;
} //最終值顯示
if(i == 0)
{
a1 = 0;
a2 = 0;
a3 = 0;
a4 = 1;
}
else if(i == 1)
{
a4 = 0;
a1 = 1;
a2 = 1;
a3 = 1;
}
else if(i == 2)
{
a3 = 0;
a1 = 1;
a2 = 1;
a4 = 1;
}
else if(i == 3)
{
a2 = 0;
a4 = 0;
a1 = 1;
a3 = 1;
}
else if(i == 4)
{
a1 = 0;
a2 = 0;
a3 = 1;
a4 = 1;
}
else if(i == 5)
{
a1 = 0;
a2 = 0;
a4 = 0;
a3 = 1;
}
} //延時到,關(guān)閉顯示后,電路電流6mA左右,用鋰電加充電保護板不用開關(guān)。
a1 = 1;
a2 = 1;
a3 = 1;
a4 = 1;
}
}
復制代碼
所有資料51hei提供下載:
骰子.rar
(20.73 KB, 下載次數(shù): 54)
2019-6-14 15:17 上傳
點擊文件名下載附件
程序
下載積分: 黑幣 -5
作者:
cat9975
時間:
2019-6-15 11:05
學習了,剛剛想用STC15W104做接收
作者:
bogejiayou
時間:
2019-9-12 11:26
雖然實用性不高,但很有創(chuàng)意,并且為兒子的興趣愛好做了一次親身教育!
作者:
1322699413
時間:
2020-1-31 16:45
p3和LED正極好像沒有接到單片機上
作者:
寒潭孤雁
時間:
2022-2-3 09:05
再加兩塊P10單元板,能制作飛行棋嗎?再加上撞飛機的音效,還做到落棋不悔了
作者:
houjue
時間:
2022-2-3 11:55
做的不錯。就是 離心開關(guān) 不如用 震動開關(guān),數(shù)據(jù)可采用 隨機數(shù) 來產(chǎn)生。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1