找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8006|回复: 6
打印 上一主题 下一主题
收起左侧

学51单片机-定时中断与LED闪烁

[复制链接]
跳转到指定楼层
楼主
ID:74835 发表于 2015-3-20 23:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
      
       昨天写的比较匆忙,出现了一些错误,感谢几位朋友的指正。这其中也有我了解不够透彻的地方,幸好及时暴露了自己的盲点,不然还会继续犯错。
       好了,继续今天的内容。
这次说定时与中断,有人说,掌握了定时与中断,就掌握了一个单片机80%的功能;也有人说,中断是一个单片机的灵魂。这两句话无一不在强调中断的重要性,就让我们认识一下,中断到底是什么。
根据百度百科的定义:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。
举个例子,我正在吃饭呢,忽然老婆大人发话了,说在网上看上一个包,挺好的,让我帮着付款,于是我停下吃饭说好,去帮着付款,付完款,继续吃饭。
这个过程中,我是CPU;吃饭是主程序;老婆大人说话,触发了中断;我说好,安慰了老婆的情绪同时清零了中断标志;去付款,处理了中断子程序;付完款继续吃饭,回到了主程序。
STC89C52RC单片机中的中断分为三种:外部中断,一般是IO口的高低电平触发;定时/计数器溢出中断,一般是内部定时/计数器溢出中断;UART口中断,收发数据时引发的中断。这次只说定时/计数器溢出中断。
程序如下:

/**********************51单片机学习例程***********************
*  平台:Keil U4 + STC89C52
*  名称:LED闪烁
*  晶体:11.0592MHZ
******************************************************************/
#include <reg52.h>

sbit led=P1^0;


/****************************************************
*
*                延时子函数
*
*****************************************************/
void delay(unsigned int i)
{
        unsigned int j;
        unsigned char k;
        for(j=i;j>0;j--)                                                        //把i赋值给j,然后进行判断,当j大于0时,j减一,重复判断,一直到符合条件为止
                for(k=125;k>0;k--);                                //首先赋值125给k,然后进行判断,当k大于0时,k减一,重复判断,一直到符合条件为止
}


/****************************************************
*
*                主函数,在死循环中实现LED闪烁
*
*****************************************************/
int main()
{
        while(1)
        {
                led=~led;        //每隔一段时间即对输出取反。
                delay(3000); //闪烁间隔。间隔约为0.85S
        }
        return(0);
}
       下载验证,OK!
       今天要出差,简单写一下,回来后再丰满一下。
       源码如下: LED延时闪烁.zip (20.83 KB, 下载次数: 34)

   



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:81462 发表于 2015-6-3 16:17 来自手机 | 只看该作者
这也叫中断?
回复

使用道具 举报

板凳
ID:312132 发表于 2018-6-12 03:47 | 只看该作者
这是在忽悠新人呢
回复

使用道具 举报

地板
ID:442473 发表于 2019-1-29 12:29 来自手机 | 只看该作者
这是假的中断吧
回复

使用道具 举报

5#
ID:617740 发表于 2019-10-1 11:28 来自手机 | 只看该作者
你这不是单片机里说的中断
回复

使用道具 举报

6#
ID:661314 发表于 2020-7-29 08:21 | 只看该作者
这明明就是延时、版主是不是打瞌睡了这审核都pass..,
回复

使用道具 举报

7#
ID:1112603 发表于 2024-3-11 12:38 | 只看该作者
应该是延时函数吧,不是严格意义的单片机系统中断。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表