以温度测量为主的多功能任务设计_第1页
以温度测量为主的多功能任务设计_第2页
以温度测量为主的多功能任务设计_第3页
以温度测量为主的多功能任务设计_第4页
以温度测量为主的多功能任务设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机原理应用课设计任务》课题:

以温度计为主的多功任务设计班级

电气3073

学号3072110303学生姓名指导教师

朱龙斌段卫平淮阴工学电子与电工程学院目

录的3求3求3法.5计5图路............................DS1820.77LED显示模块.89图14:......................................14结试23软试软试23结24献24一、课程设计的《单片机原理及应用》课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练在课程设计过程中在教师指导下运用工程的方法通过一个简单课题的设计练习可使学生通过综合的系统设计熟悉应用系统的设计过程设计要求完成的工作内容和具体的设计方法了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。通过课程设计,应能加强学生如下能力的培养:独立工作能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力;查阅图书资料、产品手册和各种工具书的能力;工程绘图的能力;编写技术报告和编制技术资料的能力。二、设计要求2.1总体要求独立完成设计任务绘制系统硬件总框图绘制系统原理电路图制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释;(5)制定编写调试方案,编写用户操作使用说明书(6)写出设计工作小结。对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,2.2具体要求本次工程实践主要以单片机为基础进行单片机软件编程目的是为了提高学生的软件编程和系统设计能力个设计系统包括两个部分件及软件部分,硬件部分已经制作成功学生只需要掌握其原理和焊接相应的元器件掌握元器件的辨别和元器件的作用以及应用场所即可外对所焊接的电路还需要进行仔细的检查判断是否有焊接错误的地方或者短路的地方对出现的异常情况要能够根据现象判别原因并具备解决问题的能力从而切实提高学生的硬件电子电路的分析、判断能力。软件编程是本次工程实践的重要环节在为期两周的工程实践中将占据主要时间,学生要完成的软件编程任务主要包括以下几点:熟悉KeilC51编程平台及Proteus仿真;编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调;编写、调试流水灯(循环显示)程序并进行软硬件联调;编写、调试键盘扫描子程序并进行软硬件联调;编写、调试数码管动态扫描程序并进行软硬件联调。3具体课题:本题属于多功能任务设计于本实验室所提供的电路模板体题目如下:1、以智能温度计为主的多功能任务设计;以智能速度里程表为主的多功能任务设计;以多功能数字电子钟为主的多功能任务设计;以LCD点阵字符显示屏为主的多功能任务设计;以交通灯控制的多功能任务设计。课题名字的多功能任务的含义是求每个同学所设计的电路和程序必须实现4个功能电路提供四个按键要求同学们能编写调试对应的键盘扫描子程序,从而实现,当按A按键,实现蜂鸣器或继电器动作,当按B键,实现LED流水灯(循环显示按下C按键,实现数码管动态扫描显示(显示内容可以自己确定3个功能对于每个课题都是相同只有最后一个按键不同,其功能取决于所选课题名称即当按下D按键要求实现相应课题的最主要的功能,例如,对于“以智能温度计为主的多功能任务设计”的课题,当按下该课题所对应的D按键,就要实现显示温度的功能,其余类似。三、设计内容方法单片机原理及其应用课程设计通常选择一般常见用简单应用装置或对象进行微机控制。所涉及的系统可以实际制作,也可以实验室模拟,具体步骤:3.1设计准备认真研究设计任务书,明确设计要求、条件、内容、和步骤;通过阅读有关资料了解设计对象复习课程有关内容熟悉有关单元电路的设计方法和设计步骤;搜集、分析、消化相关资料、软件等,掌握微型计算机应用系统软件的设计方法;准备好设计需要的图书、资料和工具;拟定设计计划等。3.2功能设计及系统总体设计要求学生有创新精神和创新意识析所掌握的资料解设计对象的功能。在充分考虑功能设计后,进行总体设计,以功能、结构为标,制定总体方案,规划硬、软件功能分配等;初步确定关键元器件地选择。四、硬件电路体设计4.1硬件总框图按键控制扫描模块DS1820温度显示模块控制原理:

以单片机为主的主控电路

数码管显示模块LED示模块扬声器模块该设计以单片机为主控电路,分别控制个工作模块:按键控制模块、实时时钟模块、数码管显示模块、LED显示模块、扬声器模块。按键控制模块由单片机P1.4-P1.7口控制。温度显示DS1302完成,由单片机INT0INT1T0口控制。数码管显示由显示模块由P0口和P1.0-P1.3控制。LED模块由P2口控制。扬声器由T0口控制。主控电本次课程设计中主要是设计一个以作息时间控制为主的多功能控制系统设计中我们主控电路部分采用了单片机AT89C52片来实现这些功能AT89C52是一个低电压,高性能CMOS的8单片机片内含8KB可反复擦写的Flash只读程序存储器和256B的随机存取数据存储器RAM引脚如下图所示:VCC:供电电压。GND:接地。P0口(P0.0-P0.7):P0口来控制数码管的段选,以显示相应的数值。P1口(P1.0-P1.7):P1口用来控制数码管的位选,以达到动态显示的效果。P2口(P2.0-P2.7):P2口来控制LED的亮灭。P3口(P3.0-P3.7)P3.0为(串行输入口P3.1为(串行输出口,P3.2为/INT0(外部中断0),P3.3为/INT1外部中断1),P3.4为T0(记时器0外部输入),P3.5为T1(记时器1外部输入),P3.6为/WR(外部数据存储器写选通),P3.7为/RD(外部数据存储器读选通)。XTAL119脚和XTAL218脚为振荡器输入输出端口,外接12MHz晶振。RST/Vpd9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC40脚)和20脚)为供电端口,分别接+5V电源正负端。为可编程通用I/O脚,其功能用途由软件定义。

按键控制描模块按键用于控制数码显示、LED显示、扬声器等模块的工作。通过扫描按键是否按下来设定各模块的工作情况使各模块可以在按键的控制下有序地进行工作。设计中使用单个按键实现单个功能,属于较为简单的控制方式.按键输入电路使用4个按键分别与单片机的平、P1.5、P1.6、P1.7分别连接,以完成按键控制。温度显示模块DS18B20一线总线”数字化温度传感器同DS1820一支“一线总线”接口,测量温度范围为55~+125摄度。-10~+85摄氏度范围内DS18B20的度为正负0.5摄度的度较差为正负2摄氏度。现场温度直接以“一线总线”的数字方式传输大提高系统的抗干性它适合于恶劣环境的现场温度测量环境控制、设备或过程控制等。内部结构主要有四部分组成位光刻、度传感器、非挥发的温度报警触发器TH和、配置寄存器DS18B20的脚排列为DQ为数字信号输入输端GND电源地外接供电电源输入端。DALLAS18B201GND

数码管显模块设计中采用四位共阳极数码管共阳极是指其公共端接正极,通过单片机AT89C52的P1口控制其位选,以达到动态显示的效果,再通P0口,控制其段选以显示相应的数值。在其位选控制部分,采用了一个型三极管,要求当P1口输出低电平时,位选成功。数码管显示电路硬件电路中,数码管显示的小时和分小时通过按键2控制,分通过按键控制。数码管要正常显示就要用驱动电路来驱动数码管的各个段码从而显示出我们要的数字因此根据数码管的驱动方式的不同可以分为静态式和动态式两类。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占I/O端口多,如驱动5个数码管静态显示则需要×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一态驱动是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp"的同名端连在一起另外为每个数码管的公共极增加位选通控制电路位选通由各自独立的I/O线控制当单片机输出字形码时所有数码管都接收到相同的字形码但究竟是那个数码管会显示出字形取决于单片机对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮通过分时轮流控制各个数码管的的端就使各个数码管轮流受控显示这就是动态驱动在轮流显示过程中每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮但只要扫描的速度足够快给人的印象就是一组稳定的显示数据不会有闪烁感动态显示的效果和静态显示是一样的能够节省大量的I/O端口,而且功耗更低。LED显示块LightEmittingDiode光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结当电流通过导线作用于这个晶片的时候,电子就会被推向P,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。LED显示电路本次设计中通过按键1来控制其流水显示,打开电源后按下按键1,流水灯模块有效电路中LED为共阳极故控制流水灯显示的P2口应为低电平时才有效。从原理图中可以看出,如果要让接在口的LED1亮起来,那么只要把P2.0口的电平变为低电平就可以了;相反,如果要接在口的LED1熄灭,就要把P2.0口的电平变为高电平;同理,接在~P2.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。我们首先把要显示流水花样的数据建在一个以为标号的数据表中后通过查表指令“MOVCA,@A+DPTR”把数据取到累加器A中,然后再送到口进行显示在此我们还应注意一点由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短我们在控制二极管亮灭的时候应该延时一段时间否则我们就看不到“流水”效果了。扬声器块要求扬声器能够发出连续断续的声音及音乐我们可以选择一个蜂鸣器来实现这些功能。蜂鸣器电路图:蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型面我们以电磁式蜂鸣器为例来说明它的工作原理:电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成接通电源后振荡器产生的音频信号电流通过电磁线圈使电磁线圈产生磁场振动膜片在电磁线圈和磁铁的相互作用下周期性地振动发声当输出高电平时,三极管截止,蜂鸣器的两引脚间的直流电压接近于,没有电流流过线圈,蜂鸣器不发声;当输出低电平时,三极管导通,使蜂鸣器的两个引脚间获得将接近+5V的直流电压,这样蜂鸣器的电流形成回路,发出声音在这个设计中是通过p3.4口控制其发声的。由于p3.4与ds1302连在一起的,故只要ds1302工作,就可以设定使扬声器发出声音。4.2硬件总电路图五、软件流程框图开始口置初值KEYA按下?

Y

调用蜂鸣器发声程序KEYB按?

Y

调用LED显子程序N

KEYC按?KEYD按下?

YY

调用数码管显示子程序调用温度程序N

图1主程序流程图开始循环时间的初值设置端口输出设置延时端取反延时循环结束?Y返回主程序图2

蜂鸣器程序流程图图3流水灯程序流程图图4时间显示流程图初始化调用显示子程序1s到初次上电?读出温度值温度计算处理显示数据刷新发温度转换开始命令图5DS18B20温度计主程序流程图主程序的主要功能是负责温度的实时显示,读出并处DS18B20的测量温度值,温度测量每1S测量一次。六、完整的程序清单注释6.1主程序清单:ORG0000HAJMPMAINORG0100HMAIN:MOVSP,#60HMOVP1,#0F0HJNBP1.4,K1CHECKJNBP1.5,K2CHECKJNBP1.6,K3CHECKJNBP1.7,K4CHECKSJMPMAINK1CHECK:;去抖动,按下,跳转到KEYA子程序JBP1.4,KEYASJMPKEYAKEYA:MOVSP,#70H;给堆栈指针赋初值MOVR2,#0FFFFH;蜂鸣器响声计数START0:SETBP3.4;P3.4置高电平LCALLDELAY;调用延时子程序CLRP3.4;P3.4取反LCALLDELAYDJNZR2,START0;断计数是否结束,否跳到START0处SJMPMAIN;返回主程序DELAY:;延时子程序MOVR7,#02DELAY0:MOVR6,#12DELAY1:MOVR5,#75DJNZR5,$DJNZR6,DELAY1DJNZR7,DELAY0RETK2CHECK:;去抖动,按下KEYB,跳转到KEYB子程序JBP1.5,KEYBSJMPKEYBKEYB:MOVSP,#80HMOVR2,#18H;LED循环闪亮三次MOVA,#0FEH;A中赋初始值:2,A;流水灯闪亮LCALLDELAY3RLA;A中初值左移DJNZR2,LOOPMOVA,#0FFH;三次结束后,熄灭所以LED灯MOVP2,ASJMPMAIN;返回主程序DELAY3:;延时子程序MOVR7,#20DELAY4:MOVR6,#125DELAY5:MOVR5,#255DJNZR5,$DJNZR6,DELAY5DJNZR7,DELAY4RET;数码显示子程序K3CHECK:;去抖动,按下,跳转到KEYC子程序JBP1.6,KEYCSJMPKEYCKEYC:MOVDPTR,#DIG_CODE;显示秒MOVP1,#11110111bMOVA,MINANLA,#0FHMOVCA,@A+DPTRMOVP0,ALCALLDIS_DELAYMOVP1,#11111011bMOVA,MINSWAPAANLA,#07HMOVCA,@A+DPTRMOVP0,ALCALLDIS_DELAY;显示分MOVP1,#11111101bMOVA,HANLA,#0FHMOVCA,@A+DPTRMOVP0,ALCALLDIS_DELAYMOVP1,#11111110bMOVA,HSWAPAANLA,#03HMOVCA,@A+DPTRMOVP0,ALCALLDIS_DELAYRETK4CHECK:;去抖动,按下,跳转到KEYD子程序JBP1.7,KEYDSJMPKEYDKEYD:TIMELEQU0E0HTIMEHEQU0B1HTEMPHEADEQU36HBITSTDATATEMPONEOKBITTEMPLTEMPHCDATA28HTEMPDINBITP3.7ORG0000HLJMPSTARTORG000BHLJMPT0ITORG100HSTART:MOVSP,#60HCLSMEM:MOVR0,#20HMOVR1,#60HCLSMEM1:MOV@R0,#00HINCR0DJNZR1,CLSMEM1MOVTMOD,#

MOVTH0,#TIMELMOVTL0,#TIMEHINITERROR:STARTINIT:NOPSETBET0SETBSETBEAMOVPSW,#00HCLRTEMPONEKMAINT0IT:PUSHPSWMOVPSW,#10HMOV,#TIMEHMOVTL0,#TIMELINCR7R7MOVR7,SETBTIMEISOKRETIMAIN:CLRTIMEISOKREADTEMP1CONVTEMPMAIN2:READTEMPSETBMAININITDS18B20:SETBTEMPDINCLRTEMPDINMOVR6,#0A0HMOVR6SETBTEMPDINMOVR6LOOP1820:MOVC,TEMPDINJCR6MOVR6#64HR6$INITDS1820RETTEMPDINRET字节的程序READDS1820:MOV#08HSETBTEMPDINCLRTEMPDINSETBTEMPDINMOVR6,MOVMOV,R6,$RRCASETBTEMPDINR7READDS1820LOOPMOV,#3CHR6$RETWRITEDS182:MOVR7,#08HSETBTEMPDINNOPNOPWRITEDS1820LOP:CLRTEMPDINMOVR6,#07HDJNZR6,$RRCAMOVTEMPDIN,CMOVR6,#34HDJNZR6,$SETBTEMPDINDJNZR7,WRITEDS1820LOPRETREADTEMP:LCALLINITDS1820MOVA,#0CCHLCALLWRITEDS1820MOVR6,#34HDJNZR6,$MOVA,#44HLCALLWRITEDS1820MOVR6,#34HMOVR6,$RETREADTEMP1:LCALLINITDS1820MOVA,#0CCHLCALLWRITEDS120MOVR6,#34HDJNZR6,$MOVA,#0BEHLCALLWRITEDS1820MOVR6,#34HDJNZR6,$MOVR5,#09HMOVR0,#TEMPHEADMOVB,#00HREADTEMP2:LCALLREADDS1820MOV@R0,AINCR0READTEMP21:LCALLCRC8CALDJNZR5,READTEMP2MOVA,BJNZREADTEMPOUTMOVA,TEMPHEAD+0MOVTEMPL,AMOVA,TEMPHEAD+1MOVTEMPH,AREADTEMPOUT:RETCONVTEMP:MOVA,TEMPHANLA,#80HJZTEMPC1CLRCMOVA,TEMPLCPLAADDA,#01HMOVTEMPL,AMOVA,TEMPHCPLAADDCA,#00HMOVTEMPH,AMOVTEMPHC,#0BHSJMPTEMPC11TEMPC1:MOVTEMPHC,#0AHTEMPC11:MOVA,TEMPHCSWAPAMOVTEMPHC,AMOVA,TEMPLANLA,#0FHMOVDPTR,#TEMPDOTTABMOVCA,@A+DFTRMOVTEMPLC,AMOVA,TEMPLANLA,#0FHSWAPAMOVTEMPL,AMOVA,TEMPHANLA,#0FHSWAPAORLA,TEMPL2BCD1,AANLA,#0F0HSWAPAORLA,TEMPHCMOVTEMMPHC,AMOVA,TEMPLANLA,#0FHSWAPAORLA,TEMPLCMOVTEMPLC,AMOVA,R7JZTEMPC12ANLA,#0FHSWAPAMOVR7,AMOVA,TEMPHCANLA,#0FHORLA,R7MOVTEMPHC,ATEMPC12:RETTEMPDOTTAB:DB00H,01H,01H,02H,03H,03H,04H,4H,05H,06HDB06H,07H,08H,08H,09HDISPBCD:MOVA,TEMPLCANLA,#0FHMOV70H,AMOVA,TEMPLCSWAPAANLA,#0FHMOV71H,AMOVA,TEMPHCANLA,#0FHMOV72H,AMOVA,TEMPHCSWAPAANLA,#0FHMOV73H,AMOVA,TEMPHCANLA,#0F0HCJNEA,#010H,DISPBCD0SJMPD

温馨提示

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

评论

0/150

提交评论