我是个自学单片机的菜鸟,有些程序看不懂!请高人帮忙讲讲有些步骤的含义吧!

#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodeDSY_CODE[]={0... #include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

uchar code DSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff
};
uchar code DSY_Index[]=
{
0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
};
uchar Display_Buffer[]= //这里不懂
{
0,10,10,10,10,10,10,10
};

void DelayMS(uint x)
{
uchar t;
while(x--)
{
for(t=0;t<120;t++);
}
}

void Show_Count_ON_DSY()//这个
{
uchar i;
for(i=0;i<8;i++)
{
P2 = DSY_Index[i];
P0 = DSY_CODE[Display_Buffer[i]];
DelayMS(2);
}
}

void main()
{
uchar i;
uchar Key_NO,Key_Counts=0;
P0 = 0xff;//
P1 = 0xff;//这是什么意思P1口代表什么
P2 = 0x00;//
while(1)
{
Show_Count_ON_DSY();
P1 = 0xff;
Key_NO = P1;
switch(Key_NO)
{
case 0xfe: Key_Counts++;
if(Key_Counts>8)
Key_Counts = 8;
Display_Buffer[Key_Counts-1] = Key_Counts;
break;
case 0xfd: if(Key_Counts>0)
Display_Buffer[--Key_Counts] = 10;
if(Key_Counts==0)
Display_Buffer[0] = 0;
break;
case 0xfb: Display_Buffer[0]=0;
for(i=1;i<8;i++)
Display_Buffer[i] = 10;
Key_Counts = 0;
}
while(P1 != 0xff)
Show_Count_ON_DSY();
}
}
请高人就多多指点吧!我用的是郭天祥的板子,对这个程序好多看不懂!
Show_Count_ON_DSY();
P1 = 0xff;
Key_NO = P1;
switch(Key_NO)
{
case 0xfe: Key_Counts++;
if(Key_Counts>8)
Key_Counts = 8;
Display_Buffer[Key_Counts-1] = Key_Counts;
break;
case 0xfd: if(Key_Counts>0)
Display_Buffer[--Key_Counts] = 10;
if(Key_Counts==0)
Display_Buffer[0] = 0;
break;
case 0xfb: Display_Buffer[0]=0;
for(i=1;i<8;i++)
Display_Buffer[i] = 10;
Key_Counts = 0;
}
这个程序能帮我详细的讲讲吗?O(∩_∩)O谢谢!越详细越好。
展开
 我来答
百度网友b00881747
2011-03-25 · TA获得超过3509个赞
知道大有可为答主
回答量:7730
采纳率:0%
帮助的人:4147万
展开全部
uchar Display_Buffer[]= //这里不懂
{
0,10,10,10,10,10,10,10
};
定义一个一维数组。是输入的一组常数。
P0 = 0xff;//
P1 = 0xff;//这是什么意思P1口代表什么
P2 = 0x00;//
这个是串口的地址代码。给引脚赋值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陈妃炳
2011-03-26
知道答主
回答量:47
采纳率:0%
帮助的人:0
展开全部
这样码字来回答要太久了,你干脆说出那里不会。
追问

(1)Display_Buffer[Key_Counts-1] = Key_Counts;
(2) Display_Buffer[--Key_Counts] = 10;
(3) Display_Buffer[i] = 10;
Key_Counts = 0;
这些不会,O(∩_∩)O谢谢
追答
这里实现什么功能我就不知道了,不过只能在语法上说,(1)Display_Buffer[Key_Counts-1] = Key_Counts;是如果Key_Counts=6,也是把6赋给Display_Buffer[5];2) Display_Buffer[--Key_Counts] = 10;是如果Key_Counts=6,吧10赋给Display_Buffer[5]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式