教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

基于单片机的温度控制直流电动机转速系统设计 - 图文(9)

来源:网络收集 时间:2025-09-22
导读: !!!学院毕业设计 if (Current_Temp_Display_Buffer[7] == ' ') Current_Temp_Display_Buffer[7] == '-';) else (Current_Temp_Display_Buffer[6] == '-'; } //在第一行显示标题 Set_LCD_POS(0x00); for(i = 0; i fo

!!!学院毕业设计

if (Current_Temp_Display_Buffer[7] == ' ') Current_Temp_Display_Buffer[7] == '-';) else

(Current_Temp_Display_Buffer[6] == '-'; }

//在第一行显示标题 Set_LCD_POS(0x00);

for(i = 0; i<16; i++) Write_LCD_Data( Temp_Disp_Title[i] ); //在第二行显示当前温度 Set_LCD_POS(0x40);

for(i = 0; i<16; i++) Write_LCD_Data (Current_Temp_Display_Buffer[i] ); //显示温度符号℃

Set_LCD_POS (0x4D); Write_LCD_Data (0x00); Set_LCD_POS (0x4E); Write_LCD_Data ('C'); }

5结论

本方案实现了单片机通过对温度的采集和比较对直流电机进行转速控制,以及利用软件模拟实现直流电机PWM调速的方法。以AT89C51单片机为控制核心,通过DS18B20进行温度采集,送入单片机,经过软件编程进行温度的比较和范围划定,然后通过程序控制由单片机产生不同的PWM(脉冲宽度调制)控制信号,送给电机驱动芯片L298的使能端口,通过L298驱动芯片来控制直流电机的启动、速度、方向的变化实现了对普通直流电机的转速调节,为进一步研究和优化直流电机控制方法提供了基础。达到了系统的设计要求:单片机对某个位置进行温度监控,当外部温度≥45℃时,电动机加速正转,当温度≥75℃时,电动机全速正转;当外部温度≤10℃时,电动机加速反转,当温度≤0℃时,电动机全速反转;当温度回到10℃~45℃之间时电动机逐渐停止转动。

第XLI页 51页

基于单片机的温度控制直流电动机转速系统设计

从这次的设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次设计中的最大收获。

参考文献

[1] 王之道,周靖,刘旭,一种基于AT89C2051单片机的直流电机调速装置, [J]机械工程与自动化2009(5)

[2] 茹占军,谢家兴,基于AT89S52单片机直流电机调速系统的设计, [J].软件导刊2010, 9(8)

[3] 赵鸿图,基于单片机AT89C51的直流电机PWM调速系统[J].电子技术 ,2008, 45(10)

[4] 周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2006.

[5] 宁成军,张江霞.基于Proteus和Keil接口的单片机外围硬件电路仿真[J].现代电子技术,2006,29(18):142-143,146.

[6] 陈良光,管聪慧.由数字式传感器 DS18B20 构成的多点测温系统[J].传感器世界, 1999, 9.

[7] 杜洋,DS18B20温度传感器应用解析,2007.3.16

[8] 马忠梅,张凯,等.单片机的C语言应用程序设计(第四版).北京航空航天大学出版社

第XLII页 共51页

!!!学院毕业设计

附录A系统总程序

//-------------------------------------------------------- // 名称:温度控制直流电动机转速

//--------------------------------------------------------------------- // 说明: ≥45℃度时加速正传/≤10℃时加速反转, // ≥75℃时全速正传/≤0℃时达到全速反转, // 温度回到10~45℃之间时电动机逐渐停止转动。

//--------------------------------------------------------------------- #include #include

#difine uchar ;unsigned char #difine uint ;unsigned int

#define delayNOP() {_nop_();_nop_();_nop_();_nop_();} sbit DQ =p3^3; sbit LCD_RS=p2^0; sbit LCD_RW=p2^1; sbit LCD_EN=p2^2; sbit MA =P1^0; sbit MB =p1^1; sbit PWM1 =p1^2;

uchar code temp_DISP_Title[] ={%uchar current_temp_Display_Buffer[]={\//温度字符

uchar code_temperature_char[8]

={0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00,0x00,};

// 温度小数位对照表

uchuar code df_Table[] ={0,1,1,2,2,3,3,4,4,5,6,6,7,8,8,9,9 }; uchar CurrenT = 0; //当前读取的温度整数部分

第XLIII页 51页

基于单片机的温度控制直流电动机转速系统设计

char Signed_Temp = 0; //有符号温度值 uchar Temp_Value[] = {0x00,0x00}; //从DS18B20读取温度值 uchar Back_Temp_Value[] = {0xFF,0xFF}; //温度数据备份 uchar Display_Digit = {0,0,0,0}; //待显示的各温度数位 bit DS18B20_IS_OK = 1; //传感器正常标志 uint tCount = 0;

//--------------------------------------------------------------------- //延时 1

//--------------------------------------------------------------------- void DelayXus(int x) {

uchar i;

while(x--) for (i=0;i<200;i++); }

//--------------------------------------------------------------------- //液晶控制函数

------------------------------------------------------------------

//uchar LCD_Busy_Check() reentrant //void Write_LCD_Command (uchar cmd) //void Write_LCD_Data (uchar data) //void LCD_Initialise () //void Set_LCD_POS (uchar pos) //void Write_NEW_LCD_Char ()

//--------------------------------------------------------------------- //--------------------------------------------------------------------- //延时2

//--------------------------------------------------------------------- void Delay(unit x) {

while (--x);

第XLIV页 共51页

!!!学院毕业设计

}

//--------------------------------------------------------------------- //初始化DS18B20

//--------------------------------------------------------------------- uchar Init_DS18B20() { uchar

DQ=1; Delay(8);DQ = 0;Delay(90);

DQ=1; Delay(8);status = DQ;Delay(100);DQ=1; return status; //初始化成功返回0 }

//--------------------------------------------------------------------- //读一字节

//--------------------------------------------------------------------- uchar ReadOneByte() {

uchar i,dat = 0; DQ = 1; _nop_(); for (i=0;i<8;i++) {

DQ=0; data>>=1;DQ=1; _nop_();_nop_(); if(DQ) dat1=0x80;Delay(30);DQ=1; }

return dat; }

//--------------------------------------------------------------------- //写一字节

//--------------------------------------------------------------------- void WriteOnebyte (uchar dat) {

第XLV页 51页

…… 此处隐藏:2087字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于单片机的温度控制直流电动机转速系统设计 - 图文(9).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/434473.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)