1、广告灯的左移右移
8个小灯依此亮过去再亮回来,在尽头的地方会有02S的延时。
#include
unsigned char i;
unsigned char temp;
unsigned char a,b;
void delay02s (void)
{
unsigned char m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
void main(void)
{
while(1)
{
temp=0xfe;
P1=temp;
delay02s();
for(i=1;i<8;i++)
{
a=temp<
b=temp>>(8-i);
P1=a|b;
delay02s();
}
for(i=1;i<8;i++)
{
a=temp>>i;
b=temp<
P1=a|b;
delay02s();
}
}
}
2、动态数码显示技术(哦用了近一个月才搞定的转载请注明出处!)
P0 端口接动态数码管的字形码笔段,P2 端口接动态数码管的数位选择端,P1.7
接一个开关,当开关接高电平时,显示“12345”字样;当开关接低电平时,显示“HELLO”字样。
#include
unsigned char code table1[]={0x06,0x5b,0x4f,0x66,0x6d};
unsigned char code table2[]={0x78,0x79,0x38,0x38,0x3f};
unsigned char i;
unsigned char a,b;
unsigned char temp;
void main(void)
{
while(1)
{
temp=0xfe;
for(i=0;i<5;i++)
{
if(P1_7==1)
{
P0=table1[i];
}
else
{
P0=table2[i];
}
P2=temp;
a=temp<
b=temp>>(7-i);
temp=a|b;
for(a=4;a>0;a--)
for(b=248;b>0;b--);
}
}
如果反响高的话我还会努力和大家分享我的快乐的