一:LED灯实验
1.点亮一个led灯
#include "reg52.h"
sbit LED1=P2^0; //将P2.0管脚定义为LED1
void main()
{
LED1=0; //LED1端口设置为低电平
while(1)
{
}
}
2.让led灯闪烁
#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
sbit LED1=P2^0; //将P2.0管脚定义为LED1
void delay_10us(u16 ten_us) //延时函数
{
while(ten_us--);
}
void main()
{
while(1)
{
LED1=0; //点亮
delay_10us(50000); //大约延时450ms
LED1=1; //熄灭
delay_10us(50000);
}
}
3.led流水灯实验
#include "reg52.h"
#include "intrins.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
#define LED_PORT P2 //使用宏定义P2端口
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
void main()
{
u8 i=0;
LED_PORT=~0x01;
delay_10us(50000);
while(1)
{
//方法1:使用移位+循环实现流水灯
/* for(i=0;i<8;i++)
{
LED_PORT=~(0x01<<i); //将1右移i位,然后取反将结果赋值到LED_PORT
delay_10us(50000);
}
*/
//方法2:使用循环+_crol_或_cror_函数实现流水灯
for(i=0;i<7;i++) //将led左移一位
{
LED_PORT=_crol_(LED_PORT,1);
delay_10us(50000);
}
for(i=0;i<7;i++) //将led右移一位
{
LED_PORT=_cror_(LED_PORT,1);
delay_10us(50000);
}
}
}
二:无源蜂鸣器实验
#include "reg52.h"
typedef unsigned int u16; //对系统默认数据类型进行重定义
typedef unsigned char u8;
sbit BEEP=P2^5; //将P2.5管脚定义为BEEP
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
void main()
{
u16 i=2000;
while(1)
{
while(i--)//循环2000次
{
// BEEP=!BEEP;//产生一定频率的脉冲信号
// delay_10us(200);
BEEP=0;
delay_10us(180);
BEEP=1;
delay_10us(20);
}
i=0;//清零
BEEP=0;//关闭蜂鸣器
}
}
三.数码管实验
1.静态数码管实验