一、好的方面
1.从其他文件调用函数错误
main.c调用smg.c里的自定义函数时,在smg.h中函数声明,函数的形参必须使用ANSI-prototype规定的类型,如char,int,etc.而不能使用uchar等通过typedef自定义名称的类型。
2.变量的生存周期
在每个.c文件里,哪个c文件需要什么变量、定义(如使用sbit LED_TEST = P1^0;或者uchar num = 0;),就在哪个c文件里定义即可。(详细的可以看一下c语言的编译过程,我了解的也不够透彻,希望知道的仁兄底下留个言,交流一下)
3.数码管显示123456的函数
利用_crol_函数,进行移动,比较好的地方。
void display_123456(){
uchar wela_display = 0x7F;//利用循环左移控制设置数码管位选
while(1){
wela_display = _crol_(wela_display,1);
wela = 1;
P0 = wela_display;
wela =0;
P0 = 0xFF;
dula = 1;
P0 = table[++num];
dula = 0;
if (num == 6) {//判断是否超出位数
num = 0;
wela_display = 0x7F;
}
delayms(50);
}
}
4.显示六位数码管的函数
传递形参,一次显示两位,第二位靠循环左移实现;还可控制dp段,使用了逻辑或运算。</