作者c5403kinki (03)
看板ASM
标题[问题] 拜托大家帮我解答一下8051程式问题
时间Thu Aug 11 17:50:58 2011
大家好, 小妹最近在自学8051
买了实验板
一边看书跑程式
但是 每次自己想要变化一下程式 都无法达成自己的目标
身边又没人可以请教 所以想请板上的高手替我解答一下
拜托大家帮我解答一下了!!!!! 非常感谢!!!
以下程式是 七段显示器 我想要显示 2011.08.09
1. 为什麽没有while(1) 的话,第八个显示器 9 会特别亮呢?
2. 为什麽给了P2之後,又要把P2设为0?
我试过没设为0的话,显示出来的数字会被其他数字覆盖
3. 我想要增加INT0的功能,让我按了外部中断钮,那些数字都会熄灭,
但他完全不理我,我是参考外部中断程式的写法 再加入这程式
#include <reg51.h>
#include <intrins.h>
void display( char* pointer1, int num);
code char date[8]={0x5b,0x3f,0x06,0x86, 0x3f, 0xff,0x3f, 0x6f};
int i=0 ;
void main(void)
{
IT=1;
EX0=1;
EA=1;
while(1)
display(date,8);
}
void display(char* pointer1,int num)
{
P2=0;
P1=0xF8;
for (i=0; i<num; i++)
{
P2= *(pointer1+i);
if(i==7)
break;
P2=0;
P1++;
}
}
void dark() interrupt 0
{
for (i=0; i<7; i++)
{
P1=0xF8+i;
P2=0;
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.216.115.104
1F:推 ruemann:排版排好一点啦.... 08/11 20:07
※ 编辑: c5403kinki 来自: 61.216.115.104 (08/12 11:42)
※ 编辑: c5403kinki 来自: 61.216.115.104 (08/12 11:43)