【Proteus】LED呼吸灯 &直流电机调速

1.LED呼吸灯

复制代码
#include <REGX51.H>
sbit LED=P2^0;
void delay(unsigned int t)
{
	while(t--);
}
void main()
{
    unsigned char time,i;
	while(1)
	{
	for(time=0;time<100;time++)
	{
	 for(i=0;i<20;i++)
	 {
	 	LED=0;
	    delay(time);
	    LED=1;
	    delay(100-time);
	 }
	}
	for(time=100;time>0;time--)
	{
	 for(i=0;i<20;i++)
	 {
	 	LED=0;
	    delay(time);
	    LED=1;
	    delay(100-time);
	 }
	}
	}
}

2.直流电机调速

按键数码管分别显示 1234,同时LED灯也会以呼吸灯形式闪烁越来越亮

复制代码
#include <REGX51.H>
sbit LED=P2^7;
unsigned char keynumber=0;
unsigned char s[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D};
unsigned char count=0,num=0;
unsigned char counter,compare,speed;
void inittimer()
{
	TMOD &= 0xF0;
	TMOD |= 0x01;
	TL0 = 0x9C;		//设置定时初值	100us,如果计数器计数器100,周期为10ms
	TH0 = 0xFF;		//设置定时初值
	TF0=0;
	ET0=1;//开启定时器0的中断
	EA=1;//开启总中断
	TR0=1;//启动定时器0

}
void delay(unsigned int n)//1ms  
{
  unsigned char a,b,c,m;
	for(m=n;m>0;m--)
    for(c=1;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}
unsigned char key()
{
	if(P1_0==0)
	{
		delay(20);
		while(P1_0==0);
		delay(20);
		keynumber=1;
	}
	if(P1_1==0)
	{
		delay(10);
		while(P1_1==0);
		delay(10);
		keynumber=2;
	}
	if(P1_2==0)
	{
		delay(10);
		while(P1_2==0);
		delay(10);
		keynumber=3;
	}
	if(P1_3==0)
	{
		delay(20);
		while(P1_3==0);
		delay(20);
		keynumber=4;
	}
	return keynumber;
}

void main()
{
	inittimer();
	while(1)
	{
	   keynumber=key();
	   if(keynumber==1)
	   {
	   		speed++;
			speed%=4;
			if(speed==0){compare=0;}
			if(speed==1){compare=10;}
			if(speed==2){compare=50;}
			if(speed==3){compare=100;}
	   }
	   P2=s[keynumber];
	}
}
void timer_isr() interrupt 1	//0表示外部中断0;1表示定时器中断0;2表示外部中断1;3表示定时器中断1;4表示串口中断
{
	TL0 = 0x9C;		//设置定时初值
	TH0 = 0xFF;		//设置定时初值
	counter++;
	counter%=100;//ifcounter>=100,counter=0;
	if(counter<compare)
	{
		LED=0;
	}
	else
	{
		LED=1;
	}
}
相关推荐
LCG元1 小时前
STM32 多总线传感器采集系统:I2C + SPI + ADC + UART 协同实战(FreeRTOS 调度)
stm32·单片机·嵌入式硬件
hongmai6668881 小时前
ESP32-C5-WROOM-1-N16R8:双频Wi-Fi 6与多协议融合,重新定义物联网连接新标准
笔记·嵌入式硬件·物联网·智能路由器·risc-v
m0_547486662 小时前
《Arm Cortex-M4嵌入式系统-STM32G4系列微控制器的原理架构与开发》全套PPT课件
arm开发·stm32·嵌入式硬件
崇山峻岭之间2 小时前
小华芯片HC32F460之TMR6输出互补PWM
单片机·嵌入式硬件
Freak嵌入式16 小时前
MCU 低功耗模式解析:时钟门控、电源门控、深度休眠
人工智能·python·单片机·嵌入式硬件·开源·依赖倒置原则·micropython
国科安芯17 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
躺不平的理查德17 小时前
STM32时钟树(Clock Tree)
stm32·单片机·嵌入式硬件
Javenwww19 小时前
STM32中DMA的使用——串口数据的DMA传输
单片机
qq_4017004119 小时前
经典的电压基准源电路
单片机·嵌入式硬件
茯苓gao20 小时前
嵌入式开发笔记:电机参数辨识与自学习完全指南——从电气参数到机械特性的深度解析
笔记·嵌入式硬件·学习