方波
方波的占空比固定是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灯闪烁相关推荐

  1. 定时/计数器应用——从P1.0输出周期为1s的方波,让发光二极管以1Hz闪烁

    利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1Hz闪烁,设晶振频率为12MHz. 2021-01-20,51单片机学习笔记 代码(精简注释): /**************** ...

  2. STM32定时器实现5秒周期串口通信,2秒LED灯闪烁

    文章目录 前言 一.定时器Timer 1.定时器定义 2.定时器分类 3.计数器模式 4.时钟产生器和时基单元 5.工作原理 二.实验步骤 1.用STM32CubeMx创建项目 1.1 创建项目 1. ...

  3. 嵌入式作业STM32定时器实现串口通信及LED灯闪烁

    目录 前言 一.什么是定时器 1.定时器与计数器 2. 定时器有什么用 3. 定时器的原理 4.时钟产生器和时基单元 二.用STM32CubeMx创建项目 1. 创建项目 2.配置RCC和SYS 3. ...

  4. 单片机p0口接8个LED c51语言,51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序。...

    51单片机P1口接8个LED灯,低电平点亮,用定时器1定时250ms,让着8个LED不停闪烁,编写完整的C程序. 更多相关问题 下列业务应该计入营业外支出的是(). 维生素的生理功能有哪些? 在实务中 ...

  5. 【MSP430】MSP430F5529火箭板 --->基于定时器A的LED灯闪烁实验(含Timer_A分析)

    实验内容:上电点亮MSP430F5529 Launch Pad 上板载的红色LED,同时使用定时器让绿色LED闪烁 实验准备: 1.硬件:MSP430F5529 Launch Pad 2.软件:Cod ...

  6. 控制led闪烁次数_单片机驱动LED灯的进阶之路

    对于大多数单片机的学习者或者是从事单片机行业的工程师来说,单片机驱动LED闪烁起来的时候,基本都是我们入坑的开始,同时当时的那种兴奋与喜悦都是难以忘怀的,从LED灯亮起,到闪烁,再到各种流水灯,能开心 ...

  7. STM32定时器控制LED灯闪烁及PWM练习

    一.STM32定时器控制LED灯闪烁 1.相关配置 1)配置RCC和SYS 2)配置IO 配置PC15,并命名为D1. 3)配置定时器 选定时器2,配置Clock Source为Internal Cl ...

  8. 单片机led灯闪烁实验总结_单片机很好玩3,花三分钟,使用普通LED小灯,制作手机“呼吸灯”...

    上一节为了解决单片机 IO 电流驱动能力不足,导致 LED 小灯亮度不高的问题,借助了三极管.单片机的 IO 通过三极管开关 LED 小灯的电流,最后的确明显让小灯的亮度更高了. 使用电路模拟软件 还 ...

  9. 52单片机led灯闪烁c语言程序,单片机LED灯闪烁程序

    原标题:单片机LED灯闪烁程序 点亮 小灯的程序我们第二课完成了,就是让 LED = 0.熄灭小灯的程序也很简单,就是 LED = 1.点亮和熄灭都会了,那么如果我们在亮和灭中间加个延时,反复不停的点 ...

最新文章

  1. 详解MariaDB数据库的触发器
  2. 添加和删除行的能力table(能够编辑的表的内容)
  3. Oracle SCN
  4. 前端 python java三者哪个比较容易就业_前端和后端(Java)开发哪个难?,哪个学习容易一点?...
  5. 广域网应用场景包括哪些?—Vecloud
  6. [How TO]-ubuntu下安装selenium
  7. Jenkins配置jdk(启动报错:Starting Jenkins bash: /usr/bin/java: No such file or directory)
  8. 几个实用的Servlet应用例子-入门、cookie、session及上传文件
  9. 11 Django组件-分页器
  10. 【异常】No suitable driver
  11. Spring: Export - WAR file - 404 Not Found 问题
  12. Linux下黑白棋c语言程序,黑白棋c语言程序.doc
  13. 表达式求值——数据结构严蔚敏C语言版栈数据结构课后练习
  14. matlab2017b安装之后点桌面图标黑框闪退
  15. 根据stc89原理图画pcb_STC89C51单片机对AD模数转换学习板的控制原理解析
  16. Bugly-全量更新
  17. C语言坐标打飞机,C语言实现打飞机小游戏
  18. Android EditText与软键盘
  19. 学python安装-Python学习笔记-Python安装
  20. 硅谷再撒钱:公司暴力涨薪,HR“大打出手”,这场人才战富了谁?

热门文章

  1. 2018年创翼 开wifi方法 适合电脑小白
  2. 【数据异常校验】T检验或T测试(T-test)
  3. logo设计的30种技巧
  4. 安装侧边翻译,划词翻译,看外文论文神器,比知云还好用Edge Translate
  5. 国内有名的汽车与交通调查研究咨询公司情况
  6. R语言进行中文分词和聚类
  7. android引导页大小,Android:启动引导页实现
  8. BNNVGG2-VGG Net
  9. 【Spring Boot】--整合RabbitMQ
  10. swoole 连接mysql_swoole教程:用swoole4操作mysql连接池之读写分离