温控直流电机调速软件解决方案.docxVIP

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

基于STC89C52单片机的温控电机调速软件解决方案一、编译调试方法经过一学期的工作硬件部分已经调试完成,这学期我们对设计的软件部分进行了一系列调试,通过调试我们发现软件部分才是系统的核心,算法的好坏决定了系统的优劣。在软件的编写过程中,我们用到的编程语言是C语言,C语言的对语法结构的要求并不是很严格,写法多种多样,但逻辑性和构架结构很强,其指针运算和位运算为底层硬件操作提供了强大的支持。函数调用为模块化编程提供了支持,我们就是用模块化编程的这一思想在对每个模块的程序进行设计。这里还必须说一下我们做软件开发用到的几个工具软件,Keil Uvision2,MS Visual C++6.0以及仿真软件Proteus 7 Professional.其中MS Visual C++6.0只是用来编辑程序,因为在以前大一上学C语言的时候对MS Visual C++6.0的使用已经相当熟悉,其自动换行的功能非常方便,编辑出来的程序格式非常整齐标准。Keil Uvision2不用说,强大的单片机软件编译及仿真工具,在上面建立新的工程,选定相对应的芯片,加入相应的程序,生成.HEX文件,下载到单片机中。本来Keil Uvision2具有一点的仿真功能,但也只是数值仿真,所以我们用了更加强大的Proteus 7 Professional来进行仿真,按照硬件的原理图画出仿真图样,在将Keil Uvision2编译好的.HEX文件载入到仿真图当中的单片机中,运行仿真即可。通常在做程序调试的时候我们是将Keil Uvision2和Proteus 7 Professional配合使用。调试程序模块,我们总的来说是按照下列方式调试:调控定时器输出PWM波等待中断开启中断二、程序算法流程图D=10D=7D=3D=020=T3010=T20T10T=30开始温度范围判断读取温度并显示定时器初始化显示初始化三、模块化程序注解程序主要分三个模块,显示模块,测温模块,主函数,中断函数。①、显示模块显示模块分为显示初始化函数,显示延迟函数,写寄存器函数,读寄存器函数,初始化显示函数,显示字符串函数;/*-------------------LCD1602初始化设置-------------------*/void lcd_init(){delay1ms(15);/*延时15微秒*/wr_com(0x38);delay1ms(5);/*38H设置显示模式*/wr_com(0x08);delay1ms(5); /*08H关闭显示*/ wr_com(0x01);delay1ms(5); /*01H显示清屏*/ wr_com(0x06);delay1ms(5);/*06H显示光标移动设置*/ wr_com(0x0c);delay1ms(5);/*0cH显示开机光标设置*/}/*---------------写数据LCD1602寄存器函数----------------*/(RS=H;RW=L;EN=↓)void wr_dat(unsigned char dat) /*dat为入口数据参数*/{ delay1ms(1);/*延时1毫秒*/RS=1;RW=0;EN=0;P0=dat;/*数据写入P0口*/delay1ms(1);EN=1;delay1ms(1);EN=0;}/*---------------写指令LCD1602寄存器函数----------------*/(RS=L;RW=L;EN=↓)void wr_com(unsigned char com)/*com为入口指令参数*/{ delay1ms(1); /*延时1毫秒*/RS=0;RW=0;EN=0;P0=com; /*指令写入P0口*/delay1ms(1);EN=1;delay1ms(1);EN=0;}/*---------------LCD1602显示字符串函数----------------*/void display(unsigned char *p)/* p待显示字符串首指针*/{while(*p!=\0)/*当字符串没结束的时候执行*/{wr_dat(*p);/*写单字符*/p++;/*指针每次移动1*/delay1ms(1);}}/*-----------------LCD1602初始化显示设置-----------------*/void init_play(){ lcd_init();/*显示初始化*/wr_com(0x80);/*在屏幕上80H的位置*/display(str1);/*写字符串str1*/wr_com(0xc0); /*在屏幕上C0H的位置*/display(str2); /*写字符串str2*/}②DS18B20模块DS18B20模块分为:测温延时函数(单位微秒),ROM读函

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档