既上一次发布博文,这一次发表的文章是对上一篇博文的补充改进。本着优化算法的原则,硬件简化后,软件便会变得复杂。硬件部分使用一个按键控制继电器的通断情况,按下按键,单片机判断当前继电器的通断情况。如果当前继电器是导通的,按下按键后,单片机按位取反,继电器下一个状态就会变关闭的状态;如果当前继电器是关闭的,按下按键后,单片机按位取反,继电器下一个状态就会变导通的状态。优化算法,C语言中,运算分成逻辑非运算和按位取反运算。经过逻辑非运算(运算符为"!")运算后,运算结果只有0或1;而经过按位取反运算(运算符为"~")后,结果取决于操作数,比如 8位无符号数0,按位取反后就变成FF  了。   应该用逻辑取反!, 不是0就是1.
#include <reg52.h>
sbit relay=P1^1;     //接继电器控制端void delay_10ms();void main()
{unsigned char flag = 0;while (1){if(0==P1^3) {//判断按键是否按下delay_10ms();if(0==P1^3) {relay = ~flag;//继电器开}}}
}/*
单片机12M晶振下,延迟10ms函数
*/
void delay_10ms()
{unsigned char i,j,k;for(i=5;i>0;i--){for(j=4;j>0;j--){for(k=248;j>0;j--);}}
}

Perotues图如下:

单片机C51使用一个按键控制继电器开关通断相关推荐

  1. 单片机C51使用两个按键控制继电器开关通断

    本教程实现了使用89C51控制按键开关,通过继电器间接控制380v交流电的通断,进而控制空调的电流的通断,实现节能减排的功效.使用1个继电器开关botton1控制继电器开的状态,1个继电器开关bott ...

  2. 独立按键控制继电器开关

    /*-----------------------------------------------   名称:独立按键控制继电器开关   论坛:www.doflye.net   编写:shifang ...

  3. 单片机C51(STC89C52RC)独立按键控制LED亮灭、状态、显示二进制、位移

    目录 1.独立按键控制LED灯亮灭 2.独立按键控制LED灯状态 3.独立按键控制LED灯显示二进制 4.独立按键控制LED灯位移 5.附录 1.独立按键控制LED灯亮灭 独立按键控制LED灯状态,在 ...

  4. 51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99,另一个按键实现清零

    51单片机:利用外部中断实现按键按一下数码管数字加1直到加到99,另一个按键实现清零 题目要求: 利用外部中断实现按键按一下数码管数字加1,实现00-99的循环,另一个按键实现清零,不管数码管数字是多 ...

  5. 实验二 基于FPGA的分频器的设计(基本任务:设计一个分频器,输入信号50MHz,输出信号频率分别为1KHz、500Hz及1Hz。拓展任务1:用按键或开关控制蜂鸣器的响与不响。拓展任务2:用按键或开)

    实验二 基于FPGA的分频器的设计 1. 实验目的: (1) 掌握QuartusⅡ软件的层次型设计方法: (2) 掌握元件封装及调用方法: (3) 熟悉FPGA实验平台,掌握引脚锁定及下载. 2. 实 ...

  6. c51按键控制灯亮汇编语言,用一个按键控制LED灯亮/暗的汇编程序

    今天又搞了一个小汇编,是用一个按键控制LED灯亮/暗的汇编程序.程序编好后,开始编译,发现又是通不过,找了好几遍也没找到原因,后来找枫雪大哥看了,才找出原因,原来编写程序时不能在中文环境下编写,不然就 ...

  7. 【Arduino】一个按键开关控制RGB音乐彩灯(蜂鸣器播放音乐+按键控制播放暂停+RGB彩灯随音乐节奏跳动)

    一.项目说明 这里我们需要使用到RGB LED.蜂鸣器.按键开关这个元件.为什么要叫RGB呢?是因为这个LED是由红(Red).绿(Green)和蓝(Blue)三种颜色组成.我们可以通过调整三个LED ...

  8. c语言一个按键控制1个灯的亮灭,51 单片机:按键控制灯亮灭和闪烁

    要求: 上电灯不亮,按一下按键灯亮,再按一下灯闪烁,再按一下灯闪烁更快, 再按一下灯灭.... 如此循环. 链接:http://zhidao.baidu.com/question/1639123949 ...

  9. 单片机编程中,如何用一个按键同时检测点按与长按

    1. 前言 事先说明,我这篇博客的目的是给入门学裸机编程的提供一个思路,不涉及操作系统任务阻塞之类的.在我们平常使用按键的编程过程中,一般说来,某一个按键实现的是单一的功能,比如简单的点亮一盏LED灯 ...

最新文章

  1. 十个最常用的JVM 配置参数
  2. 射频篇(二) 模拟、射频器件学习(2) ——功分器(Power divider)
  3. U-Boot顶层Makefile分析
  4. gwt的mvp模式_GWT MVP变得简单
  5. 各种URL生成方式的性能对比
  6. 电脑怎么分盘win10_电脑时间不对怎么办?Win10电脑时间总是不对的解决方法_电脑故障...
  7. 鸡兔同笼问题新解与Python实现
  8. ExtJs之combobox详解
  9. 129.求根到叶子节点数字之和
  10. 阿里Q3财报:阿里云连续第7个季度翻番
  11. dosbox下载并配置masm环境变量的方法
  12. jad环境变量配置_Jad_反编译Class文件
  13. 计算机科技英语文章及翻译,英语科技论文范文
  14. 【数据应用案例】Face2Face升级版——HeadOn
  15. java 人脸活体检测_人脸识别活体检测测试案例
  16. php源码网站安装教程,php源码安装教程(php源码网站搭建方法和过程)
  17. 学完了C++语法之后该学什么??(网络基础篇)
  18. 9.23 未来的规划 BEC
  19. 手机视频监控直播系统是如何实现的?需要满足哪些条件?
  20. 上偏续关系哈斯图_A={a,b,c}定义在P(A)上的包含关系是一个偏序关系,哈斯图怎么画?...

热门文章

  1. 热烈欢呼天宫一号与神八首次交会对接成功!
  2. 挑战5G测试 思博伦Vertex信道仿真器助力5G研发
  3. c语言教程在线阅读,《C语言基础教程》.doc
  4. 先照顾好自己,才能更好的去照顾别人
  5. java 和历_Java 儒略历和公历的换算 | 学步园
  6. 【畅购商城】微信支付模块之微信支付二维码
  7. 使用arduino D1 wifi模块(WeMos D1)连接阿里云物联网平台并成功实现APP点亮板载LED(五)---MQTT.fx模拟设备连接阿里云
  8. 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)
  9. 关于斐波那契数列那些事儿~
  10. ccs dat数据 matlab,详解CCS中的.dat文件