收藏 分销(赏)

2023年电子竞赛训练题目设计报告.doc

上传人:丰**** 文档编号:3381168 上传时间:2024-07-03 格式:DOC 页数:30 大小:122KB
下载 相关 举报
2023年电子竞赛训练题目设计报告.doc_第1页
第1页 / 共30页
2023年电子竞赛训练题目设计报告.doc_第2页
第2页 / 共30页
2023年电子竞赛训练题目设计报告.doc_第3页
第3页 / 共30页
2023年电子竞赛训练题目设计报告.doc_第4页
第4页 / 共30页
2023年电子竞赛训练题目设计报告.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、 目录一、 规定 . 2二、 前言 . 3三、 方案分析. 4四、 实现 . 9六、结论 .9七、附录 .10一、规定 水温控制系统一、任务设计并制作一个水温自动控制系统,控制对象为1升水,容器为搪瓷器皿。水温可以在一定范围内设定,并能实现在1070量程范围内对每一点温度的自动控制,以保持设定的温度基本保持不变。二、规定1、基本规定(1)可键盘设定控制温度值,设定最小分辨率为0.1;(2)实时测量并显示实际温度。温度测量误差在0.5 内;(3)水温控制系统应具有全量程(2080)内的升温功能;(4)任意设定一个温度值,控制系统可以实现该给定温度的恒值自动控制。控制的最大动态误差4,静态误差1。

2、2、发挥部分(1)分段温度控制:50恒温3分钟,然后升温至70恒温。(2)恒速温度控制:以每分钟升温2的速度,由35升温至40,然后保持。(3)显示水温随时间变化的实时曲线(4)其他。 三、前言随着社会的发展和科技的进步以及测温仪器在各个领域的应用,智能化是现代温控系统发展的主流方向,特别是今年来,温度控制系统已应用到生活的各个方面,但是温度控制一直是一个未开发的领域,是与人们息息相关的一个问题。针对这种实际情况,设计一个温度控制系统,具有广泛的应用前景和实际意义。温度是科学技术中最基本的物理量之一。物理、化学、生物等学科都离不开温度,在工业生产等许多领域,温度经常是表征对象和过渡状态的重要物

3、理量。各行各业对温度的规定越来越高,可见温度的测量和控制是非常重要的。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用越来越广泛,各种试用于不同场和的温度控制器应运而生。 四、方案分析本次设计重要版块分为温度感应模块,温度显示模块,键盘设定模块和加热控制模块。一、方案的选择 1.对于温度感应模块有两种方案: 一种是使用普通温度传感器pt100再结合电压放大器和AD转换器将感应到的温度数值转换为数字量存储在某一单元内。但由于该方案电路繁多,线路冗长,所以舍之不用。 第二种是使用温度传感器18B20感应温度,由于该温度传感器内含AD转换器,因

4、此连接简朴,应用方便,故选用该方案。 2.对于温度显示模块有两种方案: 一种是使用静态显示,通过数码管显示被测温度和设定温度。该方案程序简朴,但硬件连接复杂,所需元件数量多,不适合设计应用。 第二种是使用动态显示,通过数码管显示被测温度和设定温度。该方案程序复杂,但硬件连接简朴,所需元件少,但由于无法显示曲线,故不是最佳方案。 第三种是使用液晶屏,通过字幕显示模式、温度、曲线。该方案程序复杂,但硬件观测方便,显示清楚,故为最佳方案。3.对于键盘设定模块有两种方案:一种是使用线反转法,通过矩阵键盘,一次求出行数和列数,然后求出设定的数值。由于该方案不具有扫描功能,因此不合用于一般的键盘程序,而合

