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

#include <reg52.h>#define uchar unsigned char#define uint unsigned intuchar 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谢谢!越详细越好。
2026年09月19日 06:00
有2个网友回答
网友(1):

uchar Display_Buffer[]= //这里不懂
{
0,10,10,10,10,10,10,10
};
定义一个一维数组。是输入的一组常数。
P0 = 0xff;//
P1 = 0xff;//这是什么意思P1口代表什么
P2 = 0x00;//
这个是串口的地址代码。给引脚赋值。

网友(2):

这样码字来回答要太久了,你干脆说出那里不会。