51单片机入门 - 定时器中断应用实例

最新更新时间:2022-05-27来源: eefocus关键字:51单片机  入门  定时器中断 手机看文章 扫描二维码
随时随地手机看文章

定时器中断应用实例


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


设计要求:


每秒点亮P1.0口的发光二极管一次,然后熄灭,使发光二极管形成闪烁效果

实现思路:


通过定时/计数器,每秒触发一次P1.0取反

涉及到的功能模块:定时器,中断,LED操作

定时器装填:


需要计数每秒的话,计数921600时溢出即可,在四种方式定时方式中,最大的计数范围是方式2:65536,将921600分解成20份,每份计数46080时溢出,当溢出20次时灯闪烁,每次定时器溢出都要重新装填

模块设计


初始化


LED(上拉输入模式)

定时器(T0,工作方式1,装填初值,启动(在中断初始化后启动))

中断(开放中断,开放T0中断)

while(1)

中断


重置定时器(溢出位复位,重新装填计时)

判断溢出次数(到达20次时LED改变状态,计数清零。未到达20次时溢出次数加一)

实现代码


#include

#include

typedef unsigned char uchar;

sbit LED = P1 ^ 0;

uchar count = 0;

void Interrupt() interrupt 1

{

    TH0 = (65536 - 46080) / 256; //触发中断时重新装填计时

    TL0 = (65536 - 46080) % 256;

    if (count == 20)

    {

        LED = ~LED;

        count = 0;

    }

    else ++count;

}

void main(void)

{

    LED = 0xff; //初始化LED

    TMOD = 0x01; //初始化TMOD,定时器0,方式1

    TH0 = (65536 - 46080) / 256; //装填计数

    TL0 = (65536 - 46080) % 256;

    EA = 1; //开放所有中断

    ET0 = 1; //开放定时器0中断控制位

    TR0 = 1; //定时器0开始计时

    while(1)

    {

        _nop_();

    }

}


关键字:51单片机  入门  定时器中断 编辑:什么鱼 引用地址:51单片机入门 - 定时器中断应用实例

上一篇:51单片机入门 - 实验板的选择
下一篇:51单片机入门 - SPI协议与应用实验

推荐阅读最新更新时间:2023-09-21 02:36

