单片机应用技术的项目教程的项目11 调速水泵.ppt

单片机应用技术的项目教程的项目11 调速水泵.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机应用技术的项目教程的项目11 调速水泵

产生方波 参考程序: /****************************************************************** * 文件名:ex3.C * 摘要:产生方波 ******************************************************************/ #include at89x52.h #include absacc. h //定义绝对地址访问 #define uchar unsigned char #define DAC0832 XBYTE[0x7FFF] /****************************************************************** * 函数名称:delay子函数 * 函数功能:延时 ******************************************************************/ void delay( ) //延时函数 { uchar i; for (i=0;i0xff;i++) {;} } /****************************************************************** * 函数名称:main() 主函数 * 函数功能:启动D/A转换,输出方波 ******************************************************************/ void main() { uchar i; while(1) { DAC0832=0; //输出低电平 delay( ); //延时 DAC0832=0xff; //输出高电平 delay( ); //延时 } } 【活动一】 硬件电路设计 调速水泵系统电路图 【活动二】软件设计 1、算法分析与流程图 本程序主要由主程序、D/A转换子程序、延时子函数等模块组成。 DAC0832输出模拟电压的流程图 主程序的工作是进行D/A转换并输出转换后的电压值。 如果要使DAC0832输出产生0~5V模拟电压,只要改变DAC0832的输出数字量,输出的电压就会发生变化。 2、烟雾检测程序分析 参考程序: #includereg52.h //包含单片机寄存器的头文件 sbit add=P1^2; //每按一次加速一次 sbit reduce=P1^3; //每按一次减速一次 /****************************************************************** * 函数名称:main() 主函数 * 函数功能:扫描按键,根据按键按下的键进行调试水泵控制电压的输出 ******************************************************************/ void main() { unsigned char i; i=0; P2=0; while(1) { if(add)==0) //判断是否加速键按下 { if(add==0) delay(2); //延时去抖,delay(xms)参见前面项目。 if(i=255) //判断是否超出DAC0832的最大输出数据字节 {i=250;} //如果超出则按最大值换算 i=i+5; //每次启动DAC0832转换值为5,相当于每按键一次输出电压增加0.1V P2=i; //将数据i的值送入到DAC0832中进行自动转换 } 参考程序: if(reduce==0) //判断是否减速键按下 { if(reduce ==0) delay(2); //延时去抖 if(i=0) //判断是否超出DAC0832的最小输出数据字节 {i=5;} //如果超出则按最小值换算 i=i-5; //每次启动DAC0832转换值为5, // 相当于每按键一次输出电压减少0.1V P2=i; //将数据i的值送入到DAC0832中进行自动转换 } } } 1.启动Keil uVision4软件,创建新工程:CH

您可能关注的文档

文档评论(0)

erterye + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档