基于单片机LCD温度显示
- 格式:doc
- 大小:171.50 KB
- 文档页数:8
JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY测控系统综合训练基于单片机和液晶显示的温度测量系统学院名称:电气信息工程学院专业:测控技术与仪器班级:08测控2班姓名:董亮学号:08314237指导教师:王久龙2011年12月基于单片机及液晶显示的温度测量系统摘要:本文将介绍一种基于单片机控制的数字温度测量系统,本温度计属于多功能温度计,可以软件预设置上下报警温度,当温度不在设置范围内时,可以报警。
本文设计的数字温度计具有读数方便,测温范围广,测温精确,液晶显示,适用范围宽等特点。
它的主要组成部分有:AT89C52单片机、温度传感器、温度显示电路、温度报警电路等。
关键词:温度测量;温度传感器;液晶显示;仿真目录前言 (1)第一章设计目的及设计要求 (2)1.1 设计目的 (2)1.2 设计要求 (2)第二章设计方案论证 (3)2.1 总体设计原理 (3)2.2 单片机AT89C51介绍 (3)2.3 温度传感器的选择 (5)2.4 显示元件的选择 (7)第三章硬件电路设计 (8)3.1 时钟振荡电路 (8)3.2 测温电路 (8)3.3 复位电路 (8)3.4 报警电路 (9)3.5 显示电路 (9)第四章软件设计 (10)4.1 主程序设计 (10)4.2 液晶显示程序设计 (10)4.3 温度采集程序设计 (11)第五章安装调试与分析 (12)结束语 (13)参考文献 (14)附录 (15)附录一系统仿真图 (15)附录二实物组装图 (16)附录三元器件清单 (17)附录四程序清单 (18)前言在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比较成熟的技术。
随着科技的不断进步,在工业生产中温度是常用的参数,而采用单片机来对这些参数进行测量与控制已成为当今的主流,现代社会对各种信息参数的准确度和精确度的要求也在不断增长,而如何准确而又迅速的获得这些参数就取决于现代信息基础的发展水平。
#include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#define delayNOP() {_nop_();_nop_();_nop_();_nop_();}sbit DQ=P2^2;sbit dula=P2^6; //定义锁存器锁存端sbit wela=P2^7;sbit rs=P3^5; //定义1602液晶RS端sbit lcden=P3^4;//定义1602液晶LCDEN端sbit s1=P3^0; //定义按键--功能键sbit s2=P3^1; //定义按键--增加键sbit s3=P3^2; //定义按键--减小键sbit s4=P3^6;//闹钟查看键sbit rd=P3^7;sbit beep=P2^3; //定义蜂鸣器端uchar code Temp_Disp_Title[]={" Current Temp : "};uchar Current_Temp_Display_Buffer[]={" TEMP: "};uchar code Alarm_Temp[]={"ALARM TEMP Hi Lo"};uchar Alarm_HI_LO_STR[]={"Hi: Lo: "};uchar temp_data[2]={0x00,0x00};uchar temp_alarm[2]={0x00,0x00};uchar display[5]={0x00,0x00,0x00,0x00,0x00};uchar display1[3]={0x00,0x00,0x00};uchar code df_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};uchar CurrentT=0; //当前读取的温度整数部分uchar Temp_Value[]={0x00,0x00}; //从DS18B20读取的温度值uchar Display_Digit[]={0,0,0,0}; //待显示的各温度数位bit DS18B20_IS_OK=1;//传感器正常标志//-------------------------------------//延时1//-------------------------------------void delay1(uint x){uchar i;while(x--) for(i=0;i<200;i++);}//-------------------------------------//延时2//-------------------------------------void Delay(uint x){while(x--);}//------------------------------------//忙检查//------------------------------------void write_com(uchar com)//液晶写命令函数{rs=0;lcden=0;P0=com;delay1(5);lcden=1;delay1(5);lcden=0;}void Write_LCD_Data(uchar date)//液晶写数据函数{rs=1;lcden=0;P0=date;delay1(5);lcden=1;delay1(5);lcden=0;}//-----------------------------//设置LCD显示位置//---------------------------------void Set_Disp_Pos(uchar Pos){write_com(Pos|0x80);}//-----------------------------//LCD初始化//---------------------------------void Initialize_LCD(){uchar num;rd=0; //软件将矩阵按键第4列一端置低用以分解出独立按键dula=0;//关闭两锁存器锁存端,防止操作液晶时数码管会出乱码wela=0;lcden=0;write_com(0x38);//初始化1602液晶write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);//设置显示初始坐标for(num=0;num<14;num++)//显示年月日星期{Write_LCD_Data(Temp_Disp_Title[num]);delay1(5);}}//-------------------------------------//函数功能:初始化DS18B20//出口参数:status---DS18B20是否复位成功的标志//-------------------------------------uchar Init_DS18B20(){uchar status; //储存DS18B20是否存在的标志,status=0,表示存在;status=1,表示不存在DQ=1;Delay(8); //先将数据线拉高//略微延时约6微秒DQ=0;Delay(90); //再将数据线从高拉低,要求保持480~960us//略微延时约600微秒以向DS18B20发出一持续480~960us的低电平复位脉冲DQ=1;Delay(8); //释放数据线(将数据线拉高)//延时约30us(释放总线后需等待15~60us让DS18B20输出存在脉冲)status=DQ;Delay(100); //让单片机检测是否输出了存在脉冲(DQ=0表示存在)//延时足够长时间,等待存在脉冲输出完毕DQ=1; // 将数据线拉高return status; //返回检测成功标志}//-------------------------------------//函数功能:读一字节//出口参数:dat---读出的数据//-------------------------------------uchar ReadOneByte(){uchar i,dat=0;DQ=1;_nop_(); // 先将数据线拉高//等待一个机器周期for (i=0;i<8;i++){DQ=0; //单片机从DS18B20读书据时,将数据线从高拉低即启动读时序dat>>=1;_nop_(); //等待一个机器周期DQ=1; //将数据线"人为"拉高,为单片机检测DS18B20的输出电平作准备_nop_();_nop_(); //延时约6us,使主机在15us内采样if (DQ) dat|=0x80; //如果读到的数据是1,则将1存入dat,如果是0则保持原值不变Delay(30); //延时3us,两个读时序之间必须有大于1us的恢复期DQ=1; // 将数据线拉高,为读下一位数据做准备}return dat;}//-------------------------------------//函数功能:写一字节//入口参数:dat---待写入的数据//-------------------------------------void WriteOneByte(uchar dat){uchar i;for (i=0;i<8;i++){DQ=0; //将数据线从高拉低时即启动写时序DQ=dat & 0x01; //利用与运算取出要写的某位二进制数据,//并将其送到数据线上等待DS18B20采样Delay(5); //延时约30us,DS18B20在拉低后的约15~60us期间从数据线上采样DQ=1; //释放数据线dat>>=1; //将dat中的各二进制位数据右移1位}}//-------------------------------------//函数功能:读取温度值//出入口参数:无//-------------------------------------void Read_Temperature(){if(Init_DS18B20() == 1) //DS18B20故障DS18B20_IS_OK=0;else{WriteOneByte(0xCC); // 跳过读序号列号的操作WriteOneByte(0x44); // 启动温度转换Init_DS18B20(); //将DS18B20初始化WriteOneByte(0xCC); //跳过读序号列号的操作WriteOneByte(0xBE); //读取温度寄存器,前两个分别是温度的低位和高位Temp_Value[0]=ReadOneByte(); //温度低8位Temp_Value[1]=ReadOneByte(); //温度高8位DS18B20_IS_OK=1;}}//-------------------------------------//函数功能:在LCD上显示当前温度//入口参数://-------------------------------------void Display_Temperature(){uchar i;//延时值与负数标识uchar t=150,ng=0;//高5位全为1(0xF8)则为负数,为负数时取反加1,并设置负数标示if ((Temp_Value[1] & 0xF8)==0xF8){Temp_Value[1]=~Temp_Value[1];Temp_Value[0]=~Temp_Value[0]+1;if(Temp_Value[0]==0x00) Temp_Value[1]++; //加1后如果低字节为00表示有进位,进位位再加到高字节上ng=1; //负数标示置1}Display_Digit[0]=df_Table[Temp_Value[0] & 0x0F]; //查表得到温度小数部分//获取温度整数部分(高字节的低3位与低字节中的高4位,无符号)CurrentT=((Temp_V alue[0] & 0xF0)>>4)|((Temp_Value[1] & 0x07)<<4);//将整数部分分解为3位待显示数字Display_Digit[3]=CurrentT/100; //百位digit[CurrentT/100];Display_Digit[2]=CurrentT%100/10; //十位Display_Digit[1]=CurrentT%10; //个位//刷新LCD显示缓冲Current_Temp_Display_Buffer[11]=Display_Digit[0]+'0';//先将'0'转换成整数48,然后与前面数字相加,得到相应数字的ASCII字符Current_Temp_Display_Buffer[10]='.';Current_Temp_Display_Buffer[9]=Display_Digit[1]+'0'; //个位Current_Temp_Display_Buffer[8]=Display_Digit[2]+'0'; //十位Current_Temp_Display_Buffer[7]=Display_Digit[3]+'0'; //百位//高位为0时不显示if(Display_Digit[3]==0) Current_Temp_Display_Buffer[7]=' ';//高位为0且次高位为0时,次高位不显示if(Display_Digit[2]==0 && Display_Digit[3]==0)Current_Temp_Display_Buffer[8]=' ';//负数符号显示在恰当位置if(ng){if (Current_Temp_Display_Buffer[8]==' ')Current_Temp_Display_Buffer[8]='-';else if(Current_Temp_Display_Buffer[7]==' ')Current_Temp_Display_Buffer[7]='-';elseCurrent_Temp_Display_Buffer[6]='-';}//在第一行显示标题Set_Disp_Pos(0x00);for(i=0;i<16;i++){Write_LCD_Data(Temp_Disp_Title[i]);}Set_Disp_Pos(0x40); //在第二行显示当前温度for(i=0;i<16;i++){Write_LCD_Data(Current_Temp_Display_Buffer[i]);}//显示温度符号// Set_Disp_Pos(0x4D);Write_LCD_Data(0x00);Set_Disp_Pos(0x4D);Write_LCD_Data(0xdf);Set_Disp_Pos(0x4E); Write_LCD_Data('C');}//-------------------------------------//函数功能:主函数//入口参数://-------------------------------------void main(){Initialize_LCD();Read_Temperature();Delay(50000);Delay(50000);while (1){Read_Temperature();if (DS18B20_IS_OK) Display_Temperature();delay1(100);}。
单片机C语言课题设计报告设计题目:温度检测电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来1摘要本课题以51单片机为核心实现智能化温度测量。
利用18B20温度传感器获取温度信号,将需要测量的温度信号自动转化为数字信号,利用单总线和单片机交换数据,最终单片机将信号转换成LCD 可以识别的信息显示输出。
基于STC90C516RD+STC90C516RD+的单片机的智能温度检测系统,的单片机的智能温度检测系统,设计采用18B20温度传感器,其分辨率可编程设计。
本课题设计应用于温度变化缓慢的空间,综合考虑,以降低灵敏度来提高显示精度。
设计使用12位分辨率,因其最高4位代表温度极性,故实际使用为11位半,位半,而温度测量范围为而温度测量范围为而温度测量范围为-55-55-55℃~℃~℃~+125+125+125℃,℃,则其分辨力为0.06250.0625℃。
℃。
设计使用LCD1602显示器,可显示16*2个英文字符,显示器显示实时温度和过温警告信息,和过温警告信息,传感器异常信息设。
传感器异常信息设。
传感器异常信息设。
计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,当温度超过当温度超过设定值时播放《卡农》,当传感器异常时播放嘟嘟音。
单片机C 语言课题设计报告语言课题设计报告电动世界,气定乾坤2目录一、设计功能一、设计功能................................. ................................. 3 二、系统设计二、系统设计................................. .................................3 三、器件选择三、器件选择................................. .................................3 3.1温度信号采集模块 (3)3.1.1 DS18B20 3.1.1 DS18B20 数字式温度传感器数字式温度传感器..................... 4 3.1.2 DS18B20特性 .................................. 4 3.1.3 DS18B20结构 .................................. 5 3.1.4 DS18B20测温原理 .............................. 6 3.1.5 DS18B20的读写功能 ............................ 6 3.2 3.2 液晶显示器液晶显示器1602LCD................................. 9 3.2.1引脚功能说明 ................................. 10 3.2.2 1602LCD 的指令说明及时序 ..................... 10 3.2.3 1602LCD 的一般初始化过程 (10)四、软件设计四、软件设计................................ ................................11 4.1 1602LCD 程序设计流程图 ........................... 11 4.2 DS18B20程序设计流程图 ............................ 12 4.3 4.3 主程序设计流程图主程序设计流程图................................. 13 五、设计总结五、设计总结................................. ................................. 2 六、参考文献六、参考文献................................. ................................. 2 七、硬件原理图及仿真七、硬件原理图及仿真......................... .........................3 7.1系统硬件原理图 ..................................... 3 7.2开机滚动显示界面 ................................... 4 7.3临界温度设置界面 ................................... 4 7.4传感器异常警告界面 (4)电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来3温度温度DS18B20 LCD 显示显示过温函数功能模块能模块传感器异常函数功能模块数功能模块D0D1D2D3D4D5D6D7XT XTAL2AL218XT XTAL1AL119ALE 30EA31PSEN29RST 9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115U180C51X1CRYST CRYSTAL ALC122pFC222pFGNDR110kC31uFVCCGND234567891RP1RESPACK-8VCC0.0DQ 2VCC 3GND 1U2DS18B20R24.7K LCD1LM016LLS2SOUNDERMUC八、程序清单八、程序清单................................. .................................5 一、设计功能·由单片机、温度传感器以及液晶显示器等构成高精度温度监测系统。
报告评分批改老师《现代电子综合实验》课程设计报告基于单片机的温度检测控制系统设计学生姓名 学 号专 业 班 级同组学生 提交日期 年 月 日指导教师目录2一、实验目的 .....................................................................................2二、实验要求 .....................................................................................2三、实验开发环境及工具 ...........................................................................2四、按键扫描和液晶显示功能实现 ...................................................................24.1矩阵键盘电路 ...............................................................................4.1.1矩阵键盘电路简介 .....................................................................224.1.2矩阵式按键扫描原理 ...................................................................24.1.3 按键扫描子程序设计思想及流程图 ......................................................34.2 LCD1602显示电路 ..........................................................................34.2.1 LCD1602模块简介 ....................................................................34.2.2 LCD1602模块引脚说明 .................................................................4.2.3 LCD1602控制方式及指令 ..............................................................344.2.4 LCD1602液晶显示子程序设计思想及流程图 ..............................................5五、基于单片机的温度检测控制系统设计过程 .........................................................55.1 系统整体电路框图及功能说明 ................................................................55.2 DS18B20数字温度传感器电路 ..............................................................55.2.1 单总线通信方式简介 ..................................................................65.2.2 DS18B20简介 ......................................................................5.2.3 DS18B20读写操作 ..................................................................665.3 声光报警及控制电路 ........................................................................75.4 软件设计 ..................................................................................5.4.1 主程序设计流程图 ....................................................................775.4.2 DS18B20子程序设计思想及流程图 ...................................................85.4.3 声光报警子程序设计思想及流程图 .....................................................9七、 实验过程及实验结果 ...........................................................................9八、实验中遇到的问题及解决方法 ...................................................................10附件 ............................................................................................一、实验目的(1). 掌握单片机应用系统的设计方法与步骤;(2).掌握硬件电路各功能模块的工作原理、应用电路与编程方法;(3).熟练掌握单总线的应用及编程;(4). 掌握基于单片机的温度检测控制系统的设计与实现。
《基于单片机的温度控制系统的研究》篇一一、引言随着现代科技的快速发展,对温度控制的精度和稳定性的要求也在逐渐提高。
为了满足这一需求,我们提出了一种基于单片机的温度控制系统。
该系统利用单片机的高效处理能力和精确控制能力,实现对温度的实时监测和精确控制。
本文将对该系统的设计、实现及性能进行详细的研究和讨论。
二、系统设计1. 硬件设计本系统主要由单片机、温度传感器、执行器(如加热器或制冷器)以及电源等部分组成。
其中,单片机作为系统的核心,负责接收温度传感器的数据,根据设定的温度值与实际温度值的差值,控制执行器的工作状态,以达到控制温度的目的。
温度传感器选用高精度的数字温度传感器,能够实时监测环境温度,并将数据传输给单片机。
执行器则根据单片机的指令,进行加热或制冷操作。
2. 软件设计软件部分主要包括单片机的程序设计和人机交互界面设计。
单片机程序采用C语言编写,实现温度的实时监测、数据处理、控制算法等功能。
人机交互界面则用于设定目标温度、显示当前温度等信息。
三、系统实现1. 温度采集与处理单片机通过与温度传感器通信,实时获取环境温度数据。
然后,通过A/D转换器将温度数据转换为数字信号,进行数据处理和分析。
2. 控制算法本系统采用PID(比例-积分-微分)控制算法。
PID控制器根据设定温度与实际温度的差值,计算输出控制量,控制执行器的工作状态,从而达到控制温度的目的。
3. 人机交互界面人机交互界面采用LCD显示屏和按键实现。
用户可以通过按键设定目标温度,LCD显示屏实时显示当前温度和设定温度。
四、性能分析1. 精度与稳定性本系统采用高精度的温度传感器和PID控制算法,能够实现较高的温度控制精度和稳定性。
经过实际测试,系统的温度控制精度可达±0.5℃,稳定性良好。
2. 响应速度本系统的响应速度较快,当环境温度发生变化时,单片机能够迅速采集到数据,并通过PID控制算法计算出相应的控制量,控制执行器进行加热或制冷操作,使环境温度尽快达到设定值。
1 绪论1.1 本课题研究的背景和意义温度,一个在日常生活和生产过程甚至科学实验中普遍而且重要的物理参数。
近年来,随着社会的发展和科技的进步,温度控制系统以及测温仪器已经广泛应用于社会生活的各个领域,尤其是在工业自动化控制中占有非常重要的地位。
人们通过温度计来采集温度,经过人工操作进行加热、通风和降温。
从而来控制温度,但是对于这些控制对象惯性大,滞后性严重,而且还存在有许多不定的因素,从而根本难以建立精确的数学模型。
这样不仅控制精度低、实时性差,而且操作人员的劳动强度大,并且有许多工业生产环节是人们不能直接介入的。
因此智能化已然成为现代温度控制系统发展的主流方向。
针对这一种实际情况,设计个温度控制系统,具有非常广泛的应用前景和实际意义[1]。
随着电子信息技术和微型计算机技术的飞速发展。
单片机技术也得到了飞速的发展。
尤其是在高集成度、高速度、低功耗还有高性能方面取得了巨大的进展。
使得单片机在电子产品当中的应用越来越广泛。
使用单片机对温度进行控制的技术也油然而生。
它不仅可以克服温度控制系统中存在的严重的滞后现象,同时还可以在提高采样频率的基础上很大程度的提高控制的效果和控制的精度。
并且随着技术日益发展和完善,相信越来越能显现出它的优越性。
1.2 目前国内外研究现状在国内外温度控制成了一门广泛应用于很多领域的技术。
像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等。
温度控制系统虽然在国内各行各业的应用已十分广泛,但是从温度控制器的生产角度来看,总体的发展水平仍不高。
跟美德日等先进国家相比,仍有着较大的差距。
“点位”控制和常规的PID控制器占领了成熟产品的主体份额。
但它只可以适用于一般的温度系统控制,而难于控制复杂、滞后、时变的温度控制系统。
此外,适于较高控制场合的智能化、自适应控制仪表,目前在国内还没有取得较好的研究成果。
并且,在形成商品化和仪表控制参数的自整定方面,一些先进国家虽已经有一批成熟的产品。
基于51单片机的温度检测装置的设计一、绪论温度检测是电子技术应用的一项基本工作之一。
无论在工业生产中还是家庭日常生活中,温度检测都有着重要的作用。
设计一种简单、实用的温度检测装置,对于提高生产效率、提高安全性等方面都有着重要的作用。
目前市面上有很多种温度检测装置,如数字式温度计、红外线温度计等。
而基于51单片机的温度检测装置,由于其设计简单、易于实现、成本低廉、可靠、灵活等优点,得到了广泛的应用和研究。
二、设计目标1.能实时采集并显示当前温度值;2.具备报警功能,当温度超出设定范围时,能够及时进行报警;3.能够保存历史最高温度值,并进行显示。
三、硬件设计1.温度传感器:DS18B20;2.单片机:STC89C52;3.显示器:1602液晶显示屏;4.报警器:有源蜂鸣器。
1.温度采集与显示模块;2.温度报警模块;3.历史最高温度显示模块。
具体实现如下:1.温度采集与显示模块DS18B20_Init(); //初始化温度传感器LcdIni(); //初始化液晶显示屏然后,在一个while循环中,不断采集温度值,并将其显示在液晶显示屏上,代码如下:while(1){Ds1820Convert(); //触发温度采集Ds1820ReadTemp(temp); //读取温度值LcdCommand(0x80); //光标定位到第一行第一列LcdShowStr("Temp:"); //显示“Temp:”字样LcdShowData(temp[1]); //显示温度值的百位数LcdShowData(temp[0]); //显示温度值的十位数LcdShowData(temp[2]); //显示温度值的个位数LcdShowStr("C "); //显示“C”字母和两个空格}2.温度报警模块为了实现温度报警功能,需要定义一个阈值,并比较当前温度值是否超过了这个阈值。
如果超过了阈值,则触发报警。
基于单片机的热敏电阻温度计的设计引言:热敏电阻是一种根据温度变化而产生变阻的元件,其电阻值与温度成反比变化。
热敏电阻广泛应用于温度测量领域,其中基于单片机的热敏电阻温度计具有精度高、控制方便等特点,因此被广泛应用于各个领域。
本文将介绍基于单片机的热敏电阻温度计的设计,并通过实验验证其测量精度和稳定性。
一、系统设计本系统设计使用STC89C52单片机作为控制核心,热敏电阻作为测量元件,LCD1602液晶显示屏作为温度显示设备。
1.系统原理图2.功能模块设计(1)温度采集模块:温度采集模块主要由热敏电阻和AD转换模块组成。
热敏电阻是根据温度变化而改变阻值的元件,它与AD转换模块相连,将电阻变化转换为与温度成正比的电压信号。
(2)AD转换模块:AD转换模块将热敏电阻的电压信号转换为数字信号,并通过串口将转换结果传输给单片机。
在该设计中,使用了MCP3204型号的AD转换芯片。
(3)驱动显示模块:驱动显示模块使用单片机的IO口来操作LCD1602液晶显示屏,将温度数值显示在屏幕上。
(4)温度计算模块:温度计算模块是通过单片机的计算功能将AD转换模块传输过来的数字信号转换为对应的温度值。
根据热敏电阻的特性曲线,可以通过查表或采用数学公式计算获得温度值。
二、系统实现1.硬件设计(1)单片机电路设计单片机电路包括单片机STC89C52、晶振、电源电路等。
根据需要,选用合适的外部晶振进行时钟信号的驱动。
(2)AD转换电路设计AD转换电路采用了MCP3204芯片进行温度信号的转换。
根据芯片的datasheet,进行正确的连接和电路设计。
(3)LCD显示电路设计LCD显示电路主要由单片机的IO口控制,根据液晶显示模块的引脚定义,进行正确的连接和电路设计。
(4)温度采集电路设计温度采集电路由热敏电阻和合适的电阻组成,根据不同的热敏电阻特性曲线,选择合适的电阻和连接方式。
2.软件设计(1)初始化设置:单片机开机之后,需要进行一系列的初始化设置,包括对IO口、串口和LCD液晶显示屏的初始化设置。
自动化工程训练课程设计学院名称信息科学与工程学院专业班级自动化1202班姓名黎毅刚指导老师刘芳目录第一章绪论第二章方案论证2.1温度采集方案2.2显示界面方案第三章系统整体设计3.1 系统总体分析3.2设计原理第四章各个元器件及芯片简介4.1 AT89C51单片机介绍4.2 K型热电偶简介4.3 MAX6675简介4.4 LCD12864简介第五章各部分电路设计5.1温度采集电路5.2数据处理电路5.3温度显示电路5.4超限报警电路第六章心得体会附录1 硬件仿真图与运行效果展示附录2 软件代码第一章绪论在工业生产中,需要检测工艺生产线的温度,而且这个温度范围还很大。
该系统采集主要以Atmel公司的AT89C51单片机为控制处理核心,由它完成对数据的采集处理以及控制数据的无线传输。
AT89C51单片机是一种低功耗/低电压/高性能的8位单片机,片内带有一个8KB的可编程/可擦除/只读存储器。
无线收发一体数传MODEM模块PTR2000芯片性能优异,在业界居领先水平,它的显著特点是所需外围元件少,因而设计非常方便。
因此用来设计工业温度检测系统相当的合适。
在本文中,主要说明单片机与K型热电偶以及K型热电偶模数转换器—MAX6675的组合,形成单片机的温度检测系统。
包括:如何针对系统的需求选择合适的温度检测器件,如何根据选择的器件设计外围电路和单片机的接口电路,如何编写控制温度检测器件进行数据传输的单片机程序,并简要介绍数字温度传感器MAX6675的应用。
第二章方案论证2.1温度采集方案方案一:模拟温度传感器。
采用热敏电阻,将温度值转换为电压值,经运算放大器放大后送A/D转换器将模拟信号变换为数字信号,再由单片机经过比较计算得到温度值。
优点:应用广泛,特别是工程领域,采用不同的热敏电阻,可实现低温到超高温的测量。
缺点:必须采用高速高位A/D转换器,系统复杂,成本高,还以引进非线性误差,得通过软件差值修正方案二:采用集成数字温度传感器DS18B20。
基于单片机的温度控制系统设计随着科技的不断进步,智能化的生活也变得越来越普遍。
其中,智能的温度控制系统是一个非常实用的设备,它可以根据环境温度的变化来自动调整空调、加热器等设备的工作状态,以达到节能、舒适的效果。
基于单片机的温度控制系统设计可以实现较高的精确度和灵活性,下面我们来了解一下相关内容。
1. 系统功能设计设计一个基于单片机的温度控制系统,通常需要实现以下功能:1)测量环境温度:通过温度传感器等组件,可以实时检测环境的温度值,并将其传输给单片机。
2)温度控制:根据温度传感器所测量到的温度值,系统可以控制空调、加热器等设备的开/关状态,以达到自动控制温度的目的。
3)温度调节:用户可以通过设定控制温度的上下限,调节系统控制设备的工作状态。
4)数据显示:将当前环境温度值、设定温度值、设备状态等信息以数码管或LCD等方式显示出来,方便用户实时了解系统状态。
2. 系统硬件设计基于单片机的温度控制系统硬件设计主要包括以下组件:1)主控单元:使用常见的单片机如STC89C51等,完成程序控制、数据处理等任务。
2)温度传感器:一般使用NTC/PTC热敏电阻或DS18B20数字温度传感器等。
3)电源供应:可以使用AC/DC变压器等供电方式,输出稳定的5V电压。
4)触发开关:在系统中需要设置一些开关来切换不同的模式,如手动模式和自动模式等。
5)驱动器和执行器:控制空调、加热器等各种执行器,如继电器等。
6)显示器:可以使用LED数码管、LCD等显示温度和状态信息。
3. 系统软件设计基于单片机的温度控制系统的软件设计,可以采用汇编语言和C语言等方式来实现,主要包括以下几方面内容:1)温度数据采集:通过采集温度传感器的数据,将其转换成数字信号进行处理。
2)控温算法设计:可以使用PID控制算法等方式,实现自动控制温度的效果。
3)显示控制:显示当前的温度值、设定温度、设备状态等信息,以方便用户了解当前的状态。
4)串口通信:可以设置串口通信,实现上位机控制或远程监控等功能。
基于51单片机的温度警报器的设计温度警报器是一种能够实时监测温度并在温度超过设定阈值时发出警报的装置。
本设计基于51单片机,通过温度传感器、LCD显示屏、蜂鸣器等元件实现温度监测和报警功能。
设计方案如下:1.硬件设计:a.温度传感器:选择一款常见的温度传感器,如DS18B20,通过数据线连接到单片机的GPIO口,实时获取温度数据。
b.LCD显示屏:使用16x2LCD显示屏,通过I2C接口与单片机连接,用于显示当前温度和报警信息。
c.蜂鸣器:选择一个合适的蜂鸣器,通过单片机的GPIO口控制,用于发出声音报警信号。
d.电源电路:为单片机和其他电路提供稳定的电源,可以选择直流电源或电池供电。
2.软件设计:a.初始化:对单片机进行初始化设置,包括IO口初始化、LCD初始化、温度传感器初始化等。
b.温度采集:通过温度传感器不断采集温度数据,并将其显示在LCD 屏幕上。
c.温度判断:获取当前温度值,并与设定的阈值进行比较。
如果高于阈值,进入报警状态。
d.报警处理:当温度超过设定阈值时,触发蜂鸣器发出声音报警信号,并在LCD上显示相应警告信息。
同时,可以选择触发其他动作,如发送短信或邮件通知。
e.报警解除:当温度恢复正常后,蜂鸣器停止报警,LCD屏幕上显示正常温度信息。
通过以上硬件和软件设计,我们可以实现一个基于51单片机的温度警报器。
该警报器能够实时监测环境温度,当温度超过设定阈值时,蜂鸣器会发出声音报警,并在LCD显示屏上显示相应报警信息。
当温度恢复正常后,报警器会自动停止报警,并显示正常温度信息。
除了基本的功能,还可以根据需求进行一些扩展。
比如,可以添加按钮控制来设置温度阈值,或者增加温度记录功能,实时记录温度变化并保存。
总之,基于51单片机的温度警报器设计具有可扩展性和实用性,可以满足不同环境的需求。
毕业设计报告(论文)报告(论文)题目:基于单片机的LCM1602液晶控制——温度与万年历显示设计作者所在系部:电子工程系作者所在专业:作者所在班级:作者姓名:作者学号:指导教师姓名:完成时间: 2011年 6 月 9 日院教务处制电子工程系毕业设计(论文)任务书指导教师:教研室主任:系主任:摘要论文的研究工作是以液晶屏显示技术为背景展开的,并且详细介绍了通过MCS-51单片机控制LCM1602液晶的显示情况,以软件形式对系统进行控制,使得系统控制更具灵活与方便。
本文在深入分析LCD显示技术的基础上,重点解析了LCM显示的单片机控制技术,以及LCD显示在各种电子显示中的优势,同时阐述了其在日常显示系统中的应用;并且以Proteus与Keil uVision4软件为基础,编写了MCS-51单片机对LCM1602显示控制的软件,绘制其原理图,并使用Proteus软件与Keil uVision4软件建立联合仿真。
论文主要论述了原理图各个模块的作用,控制软件的各个模块的编程。
关键词液晶显示技术LCM1602 MCS-51单片机Proteus Keil uVision4目录第1章绪论 (1)1.1课题背景及主要技术国内外研究概况 (1)1.2LCM1602显示控制系统简介 (2)1.3课题的建立以及本文完成的主要工作 (3)第2章开发工具软件简介 (4)2.1K EIL U V ISION4软件简介 (4)2.2P ROTEUS软件简介 (4)2.3K EIL U V ISION4与P ROTEUS软件联合仿真 (5)2.4小结 (5)第3章 LCD显示控制技术 (6)3.1LCD显示技术的发展 (6)3.2LCM1602显示控制技术及其体系结构 (7)3.2.1 LCM1602模块简介 (8)3.2.2 LCM1602模块内部结构 (9)3.2.3 LCM1602控制指令 (10)3.3小结 (12)第4章系统硬件概况 (13)4.1系统概况 (13)4.2功能模块 (13)4.2.1 MCS-51单片机最小系统模块 (14)4.2.2 温度采集模块 (14)4.2.3 蜂鸣器报警模块 (15)4.2.4 万年历调节设置模块 (16)4.2.5 LCM1602显示模块 (16)4.2.6 电源模块 (17)3.3小结 (17)第5章软件控制系统概况 (18)5.1程序流程概况 (18)5.2万年历显示控制模块 (18)5.2.1 流程图 (18)5.2.2 源程序代码 (19)5.3温度显示控制模块 (19)5.3.1 程序流程 (19)5.3.2 源程序代码 (19)5.3.3 主程序 (19)5.4小结 (20)第6章课题特点 (21)6.1LCM模块的应用 (21)6.2程序结构化与模块化设计 (21)6.3抗干扰技术 (21)第7章结论 (23)7.1调试联合仿真 (23)7.2仿真结果 (23)7.3小结 (23)致谢 (24)参考文献 (25)附录 (26)基于单片机的LCM1602液晶控制——温度与万年历显示设计第1章绪论1.1 课题背景及主要技术国内外研究概况自20世纪80年代起,显示设备经历着传统工艺的改良、新工艺的发展、成熟的优胜劣汰。
基于单片机的温度控制系统设计引言:随着技术的不断发展,人们对于生活质量的要求也越来越高。
在许多领域中,温度控制是一项非常重要的任务。
例如,室内温度控制、工业过程中的温度控制等等。
基于单片机的温度控制系统能够实现智能控制,提高控制精度,降低能耗,提高生产效率。
一、系统设计原理系统设计的原理是通过传感器检测环境温度,并将温度值传递给单片机。
单片机根据设定的温度值和当前的温度值进行比较,然后根据比较结果控制执行器实现温度控制。
二、硬件设计1.传感器:常见的温度传感器有NTC热敏电阻和DS18B20数字温度传感器。
可以根据具体需求选择适合的传感器。
2. 单片机:常见的单片机有ATmega、PIC等。
选择单片机时需要考虑性能和接口的需求。
3.执行器:执行器可以是继电器、电机、气动元件等。
根据具体需求选择合适的执行器。
三、软件设计1.初始化:设置单片机的工作频率、引脚输入输出等。
2.温度读取:通过传感器读取环境温度,并将温度值存储到变量中。
3.设定温度:在系统中设置一个目标温度值,可以通过按键输入或者通过串口通信等方式进行设置。
4.温度控制:将设定温度和实际温度进行比较,根据比较结果控制执行器的开关状态。
如果实际温度高于设定温度,执行器关闭,反之打开。
5.显示:将实时温度和设定温度通过LCD或者LED等显示出来,方便用户直观判断当前状态。
四、系统优化1.控制算法优化:可以采用PID控制算法对温度进行控制,通过调节KP、KI、KD等参数来提高控制精度和稳定性。
2.能耗优化:根据实际需求,通过设置合理的控制策略来降低能耗。
例如,在温度达到目标设定值之后,可以将执行器关闭,避免过多能量的消耗。
3.系统可靠性:在系统设计中可以考虑加入故障检测和自动切换等功能,以提高系统的可靠性。
总结:基于单片机的温度控制系统设计可以实现智能温度控制,提高生活质量和工作效率。
设计过程中需要考虑硬件和软件的设计,通过合理的算法和控制策略来优化系统性能,提高控制精度和稳定性。
TEMP_ZH EQU 24H ;实测温度值存放单元TEMPL EQU 25HTEMPH EQU 26HTEMP_TH EQU 27H ;高温报警值存放单元TEMP_TL EQU 28H ;低温报警值存放单元TEMPHC EQU 29H ;正、负温度值标记TEMPLC EQU 2AHTEMPFC EQU 2BHK1 EQU P1.4 ;查询按键K2 EQU P1.5 ;设置/调整键K3 EQU P1.6 ;调整键K4 EQU P1.7 ;确定键BEEP EQU P3.7 ;蜂鸣器RELAY EQU P1.3 ;指示灯LCD_X EQU 2FH ;LCD 字符显示位置LCD_RS EQU P2.0 ;LCD 寄存器选择信号 LCD_RW EQU P2.1 ;LCD 读写信号LCD_EN EQU P2.2 ;LCD 允许信号FLAG1 EQU 20H.0 ;DS18B20是否存在标志 KEY_UD EQU 20H.1 ;设定按键的增、减标志 DQ EQU P3.3 ;DS18B20数据信号ORG 0000HLJMP MAINORG 0030HMAIN: MOV SP,#60HMOV A,#00HMOV R0,#20H ;将20H~2FH 单元清零MOV R1,#10HCLEAR: MOV @R0,AINC R0DJNZ R1,CLEARLCALL SET_LCDLCALL RE_18B20START: LCALL RST ;调用18B20复位子程序JNB FLAG1,START1 ;DS1820不存在LCALL MENU_OK ;DS1820存在,调用显示正确信息子程序MOV TEMP_TH,#055H ;设置TH初值85度MOV TEMP_TL,#019H ;设置TL初值25度LCALL RE_18B20A ;调用暂存器操作子程序LCALL WRITE_E2 ;写入DS18B20LCALL TEMP_BJ ;显示温度标记JMP START2START1: LCALL MENU_ERROR ;调用显示出错信息子程序 LCALL TEMP_BJ ;显示温度标记SJMP $START2: LCALL RST ;调用DS18B20复位子程序JNB FLAG1,START1 ;DS18B20不存在MOV A,#0CCH ;跳过ROM匹配命令LCALL WRITEMOV A,#44H ;温度转换命令LCALL WRITELCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#0BEH ;读温度命令LCALL WRITELCALL READ ;调用DS18B20数据读取操作子程序LCALL CONVTEMP ;调用温度数据BCD 码处理子程序LCALL DISPBCD ;调用温度数据显示子程序LCALL CONV ;调用LCD显示处理子程序LCALL TEMP_COMP ;调用实测温度值与设定温度值比较子程序LCALL PROC_KEY ;调用键扫描子程序SJMP START2 ;循环;*************************** 键扫描子程序*****************************PROC_KEY:JB K1,PROC_K1LCALL BEEP_BLJNB K1,$MOV DPTR,#M_ALAX1MOV A,#1LCALL LCD_PRINTLCALL LOOK_ALARMJB K3,$LCALL BEEP_BLJMP PROC_K2PROC_K1: JB K2,PROC_ENDLCALL BEEP_BLJNB K2,$MOV DPTR,#RST_A1MOV A,#1LCALL LCD_PRINTLCALL SET_ALARMLCALL RE_18B20 ;将设定的TH,TL值写入DS18B20LCALL WRITE_E2PROC_K2: LCALL MENU_OKLCALL TEMP_BJPROC_END:RET;*************************** 设定温度报警值TH、TL ***************************SET_ALARM:LCALL LOOK_ALARMAS0: JB K1,AS00LCALL BEEP_BLJNB K1,$CPL 20H.1 ;UP/DOWN 标记AS00: JB 20H.1,ASZ01 ;20H.1=1,增加JMP ASJ01 ;20H.1=0,减小ASZ01: JB K2,ASZ02 ;TH值调整(增加)LCALL BEEP_BLINC TEMP_THMOV A,TEMP_THCJNE A,#120,ASZ011MOV TEMP_TH,#0ASZ011: LCALL LOOK_ALARMLCALL DELAYJMP ASZ01ASZ02: JB K3,ASZ03 ;TL值调整(增加) LCALL BEEP_BLINC TEMP_TLMOV A,TEMP_TLCJNE A,#99,ASZ021MOV TEMP_TL,#00HASZ021: LCALL LOOK_ALARMMOV R5,#10LCALL DELAYJMP ASZ02ASZ03: JB K4,AS0 ;确定调整LCALL BEEP_BLJNB K4,$RETASJ01: JB K2,ASJ02 ;TH值调整(减少) LCALL BEEP_BLDEC TEMP_THMOV A,TEMP_THCJNE A,#0FFH,ASJ011ASJ011: LCALL LOOK_ALARMMOV R5,#10LCALL DELAYJMP AS0ASJ02: JB K3,ASJ03 ;TL值调整(减少)LCALL BEEP_BLDEC TEMP_TLMOV A,TEMP_TLCJNE A,#0FFH,ASJ021JMP ASJ022ASJ021: LCALL LOOK_ALARM ;MOV R5,#10LCALL DELAYJMP AS0ASJ022: CPL 20H.1JMP ASZ01ASJ03: JMP ASZ03RETRST_A1: DB " SET ALERT CODE " ,0;*********************** 实测温度值与设定温度值比较子程序**********************TEMP_COMP:MOV A,TEMP_THSUBB A,TEMP_ZH ;减数>被减数,则JC CHULI1 ;借位标志位C=1,转 MOV A,TEMPFCCJNE A,#0BH,COMPSJMP CHULI2COMP: MOV A,TEMP_ZHSUBB A,TEMP_TL ;减数>被减数,则JC CHULI2 ;借位标志位C=1,转MOV DPTR,#BJ5LCALL TEMP_BJ3CLR RELAY ;点亮指示灯RETCHULI1: MOV DPTR,#BJ3LCALL TEMP_BJ3SETB RELAY ;熄灭指示灯LCALL BEEP_BL ;蜂鸣器响RETCHULI2: MOV DPTR,#BJ4LCALL TEMP_BJ3SETB RELAY ;熄灭指示灯LCALL BEEP_BL ;蜂鸣器响RET;-----------------------------------------TEMP_BJ3: MOV A,#0CEHLCALL WCOMMOV R1,#0MOV R0,#2BBJJ3: MOV A,R1MOVC A,@A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ3RETBJ3: DB ">H"BJ4: DB "<L"BJ5: DB " !";;**************************** 显示温度标记子程序***************************TEMP_BJ: MOV A,#0CBHLCALL WCOMMOV DPTR,#BJ1 ;指针指到显示消息MOV R1,#0MOV R0,#2BBJJ1: MOV A,R1MOVC A,@A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ1RETBJ1: DB 00H,"C";******************************** 显示正确信息子程序***************************MENU_OK: MOV DPTR,#M_OK1 ;指针指到显示消息MOV A,#1 ;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_OK2 ;指针指到显示消息MOV A,#2 ;显示在第一行LCALL LCD_PRINTRETM_OK1: DB " DS18B20 OK ",0M_OK2: DB " TEMP: ",0;******************************** 显示出错信息子程序***************************MENU_ERROR:MOV DPTR,#M_ERROR1 ;指针指到显示消息MOV A,#1 ;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_ERROR2 ;指针指到显示消息1MOV A,#2 ;显示在第一行LCALL LCD_PRINTRETM_ERROR1: DB " DS18B20 ERROR ",0M_ERROR2: DB " TEMP: ---- ",0;****************************DS18B20复位子程序*****************************RST: SETB DQNOPCLR DQMOV R0,#6BH ;主机发出延时复位低脉冲MOV R1,#04HTSR1: DJNZ R0,$MOV R0,#6BHDJNZ R1,TSR1SETB DQ ;拉高数据线NOPNOPNOPMOV R0,#32HTSR2: JNB DQ,TSR3 ;等待DS18B20回应DJNZ R0,TSR2JMP TSR4 ; 延时TSR3: SETB FLAG1 ; 置1标志位,表示DS1820存在JMP TSR5TSR4: CLR FLAG1 ; 清0标志位,表示DS1820不存在 JMP TSR7TSR5: MOV R0,#06BHTSR6: DJNZ R0,$ ; 时序要求延时一段时间TSR7: SETB DQRET;************************ DS18B20暂存器操作子程序***************************RE_18B20:JB FLAG1,RE_18B20ARETRE_18B20A:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEWR_SCRAPD:MOV A,#4EH ;写暂器LCALL WRITEMOV A,TEMP_TH ;TH(报警上限)LCALL WRITEMOV A,TEMP_TL ;TL(报警下限)LCALL WRITEMOV A,#7FH ;12位精度LCALL WRITERET;************************ 复制暂存器子程序*******************************WRITE_E2:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#48H ;把暂存器里的温度报警值拷贝到EEROMLCALL WRITERET;*********************** 重读EEROM子程序********************************READ_E2:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#0B8H ;把EEROM里的温度报警值拷贝回暂存器LCALL WRITERET;************************ 将自定义字符写入LCD的CGRAM中*********************STORE_DATA:MOV A,#40HLCALL WCOMMOV R2,#08HMOV DPTR,#D_DATAMOV R3,#00HS_DATA: MOV A,R3MOVC A,@A+DPTRLCALL WDATA ;写入数据INC R3DJNZ R2,S_DATARETD_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H;*********************** DS18B20数据写入操作子程序************************WRITE: MOV R2,#8 ;一共8位数据CLR CWR1: CLR DQ ;开始写入DS18B20总线要处于复位(低)状态MOV R3,#07DJNZ R3,$ ;总线复位保持16微妙以上RRC A ;把一个字节DATA 分成8个BIT 环移给CMOV DQ,C ;写入一位MOV R3,#3CHDJNZ R3,$ ;等待100微妙SETB DQ ;重新释放总线NOPDJNZ R2,WR1 ;写入下一位SETB DQRET;********************** DS18B20数据读取操作子程序**************************READ: MOV R4,#4 ;将温度低位、高位、TH、TL从DS18B20中读出MOV R1,#TEMPL ;存入25H、26H、27H、28H单元RE00: MOV R2,#8RE01: CLR CYSETB DQNOPNOPCLR DQ ;读前总线保持为低NOPNOPNOPSETB DQ ;开始读总线释放MOV R3,#09 ;延时18微妙DJNZ R3,$MOV C,DQ ;从DS18B20总线读得一位MOV R3,#3CHDJNZ R3,$ ;等待100微妙RRC A ;把读得的位值环移给ADJNZ R2,RE01 ;读下一位MOV @R1,AINC R1DJNZ R4,RE00RET;************************ 温度值BCD 码处理子程序*************************CONVTEMP: MOV A,TEMPH ;判温度是否零下ANL A,#08HJZ TEMPC1 ;温度零上转CLR CMOV A,TEMPL ;二进制数求补(双字节)CPL A ;取反加1ADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,AMOV TEMPHC,#0BH ;负温度标志MOV TEMPFC,#0BHSJMP TEMPC11TEMPC1: MOV TEMPHC,#0AH ;正温度标志MOV TEMPFC,#0AHTEMPC11: MOV A,TEMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FH ;乘0.0625MOV DPTR,#TEMPDOTTABMOVC A,@A+DPTRMOV TEMPLC,A ;TEMPLC LOW=小数部分 BCDMOV A,TEMPL ;整数部分ANL A,#0F0H ;取出高四位SWAP AMOV TEMPL,AMOV A,TEMPH ;取出低四位ANL A,#0FHSWAP AORL A,TEMPL ;重新组合MOV TEMP_ZH,ALCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHC ;TEMPHC LOW = 十位数BCDMOV TEMPHC,AMOV A,TEMPLANL A,#0FHSWAP A ;TEMPLC HI = 个位数BCDORL A,TEMPLCMOV TEMPLC,AMOV A,R4JZ TEMPC12ANL A,#0FHSWAP AMOV R4,AMOV A,TEMPHC ;TEMPHC HI = 百位数BCDANL A,#0FHORL A,R4MOV TEMPHC,ATEMPC12: RET;************************ 二-十进制转换子程序*****************************HEX2BCD1: MOV B,#064HDIV ABMOV R4,AMOV A,#0AHXCH A,BDIV ABSWAP AORL A,BRETTEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H ; 小数部分码表DB 05H,05H,06H,06H,07H,08H,08H,09H;********************** 查询温度报警值子程序***************************LOOK_ALARM: MOV DPTR,#M_ALAX2 ;指针指到显示信息区MOV A,#2 ;显示在第二行LCALL LCD_PRINTMOV A,#0C6HLCALL TEMP_BJ1MOV A,TEMP_TH ;加载TH数据MOV LCD_X,#3 ;设置显示位置LCALL SHOW_DIG2H ;显示数据MOV A,#0CEHLCALL TEMP_BJ1MOV A,TEMP_TL ;加载TL数据MOV LCD_X,#12 ;设置显示位置LCALL SHOW_DIG2L ;显示数据RETM_ALAX1: DB " LOOK ALERT CODE",0M_ALAX2: DB "TH: TL: ",0TEMP_BJ1: LCALL WCOMMOV DPTR,#BJ2 ;指针指到显示信息区 MOV R1,#0MOV R0,#2BBJJ2: MOV A,R1MOVC A,@A+DPTRLCALL WDATADJNZ R0,BBJJ2RETBJ2: DB 00H,"C";************************** LCD显示子程序**********************************SHOW_DIG2H: MOV B,#100DIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BMOV A,#0AHXCH A,BDIV ABADD A,#30HINC LCD_XPUSH BMOV B,LCD_XLCALL LCDP2INC LCD_XMOV A,BMOV B,LCD_XADD A,#30HLCALL LCDP2RETSHOW_DIG2L: MOV B,#100DIV ABMOV A,#0AHXCH A,BDIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BINC LCD_XMOV A,BMOV B,LCD_XADD A,#30HLCALL LCDP2RET;************************ 显示区BCD 码温度值刷新子程序**********************DISPBCD: MOV A,TEMPLCANL A,#0FHMOV 70H,A ;小数位MOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,A ;个位MOV A,TEMPHCANL A,#0FHMOV 72H,A ;十位MOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,A ;百位DISPBCD2: RET;*************************** LCD 显示数据处理子程序*************************CONV: MOV A,73H ;加载百位数据MOV LCD_X,#6 ;设置位置CJNE A,#1,CONV1JMP CONV2CONV1: CJNE A,#0BH,CONV11MOV A,#"-" ;"-"号显示JMP CONV111CONV11: MOV A,#" " ;"+"号不显示CONV111: MOV B,LCD_XLCALL LCDP2JMP CONV3CONV2: LCALL SHOW_DIG2 ;显示数据CONV3: INC LCD_XMOV A,72H ;十位LCALL SHOW_DIG2INC LCD_XMOV A,71H ;个位LCALL SHOW_DIG2INC LCD_XMOV A,#'.'MOV B,LCD_XLCALL LCDP2MOV A,70H ;加载小数点位INC LCD_X ;设置显示位置LCALL SHOW_DIG2 ;显示数据RET;*************************** 第二行显示数字子程序*************************SHOW_DIG2:ADD A,#30HMOV B,LCD_XLCALL LCDP2RET;*************************** 第二行显示数字子程序*************************LCDP2: PUSH ACCMOV A,B ;设置显示地址ADD A,#0C0H ;设置LCD的第二行地址LCALL WCOM ;写入命令POP ACC ;由堆栈取出ALCALL WDATA ;写入数据RET;*************************** 对LCD 做初始化设置及测试*************************SET_LCD: CLR LCD_ENLCALL INIT_LCD ;初始化 LCDLCALL STORE_DATA ;将自定义字符存入LCD的CGRAM RET;****************************** LCD初始化***********************************INIT_LCD: MOV A,#38H ;2行显示,字形5*7点阵LCALL WCOMLCALL DELAY1MOV A,#38HLCALL WCOMLCALL DELAY1MOV A,#38HLCALL WCOMLCALL DELAY1MOV A,#0CH ;开显示,显示光标,光标不闪烁 LCALL WCOMLCALL DELAY1MOV A,#01H ;清除 LCD 显示屏LCALL WCOMLCALL DELAY1RET;***************************** 清除LCD的第一行字符**************************CLR_LINE1:MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOMMOV R0,#24 ;设置计数值C1: MOV A,#' ' ;载入空格符至LCDLCALL WDATA ;输出字符至LCDDJNZ R0,C1 ;计数结束RET;************************* LCD的第一行或第二行显示字符**********************LCD_PRINT:CJNE A,#1,LINE2 ;判断是否为第一行LINE1: MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOM ;写入命令LCALL CLR_LINE ;清除该行字符数据MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOM ;写入命令JMP FILLLINE2: MOV A,#0C0H ;设置 LCD 的第二行地址LCALL WCOM ;写入命令LCALL CLR_LINE ;清除该行字符数据MOV A,#0C0H ;设置 LCD 的第二行地址LCALL WCOMFILL: CLR A ;填入字符MOVC A,@A+DPTR ;由消息区取出字符CJNE A,#0,LC1 ;判断是否为结束码RETLC1: LCALL WDATA ;写入数据INC DPTR ;指针加1JMP FILL ;继续填入字符RET;*************************** 清除1行LCD 的字符****************************CLR_LINE: MOV R0,#24CL1: MOV A,#' 'LCALL WDATADJNZ R0,CL1RETDE: MOV R7,#250DJNZ R7,$RET;**************************** LCD 间接控制方式命令写入*************************WCOM: MOV P0,A ;写入命令CLR LCD_RS ;RS=L,RW=L,D0-D7=指令码,E=高脉冲 CLR LCD_RWSETB LCD_ENLCALL DELAY1CLR LCD_ENRET;**************************** LCD 间接控制方式数据写入*************************WDATA: MOV P0,A ;写入数据SETB LCD_RSCLR LCD_RWSETB LCD_ENLCALL DELCALL DERET;************************** 在LCD的第一行显示字符**************************LCDP1: PUSH ACCMOV A,B ;设置显示地址ADD A,#80H ;设置LCD的第一行地址LCALL WCOM ;写入命令POP ACC ;由堆栈取出ALCALL WDATA ;写入数据RET;****************************** 声光报警子程序*******************************BEEP_BL: MOV R6,#100BL2: LCALL DEX1CPL BEEPCPL RELAYDJNZ R6,BL2MOV R5,#10RETDEX1: MOV R7,#180DE2: NOPDJNZ R7,DE2RET;****************************** 延时子程序*******************************DELAY: MOV R6,#50DL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1DJNZ R5,DELAYRETDELAY1: MOV R6,#25 ;延时5毫秒DL2: MOV R7,#100DJNZ R7,$DJNZ R6,DL2RETEND。
目录摘要 (I)ABSTRACT (II)1 绪论 (1)1.1选题的背景 (1)1.2课题研究的目的和意义 (1)1.3本文的结构 (1)2 系统总体方案设计 (1)2.1总体方案设计 (2)2.2部分模块方案选择 (3)2.2.1单片机的选择 (3)2.2.2温度检测方式的选择 (3)2.2.3显示部分的选择 (4)2.2.4电源模块的选择 (4)3 硬件电路的设计 (4)3.1 硬件电路设计软件 (4)3.2系统整体原理图 (5)3.3单片机最小系统电路 (6)3.4单片机的选型 (7)3.5温度测量模块 (8)3.5.1 DS18B20概述 (8)3.5.2 DS18B20测温工作原理 (11)3.5.3 DS18B20温度传感器与单片机的接口电路 (12)3.6 显示模块 (13)3.7 按键以及无线遥控模块 (15)3.7.1按键的相关知识 (15)3.7.2 5伏带解码四路无线接收板模块 (16)3.8 报警及指示灯模块 (18)3.9 电源模块 (19)4 系统软件设计及仿真部分 (20)4.1软件设计的工具 (20)4.1.1程序编写软件 (20)4.1.2仿真软件 (21)4.2各模块对应的软件设计 (22)4.2.1显示模块的程序 (22)4.2.2温度测量的程序 (26)4.2.3报警系统程序 (32)4.2.4按键程序 (33)4.2.5总体程序 (35)5 实物制作 (37)5.1电源部分 (37)5.2单片机最小系统部分 (37)5.3 总体实物 (37)6 总结 (38)7 致谢 (39)参考文献 (40)附录一 (41)附录二 (49)基于单片机的温度测量系统摘要随着测温系统的极速的发展,国外的测量系统已经很成熟,产品也比较多。
近几年来,国内也有许多高精度温度测量系统的产品,但是对于用户来说价格较高。
随着市场的竞争越来越激烈,现在企业发展的趋势是如何在降低成本的前提下,有效的提高生产能力。
基于51单片机的数字温度计设计数字温度计是一种广泛使用的电子测量设备,通过传感器将温度转化为数字信号,并显示出来。
本文将介绍基于51单片机的数字温度计的设计。
该设计将使得使用者能够准确、方便地测量温度,并实时显示在液晶显示屏上。
1. 硬件设计:- 传感器选择:在设计数字温度计时,我们可以选择使用NTC(负温度系数)热敏电阻或者DS18B20数字温度传感器作为温度传感器。
这里我们选择DS18B20。
- 信号转换:DS18B20传感器是一种数字传感器,需要通过单总线协议与51单片机进行通信。
因此,我们需要使用DS18B20专用的驱动电路,将模拟信号转换为数字信号。
- 51单片机的选择:根据设计要求选择合适的51单片机,如STC89C52、AT89S52等型号。
单片机应具备足够的IO口来与传感器和液晶显示屏进行通信,并具备足够的计算和存储能力。
- 显示屏选择:为了实时显示温度,我们可以选择使用1602型字符液晶显示屏。
该显示屏能够显示2行16个字符,足够满足我们的需求。
通过与51单片机的IO口连接,我们可以将温度数据显示在屏幕上。
2. 软件设计:- 采集温度数据:通过51单片机与DS18B20传感器进行通信,采集传感器传输的数字温度数据。
通过解析传感器发送的数据,我们可以获得当前的温度数值。
- 数据处理:获得温度数据后,我们需要对其进行处理。
例如,可以进行单位转换,从摄氏度到华氏度或者开尔文度。
同时,根据用户需求,我们还可以对数据进行滤波、校准等处理。
- 显示数据:通过与液晶显示屏的连接,我们可以将温度数据显示在屏幕上。
可以使用51单片机内部的LCD模块库来控制液晶显示屏,显示温度数据以及相应的单位信息。
- 用户交互:可以设置一些按键,通过与51单片机的IO口连接,来实现用户与数字温度计的交互。
例如,可以设置一个按钮来进行温度单位的切换,或者设置一个按钮来启动数据保存等功能。
3. 功能拓展:- 数据存储:除了实时显示当前温度,我们还可以考虑增加数据存储功能。
基于单片机的温度控制系统设计摘要:这次综合设计,主要是设计一个温度控制系统,用STC89C52单片机控制,用智能温度传感器DS18B20对温度进行采集,用LCD1602液晶显示屏将采集到的温度显示出来。
系统可以有效的将温度控制在设定的范围内。
如果实际温度超出了控制范围,则系统会有自动的提示信号,并且相应的继电器会动作。
我们的实际生活离不开对温度的控制,在很多情况下我们都要对我们所处的环境进行温度检测,然后通过一定的措施进行调节,从而达到我们自己想要的温度,使我们的生活环境更加适宜。
关键字:单片机;液晶显示屏;温度传感器;继电器;提示信号Abstract:This integrated design is the design of a temperature control system. A smart temperature sensor DS18B20 is used to collect temperature and a LCD1602 Liquid Screen is used to display the collected temperature. The system controlled by STC89C52 can effectively control the temperature within the setting limits. If the actual temperature exceeds the setting range, the system will automatically give signal, and the corresponding Relay will take related actions. It is necessary for us to control the temperature because in many situations the temperature around us is not proper for us. So we need to detect it and take some actions to adjust it to the temperature we want to make the environment around us better.Key Words:DS18B20;LCD1602;STC89C52;Relay;Signal引言目前,测控系统在工业生产中起着把关者和指导者的作用,它从生产现场到各种参数的获取,运用科学规律和系统工程的做法,综合有效地利用各种先进技术,通过自动手段和装备,使每个生产环节得到优化,进而保证生产规范化,提高产品质量,降低成本,满足需要,保证安全生产。
课设报告—基于单片机的温度检测报警一、引言随着科技的不断发展,单片机技术在各个领域得到了广泛应用。
本文将介绍一种基于单片机的温度检测报警系统。
该系统能够实时监测环境温度,并在温度超过设定阈值时发出报警信号,以保证环境的安全和稳定。
二、系统设计该系统主要由温度传感器、单片机、报警器和显示器等组成。
温度传感器负责实时采集环境温度数据,传输给单片机进行处理。
单片机根据设定的温度阈值,判断是否超过安全范围,并控制报警器发出声音或光信号。
同时,单片机还可以将温度数据显示在显示器上,方便用户实时了解环境温度情况。
三、硬件设计1. 温度传感器:选择合适的温度传感器进行温度采集。
常用的温度传感器有NTC热敏电阻和DS18B20数字温度传感器等,可根据具体需求选择适合的传感器。
2. 单片机:选择适合的单片机进行数据处理和控制。
常用的单片机有STC系列、AVR系列和PIC系列等,可根据个人熟悉程度和项目需求选择合适的单片机。
3. 报警器:选择适合的报警器进行声音或光信号发出。
常用的报警器有蜂鸣器和LED灯等,可根据项目需求选择合适的报警器。
4. 显示器:选择适合的显示器进行温度数据的显示。
常用的显示器有LCD液晶显示器和LED数码管等,可根据项目需求选择合适的显示器。
四、软件设计1. 温度采集:通过单片机的AD转换功能,将模拟温度信号转换为数字信号进行处理。
根据传感器的特性和转换公式,将采集到的数字信号转换为实际温度值。
2. 温度比较:将采集到的温度值与设定的阈值进行比较。
若温度超过阈值,则触发报警信号;若温度在安全范围内,则不进行任何操作。
3. 报警控制:当温度超过阈值时,单片机控制报警器发出声音或光信号,提醒用户温度异常。
4. 数据显示:单片机将采集到的温度数据显示在显示器上,方便用户实时了解环境温度情况。
五、系统应用该系统可以广泛应用于各个领域,如工业生产、农业温室、医疗设备等。
在工业生产中,可以用于监测机器设备的温度,及时发现异常情况并采取措施,保证生产安全和设备稳定性。
目录第1章硬件设计 (2)1.1 AT89C51单片机介绍 (2)1.2 DS18B20温度传感器介绍 (3)1.3 液晶显示器LCD1602介绍 (4)2章软件设计 (5)2.1 主程序 (5)2.2 读出温度子程序 (5)2.3 温度转换命令子程序 (5)2.4 计算温度子程序 (6)2.5 显示数据刷新子程序 (6)第3章调试结果及说明 (7)3.1 软件仿真 (7)参考文献 (8)心得体会 (8)第1章硬件设计1.1 AT89C51单片机介绍AT89C51 是美国ATMEL公司生产的低功耗,高性能CMOS型8位单片机,片内含4Kbytes 的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。
它集Flash ROM程序存储器,并支持可在线编程(ISP)功能;另一方面,由于价格低、因而被广泛应用于许多高性价比的场合,如工业控制、消费电子等各种控制领域,对于简单的测温系统而言,它已经足够。
单片机A T89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
设计中采用89C51单片机。
其主要特性如下:➢与MCS-51产品指令系统完全兼容;➢4K字节可编程闪烁存储器;➢1000擦写周期;➢ 4.0~5.5V工作电压范围;➢全静态工作:0Hz-33MHz;➢程序存储器具有3级加密保护;➢128*8位内部RAM;➢32可编程I/O线;➢两个16位定时器/计数器;➢6个中断源和2个优先级;➢可编程全双工串行通道;➢低功耗的闲置和掉电模式;➢看门狗(WDT)及双数据指针;➢具有JTAG接口,可方便地在线编程或在系统编程。
A T89C51 单片机为40引脚双列直插式封装。
其引脚排列和逻辑符号如图1.1 所示。
各引脚功能简单介绍如下:图1.1 89C51引脚图➢VCC:供电电压。
➢GND:接地。
➢P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
➢P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
➢P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH 编程和校验时接收高八位地址信号和控制信号。
➢P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为A T89C51的一些特殊功能口:P3.0 RXD(串行输口);P3.1TXD(串行输出口) ;P3.2 INT0(外部中断0);P3.3 INT1(外部中断1) ;P3.4 T0(定时器0外部输入);P3.5 T1(定时器1外部输入);P3.6 WR (外部数据存储器写选通);P3.7 RD (外部数据存储器读选通)。
同时P3口同时为闪烁编程和编程校验接收一些控制信号。
➢RST:复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
➢ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
➢PSEN:外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN 两次有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
➢EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
➢XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
➢XTAL2:来自反向振荡器的输出。
1.2 DS18B20温度传感器介绍DS18B20是美国DALLAS半导体公司推出的一款智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别在93.75~750ms内完成9~12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需一根线读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无须额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
它在测温精度、转换时间、传输距离、分辨率等方面都给用户的使用带来了方便,效果也令人满意。
其主要特点如下:➢独特的单线接口方式:DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
➢DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
➢可用数据线供电,电压范围:+3.0~+5.5V。
➢测温范围:-55℃~+125℃,固有测温分辨率为0.5℃。
➢ 通过编程可实现9~12位的数字读书方式。
➢ 用户可自设非易失性的报警上下限值。
➢ 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
➢ 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作. DS18B20的管脚排列、各种封装形式如图 1.2 所示:图1.2 DS18B20的外形及管脚排列 各引脚功能简单介绍如下:➢ GND :地信号。
➢ DQ :数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
➢ VDD :可选择的VDD 引脚。
当工作于寄生电源时,此引脚必须接地。
1.3 液晶显示器LCD1602介绍液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,下图是1602的内部显址。
G ND DQV ddNNNDS18B20P TSOC1 2 3 4 65 N CNCV ddNCNCNC1 2 3 4 6 5 D QG N7 8DS18B20Z 8-PINSOIC(150-MIL)2章 软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序显示子程序等。
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s 进行一次。
读出温度子程序可以读出RAM 中的9字节,然后通过温度转换命令子程序发出温度转换开始命令,计算温度子程序进行BCD 码的转换运算,并进行温度值正负的判定,最后显示数据刷新子程序对显示数据进行刷新。
2.1 主程序图2.1 主程序流程图 2.2 读出温度子程序读出温度子程序的主要功能是读出RAM 中的9字节,在读出时需进行CRC 校验,校验有错时,不进行温度数据的改写。
其程序流程图如图2.2所示。
2.3 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms ,在本程序设计中采用1s 显示程序延时法等待转换的完成。
温度转换命令子程序流程图,如图2.3所示。
图2.3 温度转换子程序流程图 图2.4 计算温度子程序流程图2.4 计算温度子程序计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图2.4所示。
2.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作。
当最高显示位为0 时,将符号显示位移入下一位,程序流程图如图2.5 所示。
第3章调试结果及说明3.1 软件仿真软件调试先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度子程序、显示数据刷新等子程序的编程及调试。
最后用Proteus摆好元器件,连好线,导入hex文件,结果如下图所示。
参考文献[1] 曾屹.单片机原理与应用[M].湖南:中南大学出版社,2009[2] 韩志军,刘新民.数字温度传感器DS18B20 及其应用[J] .南京工程学院学报:自然科学版,2003心得体会本次课设的任务是采用A T89C51单片机作控制器,温度传感器选用DS18B20来设计数字温度计,系统由3个模块组成:主控制器、测温电路及显示电路。
主控制器由单片AT89C51实现,测温电路由温度传感器DS18B20实现,显示电路由LCD1602液晶显示器直读显示。
通过本次课设使我学会了很多东西,通过自己找材料,向老师答疑,与同学讨论,自己修改,研究,最终完成本次课设。
在这个过程中,不但使我对单片机课程所学的知识有了更深入的了解,而且还培养了我的自学能力。
有些不懂的问题通过向老师请教得到解决,使我受益匪浅。
课设的过程是艰辛的,但是收获是巨大的。
首先,我再一次的加深巩固了对已有的知识的理解及认识;其次,我第一次将课本知识运用到了实际设计,使得所学知识在更深的层次上得到了加深。
再次,因为这次课程设计的确在某些方面存有一定难度,这对我来讲都是一种锻炼,培养了我自学、查阅搜集资料的能力;再有,计算操作工程中,我们曾经面临过失败、品味过茫然,但是最终我还是坚持下来了,这就是我意志、耐力和信念上的胜利,在今后的日子里,它必将成为我的宝贵财富。