智能控制实验指导书(自编)

上传人:1777****777 文档编号:39667572 上传时间:2021-11-11 格式:DOC 页数:49 大小:2.16MB
收藏 版权申诉 举报 下载
智能控制实验指导书(自编)_第1页
第1页 / 共49页
智能控制实验指导书(自编)_第2页
第2页 / 共49页
智能控制实验指导书(自编)_第3页
第3页 / 共49页
资源描述:

《智能控制实验指导书(自编)》由会员分享,可在线阅读,更多相关《智能控制实验指导书(自编)(49页珍藏版)》请在装配图网上搜索。

1、智能控制技术实验指导书文哲雄 编华南师范大学增城学院2013年 9 月 1 前 言本实验课程是与智能控制技术课程的理论教学内容相配套而开设的。智能控制技术是一门实践性很强的专业课程,它对培养学生实践动手能力,提高综合素质和开发创新思维有着重要的作用。智能控制技术实验在工程和教学中都有非常重要的作用,具有自身的特点和很强的实践性。智能控制方法和手段很多,本实验指导书介绍的是最常见的智能控制技术,最常用系统设计方法和系统调试技术。主要培养学生具有智能控制系统设计和调试技术、以及应用能力;开拓学生思路,培养学生综合应用知识的能力和创新能力。培养学生严肃认真,求实求真的科学作风,为后续毕业设计和今后从

2、事电子技术方面的工作打下基础。在实验项目中有一部分是设计性实验,教师给出实验项目的要求,学生自己选择实验方案和实验电路,自己完成实验步骤的内容。要求学生写出系统设计方案,硬件电路设计、软件程序设计和现场调试。写出实验心得体会。实验成绩根据实际操作和实验报告综合评分标。 由于编者水平有限,难免在本实验指导书中出现错误或不妥之处,望读者指正。目 录实验一 认识 HL-1 实验箱4实验二 D/A转换实验6实验三 A/D转换实验9实验四 矩阵键盘接口设计实验12实验五 LCD显示器接口实验20实验六 报警控制接口实验 25实验七 单片机温度控制实验 29实验八 单片机转速控制实验 38 实验九 计算机

3、温度PID控制实验 43 实验十 单片机计算机转速测量/控制实验46 实验一 认知 HL-1 实验箱一、实验目的1、了解HL-1实验箱的结构,功能和操作方法;2、掌握程序编辑、编译、程序代码下载的操作方法。二、实验原理1、kiel软件的安装、程序编辑、程序编译的操作步骤。2、STC-ISP下载软件的使用、接口驱动程序的安装。3、HL-1实验箱电路原理。三、实验仪器材料 1、PC计算机2、HL-1实验箱四、实验内容1、说明kiel软件的安装、程序编辑、程序编译的操作步骤。 2、说明STC-ISP下载软件接口驱动程序的安装方法,STC-ISP下载程序代码的操作步骤。3、说明HL-1实验电路图工作原

4、理。五、思考题1、TC-ISP下载软件驱动程序安装中出现了什么问题?如何解决的?2、如何设置TC-ISP的参数(操作界面)才能正确下载程序代码?实验二 D/A转换实验一、实验目的1、了解芯片DAC0832和PCF8591的工作原理;2、掌握PCF8591的硬件电路和程序设计方法;二、实验原理 PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行IC总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个IC总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输

5、入输出的地址、控制和数据信号都是通过双线双向IC总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。PCF8591的最大转化速率由IC总线的最大速率决定。AIN0AIN3:模拟信号输入端。 A0A3:引脚地址端。 VDD、VSS:电源端。 (2.56V) SDA、SCL:I2C 总线的数据线、 时钟线。 OSC:外部时钟输入端,内部时钟输出端。 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 AGND:模拟信号地。 AOUT:D/A 转换输出端。 VREF:基准电源端。三、实验仪器材料 1、PC计算机2、单片机实验

6、板四、实验内容1、模拟输出通道电路连接,本实验设备内部已经连接到LED,并且可以改变LED的亮度。2、画出单片机模拟输出通道的电路图。3、分析主程序,并画出流程图。4、程序调试。用示波器观察输出波形,并画出波形图。5、修改程序,改变输出波形的形状,画出修改后的波形图。/*- 主程序-*/void main() unsigned char num; /DA数模输出变量 unsigned char ADtemp; /定义中间变量 InitLcd(); mDelay(20); Init_Timer1(); cmg(); /数码管锁存 while(1) DAC(num); /DA输出,可以用LED模拟