5、用于键盘中断程序。第二种是使用键盘扫描法,通过矩阵键盘,求出设定的数值,由于该方案具有扫描功能,因此在不使用中断的情况下,使用键盘扫描程序是十分恰当的,本次设计采用的是键盘扫描程序。4. 对于加热控制元件有两种方案。一种是使用加热器(俗称热得快),功率约在左右,但考虑到功率过大会导致加热太快,不容易控制。另一种是使用加热棒,功率在左右,功率不大,适合简易水温控制系统。5. 对于控制方法有两种方案。一种是采用普通的控制方法,即随着水温的变化调节温度,但局限性太小,由于水温变化快,且惯性大,不易调节,故采用普通控制方法显得力不从心。另一种就是采用控制加PID算法,通过采用PWM可以产生一个波形,而

6、PWM波形的占空比是通过PID算法调节,这样就可以调节加热棒的功率进而控制温度的变化。二、 硬件的说明 硬件总体框图为:液晶显示屏 单片机 温度传感器 18B20 继电器 4X4矩阵键盘加热棒加热对象升水本次设计硬件用到了单片机89C52、温度传感器18B20、加热棒、矩阵式键盘、SSR固态继电器等。单片机89C52是常用的单片机之一,单片机上有32个P口,其中P0、P1、P2、P3各8个。温度传感器18B20接到单片机的一个P口上,本次设计是P1.3,由于温度传感器18B20可以直接将数据传输给单片机,因此可直接连接。是液晶显示屏,能显示64*128点阵的图像、文字等,功能强大。矩阵式键盘采

7、用44式,分别表达0到15。通过将8个出线端接到P2口上,然后通过P2口控制键盘,键盘的行拉高电阻和5伏电压。固态继电器SSR是一种动作时间比较快的继电器,有4个接口,2端接5V电压,2端接加热棒。三、软件的说明本次程序的主框图为:开始 中断初始化和初始化运营键盘输入模块运营显示模块运营PID控制模块检查模式,并分别跳到各模式返回开始PID增量型算法程序框图: 比较程序框图: 开始检查设定温度是否高于水温输入设定值(k)和水温(k),若不是,启动加热若不是,关闭加热若是,检查设定温度是否高于水温2摄氏度计算E(k)=R(k)-M(k) 若是,全速加热计算Pp(k)=Kp*E(k)- E(k-1

8、)计算Pi(k)=Ki*E(k)结束计算d(k)=KdE(k)-2E(k-1)+E(k-2)P(k)=Pp(k)+Pi(k)+Pd(k)E(k-2)=E(k-1),E(k-1)=E(k)返回加热控制模块的框图为 开始检测模式若为模式若为模式若为模式设定值取设定值取键盘摄入设定值 若不是比较程序比较程序比较程序 若不是 结束水温是否达成摄氏度水温是否达成摄氏度若是,调节PWM参数若是,连续分钟定期分钟是否已到设定值取70若是,设定值取比较程序 结束比较程序 结束五、实现本次设计的功能板块分为四块,分别是温度传感器感应模块、键盘输入模块、显示模块、控制温度模块。调试过程中,出现过不少问题,诸如:1

9、. 发现温度传感器的温度并不能有效地显示在LCD上因素:温度传感器的程序有问题,延时没有用好。解决方法:修改18B20中的延时程序。2. 发现键盘的数字按下后,键盘没有反映。因素:程序中键盘的按键辨认方法是线反转法,键盘的键值所相应的行与列不能有效接通。解决方法:改用扫描法,键盘有了反映。 六、结论本次设计的题目是水温控制系统,其重要思想是将水温控制在某一个设定的温度左右,误差不超过1度。本次设计所包含的基本功能如下:当有键值输入时,判断模式,假如是模式1,则自动将温度被控对象的温度将被设定在设定值左右,来回往复波动。假如是模式2,则将温度升到50摄氏度,维持3分钟,然后升到70摄氏度维持,假

