51单片机C语言对流水灯编程,用定时中断做

51单片机C语言对流水灯编程,用定时中断做,第1张

#include<reg52.h>

#define uchar unsigned char 

uchar m=0,i=0   

void main()

{

 TMOD|=0x01    //定时器0工作方式为1

 TH0=(65536-50000)/256  //装初值  

 TL0=(65536-50000)%256

 EA=1   //开总中断山弯

 ET0=1   //开定时器中断

 TR0=1   //开启定时器

 while(1) //等待中断

}

void timer0() interrupt 1

{

 TH0=(65536-50000)/256

 TL0=(65536-50000)%256

 m++ 

 if(m==5) //12M晶振   定时5*50MS=250MS

 {

  m=0

  P1=~(0X01<<i) //P1接8个LED

  if(++i==8)

  i=0

 }

}

[补充]

延时函数是一种粗略计算延时时间的函数

是通过让单片机执行空指令,达到等待延时的目的。

经常被应用在对延时时间要姿颤求不太严格的场合。

而定时器中断,则是通过对晶振时钟进行计数

由于晶振的频率一般是很稳定的,所以晶振的脉冲频率基本稳定

从而通过对脉冲进行计数即可得到准确的延时目的。

中断延时函数和定时器中断延时没有明确的对应关系。

主要迹唯败是根据你的应用场合来确定使用哪种函数。

流水灯和扫描灯连在一起中断实现的方法如下:

1、配置中断,根据使用的开发板或芯片的具体文档,配置中断,一般情况下,需要选择一个中断类型、一个中断优先级以及一个中断回调函数。

2、初始化流水灯和扫描灯,初始化GPIO口,设置流水灯的引脚和扫描灯的引脚以及流水灯的方向。

3、在中断回调函数中循环执行流水灯和扫描灯,当中断触发时,进入中断处理程序,回调函数中搭旅循环执行流水灯和扫描灯的 *** 作。

4、如核启知橡凳用中断,在主代码中启用中断,使之能够在特定条件下触发。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/yw/12558755.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存