




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于(jy)51单片机温度自保护的直流电机控制系统一、实验(shyn)目的1了解直流电机控制的基本(jbn)方法。2通过本实验课程,进一步掌握单片机的基本原理、以及扩展微机系统多种接口的基本方法,具有基于微机和单片机系统进行软硬件综合设计和实现的能力。 3了解微机系统的基本软硬件结构,熟悉和掌握单片机系统串行口、并行口、定时器/计数器、中断和LCD液晶显示接口等一些基本芯片的使用方法,掌握基于89C51系列单片机指令系统的汇编语言程序设计或C语言程序设计和调试方法。 二、实验原理和内容本系统使用到的硬件模块有:LCD12864M液晶、简单I/O、DS18B20温度测控、蜂鸣器、直流电机、PW
2、M电压功放器、LED指示灯等。8051单片机是标准的40引脚双列直插式集成电路芯片,P0.0P0.7 P0口8位双向口线(在引脚的3932号端子)。 P1.0P1.7 P1口8位双向口线(在引脚的18号端子)。P2.0P2.7 P2口8位双向口线(在引脚的2128号端子)。P3.0P3.7 P3口8位双向口线(在引脚的1017号端子)。 本实验通过利用定时器T0,控制IO口输出高电平和低电平的时间,产生PWM方波来控制直流电机转速。通过DS18B20温度测控读取当前温度,如果在电机运转过程中,温度超过警报温度,则电机停止旋转。下面简要的介绍下本系统的各个模块:DS18B20是DALLAS生产的
3、一线制串行接口数字式温度计。它的温度测量范围是-55C125C,-10C85C内误差为正负0.5C;912位转换精度,转换时间100ms750ms,通常为500ms。本系统利用DS18B20对电机温度进行实时的模拟检测采集。LCD12864M是将液晶显示器件、连接件、集成电路、背光源结构装配在一起的组件。它的分辨率为12864,可显示图形或4行共32个1616点阵的汉字,并且内置8192个1616点阵的汉字库、128个字符、64256点阵的显示RAM。12864M与单片机之间使用串行接口方式(PSB=0),RS(CS)为串行的片选信号,R/W(SID)为串行数据口,E(CLK)为串行同步时钟。
4、串行数据传送一帧分三个字节:串行控制指令、数据的高4位和数据的低4位。PWM是通过定时器T0,控制IO口输出(shch)高电平的时间TH和低电平的时间TL,其占空比为TH/(TH+TL)。LED指示灯链接P2口,当P2位口输出低电平时,指示灯电亮,用以指示速度档。当温度超过警报温度时,P2反复(fnf)输出高电平和低电平,指示灯闪烁报警。蜂鸣器接P17口,当温度超过警报(jngbo)温度时,P17输出低电平,蜂鸣器警报。三、实验设备和软件平台硬件:实验箱(一台)、示波器(一台)、单片机仿真器(一台)、连接线(若干)软件:星研集成环境软件四、实验各模块连接结构1、系统的总体框架图:80C51LC
5、D显示温度DS18B20简单I/O拨码开关LED灯蜂鸣器PWM功放器直流电机2、实验(shyn)连线:LCD液晶(yjng): CSP10 SIDP11 SCLKP12 PSBP13拨码开关(kigun):P0LED灯: P2蜂鸣器: P17PWM: P16温度DS18B20: P35五、实验注意事项及总结在本系统的调试完善过程中,发现了不少的问题,主要有:1、在调试时,要把P2调为I/O模式。2、晶振要设置为12MHZ。3、不要带电操作实验箱。4、不能存太多全局变量,会使51单片机内部RAM不够,导致地址溢出,程序出错。5、各种芯片初始化要十分注意,特别是温度DS18B20的初始化过程中不能
6、有中断出现,而步进电机是需要定时中断来定时驱动的,很难让它们不互相影响,这也是在实验中为什么有时会出现温度很大或为零的原因。最好的解决方法就是不使用中断。六、附录实验程序/ 头文件#include#include#include#include /*接线说明*/* 液 晶: CSP10 SIDP11 SCLKP12 PSBP13 调速档拨码开关: P0 指示灯: P2 蜂鸣器: P17*/ 宏定义#define uchar unsigned char#define uint unsigned int/ 函数(hnsh)声明void LCDString(unsigned char *pStr);
7、void W_1byte(unsigned char RW, unsigned char RS, unsigned char W_data) ;void Alarm(void);/ 警报(jngbo)温度大小定义#define TEMPERATURE_ALARM 21.0/ 液晶(yjng)接口 sbit CS = P10;sbit SID = P11;sbit SCLK = P12; sbit PSB = P13;/ 温度/TOUT接T1,T1口即为P3.5sbit DQ=P35;unsigned int T; /温度测量 float radio; /占空比unsigned char tim
8、eH=0 x3c,timeL=0 xb0;unsigned int flag0; /PWM标志位unsigned int flag1; /温度警报标志,1for超过/ 蜂鸣器sbit Beeper = P17;/ 直流电机CTRL接功放E2的OUT(OUT1),功放E2的IN(IN1)接P1.6sbit Dianji = P16;/ 液晶显示器显示的内容code unsigned char lcd_data80= Motor Control;code unsigned char lcd_data88=ALM 温度: 21.0;/ 存储测量温度值unsigned char Temp_Value=
9、0 x00,0 x00; / 延时 void delay(unsigned char i)while(i-); / 温度测量模块/ 初始化unsigned char Init_DS18B20() unsigned char status;DQ = 1; delay(8); DQ = 0; delay(90); DQ = 1;delay(8); status = DQ;delay(100);DQ = 1; return status;/ 读字节(z ji)unsigned char ReadOneByte() unsigned char i,dat = 0;DQ = 1;_nop_();for(
10、i = 0;i = 1; DQ = 1;_nop_();_nop_();if(DQ) dat |= 0 x80;delay(30);DQ = 1; return dat; / 写字节(z ji)void WriteOneByte(unsigned char dat) unsigned char i;for(i = 0;i = 1; / 读取温度(wnd)值void Read_Temperature() if(Init_DS18B20() != 1); WriteOneByte(0 xcc);WriteOneByte(0 x44); Init_DS18B20(); delay(100);Writ
11、eOneByte(0 xcc);WriteOneByte(0 xbe);Temp_Value0 = ReadOneByte();Temp_Value1 = ReadOneByte(); / 温度值显示及警报操作void Display_Temperature() bit flag;uchar DisplayBuf20;uchar NotAlarmBuf20;uchar lsb,msb;uint temp,t1;float t2;msb = Temp_Value1; / Sign byte + lsbitlsb = Temp_Value0; / Temp data plus lsbif(msb
12、& 0 xF0) 0) /判断(pndun)是否为负温度flag = 1;elseflag = 0;if(flag) /如果(rgu)为负温度取反加1temp = (uint)msb 8) | lsb;temp = temp + 1;msb = temp / 256;lsb = temp % 256;t1 = msb 4); / t1为温度值的整数(zhngsh)部分t2 = (lsb & 0 x0F) * 0.0625 + t1;T=t1;/ 液晶显示当前温度值sprintf(DisplayBuf, 电机温度: %2.1f0, t2);W_1byte(0,0,0 x88); LCDStrin
13、g(DisplayBuf);/ 判断温度是否超过警报值if(t2 = TEMPERATURE_ALARM)Alarm(); / 警报函数flag1=1;else flag1=0;/ 温度正常情况操作,液晶显示,电机转动,蜂鸣器关闭sprintf(NotAlarmBuf,设定占空比:%2.0f%,radio);W_1byte(0,0,0 x98);LCDString(NotAlarmBuf);Beeper=1;/ LCD液晶显示/函数作用:负责向SID串行写入8个bit位 void Write_8bits(unsigned int W_bits) unsigned int i; unsigned
14、 int Temp_data;for(i = 0; i 8; i+) Temp_data = W_bits;Temp_data = i;if(Temp_data & 0 x80) = 0) /bit7 is zero SID = 0;_nop_(); SCLK = 1;_nop_();_nop_();SCLK = 0;_nop_();SID = 0; else /bit7 is one SID = 1; _nop_(); SCLK = 1; _nop_(); _nop_(); SCLK = 0; _nop_(); SID = 0; /函数作用(zuyng):写一个字节的数据到12864液晶(y
15、jng),包括指令和数据 /说 明:RW=1,从液晶(yjng)读数据到MCU;RW=0,写一个数据到液晶; / (一般RW都设为0,即只向液晶写数据,不读数据) / RS=1,写入的是数据;RS=0,写入的是指令; / 一般模式:RW=0,RS=1;写数据 / RW=0,RS=0;写指令void W_1byte(unsigned char RW, unsigned char RS, unsigned char W_data) unsigned int H_data,L_data,S_ID = 0 xf8; /11111RWRS0 if(RW = 0) S_ID &= 0 x04; else
16、/if(RW=1) S_ID |= 0X04; if(RS = 0) S_ID &= 0 x02;else /if(RS=1) S_ID |= 0X02; H_data = W_data; H_data &= 0 xf0; /屏蔽低4位的数据 L_data = W_data; /xxxx0000格式(g shi)L_data &= 0 x0f; /屏蔽(pngb)高4位的数据(shj) L_data = 4; /xxxx0000格式 CS = 1; Write_8bits(S_ID); /发送S_ID Write_8bits(H_data); /发送H_data Write_8bits(L_d
17、ata); /发送L_data CS = 0; / 向液晶屏写入字符串void LCDString(unsigned char *pStr)for(; *pStr != 0; pStr+)W_1byte(0,1, *pStr); / LCD初始化void LCD_init(void) unsigned char cmd; cmd=0 x30; /功能设置 8位数据,基本指令 W_1byte(0,0,cmd); delay(2); cmd=0 x0C; /显示状态 ON,游标OFF,反白OFF W_1byte(0,0,cmd); /写指令 delay(2); cmd=0 x01; /清除显示 W
18、_1byte(0,0,cmd); /写指令 delay(2); cmd=0 x02; /地址归位W_1byte(0,0,cmd); /写指令 delay(2); cmd=0 x80; /设置DDRAM地址 W_1byte(0,0,cmd); /写指令 delay(2); /延时 / LCD初始化void init_LCD() /SP = 0X60;/* 指针地址 CS = 0; SCLK = 0; SID = 0; PSB=0; LCD_init(); / 将一、二行字符串写入LCDvoid LCD_mess_display() unsigned char i; W_1byte(0,0,0 x
19、80); _nop_();for(i=0;lcd_data80i!=0;i+) W_1byte(0,1,lcd_data80i); W_1byte(0,0,0 x90); for(i=0;lcd_data88i!=0;i+) W_1byte(0,1,lcd_data88i); / LCD显示(xinsh)void DisplayLcd()LCD_mess_display(); delay(100); / LCD显示(xinsh)温度 void ShowTemperature() Read_Temperature(); Display_Temperature(); / 温度(wnd)警报void
20、 Alarm(void)/uchar i;uchar AlarmBuf20;/LED_GREEN = 1; /LED_RED = 0;sprintf(AlarmBuf,智能调速:%2.0f%,radio); W_1byte(0,0,0 x98); LCDString(AlarmBuf);Beeper=0;/*T0定时,T1计数*void Time_Init()TMOD=0 x51; /工作方式2EA=1; /使能ET0=1; /开发中断,可到中断程序执行/ET1=1;TL0=timeH;TH0=timeL; /时间=(216-TH*28-TL)*1usTR0=1; /开TO定时flag0=1;
21、 /TH1=0 xff;TL1=0 xff; /1ms中断/TR1=1;/ 主函数main() unsigned int i;/LED_GREEN = 0; Time_Init(); /定时器计数器初始化init_LCD(); /*输出(shch)作品信息*/*sprintf(biaoti1,厦门大学(sh mn d xu)自动化系); W_1byte(0,0,0 x80); LCDString(biaoti1);sprintf(biaoti2,陈福feng); W_1byte(0,0,0 x90); LCDString(biaoti2);sprintf(biaoti3,23220131153
22、339); W_1byte(0,0,0 x88); LCDString(biaoti3);sprintf(biaoti4,2013-12-30); W_1byte(0,0,0 x98); LCDString(biaoti4);delay(0 xef);delay(0 xef);*/*DisplayLcd(); /显示(xinsh)前两行while(1) if(flag1=0) /没有警报 switch(P0) case 0 x01:timeH=0 xe0;timeL=0 xe0;radio=12.5;break; case 0 x03:timeH=0 xc0;timeL=0 xc0;radio
23、=25.0;break; case 0 x07:timeH=0 xa0;timeL=0 xa0;radio=37.5;break; case 0 x0f:timeH=0 x80;timeL=0 x80;radio=50.0;break; case 0 x1f:timeH=0 x60;timeL=0 x60;radio=62.5;break; case 0 x3f:timeH=0 x40;timeL=0 x40;radio=75.0;break; case 0 x7f:timeH=0 x20;timeL=0 x20;radio=87.5;break; case 0 xff:timeH=0 x00;timeL=0 x00;radio=100;break; default: timeH=0 xff;timeL=0 xff;radio=00;break; P2=P0; /P2指示灯,表示档数 else i=T-TEMPERATURE_ALARM; /智能降速 switch(i) case 1:timeH=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国碳化硅烧嘴套行业投资前景及策略咨询研究报告
- 兴义民族师范学院《社会统计与spss应用》2023-2024学年第二学期期末试卷
- 广东沧江中学2024届中考数学全真模拟试卷含解析
- 2025项目部管理人员安全培训考试试题(真题汇编)
- 25年公司、项目部、各个班组三级安全培训考试试题含答案(B卷)
- 2025公司厂级员工安全培训考试试题含答案【新】
- 2025年厂里职工安全培训考试试题含完整答案【夺冠系列】
- 2025岗位安全培训考试试题综合卷
- 2025公司级员工安全培训考试试题黄金题型
- 2025年中国自动变速器测试台行业市场规模及未来投资方向研究报告
- 体育中考改革背景下退役运动员转型学校教练员助力学校体育发展
- 农药代销协议书模板
- 《电力中长期交易合同示范文本(2022年修订版)》
- 小学班会 世界知识产权日知识产权宣传周主题班会 课件
- 3.2平均数的计算(1)(教学课件)五年级数学上册 沪教版
- 2024年版《输变电工程标准工艺应用图册》
- 福建省高速公路集团有限公司招聘笔试真题2023
- DL∕T 5210.2-2018 电力建设施工质量验收规程 第2部分:锅炉机组
- 《四川省危险化学品从业单位安全生产标准化评审标准(试行)》
- 省级双减获奖大单元作业设计八年级道德与法治下册第2单元 (二)
- 剪映专业版:PC端短视频制作(全彩慕课版)课件 第9章 短视频制作进阶案例实训
评论
0/150
提交评论