通过单片机定时器输出周期为1s的方波,驱动LED灯闪烁
方波
方波的占空比固定是50%,即高电平和低电平的时间为1:1;
方波的周期:从一个上升沿(下降沿)到下一个上升沿(下降沿)的时间;
由此可得知周期为1s的方波就是高电平占0.5s,低电平占0.5s的波形;
单片机定时器
MCS-51有两个定时器,定时器0,定时器1;
相关寄存器
TMOD
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
GATE | C/T(非) | M1 | M0 | GATE | C/T(非) | M1 | M0 |
D7-D4控制定时器1,D3-D0控制定时器0
GATE:门控制位
GATE=0::由TR0,TR1置位分别启动定时器T0、T1
GATE=1:由外部中断引脚INT0、INT1来启动定时器T0、T1
当INT0引脚为高电平时TR0置位,启动定时器T0;
当INT1引脚为高电平时TR1置位,启动定时器T1;
C/T(非):功能选择位
C/T(非)=0:定时功能
C/T(非)=1:计数功能
M1,M0:定时器工作方式选择位
M1 | M0 | 工作方式 | 功能 |
---|---|---|---|
0 | 0 | 方式0 | 13位定时器/计数器 |
0 | 1 | 方式1 | 16位定时器/计数器 |
1 | 0 | 方式2 | 自动重装8位定时器/计数器 |
1 | 1 | 方式3 | T0分为两个独立计数器,T1没有该功能 |
解析
1.通过定时器实现0.5s的计时
2.每0.5s进行取反,得到周期为1s的方波
方式1的定时时间设置
定时器的定时时间T=N*Tcy;
N(计数值)=65536-X(计数器初值);
Tcy=12/晶振;
例:若晶振为12M,定时时间为50ms,求定时器需设置的初值;
Tcy=12/12M=1us;
T=0.05s;
N=T/Tcy=0.5s/1us=50000;
初值X=65536-50000=15536=3CB0;
由于N计数范围为1-65536,所以定时范围为1-65536us。为了定时0.5s,可以以50ms为基础,每50ms都会产生一次中断,每进一次中断我们通过一个变量对其计数,当计满10次,则是0.5s;
定时器使用步骤:
1.进行TMOD的配置;
2.定时器初值的设置;
3.开总中断(EA=1);
4.开定时器中断(ET0/ET1=0);
5.启动定时(TR0/TR1=1);
6.中断函数(…interrupt…)
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit LED=P1^0;
sbit PWM=P2^1;
uchar aa;void main()
{TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;PWM=1;while(1);}void timer0() interrupt 1
{TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;if(aa==10){aa=0;PWM=!PWM;LED=!LED;}}
通过单片机定时器输出周期为1s的方波,驱动LED灯闪烁相关推荐
- 定时/计数器应用——从P1.0输出周期为1s的方波,让发光二极管以1Hz闪烁
利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1Hz闪烁,设晶振频率为12MHz. 2021-01-20,51单片机学习笔记 代码(精简注释): /**************** ...
- STM32定时器实现5秒周期串口通信,2秒LED灯闪烁
文章目录 前言 一.定时器Timer 1.定时器定义 2.定时器分类 3.计数器模式 4.时钟产生器和时基单元 5.工作原理 二.实验步骤 1.用STM32CubeMx创建项目 1.1 创建项目 1. ...
- 嵌入式作业STM32定时器实现串口通信及LED灯闪烁
目录 前言 一.什么是定时器 1.定时器与计数器 2. 定时器有什么用 3. 定时器的原理 4.时钟产生器和时基单元 二.用STM32CubeMx创建项目 1. 创建项目 2.配置RCC和SYS 3. ...
- 单片机p0口接8个LED c51语言,51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序。...
51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序. 更多相关问题 下列业务应该计入营业外支出的是(). 维生素的生理功能有哪些? 在实务中 ...
- 【MSP430】MSP430F5529火箭板 --->基于定时器A的LED灯闪烁实验(含Timer_A分析)
实验内容:上电点亮MSP430F5529 Launch Pad 上板载的红色LED,同时使用定时器让绿色LED闪烁 实验准备: 1.硬件:MSP430F5529 Launch Pad 2.软件:Cod ...
- 控制led闪烁次数_单片机驱动LED灯的进阶之路
对于大多数单片机的学习者或者是从事单片机行业的工程师来说,单片机驱动LED闪烁起来的时候,基本都是我们入坑的开始,同时当时的那种兴奋与喜悦都是难以忘怀的,从LED灯亮起,到闪烁,再到各种流水灯,能开心 ...
- STM32定时器控制LED灯闪烁及PWM练习
一.STM32定时器控制LED灯闪烁 1.相关配置 1)配置RCC和SYS 2)配置IO 配置PC15,并命名为D1. 3)配置定时器 选定时器2,配置Clock Source为Internal Cl ...
- 单片机led灯闪烁实验总结_单片机很好玩3,花三分钟,使用普通LED小灯,制作手机“呼吸灯”...
上一节为了解决单片机 IO 电流驱动能力不足,导致 LED 小灯亮度不高的问题,借助了三极管.单片机的 IO 通过三极管开关 LED 小灯的电流,最后的确明显让小灯的亮度更高了. 使用电路模拟软件 还 ...
- 52单片机led灯闪烁c语言程序,单片机LED灯闪烁程序
原标题:单片机LED灯闪烁程序 点亮 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点 ...
最新文章
- 详解MariaDB数据库的触发器
- 添加和删除行的能力table(能够编辑的表的内容)
- Oracle SCN
- 前端 python java三者哪个比较容易就业_前端和后端(Java)开发哪个难?,哪个学习容易一点?...
- 广域网应用场景包括哪些?—Vecloud
- [How TO]-ubuntu下安装selenium
- Jenkins配置jdk(启动报错:Starting Jenkins bash: /usr/bin/java: No such file or directory)
- 几个实用的Servlet应用例子-入门、cookie、session及上传文件
- 11 Django组件-分页器
- 【异常】No suitable driver
- Spring: Export - WAR file - 404 Not Found 问题
- Linux下黑白棋c语言程序,黑白棋c语言程序.doc
- 表达式求值——数据结构严蔚敏C语言版栈数据结构课后练习
- matlab2017b安装之后点桌面图标黑框闪退
- 根据stc89原理图画pcb_STC89C51单片机对AD模数转换学习板的控制原理解析
- Bugly-全量更新
- C语言坐标打飞机,C语言实现打飞机小游戏
- Android EditText与软键盘
- 学python安装-Python学习笔记-Python安装
- 硅谷再撒钱:公司暴力涨薪,HR“大打出手”,这场人才战富了谁?