⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm2.c

📁 基于AT89s51智能车程序
💻 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 + -