普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 9552|回复: 14

怎样用独立键盘控制二极管和蜂鸣器

 关闭 [复制链接]

6

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2017-1-21 16:19:15 | 显示全部楼层 |阅读模式
怎样用独立键盘控制二极管和蜂鸣器
#include<REG52.H>
#define   off   1
#define   on    0
typedef   unsigned   int   u16;
typedef   unsigned   char  u8;
sbit   heep=P1^5;
sbit   LED8=P2^7;
sbit   k1=P3^1;
sbit   k2=P3^2;
void   delay(u16   i)
{
while(i--);
}
void   keypros()
{
   if(k1==on)(k2==on)
   
          delay(1000);
      if(k1==on)(k2==on)
          {
             LED8=~LED8;heep=~heep;
          }
          while(!k1);while(!k2);
   }
void   main()
{
   while(1)
   {
      keypros();
   }
}


以上是我的实验程序,可是,总有错误的!
回复

使用道具 举报

20

主题

1344

帖子

8372

积分

论坛元老

Rank: 8Rank: 8

积分
8372
发表于 2017-1-21 16:50:47 | 显示全部楼层
书写程序极不规范。刚开始就这样不好。
语法也有问题:
if(k1==on)(k2==on)没有这样的写法,两个条件是想同时满足,还是部分满足?缺少逻辑运算
你的板子是什么样的?蜂鸣器是有源的还是无源的?有源的可以这样控制,无源的就不行。
你想达到什么目的?我的感觉是,按一个键控制灯,按一个键,控制蜂鸣器。但你写的是什么啊!按键是要有消抖部分的。
好好看看例子吧,本来是不难的。
回复 支持 反对

使用道具 举报

20

主题

1344

帖子

8372

积分

论坛元老

Rank: 8Rank: 8

积分
8372
发表于 2017-1-22 09:23:58 | 显示全部楼层
我贴了一个程序,独立键盘控制LED灯和蜂鸣器,可以去看看
回复 支持 反对

使用道具 举报

6

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2017-2-5 21:29:43 | 显示全部楼层
HC6800-ES-V2.0 发表于 2017-1-21 16:50
书写程序极不规范。刚开始就这样不好。
语法也有问题:
if(k1==on)(k2==on)没有这样的写法,两个条件是 ...

实在是不会写!新手!
回复 支持 反对

使用道具 举报

6

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2017-2-5 21:29:48 | 显示全部楼层
HC6800-ES-V2.0 发表于 2017-1-21 16:50
书写程序极不规范。刚开始就这样不好。
语法也有问题:
if(k1==on)(k2==on)没有这样的写法,两个条件是 ...

实在是不会写!新手!
回复 支持 反对

使用道具 举报

6

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2017-2-5 21:31:00 | 显示全部楼层
HC6800-ES-V2.0 发表于 2017-1-22 09:23
我贴了一个程序,独立键盘控制LED灯和蜂鸣器,可以去看看

给我看看,回复发过来吧!谢谢啊!
回复 支持 反对

使用道具 举报

6

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2017-2-5 21:35:42 | 显示全部楼层
HC6800-ES-V2.0 发表于 2017-1-22 09:23
我贴了一个程序,独立键盘控制LED灯和蜂鸣器,可以去看看

这个是我用第4个开关,控制的程序!编译检查时,提示没有任何错误的,是正确的!
#include<REG52.H>
#define   off   1
#define   on    0
typedef   unsigned   int   u16;
typedef   unsigned   char  u8;
sbit   heep=P1^5;
sbit   k4=P3^3;
void   delay(u16   i)
{
while(i--);
}

void   keypros()
{
   if(k4==on)
   {
      delay(1000);
          if(k4==on)
          {
             heep=~heep;
          }
          while(!k4);
   }
}
void   main()
{
   while(1)
   {
      keypros();
   }
}
回复 支持 反对

使用道具 举报

20

主题

1344

帖子

8372

积分

论坛元老

Rank: 8Rank: 8

积分
8372
发表于 2017-2-6 11:32:28 | 显示全部楼层
http://www.prechin.net/forum.php?mod=viewthread&tid=1290
就在论坛里的,自己看看吧
新手不要贪多,先将程序结构、语句熟悉后,再对每种硬件的控制搞清楚,再才是组合。
回复 支持 反对

使用道具 举报

6

主题

35

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2017-2-6 11:44:52 | 显示全部楼层
HC6800-ES-V2.0 发表于 2017-2-6 11:32
http://www.prechin.net/forum.php?mod=viewthread&tid=1290
就在论坛里的,自己看看吧
新手不要贪多,先 ...

大哥啊!我有贪多吗?
回复 支持 反对

使用道具 举报

20

主题

1344

帖子

8372

积分

论坛元老

Rank: 8Rank: 8

积分
8372
发表于 2017-2-6 11:52:19 | 显示全部楼层
18633200252 发表于 2017-2-6 11:44
大哥啊!我有贪多吗?

呵呵,我错了,向你道歉。
你单独让蜂鸣器响过吗?你的程序是想让蜂鸣器的控制为:按一下响,再按一下不响。是不是这样的?
有源蜂鸣器是可以的,无源蜂鸣器就不行了。
你先看看我的程序吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-20 20:27 , Processed in 0.099581 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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