10、如是模式3,则将温度升到35摄氏度,控制PWM参数,控制在每分钟2摄氏度,升到40摄氏度维持。本次设计中局限性之处就是LCD反映比较慢,误差还不太抱负,有待进一步改善。本次设计历时2周左右,花费了大量的精力和时间,可以说其中包含了诸多的汗水和付出。通过翻阅书籍和不断地写程序调试,既增长了知识,又增长了经验。其过程中有苦有甜,局限性道也。最后感谢老师的指导和同学的帮助。七、 附录1原理图附录2元件明细序 号名 称 型号参数数量备注1LCD128641片2键盘按钮16个4SSR固态继电器1个5加热棒1个250瓦6三极管1个7 单片机89C521片附录3电路程序 #include #include

11、#include #include #define unchar unsigned char #define unint unsigned intsbit E=P30; sbit RW=P31; sbit RS=P32; sbit CS1=P36; sbit CS2=P37; sbit DQ=P10; sbit JR=P15;char code table_shuzi16= 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00, 0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, / 0 0x00,0x10,0x10,0xF8,0x00,

12、0x00,0x00,0x00, 0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, /1 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00, 0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, /2 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00, 0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, /3 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00, 0x00,0x07,0x04,0x24,0x24,0x3F

13、,0x24,0x00, /4 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00, 0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00, /5 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00, 0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, /6 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00, 0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, /7 0x00,0x70,0x88,0x08,0x08,0x88,

14、0x70,0x00, 0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, /8 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00, 0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, /9 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, /. ;char code table_wenzi32= 0x00,0x10,0x0C,0x04,0x4C,0xB4,0x94,0x05, 0xF6,0x0

15、4,0x04,0x04,0x14,0x0C,0x04,0x00, 0x00,0x82,0x82,0x42,0x42,0x23,0x12,0x0A, 0x07,0x0A,0x12,0xE2,0x42,0x02,0x02,0x00, /实 0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2, 0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00, 0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F, 0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00, /测 0x40,0x41,0xCE,

16、0x04,0x00,0x80,0x40,0xBE, 0x82,0x82,0x82,0xBE,0xC0,0x40,0x40,0x00, 0x00,0x00,0x7F,0x20,0x90,0x80,0x40,0x43, 0x2C,0x10,0x10,0x2C,0x43,0xC0,0x40,0x00, /设 0x00,0x10,0x0C,0xA4,0x24,0x24,0x25,0xE6, 0x24,0x24,0x24,0x24,0x14,0x0C,0x04,0x00, 0x40,0x20,0x18,0x07,0x08,0x10,0x20,0x7F, 0x42,0x42,0x42,0x42,0x40,

17、0x40,0x00,0x00, /定 0x10,0xD0,0xFF,0x50,0x90,0x04,0xF4,0x54, 0x5F,0x54,0x54,0x5F,0xF4,0x04,0x00,0x00, 0x03,0x00,0xFF,0x00,0x00,0x84,0x85,0x45, 0x35,0x0F,0x15,0x25,0x65,0xC4,0x44,0x00, /模 0x00,0x08,0x88,0x88,0x88,0x88,0x88,0x08, 0xFF,0x08,0x09,0x0E,0x0A,0x08,0x00,0x00, 0x00,0x20,0x60,0x30,0x1F,0x10,0x

18、08,0x08, 0x00,0x07,0x18,0x20,0x40,0x80,0x70,0x00, /式 0x10,0x21,0x86,0x70,0x00,0x7E,0x4A,0x4A, 0x4A,0x4A,0x4A,0x7E,0x00,0x00,0x00,0x00, 0x02,0xFE,0x01,0x40,0x7F,0x41,0x41,0x7F, 0x41,0x41,0x7F,0x41,0x41,0x7F,0x40,0x00, /温 0x08,0x08,0x08,0xFF,0x88,0x48,0x00,0x98, 0x48,0x28,0x0A,0x2C,0x48,0xD8,0x08,0x00

