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有什么作用?
展开
 我来答
Dickenson258
2011-10-10 · 超过10用户采纳过TA的回答
知道答主
回答量:17
采纳率:0%
帮助的人:20.9万
展开全部
你把里面的数字转换成二进制,比如table[0]=0x3f=00111111b;
由于你这个是共阴极数码管,高电平有效,所以写一的地方对应的LED都点亮 至于那七根数码管以及一个小数点和二进制位数对应关系你可以上网上查一下,简单的说小数点也就是DP是最高位,其他的那七根数码管从最上面那个开始顺时针一共是六根从bit(0)到bit(5),最后横着那根是bit(6)。希望能帮到你。至于你说的TEMP对应P2口,得有硬件图才可以知道有什么作用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
StarryZeng
2011-10-10
知道答主
回答量:7
采纳率:0%
帮助的人:1.1万
展开全部
table 为一维数组已赋值

temp=temp<<1 temp先向左位移一位再赋给temp
更多追问追答
追问
呃,这个我知道,我问的是table里面的值是怎么得到的,比如说table[0]是0x3f,这个0x3f是怎么得来的,是随意写的,还是硬件规定的,还是怎样。。。
追答
规定的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式