刚学单片机,第一个单片机程序,看到仿真成功还是非常激动的,功能很简单,就是高入低出,低入高出,有点类似非门,但搞了好长时间才弄出来。。。。。。详见注释

#include<reg52.h>
#define CRYSTAL_FREQ 12000000//晶振频率(Hz)
#define uchar unsigned char
#define uint unsigned int
#define INTERRUPT_PERIOD 16//时钟配置1/16s
sbit led=P1^0;//定义led为输出端
sbit key=P0^0;//key输入端
void delayms(uint xms)//延时作用的子函数
{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);
}
void Interrupt_Init()
{TMOD = 0x01;TH0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) / 256;TL0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) % 256;ET0 = 1;TR0 = 1;EA = 1;
}
void main()
{Interrupt_Init();//调用中断声明子函数 while(1);
}
void power()
{if(key==0)      //检测输入端是否为低电平 {delayms(10);  //延时再次检测输入端是否为低电平   if(key==0){led=1;       //如果再次确认输入端为低,控制输出高电平,灯亮 }elseled=0;   //否则输出低电平,灯灭}elseled=0;
}
void Timer0() interrupt 1
{TH0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) / 256;TL0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) % 256;power();                //中断里调用检测函数
}

后来又加了声控功能,需要的功能是,实现声控优先级比光控高以及灯亮之后的延时,详见注释

#include<reg52.h>
#define CRYSTAL_FREQ 12000000//晶振频率(Hz)
#define uchar unsigned char
#define uint unsigned int
#define INTERRUPT_PERIOD 16//时钟配置1/16s
sbit led=P1^0;//定义led为输出端
sbit  voicekey=P0^1;  //声控输入端
sbit key=P0^0;//光控输入端
uchar flag=0;
void delayms(uint xms)//延时作用的子函数
{uint i,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);
}
void Interrupt_Init()
{TMOD = 0x01;TH0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) / 256;TL0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) % 256;ET0 = 1;TR0 = 1;EA = 1;
}
void main()
{Interrupt_Init();      //调用中断声明子函数 while(1);
}
void power()
{if(key==0)                       //先检测光控输入端是否为低电平,因为光控输入端优先级比声控高      {delayms(10);             //延时再次检测光控输入端是否为低电平   if(key==0){                         if(voicekey==1)       //如果检测声控入端为高 ,输出高电平,灯亮, {led=1;delayms(10000);          //延时10秒 }elseled=0;                  //否则灯灭  }elseled=0;}elseled=0;
}
void Timer0() interrupt 1
{TH0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) / 256;TL0 = (65536 - CRYSTAL_FREQ / 12 / INTERRUPT_PERIOD) % 256;power();                      //中断里调用检测函数
}        

基于单片机实现声光控灯电路 C相关推荐

  1. 基于单片机的红外光控灯系统

    摘要 随着时代的飞逝,人们对更加先进.更加环保.更加节约资源.更加可持续地满足自身需要,高科技的运用正变成当今时代发展的动力,其对电子行业有着重要影响.近年来,智能化技术被广泛运用到各种家庭设备上,如 ...

  2. 51单片机开发实例 基于51单片机的光控灯

    一.系统设计 通过光敏电阻模块检测环境中的光强,系统会根据程序设定的阈值完成小灯的控制,环境较暗且低于控制阈值小灯就会亮起.光敏电阻模块可以根据不同的光照强度输出相应的模拟电压信号,模拟信号会通过AD ...

  3. 毕设-基于单片机的声光电子琴

    目录 毕设-基于单片机的声光电子琴 一.作品展示 1.1.作品实物图 1.2.焊接布局图 1.3.PCB原理图 1.4.PCB图 二.设计流程 2.1.系统基本设计思路 2.1.1. 各部分说明 2. ...

  4. 基于单片机的十字路口交通灯课程设计

    1.设计要求: 设计一个十字路口交通灯控制器.用单片机控制LED灯模拟指示.模拟东西方向的十字路口交通信号控制情况.东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s. 2.设计思路: 通 ...

  5. 基于单片机的光控路灯设计含程序和仿真图

    基于单片机的光控路灯设计含程序和仿真图 本设计是以光敏电阻对于外界光线强弱的感应能力为基础进行的路灯自动化控制系统设计. 当光线强度弱到一定程度的时候, 路灯就会自动灭掉: 当光线强到一定程度的时候, ...

  6. 电路分析:一个简单的光控灯电路

    一个简单的光控灯电路 利用了光敏电阻.电容 .三极管的特性实现 光敏电阻 :光照愈强,阻值就愈低,随着光照强度的升高,电阻值迅速降低,亮电阻值可小至1KΩ以下.光敏电阻对光线十分敏感,其在无光照时,呈 ...

  7. 基于单片机的智能交通灯系统的设计

    目 录 1绪论 1 2课题的设计要求和设计方案 2 2.1设计要求 2 2.1.1 题目概述 2 2.1.2 设计任务 2 2.1.3 设计要求 2 2.2设计方案 2 2.2.1供电方案 2 2.2 ...

  8. 基于单片机交通灯控制的c语言程序设计,基于单片机控制的交通灯毕业设计

    摘  要 随着现代社会对交通运输的日趋依赖,交通灯成为了人们生活中不可或缺的一部分.传统的交通灯虽然在一定程度上可以满足指挥路口交通的需要,但随着城市规模的不断扩大,原有的交通灯已经表现出明显的缺点: ...

  9. 单片机spwm c语言程序,基于单片机SPWM简易逆变电路及程序设计

    作为当今电子行业一种比较成熟的,目前使用较广泛的PWM法,SPWM法是以冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同的结论为理论基础,用脉冲宽度按正弦规律变化而和正弦波等效的PWM ...

最新文章

  1. AJAX 一些常用方法
  2. numpy 中的 random.rand() 函数
  3. 如何记忆英语的成语、俗语等
  4. SSDT-BI之七:循环任务(容器)
  5. linux-basic(10)vim程序编辑器
  6. 补码乘法实验原理_你真的理解补码吗?
  7. sap中有关地址及电话的相关表
  8. mysql gtidpurged_gtid环境下mysqldump对于set-gtid-purged的取值
  9. 科大讯飞18岁成人礼:这家极客公司未来不设限
  10. #### 联合索引存储结构 ####
  11. SHA 和 RSA 的区别
  12. 上手简单的专业麦克风,室内户外清晰录音,唯乐狗G3S体验
  13. 第一章 简介(待续)
  14. 树的高度和深度 | 结点的高度和深度
  15. Windows 技术篇-本地组策略编辑器添加模板方法,设置chrome浏览器本地组策略演示
  16. Oracle 11g 在audit_file_dest目录下产生大量的aud文件
  17. 数学建模番外篇7:优秀论文插图整理分析(2018年及之前)
  18. solr自动增量更新
  19. 智能家居照明系统设计
  20. 网络渗透测试——抓包QQ图片

热门文章

  1. 中小企业CRM评测-客户和联系人管理_XToolsCRM
  2. tomcat 的server.xm配置详解
  3. 石油不是古生物形成的,而是无机成因?
  4. Tayasui Sketches Pro for Mac专业绘图软件
  5. 杂谈现代高级编程语言
  6. Max31855测温的使用
  7. 也许你不知道,我们每个人都离不开云计算
  8. Spring2.5+Struts2+Hibernate3整合之三
  9. 【逆向】【Android微信】获取微信聊天记录
  10. Matlab 基础应用01 - Python 基础应用 n阶幻方【MagicSquare】和构造