7、电压变化 num+; /累加,到256后溢出变为0,往复循环。显示在LED 上亮度逐渐变化 mDelay(20); /延时用于清晰看出变化 if(ADFlag) /定时采集输入模拟量 ADFlag=0; ADtemp=ReadADC(0);TempData0=(ReadADC(0)/50;/处理0通道电压显示 TempData1=(ReadADC(0)%50)/10; ADtemp=ReadADC(1);TempData2=(ReadADC(1)/50;/处理1通道电压显示 此通道暂时屏蔽,可以自行添加 TempData3=(ReadADC(1)%50)/10; ADtemp=ReadADC(

8、2);TempData4=(ReadADC(2)/50;/处理1通道电压显示 此通道暂时屏蔽,可以自行添加 TempData5=(ReadADC(2)%50)/10; ADtemp=ReadADC(3);TempData6=(ReadADC(3)/50;/处理1通道电压显示 此通道暂时屏蔽,可以自行添加 TempData7=(ReadADC(4)%50)/10; disp(); 五、实验注意事项1、实验报告要画出有关电路图。2、要画出主程序流程图。3、要画出有关波形图,并进行分析。六、思考题1、请分析你修改的程序,为什么会出现这样的波形图?2、说明下载程序代码的操作步骤。实验三 A/D转换实验

9、一、实验目的1、了解芯片ADC0809和PCF8591的工作原理;2、掌握PCF8591的硬件电路和程序设计方法;二、实验原理 PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行IC总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个IC总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向IC总线以串行的方式进行传输。PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。

10、PCF8591的最大转化速率由IC总线的最大速率决定。AIN0AIN3:模拟信号输入端。 A0A3:引脚地址端。 VDD、VSS:电源端。 (2.56V) SDA、SCL:I2C 总线的数据线、 时钟线。 OSC:外部时钟输入端,内部时钟输出端。 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 AGND:模拟信号地。 AOUT:D/A 转换输出端。 VREF:基准电源端。三、实验仪器材料 1、PC计算机2、单片机实验板四、实验内容1、模拟输入通道电路连接,本实验设备内部已经连接到两路模拟通道AIN0和AIN1,并将A/D转换的结果在显示器上显示。2、画出LCD显示器接口电路图。3

11、、分析A/D转换主程序,并画出流程图。4、程序调试。调整输入电压的大小,观察显示器电压数字的变化,。5、修改程序,改变输出数据的表示形式。 /*- 主程序(用LCD显示器显示)-*/void main() unsigned char num; /DA数模输出变量 unsigned char ADtemp; /定义中间变量 InitLcd(); mDelay(20); Init_Timer1(); cmg(); /数码管锁存 while(1) DAC(num); /DA输出,可以用LED模拟电压变化 num+; /累加,到256后溢出变为0,往复循环。显示在LED上亮度逐渐变化 mDelay(2

12、0); /延时用于清晰看出变化 if(ADFlag) /定时采集输入模拟量 ADFlag=0; ADtemp=ReadADC(0);TempData0=(ReadADC(0)/50;/处理0通道电压显示 TempData1=(ReadADC(0)%50)/10; ADtemp=ReadADC(1);TempData2=(ReadADC(1)/50;/处理1通道电压显示 此通道暂时屏蔽,可以自行添加 TempData3=(ReadADC(1)%50)/10; ADtemp=ReadADC(2);TempData4=(ReadADC(2)/50;/处理1通道电压显示 此通道暂时屏蔽,可以自行添加

13、TempData5=(ReadADC(2)%50)/10; ADtemp=ReadADC(3);TempData6=(ReadADC(3)/50;/处理1通道电压显示 此通道暂时屏蔽,可以自行添加 TempData7=(ReadADC(4)%50)/10; disp(); 五、实验注意事项1、实验报告要画出有关电路图。2、画出主程序流程图。3、说明调整输入电压后显示电压数字与输入电压大小的变化关系,并进行分析。六、思考题1、请分析你修改的程序,显示数据有何变化?实验四 矩阵键盘接口设计实验一、实验目的1、了解键盘设计的方法;2、掌握单键盘和矩阵键盘硬件和软件设计方法;二、实验原理1、本实验电路

14、原理图:2、单键识别当每按一次独立键盘的S2 键,与P1 口相连的八个发光二极管中点亮的一个往下移动一位。注意:关于按键去抖动的解释,我们在手动按键的时候,由于机械抖动或是其它一些非人为的因素很有可能会造成误识别,一般手动按下一次键然后接着释放,按键两片金属膜接触的时间大约为50ms 左右,在按下瞬间到稳定的时间为5-10ms,在松开的瞬间到稳定的时间也为5-10ms,如果我们再首次检测到键被按下后延时10ms 左右再去检测,这时如果是干扰信号将不会被检测到,如果确实是有键被按下,则可确认,以上为按键识别去抖动的原理。3、矩阵键盘检测当依次按下4*4 矩阵键盘上从第1 到第20 个键,同时在六

15、位数码管上依次显示0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。说明:本实验板上数码管为共阴极。共阴极数码管显示原理:一位数码管内一共有8 个发光二极管,对共阴极来说其8 个发光二极管的阴极在数码管内部全部接在一起,也就是“共阴”说法的来源,阳极是独立的。一般的数码管每一段亮至少需要10 个毫安的电流,而单片机的IO 口送不出如此大的电流,所以我们需要加数码管的驱动电路,可以用上拉电阻的方法,也可以使用专门的驱动芯片,本实验板使用的74HC573,其输出电流较大,足够点亮数码管。本实验板上的六位数码管中每个的相同段号(段a,b,c,d,e,f,g,h)全部是接在一起的,其中每

16、一个位(阴极)是独立的,采用动态显示的方法。三、实验仪器材料 1、PC计算机2、HL-1实验箱3、程序下载线四、实验步骤1、分别画出单键盘和矩阵键盘与单片机的接口电路,说明矩阵键盘的工作原理。2、画出矩阵键盘参考程序的流程图。4、下载程序代码,运行程序。 5、修改程序,使其改变矩阵键盘的某些功能,说明程序运行的结果。矩阵键盘参考程序/4*4键盘检测程序,按下键后相应的代码显示在数码管上#includesbit beep=P23;sbit dula=P26;sbit wela=P27; unsigned char i=100;unsigned char j,k,temp,key;void del

17、ay(unsigned char i) for(j=i;j0;j-) for(k=125;k0;k-);unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;display(unsigned char num) P0=tablenum; / P0=0xff; dula=1; dula=0; P0=0xc0; wela=1; wela=0;void main() dula=0; wela=0; while(1) P3=0xfe; temp=

18、P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xee: key=0; break; case 0xde: key=1; break; case 0xbe: key=2; break; case 0x7e: key=3; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; display(key); / P0=tablekey; P1=0xfe; P3=0xfd; temp=P3; te

19、mp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xed: key=4; break; case 0xdd: key=5; break; case 0xbd: key=6; break; case 0x7d: key=7; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; display(key); P3=0xfb; temp=P3; temp=temp&0xf0; if(temp!=0xf0) d

20、elay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xeb: key=8; break; case 0xdb: key=9; break; case 0xbb: key=10; break; case 0x7b: key=11; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; display(key); P3=0xf7; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) tem

21、p=P3; switch(temp) case 0xe7: key=12; break; case 0xd7: key=13; break; case 0xb7: key=14; break; case 0x77: key=15; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; display(key); P1=0xf0; 五、实验注意事项1、在程序设计过程中可以用Keil进行仿真调试。2、注意键盘与单片机的接口地址。3、注意键盘设计中的去抖动问题。六、思考题1、为什么键盘程序中要有去抖动设计?2、说明单键盘和

22、矩阵键盘的优缺点,适用于什么场合?实验五 LCD显示器接口实验一、实验目的1、了解芯LED数码管工作原理和LCD液晶显示器的工作原理;2、掌握LED数码管硬件电路和程序设计方法;二、实验原理 1、LED数码管硬件接口电路 采用动态显示方式,六位数码管的段显码和位显码分别由单片机P0口送出,经两片74HC573驱动送到LED数码管。LED数码管为共阴接法。 2、LCD显示器硬件接口电路LCD1602字符型LCD简介 字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。1602LCD的基本参数及引脚功能1602LCD分为带背

23、光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,与带背光在应用中并无差别。三、实验仪器材料 1、PC计算机2、HL-1实验箱四、实验内容1、画出LED数码管与单片机的接口电路,说明该电路采用的是什么显示方式。2、 画出LCD1602显示器与单片机的接口电路,说明工作原理。3、 分析数码管显示主程序,给程序加上注释,并画出流程图。4、程序调试:修改程序,改变显示内容,说明什么原理。参考程序:(数码管秒表实验程序)#include#define uint unsigned int#define uchar unsigned charuchar aa,shiwan,wan,

24、qian,bai,shi,ge;uint temp;sbit dula=P26;sbit wela=P27;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x80;void display(uchar shiwan,uchar wan,uchar qian,uchar bai,uchar shi,uchar ge);void delay(uint z);void init();void main()init();/初始化子程序while(1)if(

25、aa=10) aa=0;temp+;if(temp=999999) temp=0; shiwan=temp/100000;wan=temp%100000/10000;qian=temp%10000/1000;bai=temp%1000/100;shi=temp%100/10;ge=temp%10; display(shiwan,wan,qian,bai,shi,ge);void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void display(uchar shiwan,uchar wan,uchar qian,uchar bai

26、,uchar shi,uchar ge)dula=1;P0=tableshiwan;dula=0;P0=0xff;wela=1;P0=0xfe;wela=0;delay(1);dula=1;P0=tablewan;dula=0;P0=0xff;wela=1;P0=0xfd;wela=0;delay(1);dula=1;P0=tableqian;dula=0;P0=0xff;wela=1;P0=0xfb;wela=0;delay(1); dula=1;P0=tablebai;dula=0;P0=0xff;wela=1;P0=0xf7;wela=0;delay(1);dula=1;P0=table

27、shi;dula=0;P0=0xff;wela=1;P0=0xef;wela=0;delay(1);dula=1;P0=tablege;dula=0;P0=0xff;wela=1;P0=0xdf;wela=0;delay(1);void init()wela=0;dula=0;temp=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa+;五、实验注意事项1、

28、实验报告要画出有关电路图。2、要画出主程序流程图。3、程序调试:修改程序,改变显示内容,说明什么原理。六、思考题1、请分析你修改的程序,会出现什么显示效果?2、动态显示的原理是什么?实验六 报警控制接口实验一、实验目的1、了解;报警控制接口工作原理2、掌握:报警控制接口设计方法二、实验原理 1、上限报警:若XK XH则发出上限报警,否则继续执行原定操作。下限报警:若XK XL ,则下限报警,否则继续执行原定操作。上下限报警:若XK XH,则上限报警,否则判断XK XL否?若是则下限报警,否则继续执行原定操作。2、具体设计报警程序时,为了避免测量值在极限值一点处来回摆动造成频繁报警,一般应在极限

29、值附近设置一个回差带三、实验仪器材料 1、PC计算机2、HL-1实验箱四、实验内容1、下面程序为蜂鸣器报警程序,修改其报警喇叭发声的时间循环,可以改变发声时间长短;改变有关参数可改变发声频率;喇叭停止工作,间歇的时间,也可更改。要求:修改程序,产生两种不同报警声的频率和报警声的长短,用以表示上、下限报警声。#includesbit SPK=P23;/定义蜂鸣器端口void delay(unsigned int cnt)/延时 while(-cnt);main()unsigned int i; while(1) for(i=0;i200;i+)/喇叭发声的时间循环,改变大小可以改变发声时间长短

30、delay(80);/参数决定发声的频率,估算值 SPK=!SPK; SPK=1; /喇叭停止工作,间歇的时间,可更改 delay(20000); 2、下面为单键识别程序,要求修改主函数,能识别两个键盘,用以表示表示发生上、下限报警的触发事件。 #include sbit BY1=P34; /定义按键的输入端S2键unsigned char count; /按键计数,每按一下,count加1unsigned char temp;unsigned char a,b;void delay10ms(void) /延时程序unsigned char i,j;for(i=20;i0;i-)for(j=2

31、48;j0;j-);key() /按键判断程序if(BY1=0) /判断是否按下键盘 delay10ms(); /延时,软件去干扰 if(BY1=0) /确认按键按下 count+; /按键计数加1 if(count=8) /计8次重新计数 count=0; /将count清零 while(BY1=0);/按键锁定,每按一次count只加1. move() /广告灯向左移动移动函数a=temp(8-count);P1=a|b;main() count=0; /初始华参数设置 temp=0xfe; P1=0xff; P1=temp; while(1) /永远循环,扫描判断按键是否按下 key()

32、; /调用按键识别函数 move(); /调用广告灯移动函数 3、参考实验三A/D转换程序,将上述三个程序组合为一个程序,设置两个模拟电压(,4V和1V),表示上下限报警值,调节模拟电压信号的大小,当发生上下越限时,可以发出不同的报警声。五、实验要求 1、画出单片机报警的硬件电路图(只画出单片机最小系统和有关的外部元器件)。2、编写一个完整的上下限报警程序(用模拟电压表示上下限报警值)。实验七 单片机温度控制实验一、实验目的1、了解;DS18B20温度传感器的工作原理2、掌握:温度控制系统设计方法二、实验原理1、DS18B20内部结构:主要由4部分组成:64 位ROM、温度传感器、非挥发的温度

33、报警触发器TH和TL、配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8+X5+X4+1)。 ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20管脚排列:1. GND为电源地;2. DQ为数字信号输入/输出端;3. VDD为外接供电电源输入端(在寄生电源接线方式时接地)2、DS18B20内部构成:高速暂存存储器由9个字节组成,当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存

34、储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。温度的低八位数据 0,温度的高八位数据 1,高温阀值 2,低温阀值 3,保留 4,保留 5,计数剩余值 6,每度计数值 7,CRC 校验 8DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,形式表达,其中S为符号位。例如:+125的数字输出07D0H(正温度直接把16进制数转成10进制即得到温度值 ).-55的数字输出为 FC90H(负温度把得到的16进制数取反后加1 再转成10进制数)

35、DS18B20 单线通信:DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,如果出现序列混乱, 1-WIRE 器件将不响应主机,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。根据 DS18B20 的协议规定,微控制器控制 DS18B20 完成温度的转换必须经过以下 3个步骤 :(1)每次读写前对 DS18B20 进行复位初始化。复位要求主 CPU 将数据线下拉 500us ,然后释放, DS18B20 收到信号后等待 16us60us 左右,然后发出60us240us 的存在低脉冲,主 CPU 收到此信号后表示复位成功。(2)发送一条 ROM 指令(3)发送

36、存储器指令具体操作举例:现在我们要做的是让DS18B20进行一次温度的转换,那具体的操作就是:1、主机先作个复位操作,2、主机再写跳过ROM的操作(CCH)命令,3、然后主机接着写个转换温度的操作命令,后面释放总线至少一秒,让DS18B20完成转换的操作。在这里要注意的是每个命令字节在写的时候都是低字节先写,例如CCH的二进制为11001100,在写到总线上时要从低位开始写,写的顺序是“零、零、壹、壹、零、零、壹、壹”。整个操作的总线状态如下图。读取RAM内的温度数据。同样,这个操作也要接照三个步骤。1、主机发出复位操作并接收DS18B20的应答(存在)脉冲。2、主机发出跳过对ROM操作的命令

37、(CCH)。3、主机发出读取RAM的命令(BEH),随后主机依次读取DS18B20发出的从第0一第8,共九个字节的数据。如果只想读取温度数据,那在读完第0和第1个数据后就不再理会后面DS18B20发出的数据即可。同样读取数据也是低位在前的。整个操作的总线状态如下图:三、实验仪器材料 1、PC计算机2、HL-1实验箱3、温度传感器四、实验内容1、参考程序:接上18B20温度传感器后,数码管显示出当前温度。2、修改程序:设置温度上限温度(30),当温度超过上限时,发出报警声音,同时LED灯闪。#include #define uchar unsigned char#define uint unsi

38、gned intsbit DS=P22; /define interface 定义接口(DS18B20数据位)uint temp; / variable of temperature 温度变量uchar flag1; / sign of the result positive or negativesbit dula=P26;sbit wela=P27;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, /数码管段显示码 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigne

39、d char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, / 0x87,0xff,0xef;void delay(uint count) /delay 延时 uint i; while(count) i=200; while(i0) i-; count-; void Init_Com(void) /功能:串口初始化,波特率9600,方式1 TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1;void dsreset(void) /send reset a

40、nd initialization command 发送初始化命令 uint i; DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) /read a bit 读一个位的数据 uint i; bit dat; DS=0;i+; /i+ for delay DS=1;i+;i+; dat=DS; i=8;while(i0)i-; return (dat);uchar tmpread(void) /read a byte date 读一个字节数据 uchar i,j,dat; dat=0; for(i=1;i=

41、8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tmpwritebyte(uchar dat) /write a byte to ds18b20 写一个字节数据 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /write 0 i=8;while(i0)i-; DS=1; i+;i+; void tmpchange(void)

42、/DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus 发送跳过ROM命令 tmpwritebyte(0x44); / initiates a single temperature conversion 启动温度转换命令uint tmp() /get the temperature 读取温度 float tt; uchar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpre

43、ad(); b=tmpread(); temp=b; temp0;a-) for(b=60;b0;b-); void display(uint temp)/显示程序 uchar A1,A2,A2t,A3,ser; ser=temp/10; SBUF=ser; A1=temp/100; A2t=temp%100; A2=A2t/10; A3=A2t%10; dula=0; P0=tableA1;/显示百位 dula=1; dula=0; wela=0; P0=0x7e; wela=1; wela=0; delay(1); dula=0; P0=table1A2;/显示十位 dula=1; dul

44、a=0; wela=0; P0=0x7d; wela=1; wela=0; delay(1); P0=tableA3;/显示个位 dula=1; dula=0; P0=0x7b; wela=1; wela=0; delay(1);void main() uchar a; Init_Com(); do tmpchange();for(a=10;a0;a-) display(tmp(); while(1);五、实验要求1、画出该实验的硬件电路图(温度传感器、LED数码管与单片机的接口电路)。2、根据实验参考程序画出该实验程序的流程图。实验八 单片机转速控制实验一、实验目的1、了解电动机转速测量的方

45、法;2、掌握单片机转速控制的设计方法。二、实验原理1、转速测量方法转速测量方法可以分为两类,一类是直接法,即直接观测机械或者电机的机械运动,测量特定时间内机械旋转的圈数,从而测出机械运动的转速;另一类是间接法,即测量由于机械转动导致其他物理量的变化,从这些物理量的变化与转速的关系来得到转速。目前常用的测速方法有光电码盘测速法、霍尔元件测速法、离心式转速表测速法、测速发电机测速法、漏磁测速法、闪光测速法和振动测速法。光电码盘测速法:在圆盘每转一周经过光电元件、整形和计数电路就可以测量被测旋转体的转速。频率与转速的关系:f=P*v/60f表示频率,P表示每旋转一周产生的脉冲个数,v表示转速亦即每分

46、钟旋转的转数。用所提供的光电传感器、数据采集器、转速测量控制仪、PC计算机组成闭转速度控制系统,在一定转速范围内(0-2400转/分)对直流电机进行连续的高精度转速控制。2、单片机转速测量控制电路方法一:光电码盘测速法采用动态显示方式,六位数码管的段显码和位显码分别由单片机P0口送出,经两片74HC573驱动送到LED数码管。LED数码管为共阴接法。方法二:间接测量法测量由于机械转动产生的脉冲信号,经过滤波电路的处理,得到直流电压,把这个直流电压进行A/D转换,并换算成对应的转速在LED数码管上显示出来。(直流电压可以从PCF8591芯片的AIN2或AIN3脚引入)三、实验仪器材料 1、PC计

47、算机2、HL-1实验箱四、实验内容1、选择一种测量速度的方法:光电码盘测速法或者间接测量法,说明测量速度的原理。2、画出单片机测量速度的电路图(包括单片机小系统,数码管显示电路)。3、画出主程序流程图,要求能实时测量速度并显示出来;能设置两个上下限速度,并可以根据速度判断进行报警。4、编写调试程序,写出程序清单。转速测量参考程序说明如下: 1)采用光电传感器产生电脉冲;将外部脉冲从P32(INT0)引入,采用外部中断边沿触发方式,中断一次,计数器Counter+1 2)定时器T0 50ms中断一次,中断20次(实际取18)为一秒钟;将一秒钟的外部脉冲计数值Counter*60/11=转速(转/分); 3)四位数码管显示速度,一

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!