单片机论文实习报告Word下载.docx
《单片机论文实习报告Word下载.docx》由会员分享,可在线阅读,更多相关《单片机论文实习报告Word下载.docx(42页珍藏版)》请在冰点文库上搜索。
进度安排
起止日期(或时间量)
设计内容(或预期目标)
备注
第1天
课题、安排介绍、分组;
课题介绍之后,收集、查阅资料方案论证、设计参数确定、系统整体设计
第2天~第7天
硬件设计:
利用Proteus6.9平台结合软件设计调试、仿真;
软件设计:
利用Wave6000或KeilC平台,程序设计、调试、仿真;
第8天~第9天
验收作品、答辩
第10天
撰写课程设计说明书
教研室
意见
年月日
系(部)主管领导意见
摘要
在科学技术不断发展的今天,温度的检测、控制应用于许多行业,随着电子工业的发展,数字仪表反应速度快、操作简单,对使用环境要求不高的优点,市场上逐渐出现越来越多的数字式温度计,实践表明,整个低功耗高精度的便携式数字式温度计使用方便,工作稳定,待机时间长,具有广阔的应用前景,并开始得到广泛应用。
本次课程设计基于STC89C系列单片机,利用DS18B20智能温度传感器设计一个数字式温度计,测量一路温度信号并用12864液晶屏显示实时温度,并用液晶绘图功能记录温度变化曲线。
设计方案可测量温度范围为:
-55——+125℃,精度为1/8℃,刷新频率为2Hz。
程序利用KeilC51V9.00uVision4编写,编译后生成*.HEX文件,通过ISP下载到自制的单片机开发板中进行调试。
利用的知识点主要有51单片机的定时器/计数器的使用,DS18B20的读写操作,12864液晶的文字和绘图显示功能。
关键词:
51单片机;
温度;
DS18B20;
LCD12864;
图形显示
绪论
在科学技术不断发展的今天,温度的检测、控制应用于许多行业,随着电子工业的发展,数字仪表反应速度快、操作简单,对使用环境要求不高的优点,市场上逐渐出现越来越多的数字式温度计,实践表明,整个低功耗高精度的便携式数字式温度计使用方便,工作稳定,待机时间长,具有广阔的应用前景,并开始得到广泛应用。
本设计方案基于STC89C系列单片机,利用DS18B20智能温度传感器设计一个数字式温度计,测量一路温度信号并用12864液晶屏显示实时温度,并用液晶绘图功能记录温度变化曲线。
此设计方案可测量温度范围为:
-55——+125℃,精度为1/8℃,并通过定时器产生50ms*10的中断,显示结果没0.5s刷新一次。
可以通过菜单设置温度告警上下限制,并带有传感器丢失告警。
当告警总开关打开,触发告警时,蜂鸣器发出1Hz告警声音,液晶屏显示对应告警类型。
此方案具有一定的实用性。
本文程序基于C语言编写,利用KeilC51V9.00uVision4编译。
软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,具有良好的可读性和可移植性。
本文并对单片机数字式温度计的设计原理的设计思想和软、硬件调试作了较为详细的论述。
第1章单片机的概述
1.1单片机的定义及发展史
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
同时集成诸如通讯接口、定时器,实时时钟等外围设备。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
事实上单片机是世界上数量最多的计算机。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
而个人电脑中也会有为数不少的单片机在工作。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作,单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。
1.2单片机的应用
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:
(1)在智能仪器仪表上的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。
采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。
例如精密的测量设备(功率计,示波器,各种分析仪)。
(2)在工业控制中的应用
用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,计算机联网构成二级控制系统等。
(3)在家用电器中的应用
可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。
(4)在计算机网络和通信领域中的应用
现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作随处可见的移动电话,集群移动通信。
(5)单片机在医用设备领域中的应用
单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
(6)在各种大型电器中的模块化应用
某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。
如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
如:
音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。
在大型电路中,这种模块化应用极大地缩小了体积,简化了电路,降低了损坏、错误率,也方便于更换。
此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。
1.3单片机最小系统的硬件设计方法
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:
单片机、晶振电路、复位电路。
图1.1单片机最小系统
第2章设计思路与实施方法
设计的课题为数字式温度计的设计,使用DS18B20智能温度传感器设计一个数字式温度计,测量一路温度信号用液晶屏显示实时温度并显示温度曲线,设计的思路及实施方法可总结为如下几点:
第一、利用的是晶振为11.0592MHz的STC89C52单片机,首先利用该单片机的定时器/计数器T0作为定时器,使其工作在方式1,计算初值每50ms产生一次定时溢出中断,最终定时500ms=50ms*10刷新一次结果;
第二、利用DS18B20智能温度传感器,DS18B20采用独特的单线接口仅需一个端口引脚与单片机进行通讯,单片机从DS18B20寄存器中直接读取温度;
第三、利用12864液晶屏显示实时温度,并用图形记录温度曲线;
第四、设置传感器初始化、最高和最低温度告警,触发告警后蜂鸣器发出1Hz告警声音,并在液晶屏上显示告警类型。
第五、在程序设计时,利用Keil软件编写了*.c程序并编译生成*.hex文件用于仿真;
第六、将编译好的*.hex下载到单片机中观察现象,调试程序,实现相功能完成相对任务。
第3章硬件设计
3.1关键元器件的相关参数
3.1.1STC89C52
(1)STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机的可擦除只读存储器可以反复擦除1,000,000次。
该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
外形及引脚排列如图所示:
图3.1STC89C52引脚及封装
主要特性:
1)与MCS-51兼容
2)8K字节可编程闪烁存储器
3)寿命:
1000000写/擦循环
4)数据保留时间:
10年
5)全静态工作:
0Hz-24MHz
6)三级程序存储器锁定
7)128×
8位内部RAM
8)32可编程I/O线
9)两个16位定时器/计数器
10)5个中断源
11)可编程串行通道
12)低功耗的闲置和掉电模式
13)片内振荡器和时钟电路
(2)管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,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口也可作为STC89C52的一些特殊功能口,如下表所示:
口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器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保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
(3)振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
(4)芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,STC89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
3.1.2DS18B2单线数字温度计
(1)独特的单线接口仅需一个端口引脚进行通讯
(2)简单的多点分布应用
(3)无需外部器件
(4)可通过数据线供电
(5)零待机功耗
(6)测温范围-55~+125℃,以0.5℃递增
(7)温度以9位数字量读出
(8)温度数字量转换时间200ms(典型值)
(9)用户可定义的非易失性温度报警设置
(10)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
(11)应用包括温度控制、工业系统、消费品、温度计或任何热感测系统
图3.2DS18B20引脚及封装
图3.3的方框图示出了DS1820的主要部件。
DS1820有三个主要数字部件:
1)64位激光ROM,2)温度传感器,3)非易失性温度报警触发器TH和TL。
器件用如下方式从单线通讯线上汲取能量:
在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。
DS1820也可用外部5V电源供电。
图3.3DS18B20方框图
DS1820依靠一个单线端口通讯。
在单线端口条件下,必须先建立ROM操作协议,才能进行存储器和控制操作。
因此,控制器必须首先提供下面5个ROM操作命令之一:
1)读ROM;
2)匹配ROM;
3)搜索ROM;
4)跳过ROM;
5)报警搜索。
这些命令对每个器件的激光ROM部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。
成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。
一条控制操作命令指示DS1820完成一次温度测量。
测量结果放在DS1820的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。
温度/数据关系如图所示:
图3.4温度/数据关系
DS1820是这样测温的:
用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。
计数器被预置到对应于-55℃的一个值。
如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。
同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。
然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。
斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。
这是通过改变计数器对温度每增加一度所需计数的的值来实现的。
因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。
DS1820内部对此计算的结果可提供0.5℃的分辨力。
温度以16bit带符号位扩展的二进制补码形式读出,表1给出了温度值和输出数据的关系。
数据通过单线接口以串行方式传输。
DS1820测温范围-55℃~+125℃,以0.5℃递增。
如用于华氏温度,必须要用一个转换因子查找表。
3.1.312864液晶显示屏
FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;
其显示分辨率为128×
64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×
4行16×
16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
主要特性:
(1)低电源电压(VDD:
+3.0--+5.5V)
(2)显示分辨率:
128×
64点
(3)内置汉字字库,提供8192个16×
16点阵汉字(简繁体可选)
(4)内置128个16×
8点阵字符
(5)2MHZ时钟频率
(6)显示方式:
STN、半透、正显
(7)驱动方式:
1/32DUTY,1/5BIAS
(8)视角方向:
6点
(9)背光方式:
侧部高亮白色LED,功耗仅为普通LED的1/5—1/10
(10)通讯方式:
串行、并口可选
(11)内置DC-DC转换电路,无需外加负压
(12)无需片选信号,简化软件设计
(13)工作温度:
0℃-+55℃,存储温度:
-20℃-+60℃
图3.512864方框图
数据传输过程
图3.6MPU写资料到ST7920(8位数据线模式)
第4章软件设计
4.1源程序
4.1.1主程序
#include<
REG52.H>
lcd12864.H>
ds18b20.H>
logo.H>
zb.H>
apple.H>
sbitbeep=P3^6;
sbitkey1=P2^0;
sbitkey2=P2^1;
sbitkey3=P2^2;
sbitkey4=P2^3;
ucharcount,xx=13,alarmx,alarmx1=1,ff,fA;
ucharmax=31,min=55;
uchartt[5];
//****************************************
//申明函数
voidkey();
//主程序初始化
voidinit()
{
init_lcd();
clrram_lcd();
TMOD=0x01;
TH0=0x4c;
TL0=0x00;
EA=0;
ET0=1;
TR0=1;
}
//显示开机画面
voidshow_logo()
uchari,j;
show_p(logo);
mdelay(1000);
for(i=0;
i<
128;
i++)
{
for(j=49;
j<
63;
j++)
disp_bit(i,j,2);
}
mdelay(1500);
//*****************************