51单片机的at24c02驱动程序
//////////////////////////////////////////////////////// 头文件 ///////////////////////////////////////////////////////////////////////////////////////// /****************************************************************************** * 标题: at24c02 e2prom驱动程序 * * 文件:
[单片机]
【菜鸟入门】stm32 之 iic
纠结了两天,终于重新开始写了,这两天一直卡在硬件iic上,由于硬件iic是比较难啃的一块骨头,问题一大堆,明明感觉配置好,测试时,一会出这个问题,一会出那个问题,哎,说多了都是泪。。。。 最后木有办法了,总不能吊死在一棵树上吧,然后就写了个模拟的iic的,由于对iic研究和应用的比较多(我们实验室的设备都是iic通信的,所有设备的驱动都是我来写的),所以在搞这个的时候得心应手,一个小时就把所有的搞定了,有花了1个小时把eeprom(at24c02)调通; 我大致测了下,我的板子上的eeprom电路类似这个: 所以我要做的是就是把PB6配置称时钟线SCL,PB7配置成数据线SDA 这里我们再配置输出的时候,要把管脚配
[单片机]
【菜鸟<font color='red'>入门</font>】stm32 之 iic
基于51单片机的LD3320的例程(口令模式+IO口控制程序)
1、本工程采用 KEIL4 版本建立 2、本工程为口令模式+IO口控制方式,每次识别都需要喊“小杰”然后才可以喊其他二级的口令,另外IO口的输出可以查看程序PAx的端口利用情况 V0.7 语音识别程序:口令模式+IO口控制 本工程采用keil 4建立,如您打不开,可参考以下格式进行工程建立。 单片机源程序如下: /***************************飞音云电子**************************** ** 工程名称:YS-V0.7语音识别模块驱动程序 ** CPU: STC11L08XE ** 晶振:22.1184MHZ ** 波特率:9600 bit/S **
[单片机]
基于<font color='red'>51单片机</font>的LD3320的例程(口令模式+IO口控制程序)
51单片机串口通信软件程序集
串口通信的单片机程序 beep bit p3.7 ;蜂鸣器定义 org 00h jmp main org 23h ;串行中断入口地址 jmp com_int ;串行中断服务程序 ;*********** 主程序开始 ******************* org 30h main: mov sp,#30h ;设置堆栈 lcall rest ;初始化 lcall comm ;串口初始化 jmp $
[单片机]
基于51单片机的单个LED灯的设计
本设计旨在完成精确控制1个LED的亮灭状态而设计的,代码仅供参考。 代码: #include reg52.h #include intrins.h sbit LED=P1^0; void Delay1000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 8; j = 1; k = 243; do { do { while (--k); } while (--j); } while (--i); } void main() { while(1) { LED
[单片机]
基于<font color='red'>51单片机</font>的单个LED灯的设计
从零开始51单片机教程 —— 26 单片机键盘接口程序设计
键盘是由若干按钮组成的开关矩阵,它是单片机系统中最常用的输入设备,用户能通过键盘向计算机输入指令、地址和数据。一般单片机系统中采和非编码键盘,非编码键盘是由软件来识别键盘上的闭合键,它具有结构简单,使用灵活等特点,因此被广泛应用于单片机系统。 按钮开关的抖动问题 组成键盘的按钮有触点式和非触点式两种,单片机中应用的一般是由机械触点组成的。在下图中,当开 键盘结构图 图1 图2 关S未被按下时,P1。0输入为高电平,S闭合后,P1。0输入为低电平。由于按钮是机械触点,当机械触点断开、闭合时,会有抖动动,P1。0输入端的波形如图2所示。
[单片机]
从零开始<font color='red'>51单片机</font>教程 —— 26 单片机键盘接口程序设计
51单片机的时钟及复位电路
  时钟电路:   51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。   在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。   外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡方式的外部电路如下图所示。   图中,电容器Col,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定
[单片机]
51单片机—软件看门狗
这是第一次写一写下自己的学习的过程,这只是个开始,呵呵,当然没有结束的一个开始 今天没有事情,就看看单片机的书,突然发现自己学了这么长的时间还没有用过看门狗这个东东~~表示很惭愧,(*^__^*) 嘻嘻 既然这是自己的第一篇文章,那就来个简单,但是也好写的东东吧~~~ 001.软件看门狗 当程序跑飞到一个临时构成的死循环中时,这是如果没有人为的操作(也就是按下复位键 ),那么软件系统将完全瘫痪。那么我们就要让MCU自己实现监视系统运行的情况,这就是程序运行监视系统(WatchDog)。 简单来说吧,好比一个主人养了一条狗,主人在正常工作时总是不忘记每隔一段时间就喂一次狗,狗吃过东西就安静下来,这样也
[单片机]
<font color='red'>51单片机</font>—软件看门狗

推荐帖子

理工男的别样浪漫——基于MSP430和3D打印技术自制史上最大求婚“钻戒”
他叫李一帆,硅谷归国工程师,为了求婚他用5个月做了这枚史上最大的戒指。上下摇晃表示同意,戒指会自动打开送上钻戒,左右摇晃表示不同意,戒指表面会显示心碎图像。工科男的浪漫也蛮拼的! 理工男的别样浪漫——基于MSP430和3D打印技术自制史上最大求婚“钻戒”
maylove 微控制器 MCU
谁需要这些,免费下
免费下载,请看清资料,如果已有就请别再下载,谢谢哈。 不好意思文件名字错了 文件名字为”第三幅图的内容(1)“\"第三幅图的内容(2)\"\"第三幅图的内容(3)“实际为第二幅图所示的内容,其他照旧。 谁需要这些,免费下
阿飞 FPGA/CPLD
上资料了
上资料了
jxb01033016 嵌入式系统
基于Zynq Linux环境搭建
安装VMWare版本12Ubuntu版本12.04.564bit 系统安装完成后,登陆系统,在sotfware中心安装konsole、gvim、softwaresource等基本软件在softwaresources中,配置download源,如下图示所示,确保系统更新不会被中断。sudoapt-getupdate重启前的版本如下:纯文本查看复制代码$sudoapt-ge
phdwong FPGA/CPLD
智能互联照明和物联网
人类是充满智慧的,所以我们发明了能够为自己提供照明的装置。在世界各地大大小小的城市、城镇和村庄,人们利用自己创造的照明设备把黑暗的地方照亮。我们所处的文明社会各个方面都有着千丝万缕的联系,这是一种社会秩序,推动着社会向前发展。这些照明设备能够将各个地方照亮,为我们提供一个更加光明的未来。曾几何时人们采用的是简单的蜡烛来照明。如果要照亮一个大的房间并保持良好的照明条件,一定要花一番功夫。然而目前物联网技术发展是能够开发一个智能互联照明系统,我们可以通过有线或者无线通信的方
Aguilera RF/无线
[测评nucleo开发板f413zh]第3篇数据手册之特性与原理图
第3篇数据手册之特性与原理图一、简介本次申请到的是STM32Nucleo-144通用开发板,它可以适配NUCLEO-F207ZG、NUCLEO-F303ZE、NUCLEO-F412ZG、NUCLEO-F413ZH、NUCLEO-F429ZI、NUCLEO-F446ZE、NUCLEO-F722ZE、NUCLEO-F746ZG、NUCLEO-F767ZI和NUCLEO-H743ZI等多种型号。本次申请的开发板是NUCLEO-F413ZH,除了集成NUCLEO-F413Z
机器人爱好者1991 stm32/stm8
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2023 EEWORLD.com.cn, Inc. All rights reserved