51单片机最简单的C语言编程求教
用4位共阴型数码管动态显示“1234”,#include"reg51.h"unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x...
用4位共阴型数码管动态显示“1234”,
#include "reg51.h"
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
void IN_Init()
{
P1=0x00;
P2=0x00;
}
void Delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<100;j++);
}
void Disp1234()
{
unsigned int i;
unsigned int temp=0x6e;
for(i=1;i<5;i++)
{
P2=temp;
P1=table[i];
Delay(20);
temp=temp<<1;
}
}
void main()
{
IO_Init();
while(1)
{
Disp1234();
}
}
那个table里面的数值是怎么确定的?temp=temp<<1有什么作用? 展开
#include "reg51.h"
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
void IN_Init()
{
P1=0x00;
P2=0x00;
}
void Delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<100;j++);
}
void Disp1234()
{
unsigned int i;
unsigned int temp=0x6e;
for(i=1;i<5;i++)
{
P2=temp;
P1=table[i];
Delay(20);
temp=temp<<1;
}
}
void main()
{
IO_Init();
while(1)
{
Disp1234();
}
}
那个table里面的数值是怎么确定的?temp=temp<<1有什么作用? 展开
展开全部
你把里面的数字转换成二进制,比如table[0]=0x3f=00111111b;
由于你这个是共阴极数码管,高电平有效,所以写一的地方对应的LED都点亮 至于那七根数码管以及一个小数点和二进制位数对应关系你可以上网上查一下,简单的说小数点也就是DP是最高位,其他的那七根数码管从最上面那个开始顺时针一共是六根从bit(0)到bit(5),最后横着那根是bit(6)。希望能帮到你。至于你说的TEMP对应P2口,得有硬件图才可以知道有什么作用。
由于你这个是共阴极数码管,高电平有效,所以写一的地方对应的LED都点亮 至于那七根数码管以及一个小数点和二进制位数对应关系你可以上网上查一下,简单的说小数点也就是DP是最高位,其他的那七根数码管从最上面那个开始顺时针一共是六根从bit(0)到bit(5),最后横着那根是bit(6)。希望能帮到你。至于你说的TEMP对应P2口,得有硬件图才可以知道有什么作用。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询