题目
填空,完成下面程序。#include / 包含头文件[1]reg51.h,定义51单片机的专用寄存器[2]_____________________; / 延时函数声明void main() / 主函数( while(________) / 无限循环 { p1=0xFF; / 熄灭p1口LED灯 ____ (1200); / 调用延时函数,实际参数为1200 p1=_____; / 点亮p1口LED灯 ____ (1200); / 调用延时函数,实际参数为1200 )}/ 函数名: delay/ 函数功能: _________/ 形式参数[3]: 整型变量i,控制循环次数/ 返回值: 无void delay(unsigned int i)
填空,完成下面程序。
#include
_____________________; // 延时函数声明
void main() // 主函数
{
while(________) // 无限循环
{
p1=0xFF; // 熄灭p1口LED灯
____ (1200); // 调用延时函数,实际参数为1200
p1=_____; // 点亮p1口LED灯
____ (1200); // 调用延时函数,实际参数为1200
}
}
// 函数名: delay
// 函数功能: _________
// 形式参数[3]: 整型变量i,控制循环次数
// 返回值: 无
void delay(unsigned int i)
题目解答
答案
程序实现P1口LED灯的闪烁,需完成以下部分:
1. 延时函数声明为`void delay(unsigned int i);`。
2. 主函数中`while(1)`实现无限循环。
3. 熄灭LED时`P1 = 0xFF;`,点亮时`P1 = 0x00;`。
4. 调用延时函数为`delay(1200);`。
5. `delay`函数通过循环实现延时,功能为“产生一定时间的延时”。
完整代码如下:
```c
#include
void delay(unsigned int i);
void main()
{
while(1)
{
P1 = 0xFF;
delay(1200);
P1 = 0x00;
delay(1200);
}
}
void delay(unsigned int i)
{
unsigned int j;
for(j = 0; j < i; j++);
}
```