📄 pwm2.c
字号:
#include <reg52.h> //包括一个52标准内核的头文件
#define uchar unsigned char //定义一下方便使用
#define uint unsigned int
#define ulong unsigned long
sbit ENA=P1^0; /* L298的Enable A */
sbit IN1=P1^1; /* L298的Input 1 */
sbit IN2=P1^2; /* L298的Input 2 */
uchar scale=2;//用于保存占空比的输出"0"的时间份额
uchar tt; //中断次数tt
void delay(ulong j) /* 简易延时函数 */
{for(j;j>0;j--);}
void main(void) // 主程序
{
RCAP2H =0xF6; //赋T2的预置值,决定T2溢出时间
RCAP2L =0xF2;
T2CON=0X00;
ET2=1; //打开定时器2中断
EA=1; //打开总中断
TR2=1; //启动定时器
ENA=1;//小车驱动使能
IN1=0;
IN2=0;
delay(600000);
ENA=0;//延时一段时间后,小车驱动关闭
while(1); //程序等待循环
}
//1/1200秒定时器2中断
timer2() interrupt 5
{
TF2=0;
tt++;
if(tt==6) //每1/120秒整开始输出低电平
{
IN1=0;
tt=0;
}
if(scale==tt) //按照当前占空比切换输出高电平
IN1=1;
}//改变scale可改变低电平所占时间
//改变tt可改变方波频率
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -