需要一个用按键控制一个LED灯亮度的C语言程序 /*52系列单片机,晶振12MHz,P1.0输出100Hz方波(即周期10ms),方波由T0定时器产生P1.3接按键 K1,每按一次按键,方波占空比改变一次,依次为:1/10→2/10→…→9/10→1/10,如此循环*/include\"reg52.h\"/包含52系列头文件define uchar unsigned char/定义 无符号字符型define uint unsigned int/定义 无符号整型define TRUE 1/定义 逻辑真define FALSE 0/定义 逻辑假define th0 0xfc/100Hz(10ms),占空比分母10,则其最小时间单位应该为10ms/10=1ms,故定时器T0定时时间为 1msdefine tl0 0x18/1ms at 12HMz Foscdefine DutyDeno 10/定义 占空比分母 为:10sbit WaveOut=P1^0;定义 方波输出 接口sbit Key1=P1^3;定义 按键Key1 接口uchar DutyNume=1;定义 占空比分子 变量,并初始化为 1(即 占空比 为:1/10)void Timer0()interrupt 1/定时器T0 中断 函数{static uchar duty_time=0;定义静态变量,作为 占空比 输出时间的参考值(1ms)TL0=tl0;TH0=th0;重赋定时器初值,1msduty_time=duty_time%DutyDeno;该句等效于:duty_time+;duty_time%DutyDeno;if(duty_time)WaveOut=1;若计时时间小于 占空比分子,则输出应为 高电平else WaveOut=0;若计时时间大于 占空比分子,则输出。
按键控制led灯的程序 流程中的问题!includedefine uchar unsigned charsbit led=P1^0;sbit key=P0^0;void delay(uchar x){uchar a,b;for(a=x;a>;0;a-)for(b=110;b>;0;b-);}void main(){while(1){if(key=0)/例如:现在按钮被按下{delay(5);if(key=0)/延时消抖后按钮被按下状态,{while(key=0);此行删除,进行下行指令led=~led;led灯翻转}}}}
手机控制LED灯 现在国内有WIFI的,你直接跟他们买开发板,一般的都有一个公有云给你,然后你直接开发一个手机软件,就可以了,很简单的,像中电华大的WIFI模块,还有汉枫的,都有相应的。