单片机课设.docx
- 文档编号:9981771
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:34
- 大小:878.33KB
单片机课设.docx
《单片机课设.docx》由会员分享,可在线阅读,更多相关《单片机课设.docx(34页珍藏版)》请在冰豆网上搜索。
单片机课设
唐山学院
单片机课程设计
题目数字温度计
系(部)机电工程系
班级09测控1班
姓名刘海营
学号4090107112
指导教师吴铮
2012年2月27日至3月9日共2周
2012年3月9日
单片机原理及应用课程设计任务
一、设计题目、内容及要求
设计题目:
数字温度计设计
设计内容及要求:
以AT89C51为主控芯片,以美国DALLAS公司推出的温度传感器DS18B20作为检测元件设计多功能数字温度计,要求具有以下功能:
(1)测量温度范围为-50到110摄氏度,测量精度误差在0.5摄氏度以内。
(2)将温度在显示器上显示出来,显示百位、十位、个位和小数点后一位。
(3)可以任意设定温度上下限报警值,当温度不在设定范围内时报警。
(4)其他功能,创新部分。
二、设计原始资料
Proteus,KEIL
三、要求的设计成果(课程设计说明书、设计实物、图纸等)
设计结果在计算机上能正确仿真;
设计说明书一份(包括硬件原理电路、源程序清单等)
四、进程安排
第一周周一:
资料收集,软件学习
周二:
硬件电路设计
周三:
利用proteus完成硬件电路绘制
周四:
分析并绘制程序流程
周五:
编写各部分应用程序
第二周周一:
完善应用程序
周二:
程序组合并调试
周三:
程序组合并调试
周四:
编写设计说明书
周五:
答辩
五、主要参考资料
1、何立民主编,单片机中级教程,北京航空航天大学出版社。
2、张毅刚主编,单片机原理与应用设计,电子工业出版社。
指导教师(签名):
教研室主任(签名):
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况及设计过程表现(20分)
课设答辩(20分)
设计成果(60分)
总成绩(100分)
提问
(答辩)
问题
情况
综
合
评
定
指导教师签名:
年月日
目录
引言………………………………………………………1
1.设计任务与要求…………………………………3
2.系统总体方案
2-1系统总体方案…………………………………3
2-2所选方案的思路………………………………3
2.2.1主控芯片………………………………………………3
2.2.2显示电路………………………………………………4
2.2.3报警温度调整电路…………………………………4
2.2.4报警电路………………………………………………4
2.2.5温度传感器…………………………………………4
2.3DS18B20温度传感器与单片机的接口电路………5
2.4系统整体硬件电路……………………………………6
3软件设计………………………………………………8
3.1主程序……………………………………………………9
3.2读温度子程序……………………………………………9
3.3报警温度调整子程序……………………………………10
3.4显示子程序………………………………………………11
4实验仿真………………………………………………13
4.1温度显示………………………………………………13
4.2报警温度调节……………………………………………15
5课程设计体会…………………………………………17
6设计结果及其不足与优点……………………………17
参考文献…………………………………………………18
源程序代码………………………………………………18
引言
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
由于单片机在工业控制领域的广泛应用,为使更多的业内人士、学生、爱好者,产品开发人员掌握单片机这门技术,于是产生单片机开发板,比较有名的例如电子人DZR-01A单片机开发板。
单片机由芯片内仅有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机和其他计算的总和,甚至比人类的数量还要多。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可…….....用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!
…….....它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机芯片
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?
很多高级的语言已经达到了可视化编程的水平为什么不用呢?
原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!
对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
1.设计任务与要求
1)基本范围-50℃-110℃
2)精度误差小于0.5℃
3)LED数码直读显示
4)扩展功能
5)可以任意设定上下限报警温度
2.系统总体方案
2-1温度计设计方案
直接使用数字温度传感器DS18B20来测温,显示电路采用动态扫描的方式来实现,电路简单,容易实现,节约成本。
2-2所选方案的思路
数字温度计电路设计总体设计方框图如图2.1所示,主控芯片采AT89C51,温度传感器采用DS18B20,用4位LED数码管以动态扫描方式实现温度显示,报警温度调整采用独立按键,报警电路由蜂鸣器和报警指示灯组成。
2.2.1主控芯片
AT89C51价格便宜、体积小,很适合便携手持式产品的设计,4个IO端口和2个外部中断完全能满足本设计的需要。
2.2.2显示电路
显示电路采用4位共阴LED数码管,从P0口输出段码,接470Ω上拉电阻,用P2口的P2.4-P2.7脚来输出数码管动态扫描位选信号。
2.2.3报警温度调整电路
采用独立键盘,分别用外部中断0和1来调整高温报警温度和低温报警温度,在中断中查询加减按键的动作来调整温度,进入中断后,清EA,然后将与中断1即P3.3脚相连的按键作为确定键使用。
2.2.4报警电路
采用蜂鸣器来发出报警声音,超高亮发光二极管作为报警指示灯,由于AT89C52的驱动能力较弱,所以蜂鸣器要加三极管驱动,报警灯外接上拉电阻,单片机用灌电流方式点亮它,可获得较高的亮度!
2.2.5温度传感器
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它可根据实际要求通过简单的编程实现9~12位的分辨率的设定。
DS18B20的性能特点如下:
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●可通过数据线供电,电压范围为3.0~5.5V;
●独特的单线接口,仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在一条线上,轻松实现传感器网络组建;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。
DS18B20内部高速暂存RAM为8字节的存储器,前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20温度转换得时间比较长,而且分辨率越高,所需要得温度数据转换时间越长。
具体得分辨率转换为相应精度得温度数值所需时间如表2-1所示。
我
们的设计采用12位精度,因此对18B20操作时要对时序根据表2-1来调整。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节中。
单片机可以通过单线接口读出该数据,读数据时低8位在先,高8位在后,数据格式以0.0625℃/LSB形式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表2-1DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转换时间
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
1、初始化:
单总线的所有处理均从初始化开始。
初始化过程是主机通过向作为从机的DS18B20芯片发一个具有一定时间宽度的初始化脉冲实现的。
初始化后,才可进行读写操作。
2、ROM操作命令:
总线主机检测到DS18B20的存在便可以发出ROM操作命令。
ROM操作命令如表2-2所示:
表2-2ROM操作命令
指令
代码
ReadROM(读ROM)
[33H]
MatchROM(匹配ROM)
[55H]
SkipROM(跳过ROM)
[CCH]
SearchROM(搜索ROM)
[F0H]
Alarmsearch(告警搜索)
[ECH]
3、存储器操作:
存储器操作命令如表2-3所示:
4、时序:
主机使用时间隙(timeslots)来读写DS18B20的数据位和写命令字的位。
2.3DS18B20温度传感器与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源;另一种是寄生电源供电方式。
本设计采用第一种供电方式,为保证在有效的DS18B20时钟周期内提供足够的电流,可在信号线与电源线之间接上拉电阻,接口电路如图2.2所示。
表2-3存储区操作命令
指令
代码
WriteScratchpad(写暂存存储器)
[4EH]
ReadScratchpad(读暂存存储器)
[BEH]
CopyScratchpad(复制暂存存储器)
[48H]
ConvertTemperature(温度变换)
[44H]
RecallEPROM(重新调用)
[B8H]
ReadPowersupply(读电源)
[B4H]
图2.1ds18b20与单片机接口电路
2.4系统整体硬件电路
系统整体硬件电路包括:
传感器数据采集电路,温度显示电路,上下限报警温度调整电路和报警电路,如图2-3所示。
图中有4个独立式按键可以分别调整温度计的上下限报警温度,蜂鸣器可以在被测温度超出上下限范围内时,发出报警鸣叫声音,同时报警指示灯超高亮发光二极管将被点亮。
图中画出来的是上电复位电路,实际电路将采用按健加上电复位电路,使用比较方便,在程序跑飞时,可以手动复位,这样就不用重启单片机电源,就可以实现复位。
显示电路采用动态扫描方式,这样不仅使用单片机端口较少,而且外围电路也比较简单。
图2.2系统整体硬件电路
3软件设计
系统程序主要包括主程序,读温度子程序,报警温度调整子程序和显示子程序。
3.1主程序
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,其程序流程如图3.1所示。
图3.1主程序流程图
3.2读温度子程序
读出温度子程序的主要功能是读出温度转换之后RAM中的前2个字节中暂存的温度值,其程序流程图如图3.2所示。
图3.2读温度流程图
3.3报警温度调整子程序
报警温度调整子程序主要是对按键的处理,具体流程如图3.3所示。
图3.3报警温度调整流程图
3.4显示子程序
显示子程序要先判断要显示的是18B20采集到的温度值还是报警温度值,再计算出温度值的百位(若温度值大于99°C)、十位和个位并扫描显示,如图3.4。
图3.4显示流程图
4实验仿真
4.1温度显示
由于18B20的测温范围是-55~125°C,所以当温度为负值时,第一位数码管用来显示温度的负号,如图2.3所示。
图2.3
当温度值的十位数字为0时,不显示,如图2.4所示。
图2.4
温度值为正且小于100°C时,第一位数码管也是用来显示符号,为正时不显示,如图2.5。
图2.5
当温度值大于等于100°C时,第一位数码管用来显示温度的百位数字,如图2.6。
图2.6
4.2报警温度调节
调节高温报警温度时,先按下高温调节按键,进入高温调节模式,此时4位数码管的第一位当报警温度小于100°C时不显示,大于等于100°C时显示百位数字,第二位显示报警温度的十位数字,第三位显示报警温度的个位,第四位显示“H”,表示处于高温报警温度调节状态。
按下加一键后报警温度值会加一并且数码管闪亮一次显示更新的高温报警温度值,按下减一键时执行同样操作。
直到按下确定键,才退出设定状态。
高温报警温度调节状态如图2.7所示。
调节低温报警温度时,先按下低温调节按键,进入低温调节模式,数码管显示和高温调节时相似,只是第四位显示“L”,表示处于低温报警温度调节状态。
按键操作也和高温调节时相同。
低温报警温度调节状态如图2.8所示。
在此值得一提的是低温调节按键和确认键是复用的,也就是说如果按下低温调节按键后再按一次,就会直接退出低温设定状态。
另外低温调节按键还具有关报警电路的功能,当所测温度值超出上下限报警温度时,蜂鸣器响同时报警指示灯亮,此时连续按下2次确认键即可关掉报警,再连续按下2次确认键就又进入了报警状态。
图2.7高温报警温度调节
图2.8低温报警调节
5课程设计体会
经过两周紧张忙碌的课程设计,我深刻的体会到了书到用时方恨少,很多东西理解的不深刻会给以后的学习和生活带来很大的麻烦,人生活在世上,要想有所收获,必须脚踏实地,认认真真,这样的决心自己也给自己下过,但是并没有怎么真正践行,真的深感惭愧。
当然在课设中也收获了很多不一样的东西,比如同学们的互相协作的精神和勇于探索的精神,其实我们要完整的干成一两件事,并不是简简单单的事情,成功并非偶然,当然坚持不懈是一切的基础,希望在以后的生活依然能勇往直前,勇攀高峰,再接再厉,争取收获属于自己的一片天地。
6设计结果的不足与优点
设计结果:
所设计的电路能够测出-50—110之间的温度值,并且可以任意设定报警的上下限值,可以应用于此类温度范围内的任何场所,使用方便,操作简单。
设计结果优点:
可以灵活设定温度的上下限值,来由报警电路报警。
复位电路采用手动复位,操作简便,容易实现。
设计缺陷:
有时候设定的值识别不太准确。
参考文献
[1]、何立民主编,单片机中级教程,北京航空航天大学出版社。
[2]、张毅刚主编,单片机原理与应用设计,电子工业出版社。
源程序代码
TEMPER_LEQU29H;温度低8位
TEMPER_HEQU28H;温度高8位
FLAG0EQU35H;温度调整状态标志
FLAG1EQU36H;是否检测到18b20标志位
FLAG2EQU37H;报警标志位
FLAG3EQU38H;高低温调整标志位
FLAG4EQU39H;闪烁标志位
F_BITEQU20H;符号位
A_BITEQU21H;数码管个位
B_BITEQU22H;数码管十位
X_BITEQU23H;小数位
H_TEMEQU24H;高温报警
L_TEMEQU25H;低温报警
DQBITP2.2;18B20数据线
ORG0000H
LJMPMAIN
ORG0003H
LJMPKEY_H
ORG0013H
LJMPKEY_L
ORG0050H
MAIN:
MOVSP,#57H
MOVTCON,#00H;定义中断方式
SETBEX0
SETBEX1
SETBEA
MOV24H,#35;送高温报警初值
MOV25H,#15;送低温报警初值
CLRFLAG2
MAIN0:
LCALLGET_TEMPER;读转换温度
MOVA,28H
ANLA,#0F0H
JZZHENG;判断符号位
CLRC
MOVA,29H
CPLA
ADDCA,#1
MOV29H,A
MOVA,28H
CPLA
JNCAAA
INCA
AAA:
MOV28H,A
MOVF_BIT,#10
AJMPBBB
ZHENG:
MOVF_BIT,#11
BBB:
MOVA,29H
ANLA,#0FH
MOVDPTR,#NUMTAB2;查表求得小数位值
MOVCA,@A+DPTR
MOVX_BIT,A
MOVA,29H
MOVC,40H
RRCA
MOVC,41H
RRCA
MOVC,42H
RRCA
MOVC,43H
RRCA
JBFLAG2,ABOVE;若报警标志位为1,关报警
CJNEA,24H,BUD;若报警标志位为0,则判断是否
BUD:
JCBELOW;报警
SETBP2.0
CLRP2.1
AJMPDDD
BELOW:
CJNEA,25H,BUD0
BUD0:
JNCABOVE
SETBP2.0
CLRP2.1
AJMPDDD
ABOVE:
CLRP2.0
SETBP2.1
DDD:
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机