19、, 0x02,0x42,0x81,0x7F,0x00,0x00,0x40,0x42, 0x42,0x42,0x7E,0x42,0x42,0x42,0x40,0x00, /控 0x00,0x00,0x02,0x22,0xB2,0xAA,0x66,0x62, 0x22,0x11,0x4D,0x81,0x01,0x01,0x00,0x00, 0x00,0x40,0x21,0x13,0x09,0x05,0x41,0x81, 0x7F,0x01,0x05,0x09,0x13,0x62,0x00,0x00, /系 0x20,0x30,0x2C,0xA3,0x60,0x10,0x84,0xC4, 0xA4,

20、0x9D,0x86,0x84,0xA4,0xC4,0x84,0x00, 0x20,0x22,0x23,0x12,0x12,0x92,0x40,0x30, 0x0F,0x00,0x00,0x3F,0x40,0x41,0x70,0x00, /统 ;char code table_xiaoshuzi4= 0x00,0x7c,0x44,0x7c,/0 0x00,0x00,0x7c,0x00,/1 0x00,0x74,0x54,0x5c,/2 0x00,0x54,0x54,0x7c,/3 0x00,0x3c,0x20,0x7c,/4 0x00,0x5c,0x54,0x74,/5 0x00,0x7c,0x

21、54,0x74,/6 0x00,0x04,0x04,0x7c,/7 0x00,0x7c,0x54,0x7c,/8 0x00,0x5c,0x54,0x7c,/9 0x08,0x08,0x08,0x08,;unint bzw0,bzw1,bzw2,sjbz=800,sjbj=1;unint num,qxlie=11,qxpian=1,Temperature;unint shiwei,gewei,xiaoshu,wda,wdb,wdc,js,set_Temperature, pidz;unchar pwmh,pwml;struct PID unint Proportion; unint Integr

