大家帮我看看我的程序哪儿有问题

2019-07-15 22:33发布



是根据http://bbs.elecfans.com/jishu_184829_1_1.html这里面大神的程序弄的,我是新手,请大神看看。



#include<reg51.h>
#define LED  P0
#define LED_ON()    LED = 0x00  //所有LED亮
#define LED_OFF()    LED = 0xff  //所有LED熄灭
unsigned int g_u16LedtimeCount = 0 ;    //LED计数器
unsigned char g_u8LedState = 0 ;      //LED状态标志, 0表示亮,1表示熄灭
unsigned  char g_bSystemTime1Ms = 0 ;





void LedProcess(void)
{
    if(0 == g_u8LedState)  //如果LED的状态为亮,则点亮LED
    {
        LED_ON() ;
    }
    else                //否则熄灭LED
    {
        LED_OFF() ;
    }
}


void LedStateChange(void)
{
    if(g_bSystemTime1Ms)            //系统1MS时标到
  {
        g_bSystemTime1Ms = 0 ;
        g_u16LedTimeCount++ ;      //LED计数器加一
    if(g_u16LedTimeCount >= 500)  //计数达到500,即500MS到了,改变LED的状态。
    {
            g_u16LedTimeCount = 0 ;
            g_u8LedState  = ! g_u8LedState ;
      }
    }
        }

        void main(void)
{
    while(1)
    {
        LedProcess() ;
        LedStateChange() ;
    }  
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
nxt5656
1楼-- · 2019-07-16 20:08
a583488081 发表于 2013-9-11 13:12
你做的是什么、?数码管?

不是,是LED灯在闪。
a583488081
2楼-- · 2019-07-16 20:20
。。。。。程序不是你写的吧。。
ntmusic
3楼-- · 2019-07-16 20:53
缺少中断函数产生1ms时间
zhanrongzhen
4楼-- · 2019-07-16 22:07
 精彩回答 2  元偷偷看……
nxt5656
5楼-- · 2019-07-17 02:19
zhanrongzhen 发表于 2013-9-13 22:54
没有能使if(g_bSystemTime1Ms)为真的条件,

谢谢,十分感谢
heishe
6楼-- · 2019-07-17 02:42
学习学习一下

一周热门 更多>