标题:
用STC15W104单片机制作电子骰子电路图和程序
[打印本页]
作者:
盛世游龙
时间:
2019-6-14 15:18
标题:
用STC15W104单片机制作电子骰子电路图和程序
和孩子玩飞行棋,骰子找不到了。就想起做个电子骰子。主控用了一块8脚的单片机STC15W104。考虑单片机直接驱动LED发光管,怕单片机电流吃不起,所以使用了一块74HC573当作输出驱动。为了显示尽量接近骰子,LED发光管采用了7个。之前用按钮,玩了一下,感觉不完美,改用离心开关后,甩动的形式来掷骰子有意思多了。电路见附件,加上一块锂电和充电保护板就行。因为待机2分钟后自动关闭显示。关闭显示后,待机电流6mA左右,也不必加装电源开关了。程序不长,与大家分享!
电路原理图如下:
电骰电路图.JPG
(58.64 KB, 下载次数: 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滚动数值
if(r1 >= 6)
r1 = 0;
if(u > 0) //延时2分钟关闭显示
u--;
else
u = 0;
if(k1 == 0) //离心开关接通时,重新计时
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) //离心开关接通后,2分钟以内
{
if(k1 == 0) //离心开关接通
{
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;
}
} //延时到,关闭显示后,电路电流6mA左右,用锂电加充电保护板不用开关。
a1 = 1;
a2 = 1;
a3 = 1;
a4 = 1;
}
}
复制代码
所有资料51hei提供下载:
骰子.rar
(20.73 KB, 下载次数: 54)
2019-6-14 15:17 上传
点击文件名下载附件
程序
下载积分: 黑币 -5
作者:
cat9975
时间:
2019-6-15 11:05
学习了,刚刚想用STC15W104做接收
作者:
bogejiayou
时间:
2019-9-12 11:26
虽然实用性不高,但很有创意,并且为儿子的兴趣爱好做了一次亲身教育!
作者:
1322699413
时间:
2020-1-31 16:45
p3和LED正极好像没有接到单片机上
作者:
寒潭孤雁
时间:
2022-2-3 09:05
再加两块P10单元板,能制作飞行棋吗?再加上撞飞机的音效,还做到落棋不悔了
作者:
houjue
时间:
2022-2-3 11:55
做的不错。就是 离心开关 不如用 震动开关,数据可采用 随机数 来产生。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1