-
多谢,试试
-
本帖最后由 paulhyde 于 2014-9-15 03:35 编辑 为什么是汇编的
-
貌似很有用啊
-
下开看看 谢谢分享
-
哈哈
-
let me have a look.
-
一个芯币,值了
-
真诚的道一声谢谢!
-
看一下答案啊!
-
情不自禁的从最开始读到最后面,说实话,一方面佩服楼主的才华,另一方面看懂了社会一些东西,心理酸酸的。
一个还在大学念书的在此路过。。
-
//定时器中断函数初始化
void timer_init()
{
nn=0;
TMOD=0x11;
TH0=(65535-100)/256;
TL0=(65535-100)%256;
EA=1;
ET0=1;
TR0=1;
}
在你的主函数中修改如下,每个都加
if(temp!=0xe3)
{
switch(temp)
{
case 0xc3:num=1;break;
case 0xa3:num=2;break;
case 0x63:num=3;break;
}
songflag=1;
}
if(songflag==2)
{
num=x(此值自己设定,并让其对应的数码管段值为0xff,就是让其不显示)
}
//中断服务程序
void time0() interrupt 1
{
TH0=(65535-100)/256;
TL0=(65535-100)%256;
nn++;
if(nn==20)
{
nn=0;
if(songflag==1)
{
if(temp==0xe3)//判断是否松键
songflag=2; //松键则不显示
}
}
}
你如果知道定时器中断的话,上面的程序你应该知道怎么放。
我没有试验我写的程序,好久了,忘了些。
-
LZ,加油!
-
按住键的时候要让数码管有显示,而不按键则不显示。
如果加一个while(temp!=)语句等待松键来判别松开时,就让数码管不显示的话,那么按住键的时候程序会一直执行while语句,而不会执行显示程序,因此那位高手会说要用定时中断进行扫描,这样两者可以兼具了。
解决的办法有两个:
1:利用定时中断判断是否松键,然后主程序还是一直执行动态显示
2:与1相反,用定时器来动态显示,主程序来判别是否松键
最后需要解决的就是时间搭配问题,怎样选一个合适的定时中断时间
-
谢了
-
首先,你应该明白的是,你的主函数一直在运行,那么P2=table[0];和P2=table[5*i-6+j];也一直在运行,你相信他们之间不会有影响。你想要保存你的值,就一定要将他们区分开来,有键按下才改变P2的值,无键则不改变。
-
顶死你!!!!!
-
顶死你!!!!!
-
太绝le!!!
-
下了试试看!!
-
精华!!!