#include <STC.h>
#define cs_duan P27 //定义管脚
#define cs_wei P26
#define cs_data P0
unsigned char code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//数码管位置1-8
unsigned char code duan[]={0x06,0x5b,0x4f,0x00,0x00,0x00,0x00};//数码管的显示
//延时函数
void delayms(unsigned int ms)
{
unsigned char y;
for(;ms;ms--)
{
for(y=0;y<127;y++)
;
}
}
void tline() //开启定时器0
{ TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
}
void thing() interrupt 1
{ unsigned char i;
unsigned char j=0;
TH0=0x00;
TL0=0x00;
i=j%8;
cs_data=wei[i];
cs_wei=1;
cs_wei=0;
cs_data=duan[i];
cs_duan=1;
cs_duan=0;
j++;
}
//主函数
void main()
{
tline();
delayms(2600);
while(1) ;
}
我是八位共阴的数码管。上面写进去,只在第一位显示了1。能指出我的问题吗。谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
用全局变量貌似能解决,我想再问一下,每次中断不是只是执行TH0和TL0两句下面的内容吗?他是把整个函数重新执行一遍?
一周热门 更多>