#循循渐进学51单片机#定时器与数码管#not.4

1、熟练掌握单片机定时器的原理和应用方法。

1)时钟周期:单片机时序中的最小单位,具体计算的方法就是时钟源分之一。

2)机器周期:我们的单片机完成一个操作的最短时间。

3)定时器:打开定时器"储存寄存器"的值经过一个机器周期自动加一,也就是说,机器周期是一个计数周期。

4)

5)

6)

7)

2,代码实现

复制代码
#include <REGX52.H>
sbit add0 = P1^0;
sbit add1 = P1^1;
sbit add2 = P1^2;
sbit add3 = P1^3;
sbit ENLED = P1^4;
unsigned int cnt = 1,i ,a = 0,arr = 1;
void main()
{
	ENLED = 0;
	add3 = 1;
	add0 = 0;
	add1 = 1;
	add2 = 1;
	TMOD = 0x01;//开启总开关
	TH0 = 0xfc;//置高位计值
	TL0 = 0x00;//置低位开始计值
	TR0 = 1;//计时器开始计时
  while(1) 
{
	
	if(1 == TF0)//判断是否进制
	{
	TF0 = 0;
	TH0 = 0xfc;
	TL0 = 0x00;
		if(100 > cnt)
		{
		cnt = 0;
			hans();
		}
	}

3、使用定时器来实现延时,完成左右移动的流水灯的程序。

复制代码
#include <REGX52.H>
sbit add0 = P1^0;
sbit add1 = P1^1;
sbit add2 = P1^2;
sbit add3 = P1^3;
sbit ENLED = P1^4;
unsigned int cnt = 0,arr3,a = 0,arr = 0,arr2 = 0;
void main()
{
	ENLED = 0;
	add3 = 1;
	add0 = 0;
	add1 = 1;
	add2 = 1;
	TMOD = 0x01;
	TH0 = 0xb8;
	TL0 = 0x00;
	TR0 = 1;
  while(1) 
{
	if(1 == TF0)
	{
	TF0 = 0;
	TH0 = 0xb8;
	TL0 = 0x00;
		arr2++;
		arr++;
		if(50 == arr2)
		{
			arr2 = 0;
		P0 = ~(0x80 >> cnt);
				cnt++; 
		}
		if(cnt >= 8)
	{
		  cnt = 0;
			arr2 = 51;
	}
		if(arr == 400)
			{
		P0 = ~(0x01 << a);
		  a++;
		  arr = 350;
		}		
	} if(a >= 8)
	{
	  arr2 = 0;
		cnt = 0;
		a = 0;
		arr = 0;
	}
		}
	}	

4、了解数码管的原理,掌握数码管的真值表的计算方法。

5、编程实现数码管静态显示秒表的倒计时。

复制代码
#include <REGX52.H>
sbit add0 = P1^0;
sbit add1 = P1^1;
sbit add2 = P1^2;
sbit add3 = P1^3;
sbit ENLED = P1^4;
unsigned char code LedChar[] = {
    0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
    0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
unsigned char i = 0x0f,a = 0;
void main()
{
	ENLED = 0;
	add3 = 1;
	add0 = 0;
	add1 = 0;
	add2 = 0;
	TMOD = 0x01;
	TH0 = 0xb8;
	TL0 = 0x00;
	TR0 = 1;
  while(1) 
{
	if(1 == TF0)
	{
	TF0 = 0;
	TH0 = 0xb8;
	TL0 = 0x00;
		a++;
		if(a >= 50)
			{
				a = 0;
	P0 = LedChar[i];
	if(i > 0)
{
i--;
}
else 
{
i = 0x0f;
}
	}
	}	
}
}
相关推荐
Yolanda_20223 分钟前
Python学习-第九部分-错误处理与异常处理
开发语言·python·学习
一只小菜鸡..20 分钟前
南京大学 操作系统 (JYY) 学习笔记:CPU 的局限、GPU 与 AI 时代的算力革命
人工智能·笔记·学习
csdn杰哥23 分钟前
瑞萨单片机开发教程[二十七] DTC 外部中断触发传输实验
单片机·嵌入式硬件·mongodb·瑞萨·ra6m5
所愿ღ1 小时前
SSM框架-Spring3
java·开发语言·笔记·spring
知识分享小能手2 小时前
高等数学学习教程,从入门到精通,定积分 — 知识点全面总结(9)
学习·算法·机器学习
Hello_Damon_Nikola2 小时前
LIS3DH从入门到精通_三轴加速度计实战指南
单片机·嵌入式硬件·3d
~光~~2 小时前
【嵌入式linux学习_OV8858 bring up】L2_V4L2与Ov8858
linux·数据库·学习
影视飓风TIM2 小时前
C++ STL 完整入门笔记[8]:deque 底层原理深度剖析
开发语言·c++·笔记
520拼好饭被践踏2 小时前
JAVA+Agent学习day26
java·开发语言·数据结构·学习·agent
凉、介2 小时前
ARMv8-A 指令学习
linux·笔记·学习·嵌入式·arm·指令