找回密码
 立即注册

QQ登录

只需一步,快速开始

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

灯为什不灭

  [复制链接]
跳转到指定楼层
楼主
ID:129726 发表于 2016-7-9 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define led P0
sbit  key=P1^0;
unsigned int  i=0,num=0;
void Delayms(unsigned int c);
void init();
void key_Scan();

       
         void key_Scan()
         {       
         if(!key)
         {       
            Delayms(1);
                   if(!key)
                   {
                  
                  
                           while(!key)
                        {
                          P0=0x01;
                          i++;
                         
                        }
                         }          
                         }
         
         
         
         }
         
         

                 void Delayms(unsigned int c)   
{
    unsigned char a, b;

       
   while(c--)
   {
                for (b=38;b>0;b--)
                {
                        for (a=130;a>0;a--);
                }

        }      
}

         void main()
         {       
         init();
         key=1;
         P0=0x00;
         while(1)

         {         
                        key_Scan();                        
                         
         }
                  
         }
         void  init()
         {
           TMOD=0x01;
           TH0=(65536-45872)/256;
       TL0=(65536-45872)%256;
       EA=1;
       ET0=1;
       TR0=1;
         
         }


         void T_time() interrupt 1
         {
                     
                     TH0=(65536-45872)/256;
            TL0=(65536-45872)%256;
                                 num++;
                if(i==1&&num==20)
                {
                                    
                   P0=0x00;}
                  
                
       
                       
                 
                 }
               
          


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

使用道具 举报

沙发
ID:94827 发表于 2016-7-9 19:27 | 只看该作者
keyscan有问题,if用法错误,应该是if(keys==0)这样的
回复

使用道具 举报

板凳
ID:129850 发表于 2016-7-9 23:25 | 只看该作者
我好像看到代码有错误
回复

使用道具 举报

地板
ID:129868 发表于 2016-7-10 09:14 | 只看该作者
语法有错
回复

使用道具 举报

5#
ID:105206 发表于 2016-7-11 09:19 | 只看该作者
语法错误,主函数与中断不对.
回复

使用道具 举报

6#
ID:130024 发表于 2016-7-11 14:59 | 只看该作者
中断有错
回复

使用道具 举报

7#
ID:84299 发表于 2016-7-14 21:59 | 只看该作者
请教他人之前还是摆好态度,把自己的代码摆整齐嘛,人家看着都头疼。
回复

使用道具 举报

8#
ID:122633 发表于 2016-7-14 22:15 | 只看该作者
大哥 你能把程序摆整齐点就好了
回复

使用道具 举报

9#
ID:130021 发表于 2016-7-15 15:21 | 只看该作者

 keyscan有问题,if用法错误,应该是if(keys==0)这样的
回复

使用道具 举报

10#
ID:124330 发表于 2016-7-15 21:14 来自手机 | 只看该作者
我发现了的主要有这几点
回复

使用道具 举报

11#
ID:124330 发表于 2016-7-15 21:25 来自手机 | 只看该作者
while(!key)应该放在i++花括号的后面,另外我看你的延时将近有40毫秒,稍微有点长哦
回复

使用道具 举报

12#
ID:111634 发表于 2016-7-15 21:28 | 只看该作者
电路没有,程序注释没有,按键是否带锁也没说明,虽可揣摩楼主意图,但很吃力。
回复

使用道具 举报

13#
ID:130744 发表于 2016-7-16 21:37 | 只看该作者
语法有错
回复

使用道具 举报

14#
ID:130050 发表于 2016-7-17 21:45 | 只看该作者

 1.keyscan有问题,if用法错误,应该是if(keys==0)
   2.i多余可以不用只用num  这样两个条件更复杂
回复

使用道具 举报

15#
ID:134182 发表于 2016-7-18 21:52 | 只看该作者
if(i==1&&num==20),这里有问题,运算优先级你没弄清楚,&&
回复

使用道具 举报

16#
ID:134182 发表于 2016-7-18 21:53 | 只看该作者
&&的优先级比==高,所以if(i==1&&num==20),应该改为if((i==1)&&(num==20))
回复

使用道具 举报

17#
ID:134192 发表于 2016-7-18 23:49 | 只看该作者
while(1)

         {         
                        key_Scan();                        
                        
         }
语法有错
回复

使用道具 举报

18#
ID:125378 发表于 2016-7-19 17:52 | 只看该作者
keyscan有问题,if用法错误,应该是if(keys==0)这样的
回复

使用道具 举报

19#
ID:134325 发表于 2016-7-20 09:26 | 只看该作者
语法有错
回复

使用道具 举报

20#
ID:134334 发表于 2016-7-20 10:12 | 只看该作者
代码错误
回复

使用道具 举报

21#
ID:134560 发表于 2016-7-22 14:33 | 只看该作者
关注一下
回复

使用道具 举报

22#
ID:134560 发表于 2016-7-22 14:50 | 只看该作者
学习学习
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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