51单片机 定时器0中断实现LED流水灯

发布者:逍遥游侠最新更新时间:2022-01-18 来源: eefocus关键字:中断  LED流水灯 手机看文章 扫描二维码
随时随地手机看文章

使用51单片机定时器0 方式1实现LED流水灯


代码:


#include

typedef unsigned int u16;

 

void timer0init()

{

TMOD=0x01;

ET0=1;

EA=1;

TR0=1;

TH0=64736/256;

TL0=64736%256;

}

 

void main()

{

timer0init();

while(1);

}

 

void timer0() interrupt 1

{

u16 i;

  TH0=64736/256;

TL0=64736%256;

i++;

switch(i)

{

case(100):P2=0xfe;break;

case(200):P2=0xfd;break;

case(300):P2=0xfb;break;

case(400):P2=0xf7;break;

case(500):P2=0xef;break;

case(600):P2=0xdf;break;

case(700):P2=0xbf;break;

case(800):P2=0x7f;break;

}

if(i==800)

{

i=0;

}

}

使用51单片机定时器0 方式1实现LED流水灯往返


代码:


#include

typedef unsigned int u16;

 

void timer0init()

{

TMOD=0x01;

ET0=1;

EA=1;

TR0=1;

TH0=63936/256;

TL0=63936%256;

}

 

void main()

{

timer0init();

while(1);

}

 

void timer0() interrupt 1

{

u16 i;

  TH0=63936/256;

TL0=63936%256;

i++;

switch(i)

{

case(100):P2=0xfe;break;

case(200):P2=0xfd;break;

case(300):P2=0xfb;break;

case(400):P2=0xf7;break;

case(500):P2=0xef;break;

case(600):P2=0xdf;break;

case(700):P2=0xbf;break;

case(800):P2=0x7f;break;

case(900):P2=0x7f;break;

case(1000):P2=0xbf;break;

case(1100):P2=0xdf;break;

case(1200):P2=0xef;break;

case(1300):P2=0xf7;break;

case(1400):P2=0xfb;break;

case(1500):P2=0xfd;break;

case(1600):P2=0xfe;break;

}

if(i==1600)

{

i=0;

}

}

关键字:中断  LED流水灯 引用地址:51单片机 定时器0中断实现LED流水灯

上一篇:51单片机 点亮一个LED LED闪烁
下一篇:51单片机8X8点阵屏显示

推荐阅读最新更新时间:2024-11-09 11:48

80c51是几位单片机 80c51单片机有几个中断
  80c51是几位单片机   80C51是一种8位微处理器,也被称为8051,由Intel公司推出。它是最早的商用单片机之一,由于它的简单易用、灵活可靠,被广泛应用于许多嵌入式系统中。在80C51系列中,最常见的型号包括AT89C51和AT89S52等。   80c51单片机寻址范围有多少   80C51单片机的寻址范围取决于其具体的型号和存储器结构。在最常见的AT89C51和AT89S52型号中,其寻址范围如下:   内部RAM寻址范围:0x00-0x7F(128字节)   内部ROM寻址范围:0x0000-0xFFFF(64KB)   特殊功能寄存器(SFR)寻址范围:0x80-0xFF(128字节)   外部扩展RAM
