10-PWM脉宽调制信号
#include "reg52.h"
sbit L1 = P0^0;
sbit S7 = P3^0;
void delay(unsigned char t)
{
while(t--);
}
void HC573()
{
P2 = (P2 & 0x1f) | 0x80;
}
//=============PWM===========
unsigned char count = 0;
unsigned char pwm_duty = 0;
void InitTimer0()
{
TMOD = 0x01;
TH0 = (65535 - 100)/256;
TL0 = (65535 - 100)%256;
ET0 = 1;
EA = 1;
}
void Timer0() interrupt 1
{
TH0 = (65535 - 100)/256;
TL0 = (65535 - 100)%256;
count ++;
if(count == pwm_duty)
{
L1 = 1;
}
else if(count == 100)
{
L1 = 0;
count = 0;
}
}
//===========按键相关函数============
unsigned char state = 0;
void scan()
{
if(S7 == 0)
{
delay(100);
if(S7 == 0)
{
switch(state)
{
case 0:
L1 = 0;
TR0 = 1;
pwm_duty = 10;
state = 1;
break;
case 1:
L1 = 0;
TR0 = 1;
pwm_duty = 50;
state = 2;
break;
case 2:
L1 = 0;
TR0 = 1;
pwm_duty = 90;
state = 3;
break;
case 3:
L1 = 1;
TR0 = 0;
state = 0;
break;
}
while(S7 == 0);
}
}
}
void main()
{
HC573();
InitTimer0();
L1 = 1;
while(1)
{
scan();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)