22、al; unint Derivative; unint LastError; unint PrevError; ; struct PID pidfh; /*读忙void readbusy()P0=0x00;RS=0;RW=1;E=1;while(P0&0x80);E=0;/*写指令void writecommand(unchar command) readbusy();RS=0;RW=0;P0=command;E=1; _nop_();_nop_(); E=0;/*写数据 void writedate(unchar date)readbusy();RS=1; RW=0;P0=date; E=1

23、; _nop_(); _nop_(); E=0; /*设立页void set_page(unchar page)page=0xb8|page;writecommand(page);/*?void set_line(unchar line)line=0xc0|line;writecommand(line);/*?void set_lie(unchar lie)lie=lie&0x3f;lie=0x40|lie;writecommand(lie);void set_onoff(unchar onoff)onoff=0x3e|onoff;writecommand(onoff);/*选屏void se

24、lectscreen(unchar screen)switch(screen) case 0:CS1=1;CS2=1;break;case 1:CS1=1;CS2=0;break;case 2:CS1=0;CS2=1;break; default: break;/*清屏void clearscreen(unchar screen)unchar i,j;selectscreen(screen); for(i=0;i8;i+) set_page(i);set_lie(0);for(j=0;j0;i-) DQ=1; _nop_();_nop_();_nop_(); DQ=0;_nop_();_nop

25、_(); _nop_(); _nop_();_nop_();/5us DQ=val&0x01; delay(9); DQ=1; val=val1; delay(4);/*读字节unchar read_byte(viod)unchar a=0;unchar value=0; for(a=8;a0;a-) DQ=1;_nop_(); _nop_();DQ=0;_nop_();_nop_();value=value1; DQ=1; _nop_(); _nop_(); _nop_(); _nop_(); /4us if(DQ) value|=0x80; delay(9); /66us return(v

26、alue);/*解决温度void chuliwendu(unchar gaowei,unchar diwei) Temperature = (diwei + gaowei *256) * (0.0625*10); /Temperature=125 shiwei=Temperature/100; gewei=Temperature/10%10; xiaoshu= Temperature%10; /*?void caijiwendu()unchar wenh,wenl; reset();yingda(); write_byte(0xcc); write_byte(0x44); reset(); y

27、ingda(); write_byte(0xcc); write_byte(0xbe); wenl=read_byte(); wenh=read_byte(); chuliwendu(wenh,wenl); /*延时void delay1(unint z)unint x,y;for(x=z;x0;x-)for(y=1;y0;y-);/*键盘扫描void keyscan()unchar temp;P2=0xfe;temp=P2;temp=temp&0xf0;while(temp!=0xf0)delay1(1);temp=P2;temp=temp&0xf0;while(temp!=0xf0)tem

28、p=P2;switch(temp)case 0xee:num=0;js+;break;case 0xde:num=1;js+;break;case 0xbe:num=2;js+;break;case 0x7e:num=3;js+;break;while(temp!=0xf0)temp=P2;temp=temp&0xf0;P2=0xfd;temp=P2;temp=temp&0xf0;while(temp!=0xf0)delay1(1);temp=P2;temp=temp&0xf0;while(temp!=0xf0)temp=P2;switch(temp)case 0xed:num=4;js+;b

29、reak;case 0xdd:num=5;js+;break;case 0xbd:num=6;js+;break;case 0x7d:num=7;js+;break;while(temp!=0xf0)temp=P2;temp=temp&0xf0;P2=0xfb;temp=P2;temp=temp&0xf0;while(temp!=0xf0)delay1(1);temp=P2;temp=temp&0xf0;while(temp!=0xf0)temp=P2;switch(temp)case 0xeb:num=8; js+;break;case 0xdb:num=9; js+;break;case

30、0xbb:num=10;break;case 0x7b:num=11;break;while(temp!=0xf0)temp=P2;temp=temp&0xf0;P2=0xf7;temp=P2;temp=temp&0xf0;while(temp!=0xf0)delay1(1);temp=P2;temp=temp&0xf0;while(temp!=0xf0)temp=P2;switch(temp)case 0xe7:num=12;break;case 0xd7:num=13;break;case 0xb7:num=14;break;case 0x77:num=15;break;while(tem

31、p!=0xf0)temp=P2;temp=temp&0xf0;/*显示1void display(unchar xp,unchar page,unchar lie,unchar j)unchar i;selectscreen(xp);set_page(page);set_lie(lie);for(i=0;i8;i+) writedate(table_shuziji); set_page(page+1);set_lie(lie);for(i=0;i8;i+) writedate(table_shuziji+8); /*显示2void displayz(unchar xp,unchar page,

32、unchar lie,unchar j)unchar i;selectscreen(xp);set_page(page);set_lie(lie);for(i=0;i16;i+) writedate(table_wenziji); set_page(page+1);set_lie(lie);for(i=0;i16;i+) writedate(table_wenziji+16); /*显示3void displays(unchar xp,unchar page,unchar lie,unchar j)unchar i;selectscreen(xp);set_page(page);set_lie

33、(lie);for(i=0;i4;i+) writedate(table_xiaoshuziji); /*设定坐标轴void set_zhou()unchar a,b,c,d;selectscreen(1);for(a=2;a7;a+) set_lie(10); set_page(a);writedate(0xff); set_lie(10);set_page(7);writedate(0x0f);for(b=2;b8;b+) set_lie(11); set_page(b);writedate(0x08); selectscreen(1);set_lie(12);for(c=0;c52;c+

34、) set_page(7);writedate(0x08); selectscreen(2);set_lie(0);for(d=0;d1;c-)d=d1;if(b=7) for(i=2;i7;i+) selectscreen(pian);set_page(i); set_lie(lie);writedate(0x00); selectscreen(pian);set_page(7);set_lie(lie);writedate(d+8); else for(i=2;i7;i+) if(i=b) selectscreen(pian);set_page(i);set_lie(lie);writedate(d); else selectscreen(pian);set_page(i);set_lie(lie);writedate(0x00); /*曲线void quxian()if(qxlie=32) if(qxpian=2) qxlie=11;qxpian=1; if(qxlie=64) if(qxpian=1) qxlie=0;qxpian=2;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服