51单片机实验4-计时器设计(LED灯实现二进制计数,简易计数报警,呼吸灯)

实训目的:

1、编写程序通过定时器完成二进制计数,并通过LED灯显示结果

2、编程程序利用计数器,完成简易计数报警。

实训步骤:

(一)控制LED灯实现二进制计数

电路连接如下:

51单片机实验4-计时器设计(LED灯实现二进制计数,简易计数报警,呼吸灯)_第1张图片

 主要器件:AT89C51、RES、LED-GREEN、BUTTON

程序代码如下:(每次按下K1键计数加一)

#include
void main()
{	TMOD=0x06;      // 设置定时器 T0 为方式 2,16位计数器模式
	TH0=0;          // 初始化高位寄存器 TH0 为 0
	TL0=0;          // 初始化低位寄存器 TL0 为 0
	TR0=1;          // 开启定时器 T0
	while(1)
	{	P1=~TL0;      // 取反 TL0 寄存器的值,将其赋值给 P1 端口
	}
}
//每次按下按键计数+1,我钱没懂原理

(二)简易计数报警

电路连接:

51单片机实验4-计时器设计(LED灯实现二进制计数,简易计数报警,呼吸灯)_第2张图片

 程序代码如下:(K1按下代表密码错误,3次错误后LED点亮3秒)

#include
sbit LED=P1^0;                  // 定义 LED 引脚,位于 P1 口的第 0 个端口
void t1_50ms(unsigned char i)   // 延时函数,通过定时器 T0 实现,在输入参数 i 的控制下延时,每次延迟 50 毫秒
{	
	unsigned char k; 
	for(k=0;k

(三)呼吸灯

提示:

1、了解PWM的驱动方式;

2、使灯光由暗逐渐变亮,在从亮逐渐变暗。

电路连接如下:51单片机实验4-计时器设计(LED灯实现二进制计数,简易计数报警,呼吸灯)_第3张图片代码如下:

#include
sbit LED=P1^0;  
unsigned int i,j;             // 定义 LED 引脚为 P1.0
void T0_100us(unsigned int i) // 定义函数 T0_100us,用于延时指定的微秒数
{	
	unsigned int k;
	for(k=0;k

你可能感兴趣的:(51单片机实训,51单片机,嵌入式硬件,单片机)