智能台灯
来源:互联网 发布:mac英文全角 编辑:程序博客网 时间:2024/04/29 23:21
这个是比较简单了。。
也没什么好介绍的,直接上源码
ADC0832.H
/***************************************************** 功能:将模拟信号转换成数字信号***************************************************/sbit ADC0832_CS=P1^3;sbit ADC0832_CLK=P1^1;sbit ADC0832_DIO=P1^2; unsigned int A_D(){ unsigned char i,dat; ADC0832_CS=1; //一个转换周期开始 ADC0832_CLK=0; //为第一个脉冲作准备 ADC0832_CS=0; //CS置0,片选有效 ADC0832_DIO=1; //DIO置1,规定的起始信号 ADC0832_CLK=1; //第一个脉冲 ADC0832_CLK=0; //第一个脉冲的下降沿,此前DIO必须是高电平 ADC0832_DIO=1; //DIO置1, 通道选择信号 ADC0832_CLK=1; //第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0 ADC0832_CLK=0; //第二个脉冲下降沿 ADC0832_DIO=0; //DI置0,选择通道0 ADC0832_CLK=1; //第三个脉冲 ADC0832_CLK=0; //第三个脉冲下降沿 ADC0832_DIO=1; //第三个脉冲下沉之后,输入端DIO失去作用,应置1 ADC0832_CLK=1; //第四个脉冲 for(i=0;i<8;i++) //高位在前 { ADC0832_CLK=1; //第四个脉冲 ADC0832_CLK=0; dat<<=1; //将下面储存的低位数据向右移dat|=(unsigned char)ADC0832_DIO; //将输出数据DIO通过或运算储存在dat最低位 } ADC0832_CS=1; //片选无效 return dat; //将读书的数据返回 }
main.c
#include<reg52.h>#include "ADC0832.H"#define uchar unsigned char#define uint unsigned intuchar PWM_ON=10;uchar timer_num=0;bit Auto_flag=0;bit Start_flag=0;sbit LED=P2^0;sbit KEY1=P3^4;sbit KEY2=P3^5;sbit KEY3=P3^6;sbit KEY4=P3^7;/************************************ 延时子程序延时时间(xms*1)ms*************************************/void delayms(uint xms){uint x,y;for(x=xms;x>0;x--)for(y=110;y>0;y--);}void keyscan(){if(!KEY1){delayms(8);if(!KEY1){Start_flag=~Start_flag;while(!KEY1);}}else{if(!KEY2){delayms(8);if(!KEY2){Auto_flag=~Auto_flag;while(!KEY2);}}}}void Control(){static uint AD_DAT=0;float ad_buf=0.0;static uchar i=0;if(Start_flag){TR0=1;if(Auto_flag==0){if(i<10) {i++;AD_DAT+=A_D();
}else
{i=0;ad_buf=(float)(AD_DAT/10);ad_buf=ad_buf/25.5;PWM_ON=(uchar)(ad_buf);AD_DAT=0;}}else{if(!KEY3){delayms(8);if(!KEY3){if(PWM_ON<10)PWM_ON++;while(!KEY3);}}else{if(!KEY4){delayms(8);if(!KEY4){if(PWM_ON>0)PWM_ON--;while(!KEY4);}}}}}else{TR0=0;LED=1;}}void main(){P2=0XFF;P1=0XFF;TMOD=0X01;TH0=(65536-1000)/256;TL0=(65536-1000)%256;ET0=1;TR0=1;EA=1;while(1){Control();keyscan();}}void timer0() interrupt 1{TH0=(65536-1000)/256;TL0=(65536-1000)%256;timer_num++;if(timer_num>10){timer_num=0;LED=0;}else if(timer_num>PWM_ON){LED=1;}}
- 智能台灯
- 工程设计的智能台灯
- Android 手机控制台灯开关详细教程-智能台灯
- 台灯
- 飞利浦联合小米共同推出智能台灯
- 兄弟,需要台灯么
- “兄弟,需要台灯么?”
- android控制台灯
- DIY 蓝牙台灯 安卓手机控制台灯
- 房子租出去了&换台灯
- “兄弟,需要台灯么?”“你大爷!”“姑娘,需要台灯么?”“不需要!”“姑娘,需要男朋友么?”
- 《浮在台灯下的java》--关于程序员的职业规划
- 金属壳台灯触摸调光电路的实现
- 书房台灯风水的相关知识 照亮你的事业
- 当AR遇到智能家居 看看微软HoloLens如何控制台灯?
- 台灯的品质,决定了你的阅读质量
- 智能
- 树莓派实现智能家居——支持中文的语音识别台灯
- 文件夹复制和删除整个文件夹
- sourceinsight 添加文件类型
- 混合模式程序集是针对“v1.1.4322”版的运行时生成的,在没有配置其他信息,无法在 4.0 运行时中加载该程序
- JQuery之.post函数
- hadoop部署、启动全套过程
- 智能台灯
- CopyOnWriteArrayList源码解读
- 济州岛旅游~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~··
- 配置core文件
- Thread.sleep 和 webdriver.manage().timeouts().implicitlyWait的差别
- Vector
- c#中获取URL重写前的原始地址
- hrbust 1851加油站(贪心+广搜)
- List