学习单片机又把C语言的一些知识点温习一下
switch:switch (表达式)----->表达式中只能是整形和字符型
extern :全局变量对整个工程可见,其他文件可以使用extern外部声明后直接使用
static:局部静态变量,延长了局部变量的生命周期,直到程序运行结束以后才释放。
全局静态变量:作用域是声明此变量所在的文件,其他的文件即使用 extern 声明也 不能使用。
目标:4个数据11,22,33,44 需要显示在一个4位共阴极数码管上
简单的功能掌握住,难的也就不难了,量变到质变的过程,各种简单的功能组合到一起便能实现复杂的功能
main.c
#include "DisplayService.h"
void main()
{
u16 temp;
for(temp=0;temp<100;temp++)
{
Display();//显示开机画面一段时间
}
while(1)
{
DisplayService();//分时循环显示4组数据
}
}
DisplayService.c
#include "DisplayService.h"
u8 parm1 = 11; //需要显示的数据
u8 parm2 = 22;
u8 parm3 = 33;
u8 parm4 = 44;
void DisplayService()
{
static u8 windowNum = 0; //窗口变量
u16 temp;
switch(windowNum)
{
case 0:
LEDBuf[0] = 1; //第一个数码管显示1
LEDBuf[1] = 22;//第二个数码显示“-”
LEDBuf[2] = parm1/10;//第三个数码管显示数据十位
LEDBuf[3] = parm1%10;//第四个数码管显示数据个位
for(temp=0;temp<200;temp++)//显示数据parm1一些时间
{
Display();
}
windowNum++;
break;
case 1:
LEDBuf[0] = 2;//第一个数码管显示3
LEDBuf[1] = 22;//第二个数码显示“-”
LEDBuf[2] = parm2/10;
LEDBuf[3] = parm2%10;
for(temp=0;temp<200;temp++)
{
Display();
}
windowNum++;
break;
case 2:
LEDBuf[0] = 3;
LEDBuf[1] = 22;
LEDBuf[2] = parm3/10;
LEDBuf[3] = parm3%10;
for(temp=0;temp<200;temp++)
{
Display();
}
windowNum++;
break;
case 3:
LEDBuf[0] = 4;
LEDBuf[1] = 22;
LEDBuf[2] = parm4/10;
LEDBuf[3] = parm4%10;
for(temp=0;temp<200;temp++)
{
Display();
}
windowNum = 0;//窗口变量置零,下次显示第一个数据
break;
default:
break;
}
}
本文暂时没有评论,来添加一个吧(●'◡'●)