从单片机基础到程序框架(全集 2019pdf版).pdf - 第251页

u8GetDays= Cu8MonthB uffer[u8Mont h]; //这就是查表 ,马上获 取常量数组 表格里固定对 应的天数。 return u8Get Days; } void m ain() //主函 数 { //第(1)个 例子 if(89>=C u8Level) //大于 或者等于阀值 ,就输出 1 。 { a=1; } else //否则输出 0 。 { a=0; } if(95>=C u8Level)…

100%1 / 836
unsigned char a; //用来接收函数返回的结果
unsigned char b;
unsigned char c;
unsigned char d;
//函数的定义。
unsigned char HanShu_switch(unsigned char u8Month) //用 switch 分支来实现。
{
switch(u8Month)
{
case 1: //1 月份的天数
return 31;
case 2: //2 月份的天数
return 28;
case 3: //3 月份的天数
return 31;
case 4: //4 月份的天数
return 30;
case 5: //5 月份的天数
return 31;
case 6: //6 月份的天数
return 30;
case 7: //7 月份的天数
return 31;
case 8: //8 月份的天数
return 31;
case 9: //9 月份的天数
return 30;
case 10: //10 月份的天数
return 31;
case 11: //11 月份的天数
return 30;
case 12: //12 月份的天数
return 31;
default: //万一输错了其它范围的月份,就默认返 30 天。
return 30;
}
}
unsigned char HanShu_const(unsigned char u8Month) //用 const 常量数组的“查表”来实现。
{
unsigned char u8GetDays;
u8Month=u8Month-1; //因为数组下标是从 0 开始,0 代表 1 月份,1 代表 2 月份。所以减去 1。
u8GetDays=Cu8MonthBuffer[u8Month]; //这就是查表,马上获取常量数组表格里固定对应的天数。
return u8GetDays;
}
void main() //主函
{
//第(1)个例子
if(89>=Cu8Level) //大于或者等于阀值,就输出 1
{
a=1;
}
else //否则输出 0
{
a=0;
}
if(95>=Cu8Level) //大于或者等于阀值,就输出 1
{
b=1;
}
else //否则输出 0
{
b=0;
}
//第(2)个例子
c=HanShu_switch(2); //用 switch 分支的函数获取 2 月份的总天数。
d=HanShu_const(2); //用 const 常量数组“查表”的函数获取 2 月份的总天数。
View(a); //把第 1 个数 a 发送到电脑端的串口助手软件上观察。
View(b); //把第 2 个数 b 发送到电脑端的串口助手软件上观察。
View(c); //把第 3 个数 c 发送到电脑端的串口助手软件上观察。
View(d); //把第 4 个数 d 发送到电脑端的串口助手软件上观察。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
在电脑串口助手软件上观察到的程序执行现象如下:
开始...
1 个数
十进制:0
十六进制:0
二进制:0
2 个数
十进制:1
十六进制:1
二进制:1
3 个数
十进制:28
十六进制:1C
二进制:11100
4 个数
十进制:28
十六进制:1C
二进制:11100
分析:
a 0。
b 1。
c 28。
d 28。
【58.8 如何在单片机上练习本章节 C 语言程序?】
直接复制前面章节中第十一节的模板程序,练习代码时只需要更改C 语言学习区域”代码就可以了,
其它部分的代码不要动。编译后,把程序下载进带串口 51 习板,通过电脑端的串口助手软件就可以观
察到不同的变量数值,详细方法请看第十一节内容。