#include <REGX51.H>
#define uint unsigned int
#define uchar unsigned char
#define WM P2
#define DM P0
uint code dien[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
uint sz[]={0x01,0x02};
uchar i,n,num;
void main()
{
TMOD = 0x01;
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1)
{
for(n=0;n<3;n++)
{
WM=1<<i;
DM=0xff;
DM=~dien[sz[n]];
}
if(i==20)
{
i=0;
num++;
if(num==9)
num=0;
sz[1] = num/10;
sz[2] = num%10;
}
}
}
void int0 ()interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
i++;
}
这是个60累加器,我明明只打开两个位选,下载到板子一看 四个都打开了 而且全都显示0,不会计数 求解
谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我直接用for(i=0;i<3;i++)WM=1<<1;这不是打开位选嘛
我看它不会亮 就改成3了
一周热门 更多>