加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

51单片机 定时器T0方式1 控制流水灯

(2013-06-22 15:25:17)
标签:

it

51单片机

定时器

分类: 51系列

    定时器这家伙在哪里都会用到,实际工程开发中没有能离开定时器的。所以掌握定时器就尤为重要了,这里主要提到的是最基本的使用了--用于定时。

    LED原理图见《51单片机--流水灯演示》,定时器没有原理图,属于单片机内部资源。

    代码如下:

#include                        //头文件
#include
#define uint unsigned int                //宏定义
uint jishuNumber,aa;                     //定义jishuNumber为计数器计满次数(本程序20次为1S) aa代表流水号

void main()                              //主函数入口
{
  aa=0xfe;                                //初始化为点亮第一个LED灯
  P1=aa;                            
  //定时器T0方式1初始化(其它通用)
  TMOD=0x01;                             //①TMOD赋值,以确定T0/T1的工作方式
  TH0=(65536-46080)/256;                 //②计算初值,并将初始化值写入TH0/TL0
  TL0=(65536-46080)%6;
  EA=1;                                  //③开放相应中断
  ET0=1;                                 //④TR0/TR1置位,启动相应定时器/计数器
  TR0=1;
  while(1)
  {
    if(jishuNumber==20)                  //如果1S
    {
      jishuNumber=0;
   aa=_crol_(aa,1);                   //把aa左旋之后赋值给aa
   P1=aa;                             //流水灯点亮
 }
  }
}
void T0_time_no1() interrupt 1           //中断服务程序
{
  TH0=(65536-46080)/256;
  TL0=(65536-46080)%6;
  jishuNumber++;                         //计满一次加1
}


    以上,结束。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有