[单片机]
51单片机C语言程序100例分析(2)定时器+中断
#include reg51.h //包含 51 单片机寄存器定义的头文件 void main(void) { TMOD=0x01;// 使用定时器 T0 的模式 1 TH0=(65536-46083)/256; // 定时器 T0的高 8 位赋初值 TL0=(65536-46083)%256; // 定时器 T0的低 8 位赋初值 TR0=1; // 启动定时器 T0 TF0=0; //清定时器溢出标志位 P2=0xff; while(1)// 无限循环等待查询 { while(TF0==0); TF0=0; P2=~P2;//按位取反 TH0=(65536-46083)/256; /
[单片机]
Linux驱动之中断处理体系结构简析
S3C2440中的中断处理最终是通过IRQ实现的,在Linux驱动之异常处理体系结构简析已经介绍了IRQ异常的处理过程,最终分析到了一个C函数asm_do_IRQ,接下来继续分析asm_do_IRQ,目标是推导出中断的处理过程。 看到asm_do_irq函数,它位于archarmkernelIrq.c中。它先根据irq中断号从irq_desc 数组中取出这个中断对应的desc结构体,irq中断号是根据INTOFFSET寄存器的值来确定的,这个寄存器里的值根据中断的来源不同会置位相应的位,它在调用C函数asm_do_IRQ之前被存放在r0中,在C函数中即是irq。 asmlinkage void __exception as
[单片机]
STM32的中断系统
STM32具有十分强大的中断系统,将中断分为了两个类型:内核异常和外部中断。并将所有中断通过一个表编排起来,下面是stm32中断向量表的部分内容: 上图-3到6这个区域被标黑了,这个区域就是内核异常。内核异常不能够被打断,不能被设置优先级(也就是说优先级是凌驾于外部中断之上的)。常见的内核异常有以下几种:复位(reset),不可屏蔽中断(NMI),硬错误(Hardfault),其他的也可以在表上找到。 从第7个开始,后面所有的中断都是外部中断。外部中断是我们必须学习掌握的知识,包含线中断,定时器中断,IIC,SPI等所有的外设中断,可配置优先级。外部中断的优先级分为两种:抢占优先级和响应优先级。 什么是抢占优先级?
[单片机]
STM32的<font color='red'>中断</font>系统
51单片机——中断系统、外部中断定时器中断、串口通信C语言入门编程
中断系统: 当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。当几个中断源同时向 CPU请求中断,CPU总是先响应优先级别最高的中断请求。当CPU正在处理一个中断源请求的时候(执行相应的中断服务程序),发生了另外一个优先级比它还高的中断源请求。如果CPU能够暂停对原来中断源的服务程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断服务程序,这样的过程称为中断嵌套。STC89C5X 系列单片机提供了8个中断请求源,它们分别是:外部中断0(INT0)、外部中断1(INT1)、外部中断2(
[单片机]
<font color='red'>51单片机</font>——<font color='red'>中断</font>系统、外部<font color='red'>中断</font>、<font color='red'>定时器</font><font color='red'>中断</font>、串口通信C语言入门编程
STM32F103RB 实作笔记(七)- 外来中断试验
关于中断和 计时寄存器的有关理论, 有兴趣的朋友可以看我一年前写的笔记 :“STM32F072RB 实作笔记(五)- 计时器加上中断EXTI_IRQHandler(一)” 和 “(二)” 两篇笔记。 这一篇笔记就直接解析实验的程式内容 main.c 和前几篇一样,进入“实验5 外部中断实验” 的 USER 资料夹点开 MDK 的项目档案。执行编译。 以下是 main.c 的内容: #include key.h #include beep.h #include usart.h #include exti.h /************************************************/ in
[单片机]
STM32F103RB 实作笔记(七)- 外来<font color='red'>中断</font>试验
stm32 EXTI对应的中断函数
EXTI0_IRQChannel 表示的是外部中断线EXTI0对应的中断函数。 以STM32F103VB系列为例,100pin, 一般我们通常使用的IO对应外部中断线如下: PA0,PB0,PC0,PD0,PE0 对应的是EXTI0中断线; 以此类推 到PA15,PB15,PC15,PD15,PE15对应EXTI5中断线。 EXTI0对应的中断函数为EXTI0_IRQChannel; EXTI1对应的中断函数为EXTI1_IRQChannel; EXTI2对应的中断函数为EXTI2_IRQChannel; EXTI3对应的中断函数为EXTI3_IRQChannel; EXTI4对应的中断函数为EXTI4_IRQChannel; E
[单片机]
解读LPC210X之外部中断寄存器
LPC2101/02/03最多包含了三个外部中断输入作为可选择的管脚功能。管脚进行组合后,外部事件可以处理成三个独立的中断信号。外部中断输入能够可选择的用于将处理器从低功耗模式下唤醒。 此外,10个捕获输入没有可选择的将器件从低功耗模式唤醒功能,但也能够被用于外部中断。 Register description 有四个寄存器涉及外部中断 External Interrupt Flag register (EXTINT - 0xE01F C140) 外部中断标志寄存器 位 信号 描述 复位值 0 EINT0 对应管脚外部中断到来时,该标志位置位。写1清除该位,如果该中断处于电平触发模式,那么电
[单片机]
解读LPC210X之外部<font color='red'>中断</font>寄存器
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved