找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3740|回复: 17
收起左侧

请手求指导

[复制链接]
ID:63752 发表于 2014-7-25 17:20 | 显示全部楼层 |阅读模式
STC15F2K60S2单片机,如何使用定时器使LED在500MS亮,500MS灭,求思路?谢谢~~
回复

使用道具 举报

ID:62828 发表于 2014-7-25 18:36 来自手机 | 显示全部楼层
用定时器中断
回复

使用道具 举报

ID:63752 发表于 2014-7-26 09:29 | 显示全部楼层
有范例吗?或者连接网址做参考?谢谢~~
回复

使用道具 举报

ID:19715 发表于 2014-7-26 10:33 | 显示全部楼层
#include "reg51.h"
sfr AUXR = 0x8e;                    
sbit LED = P0^0;
unsigned char i;
void tm0_isr() interrupt 1       
{
   if(++i>=25)
   {
    LED = ! LED;             //LED取反
    i=0;
   }
}
void main()
{
        AUXR &= 0x7F;                       
        TMOD &= 0xF0;                       
        TL0 = 0x00;                //设置定时初值  20毫秒,晶振11.0592MHz
        TH0 = 0xB8;                //设置定时初值  20毫秒,晶振11.0592MHz
        TF0 = 0;                       
        TR0 = 1;                       
        EA = 1;
        i=0;
    while (1);
}
回复

使用道具 举报

ID:19715 发表于 2014-7-26 10:34 | 显示全部楼层
没有测试,没有编译,自己试试看
回复

使用道具 举报

ID:63752 发表于 2014-7-26 17:23 | 显示全部楼层
我写了一程序,定时器0使LED亮灭。但我要加一个轻触开关来使LED在上电后,是不闪的,但按轻触开关,LED才开始闪,再按轻触开关,LED就不闪,这样控制LED的停闪和开始闪。下面是我的程序,但是不工作,按键没反应,请指导,谢谢~~
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit LED=P2^5;
sbit key=P0^0;
void Delay(uint x)
{
    uint a,b;
    for(a=x;a>0;a--)
       for(b=110;b>0;b--);
}   
void main()
{   
    unsigned char counter=0;
    LED=1;
        TMOD=0x00;   //设置定时器0为模式0
    TH0=0xB8;
    TL0=0x00;   //定时值初值
    TR0=1;      //打开定时器0
        while(1)
    {
       if(0==key)
           {
                {
             Delay(10);
                  if(0==key)
                   {
                     TR0=0;
                   }
               
                 }
               
                if(1==TF0)            //判断定时器0是否溢出
        {
            TF0=0;
            TH0=0xB8;        //一旦溢出后,重新赋值
            TL0=0x00;
            counter++;
            if(5==counter) //判断定时器0溢出是否达到5次
            {
                 counter=0;  //counter清0,重新计数
                 LED=!LED;   //LED取反操作,0-->1,1-->0
            }                 
        }
           }                       
    }

}
回复

使用道具 举报

ID:19715 发表于 2014-7-26 20:59 | 显示全部楼层
void main()
{   
    unsigned char counter=0;
    LED=0;
    TMOD=0x00;   //设置定时器0为模式0
    TH0=0xB8;
    TL0=0x00;   //定时值初值
    TR0=0;      //打开定时器0
    while(1)
     {
        if(key==0)
          {
              Delay(10);
              if(key==0)
              {
                 if(TR0){TR0=0;LED=0;}
                 else   {TR0=1;} while(!key);
              }               
          }
               
         if(TF0)            //判断定时器0是否溢出
         {
            TF0=0;
            TH0=0xB8;        //一旦溢出后,重新赋值
            TL0=0x00;
            counter++;
            if(counter>=15) //判断定时器0溢出是否达到15次
            {
              counter=0;  //counter清0,重新计数
              LED=!LED;   //LED取反操作,0-->1,1-->0
            }                 
         }                                 
    }
}
回复

使用道具 举报

ID:63752 发表于 2014-7-27 15:51 来自手机 | 显示全部楼层
if(TR0)和if(TF0)是什么意思啊?语法上有没错?
回复

使用道具 举报

ID:19715 发表于 2014-7-27 20:36 | 显示全部楼层
语法上有没错,自试试就知道
回复

使用道具 举报

ID:63752 发表于 2014-7-28 23:45 来自手机 | 显示全部楼层
今天还没时间试这么程序,明天会试试
回复

使用道具 举报

ID:63752 发表于 2014-7-30 13:46 | 显示全部楼层
明白 发表于 2014-7-27 20:36
语法上有没错,自试试就知道

上面程序编译是没问题,但是按键没反应。一上电,LED就闪动了,按按键没任何反应,请帮助,谢谢~~
回复

使用道具 举报

ID:64270 发表于 2014-7-30 16:33 | 显示全部楼层
呵呵呵呵呵呵呵呵
回复

使用道具 举报

ID:19715 发表于 2014-7-31 13:31 | 显示全部楼层
XUSHENG 发表于 2014-7-30 13:46
上面程序编译是没问题,但是按键没反应。一上电,LED就闪动了,按按键没任何反应,请帮助,谢谢~~

上电,按键没有按下之前,LED只是点亮,不闪动。
延时函数,和按键怎么定义,我我无从得知
回复

使用道具 举报

ID:63752 发表于 2014-7-31 16:52 | 显示全部楼层
明白 发表于 2014-7-31 13:31
上电,按键没有按下之前,LED只是点亮,不闪动。
延时函数,和按键怎么定义,我我无从得知

六楼,已经是我全部的程序了,还要哪一方面的信息呢?
回复

使用道具 举报

ID:63752 发表于 2014-8-1 17:36 | 显示全部楼层
明白 发表于 2014-7-31 13:31
上电,按键没有按下之前,LED只是点亮,不闪动。
延时函数,和按键怎么定义,我我无从得知

f(TR0)和if(TF0)是什么意思啊?真不解,看了一天,都不明白这两句是什么意思呢?哪位能帮帮忙呢?
回复

使用道具 举报

ID:2318 发表于 2014-8-1 21:16 | 显示全部楼层
TR0)和if(TF0)是什么意思,http://www.51hei.com/mcuteach/235.html
回复

使用道具 举报

ID:63752 发表于 2014-8-2 22:45 来自手机 | 显示全部楼层
if语句括号里面都是值,是真还是假,但是这一句,括号里面是代表什么呢?真不解?
回复

使用道具 举报

ID:63752 发表于 2014-8-4 16:16 | 显示全部楼层
XUSHENG 发表于 2014-8-2 22:45
if语句括号里面都是值,是真还是假,但是这一句,括号里面是代表什么呢?真不解?

没有人帮帮忙吗?很不解呢~~
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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