直流电机的pwm控制程序1.docVIP

  • 9
  • 0
  • 约4.6千字
  • 约 9页
  • 2017-12-22 发布于河南
  • 举报
直流电机的pwm控制程序1

直流电机的pwm控制程序1 ///************************************************************************* ///直流电机的pwm控制程序 ///功能:直流电机的速度控制,速度测试,速度显示。 ///************************************************************************* #includereg51.h ///包含头文件 #includeabsacc.h #define gw DBYTE[0X40] ///定义显示缓冲区 个位 #define sw DBYTE[0X41] //////////////////十位 #define bw DBYTE[0X42] //////////////////百位 #define qw DBYTE[0X43] //////////////////千位 #define unint unsigned int ///自定义变量 #define uchar unsigned char sbit in1=P3^0; ///控制位定义 sbit in2=P3^1; sbit ena=P3^7; uchar code zm[12]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x73,0x71};///在程序存储区定义字型码表 uchar code wm[4]={0xfe,0xfd,0xfb,0xf7};///在程序存储区定义字位控制码表 uchar a=8; ///占空比控制字 uchar n=1; ///速度增减量一 uchar m=2; ///速度增减量二 unint speedbuf=0; ///速度值 uchar zc=0; unint ys=0; key(); ///子函数声明 display(); control(); delays(); speedcan(); ///************************************************************************************************************* ///主函数 ///************************************************************************************************************* main() { gw=sw=bw=qw=0; ///显示初始化 P0=0xc0; P2=0; in1=0; ///电机控制的初始化 in2=0; ena=1; TMOD=0X15; ///定时器1为定时模式,使用方式2;定时器0为计数模式,使用方式2 TH1=0Xfa; ///装定时器初值 TL1=0X24; TH0=0; ///装计数器初值 TL0=0; EA=1; ///开总中断 ET0=1; ///允许定时器0中断 ET1=1; ///允许定时器1中断 TR0=1; ///开计数器 TR1=1; ///开定时器 while(1) ///无限循环 { key(); ///调用按键扫描程序 control(); ///调用电机控制程序 display(); ///调用显示程序 speedcan(); ///调用速度处理程序 } } ///************************************************************************* ///中断处理程序,实现输出方波占空比控制 ///************************************************************************* timer_1() interrupt 3 using 1 ///定时器1中断,使用寄存器组1 { TR1=0; ///停止定时 zc++; ///中断次数加1 ys++; control(); speedcan(); TH1=0Xfa; ///重装定时初值 TL1=0X24; TR1=1; } ///*************************************

文档评论(0)

1亿VIP精品文档

相关文档