您的位置:首页 > 教育 > 锐评 > 全球新冠肺炎疫情数据_沙坪坝网络营销公司_太原网站关键词排名_seo顾问服务

全球新冠肺炎疫情数据_沙坪坝网络营销公司_太原网站关键词排名_seo顾问服务

2025/5/14 0:52:28 来源:https://blog.csdn.net/m0_64937226/article/details/142765217  浏览:    关键词:全球新冠肺炎疫情数据_沙坪坝网络营销公司_太原网站关键词排名_seo顾问服务
全球新冠肺炎疫情数据_沙坪坝网络营销公司_太原网站关键词排名_seo顾问服务

1、PWM

(1)芯片一共有6个PWM通道(PWM0~PWM5)

(2)IRCH时钟IRCH 频率为 16MHz

(3)IRCL时钟(IRCL频率为100KHz)

(4)PFG时钟(PWM0的时钟固定为PFG)

(5)PWM1~5可以选择IRCH、IRCL和PFG时钟作为时钟源

(6)例程:
 

#define PWMxDIV 100    //分频比,根据时钟源可以算出频率#define PWMxDUT 50     //50除以100为占空比PWMxDIVH = PWMxDIV / 256PWMxDIVL = PWMxDIV % 256PWMxDUTH = PWMxDUT / 256PWMxDUTL = PWMxDUT % 256

PWMDIV和PWMDUT是两个16位的数值(0到65535)。为了将它们储存在8位寄存器里面,需要将它们分为高8位部分和低8位部分

高8位部分(高字节):这是通过除以256得到的。是由于256是2的8次方,除以256相当于向右移动8位。

低8位部分(低字节):这是通过对256取余数 (% 256) 得到的

例如:

  • PWMxDIV = 100:

    • 高字节 (PWMxDIVH): 100 / 256 = 0
    • 低字节 (PWMxDIVL): 100 % 256 = 100
  • PWMxDUT = 50:

    • 高字节 (PWMxDUTH): 50 / 256 = 0
    • 低字节 (PWMxDUTL): 50 % 256 = 50

这样,你就可以将16位的值(100和50)分成两个8位的值,分别存储在8位的寄存器中。这个操作使得处理较大的数值在硬件资源有限的微控制器上成为可能。

(7)P07C = 0x3C,强灌电流

2、GPIO

例如, P00 设置为推挽输出,程序如下:
P00F = 2;
P00 设置为开漏输出,程序如下:
P00F = (1<<5)|2;
P00 设置为开漏输出,并且打开上拉,程序如下:
P00F = (1<<7) (1<<5) 2;
P00 设置为输入功能,并且打开上拉,程序如下:
P00F = (1<<7) 1;

LED1输出高电平,LED输出低电平,LED3悬浮输入,则D5亮红灯,其他灯不亮

void LED1_light()
{P14F = 2;P13F = 2;P12F = ~((1<<7) | (1<<6)) | 1;P14 = 1;P13 = 0;P12 = 0;
}

要让灯光按顺序亮,需要加入定时器中断和灯光扫描函数,这样能在快速不断的打开关闭IO口的时候,实现好几个灯同时点亮的效果。

void fun_led_scan()
{static unsigned char ledIndex = 0;ledIndex ++;if(ledIndex >= 6){ledIndex = 0;}switch(ledIndex){case 0:if(bLED1)LED1_light();break;case 1:if(bLED2)LED2_light();break;case 2:if(bLED3)LED3_light();break;case 3:if(bLED4)LED4_light();break;case 4:if(bLED5)LED5_light();break;case 5:if(bLED6)LED6_light();break;default:LEDall_OFF();ledIndex = 0;break;}
}unsigned char bTimeBase_Onetime;void TIMER0_ISR (void) interrupt 1
{bTimeBase_Onetime = 1;TH0 = TH_VAL;TL0 = TL_VAL;fun_led_scan();
}

3、中断

定时器0有4种模式,用户手册里面的东西太繁琐

定时器1有4种模式,用户手册里面的东西太繁琐

直接例程里面的代码拿来用就是。1ms中断(模式0),10ms中断(模式1),100us中断(模式2)

4、adc

例程直接拿来用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com