
包括输出、中间继电器、还有数据寄存器
为什么要初始化,因为PLC很多数据都有断电保存功能。还有一些数据每次通电后都是随机的,我们需要对这部分数据进行清零 *** 作。
在初始化子程序中:
1、将16#C3(或16#CB)送入SMW67(SMW77)。
2、向SMW68(SMW78)写入所希望的周期值。
3、向SMW7(SMW80)写入所希望的脉宽值。
4、执行PLS *** 作。
5、子程序返回。
扩展资料:PWM输出实验步骤
1、使能定时器3和相关IO口时钟。
使能定时器3时钟:RCC_APB1PeriphClockCmd()
使能GPIOB时钟:RCC_APB2PeriphClockCmd()
2、初始化IO口为复用功能输出。函数:GPIO_Init()
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP
3、要把PB5用作定时器的PWM输出引脚,所以要重映射配置,
所以需要开启AFIO时钟。同时设置重映射。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE)
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE)
4、初始化定时器:ARR,PSC等:TIM_TimeBaseInit()
5、初始化输出比较参数:TIM_OC2Init()
6、使能预装载寄存器: TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable)
7、使能定时器。TIM_Cmd()
8、不断改变比较值CCRx,达到不同的占空比效果:TIM_SetCompare2()
#include<reg51.h>#define uchar unsigned char
sfr AUXR=0x8e
sfr S2CON=0x9a
sfr S2BUF=0x9b
sfr BRT=0x9c
sfr IE2=0xaf
#define S2RI=0x01
#define S2TI=0x02
uartinit()
{
S2CON=0x50
BRT=-12000000/32/9600
AUXR=0x14
IE2=0x01
EA=1
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)