PWM调速控制程序改.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PWM调速控制程序改

#include #define uchar unsigned char // char字符类型的长度是1B(B代表字节,8位二进制数),通常用于定义处理字符数据的变量或常量。分无符号字符类型和有符号字符类型signed char(此为默认值) unsigned char无符号字符类型:它用字节中所有的位表示数值,可以表示的数值范围是0-255。它常用来处理ASCII字符或用于处理小于或等于255的整型数。 #define uint unsigned int // int整型数,长度为2B,用于存放一个双字节数据,分有符号整型数signed int(此为默认值)和无符号整型数unsigned int。 unsigned int无符号整型数:它表示的数值范围是0-65535。 #define ulong unsigned long // long长整型数的长度为4B,用于存放一个4字节数据,分有符号型(此为默认值)和无符号型unsigned long。无符号长整型数unsigned long表示的数值范围是0-座机电话号码95。 sbit zheng P1^0; //电机正转控制端 sbit fan P1^1; //电机反转控制端 sbit start P2^3; //启动键 sbit up P2^2; //加速键 sbit down P2^1; //减速键 sbit stop P2^0; //减速键 sbit fmq P3^7; //蜂鸣器 bit gao 1; //高速标志位 bit zhong 0; //中速标志位 bit di 0; //低速标志位 //定义变量 uchar time,gaosu 98,zhongsu 88,disu 58; //定时0中断处理程序 中断函数使用1工作寄存器.using组是指定函数中选用工作寄存器组的关键字,M是0-3范围的常数,若不用该选项,编译器会自动选择默认工作寄存器组 0寄存器 。 补充:片内数据存储器RAM用于存放中间运算结果、数据暂存和缓冲、标志位等。它包括通用数据存储器块(有工作寄存器区:又称通用寄存器,它是供用户编程时使用,用于临时存储8位数据信息。它被分成4个寄存器组(0,1,2,3))、位寻址区(在这个区内,有16个单元共128位,每一位都赋予1个位地址,位地址范围是00H-7FH。有了位地址CPU就可对其进行位寻址,对特定位进行处理、内容传送或位条件转移,给编程带来很大方便)和数据缓冲区(即用户RAM区,也就是程序执行时的数据临时存储区。)和特殊功能寄存器(SFR)块(它专用于控制、管理单片机内部算术逻辑部件、并行I/O口、定时/计数器、中断系统等功能模块的工作,用户在编程时可以置数设定,但不能移作他用。 void timer0 interrupt 1 using 1 TH0 0xff;// 0xff 255 TL0 0x00; time++; if di //判断是不是低速模式 //多分支语句(当有多个分支选择时,可采用if-else-if语句结构,其一般形式为: If(条件表达式1)语句组1;else if(条件表达式2)语句组2;else if(条件表达式3)语句组3;…else if(条件表达式n)语句组n;else 语句组m; 其语义是:依次判断条件表达式的值,当出现某个条件表达式的值为真时,则执行其对应的语句组。然后跳到整个if语句之外继续执行程序。如果所有的表达式的值均为假,则执行语句组m。然后继续执行后续程序。 if time disu //如果time变量小于低速值(58),则zheng 1(电机处于正转状态) zheng 1; else if disu time 100 zheng 0; //如果time变量大于低速值(58)小于100,则zheng 0(电机停止正转) else time 0;//如果time大于100时,则time变量复位( 0) else if zhong //判断是不是中速模式 if time zhongsu // 如果time变量小于中速值(88),则zheng 1(电机处于正转状态) zheng 1; else if zhongsu time 100 zheng 0; //如果time变量大于中速值(88)小于100,则zheng 0(电机停止正转) else time 0; //如果time大于100时,则time变量复位( 0) else //判断是不是高速模式 if time gaosu zheng 1; else if gaosu time 100 zheng 0;time 0; else time 0; //主程序 main bit keyup 0; bit keydown

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档