找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1033|回复: 5
打印 上一主题 下一主题
收起左侧

请教一下 我这个单片机程序 JDQ为什么只亮不灭?

[复制链接]
跳转到指定楼层
楼主
ID:784703 发表于 2022-4-12 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用keil  仿真又可以   到开发板后又不行,按键按下后  JDQ亮      松开手后 就没有动作了 有没有人可以解惑一下  谢谢
单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
#define JINC(x) if(++x<= 0)--x
#define uchar unsigned        char
uchar flag1ms;
sbit K1=P2^0;
sbit JDQ=P2^6;
void out_jidianqi();
void keyPress();
void init();
void main ()
{   
        init();
        P0=0X00;
        JDQ=1;
   flag1ms=0;
        while (1)
        {                        
                if (flag1ms)
                {
                        flag1ms=0;
                        keyPress();
                        out_jidianqi();               
                }                                                        
        }        
}

void init()
{               
        TMOD=0x01;
        TH0=0xfc;
        TL0=0x18;
        EA=1;
        ET0=1;
        TR0=1;        
}

void timer0() interrupt 1
{
        TH0=0xfc;
        TL0=0x18;
        flag1ms=1;                                          
}                 

void keyPress()
{
        static unsigned int key_press_time = 0;//静态变量
        if(K1==0)
        {                  
                JINC(key_press_time);                                                                 
                if(20<=key_press_time && key_press_time < 3000)                        
                {
                  if(JDQ==1)
                  {                  
                  JDQ=0;                  
                  }                                                                                             
                key_press_time=0;
                }
                                
        }               
}

void out_jidianqi()
{
   static unsigned int DELAY = 0;
           if(JDQ==0)
        {                  
                JINC(DELAY);                                                                 
                if(DELAY==1000)                        
                {                                                      
                  JDQ=1;                  
                }                                                                                             
                DELAY=0;
        }
                                
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:123289 发表于 2022-4-12 13:19 | 只看该作者
学会自己走单步调程序,这个重要。
回复

使用道具 举报

板凳
ID:161164 发表于 2022-4-12 15:40 | 只看该作者
仿真可以, 到开发板不行就是硬件问题
请检查硬件
回复

使用道具 举报

地板
ID:121859 发表于 2022-4-12 18:37 | 只看该作者
总之比较乱,楞没看清楚这么编程的思路,JDQ在按键程序里和控制函数里都去控制?意义何在?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:784703 发表于 2022-4-14 08:35 | 只看该作者
zhxiufan 发表于 2022-4-12 18:37
总之比较乱,楞没看清楚这么编程的思路,JDQ在按键程序里和控制函数里都去控制?意义何在?

现在问题是解决了   我又定义了一个 bit   然后就可以了      按键程序控制   控制函数也控制 应该是我思路的问题
回复

使用道具 举报

6#
ID:784703 发表于 2022-4-14 08:36 | 只看该作者
yzwzfyz 发表于 2022-4-12 13:19
学会自己走单步调程序,这个重要。

当时keil    仿真是可以的
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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