Chinaunix首页 | 论坛 | 博客
  • 博客访问: 948376
  • 博文数量: 175
  • 博客积分: 2788
  • 博客等级: 少校
  • 技术积分: 2060
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-25 12:25
个人简介

知之者不如好之,好之者不如乐之

文章分类

全部博文(175)

文章存档

2016年(1)

2015年(20)

2014年(8)

2013年(68)

2012年(16)

2011年(35)

2010年(1)

2008年(26)

分类: 嵌入式

2013-11-13 20:49:04

原文:

方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的
#include
sbit p1_0=P1^0;
int i;             //全局变量

void timing(void)  //晶振为3.6864M
{
   TMOD|=0x01;    //定时器T0,工作方式1
   TH0=0xC3;
   TL0=0xC7;     //这两个寄存器存的是计数器的计数开始的值,这两个值累加至溢出后正好是50ms
   ET0=1;        //使T0中断可以溢出
   EA=1;         //开启总中断
   TF0=0;        //溢出位清零
   TR0=1;        //开启T0
}
/********定时中断函数*********/
void time0_int () interrupt 1 //定时中断函数
{
   TH0=0xC3;
   TL0=0xC7;
   i++;
}

main()
{
  i=0;
  timing();
  while(;)
  {
    if(i==20)
    {
       p1_0=~p1_0;   //p1.0口状态翻转
        i=0;
     }
  }
阅读(1152) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~