概述
实验1.2
- 编写LED0、LED2、LED5三个灯的闪烁程序。(假设8各led和P1口相连)
#include <reg51.h>
sbit LED0 = P1^0;
sbit LED1 = P1^1;
sbit LED2 = P1^2;
sbit LED3 = P1^3;
sbit LED4 = P1^4;
sbit LED5 = P1^5;
sbit LED6 = P1^6;
sbit LED7 = P1^7;
void delay(unsigned int ms)
{
unsigned char i;
while (ms--)
for(i = 1; i <= 110;i++);
//for循环进入、退出一次,延时约1ms,来自经验值
}
void main()
{
while (1)
{
LED0 = ~LED0; //变量可以作为左值存在
LED2 = ~LED2;
LED5 = ~LED5;
delay(1000); //延时1000ms
}
}
是否可以将上述程序中的某些部分精炼成一个个子函数呢?比如,Led_On(LED0), Led_Off(LED0),Led_Toggle(LED0)这些呢?可是这些函数的形参怎么定义呢?
void LED_On(bit led);这样可以了吗?大家可以试试看
#include <reg51.h>
#define LED0 0x01
#define LED1 0x02
#define LED2 0x04
#define LED3 0x08