单片机电子骰子制作超简单的
/*******************************************/
/************ 电子骰子程序 ************/
/************ 作者:徐日达 ************/
/************ 2014-9-5 ************/
/*******************************************/
#include
#define uchar unsigned char
#define uint unsigned int
#define shaizi P2
uchar scanline[6]={0x06,0x6d,0x4f,0x5b,0x7d,0x66};
uchar Lsd,Lsd1=5,b=0,c=0;
sbit a=P1^1;
void T0_zs(void);
void main()
{
T0_zs();
while(1)
{
if(a==0) //判断按键是否按下
{
c=1;
Lsd1=3; //初始化数码管的显示速度
}
if(Lsd>=Lsd1&&c==1)
{
Lsd=0; //数码管选择 //骰子按键
b++;
shaizi=scanline[b];
if(Lsd1>=20) //当数码管的显示速度到20时停止(也就是确定最终的数字)
c=0;
Lsd1+=1;
if(b>=5)
{
b=-1;
}
}
// P2=0x00;
//P0=0x00;
}
}
/********** 中断程序 ********/
void T0_zs(void)
{
TMOD=0x01; //设置定时器T0为模式0
TL0=0x3c; //初始化定时50ms
TH0=0xb0;
TR0=1;
ET0=1; //启动定时器T0
EA=1;
}
void T0_zs1() interrupt 1
{
TL0=0x3c; //重新复值定时50ms
TH0=0xb0;
Lsd++;
}