版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、51单片机课程设计我春X才女舂IJ课程设计说明书课程设计名称单片机原理及应用课程设计专业电子信息工程班级140405学号20141329学生姓名李延琦指导教师胡黄水2016年12月26日课程设计任务书课程设计题目酒精测试仪起止日期2016年12月26日2017年1月6日设计地点计算机科学与工程学院单片机实验室3409设计任务及日程安排:设计任务:分两部分:(一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、实现;1.电子钟的设计2.交通灯的设计3.温度计的设计4.点阵显示5.电机调速6.电子音乐发声(自己选曲)7.键盘液晶显示系统(二)、应用系统设计类:不须上机,查资料完成软、硬件设
2、计画图。查资料选定题目。说明:第1-7题任选其二即可。(二)里题目自拟。日程安排:本次设计共二周时间,日程安排如下:第1天:查阅资料,确定题目。第2-4天:进实验室做实验,连接硬件并编写程序作相关的模块实验。第5-7天:编写程序,并调试通过。观察及总结硬件实验现象和结果。第8-9天:整理资料,撰写课程设计报告,准备答辩。第10天:上交课程设计报告,答辩。设计报告要求:1 .设计报告里有两个内容,自选题目内容+附录(实验内容),每位同学独立完成。2 .自选题目不须上机实现,要求能正确完成硬件电路和软件程序设计。内容包括:1)设计题目、任务与要求2)硬件框图与电路图3)软件及流程图(a)主要模块流
3、程图(b)源程序清单与注释4)总结5)参考资料6)附录实验上机调试内容注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计的依据。目录第一部分:自主设计课设:酒精测试仪01总体方案设计01.1 设计要求01.2 优点及意义11.3 系统硬件电路设计.11.4 初步设计思路22硬件电路设计32.1 酒精检测模块32.2 显示模块42.3 报警模块42.4 CPU控制模块63应用软件设计83.1 主.程序设计83.2 子程序设计93.2.1 显示子程序设计.93.2.2 报警子程序设计103.2.3 酒精检测子程序设计.124系统调试与性能分析134.1 开机界面134.2 浓度判断1
4、34.3 阈值修改14总结:14参考文献15附录17附录A硬件电路图17附录B程序清单18第二部分:课堂设计内容:温度测量系统311实验目的312实验内容313实验原理314实验步骤315流程图:336程序清单:34第一部分:自主设计课设:酒精测试仪1总体方案设计1.1 设计要求本课题要求以单片机为核心,设计一个酒精测试仪,由四部分组成:酒精检测模块,显示模块,报警模块,CPU控制模块。CPUg制模块采用STC89C52单片机进行控制。酒精传感器采用MQ-Sensor传感器模块和ADC0809莫数转换模块用于对人呼出酒精气体的酒精度检测,显示模块采用1602液晶显示,报警电路采用蜂鸣器。要求酒
5、精测试仪有以下功能:(1)酒精浓度通过1602液晶显示模块显示出来(2)酒精浓度超过设定的阈值则蜂鸣器发声进行报警。1.2 优点及意义本课题采用51单片机进行控制,51单片机具有体积小、运行速度快的特点,用其作为主控芯片进行控制会十分的方便。使用MQ-Sensor气体传感器模块能够快速,准确的检测到酒精浓度,使用1602模块进行显示,直观,方便。1.3系统硬件电路设计系统硬件设计框图。根据设计要求,确定系统的设计方案,硬件由四部分组成。采用STC89c52单品机为CPU®制模块,以MQ-Sensor传感器模块和ADC0809模块组成检测模块,以1602液晶显示组成显示模块,以蜂鸣器组
6、成报警模块。1.4 初步设计思路(1)定义三组数组表,方便1602显示时进行调用(2)将adc0809的数据输出端接在单片机的P2口(3)将MQ-Sensor酒精传感器的TTL输出端接在单片机P1.7口,将AO模拟量输出端接到adc0809的IN0通道。(4)将1602的数据输入端接到单片机P0口(5)将蜂鸣器接到单片机P3.32硬件电路设计2.1酒精检测模块传感器模块采用MQ-Sensor酒精传感器,其模拟量输送给ADC080船行模数转换,将输出数据发给单片机。II泛=山u运言封£电路中酒精检测传感器的模拟量输出端接在adc0809的IN0通道。Adc0809的start引脚接到单
7、片机的P1A2口,oe引脚接到单片机的pi0引脚上,EOC引脚接到了单片机的p1A1口,ciock时钟信号接到了单片机的P1A6引脚上。数字量输出端接到了单片机的P2口。将传感器采集到的酒精浓度经过adc0809输送到单片机中。2.2 显示模块显示模块采用1602液晶显示屏进行显示,液晶显示具有低功耗,应用接口少,显示量大的特点,所以应用很广。将单片机收到adc0809数字量发送给1602中,进行显示。Q手将1602的数据输入端接到单片机的P0口,RS引脚接到单片机的P3A5口,将EN使能接口接到单片机的P3A4口,单片机发送数据给1602,1602进行显示酒精的浓度。2.3 报警模块报警模块
8、采用蜂鸣器进行报警,直观,方便fIL=11-CZ)-1-a-丁将蜂鸣器接到单片机的P3A3口,当酒精检测传感器模块TTL电平输出端时证明酒精浓度已经超过了阈值,则启动报警,给蜂鸣器以低电平,蜂鸣器响。否则,给蜂鸣器低电平,蜂鸣器不响。2.4 CPU控制模块CPU采用STC89c52单片机,负责整套系统的运行。它包含时钟电路和复位电路。(1) 时钟电路单片机工作的时间基准是由时钟电路提供的,在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路。电路中,电容器C1和C2对振荡频率有微调作用,同时帮助晶振起振,通常取值范围在22±0.1PF,一般晶振为1
9、1.0592MHZ电容取22PF。石英晶体选择11.0592MHz(2) 复位电路单片机系统的复位电路在可以采用的是按钮式上电复位电路形式,其中电阻R采用10KQ的阻值,电容采22“F的电容值。3应用软件设计3.1 主程序设计酒精测试仪的基本功能是通过酒精传感器采集到气体的酒精浓度,之后经过ADC080嗷模转换发送给单片机,之后单片机发送给1602液晶进行显示。当检测到的酒精浓度值超过了所设计的阈值,则酒精传感器模块将输出低电平,将其接到单片机P19引脚上,当单片机检测到该引脚为低电平时,则驱动蜂鸣器发生进行报警。流程图:3.2 子程序设计3.2.1 显示子程序设计米用1602液晶屏进行显示,
10、将液晶数据输入端接到单片机P0口,单片机驱动液晶进行显示。流程图:3.2.2 报警子程序设计报警电路采用蜂鸣器进行报警,当酒精浓度超过了设定值,则蜂鸣器发声进行报警,将蜂鸣器接到单片机的P3八3引脚。流程图:,4士 二口3.2.3 酒精检测子程序设计酒精检测模块采用MQ-Snsor酒精气体传感器和ADC080曲成,将采集到的酒精浓度经过模数转换器发给单片机。流程图:Adc08094系统调试与性能分析4.1 开机界面开机之后1602界面显示,酒精检测模块气体中酒精度发送给单片机。4.2 浓度判断当检测到的酒精浓度大于设定的阈值时,则单片机驱动蜂鸣器发生进行报警,提示检测者酒精浓度已经超标。4.3
11、 阈值修改(1)硬件修改通过改变酒精传感器的电阻值来改变传感器对气体酒精度的检测灵敏度,来修改阈值。(2)软件修改通过对系统运行程序进行阈值设定,检测到的酒精浓度,进行人为的软件设定阈值,进行判另I。总结:本作品针对生活中因醉酒驾驶引发交通事故日益严重,明确研究方向,制定计划方案。深入研究酒精传感器、模数转换器等器件原理,查阅相关酒驾标准。为制作出满足实际要求的作品,做好充分的准备。在此期间所遇到的问题,通过最有效、最准确的渠道进行解决,为成功扫清障碍。随着对单片机、ADC0809LCD显示器的加深了解,对信号采集和数据算法处理的进一步学习;加入温度、湿度和气压的影响,在现有基础上进行改进,一
12、定会使测得的数据更加准确,使作品与预期目标更接近。使其能成为商品,进入家庭,实现我们以此为课题的最终目的。参考文献1单成祥.传感器的理论与设计基础及其应用M.北京:国防工业出版社,2张福学.现代传感器电路M.北京:中国计量出版社,2000,4413吴兴惠,王彩君.传感器与信号传感器M.北京:电子工业出版社,19984万隆,巴奉丽.单片机原理及应用技术M.北京:清华大学出版社,20105汤竟南,沈国琴.51单片机C语言开发与实例M.人民邮电出版社6雷伏容,张小林,崔浩.51单片机常用模块设计查询手册M.北京:清华大学出版社,20107韩成,张延拿了就用单片机M.北京:人民邮电出版社,20088赵
13、建领.51系列单片机开发宝典M.北京:电子工业出版社,2007-049张毅刚单片机原理及接口技术:人民邮电出版社附录附录A硬件电路图的-5理pbRo口PPDPPOITEKABq肥取带眼腺fcs哈本VJYflRSRWE国DID2D!国Djxx附录B程序清单/*/项目名称:酒精测试仪程序内容:通过酒精模块将采集到的酒精浓度显示到1602上/如果浓度超过设定值,则进行报警。/*/#include<reg52.h>/头文件#defineucharunsignedchar/宏定义无符号字符型#defineuintunsignedint/宏定义无符号整型ucharcodetable尸'
14、0123456789”;ucharcodetable1="voltage:"ucharcodetable2="alcoholtester"/位控制码sbitST=P1八2;/A/D启动转换信号sbitOE=P1A0;/数据输出允许信号sbitEOC=P1A3;/A/D转换结束信号sbitCLK=P1A6;/时钟脉冲sbitdula=P2A6;sbitwela=P2A7;sbitrs=P3A5;sbitlcden=P3A4;sbitDOUT=P1A7;sbitbeep=P3A3;uint乙x,c,v,AD0809,date,a,i;/延时子定义数据类型vo
15、idyanshi(ucharz)函数uintx,y;x=0;y=0;for(x=z;x>0;x-)for(y=110;y>0;y-);/ 延时函voiddelay(uintx)数,参数xuinta,b;for(a=x;a>0;a-)for(b=10;b>0;b-);/*/*/*/*/*/ /*/*/函数名称:write_com函数描述:1602写命令函数输入参数:com参数描述:控制命令返回值:无/*voidwrite_com(ucharcom)P0=com;rs=0;Icden=0;delay(10);Icden=1;delay(10);Icden=0;/*/*函数名
16、称:write_date*/*函数描述:1602写数据函数*/*输入参数:date*/*参数描述:要写入的数据*/*返回值:无*/*/voidwrite_date(uchardate)P0=date;rs=1;Icden=0;delay(10);Icden=1;delay(10);Icden=0;voidinitLCD(void)/1602初始化函数dula=0;wela=0;write_com(0x38);delay(20);write_com(0x0f);delay(20);write_com(0x06);delay(20);write_com(0x01);delay(20);/*液晶显示
17、程序*/voidxianshi()/显示函数uint乙x,c,v;z=date/1000;/求千位x=date%1000/100;/求百位c=date%100/10;/求十位v=date%10;/求个位for(a=20;a>0;a-)/液晶1602显示write_com(0x80+0x40+9);write_date(tablez);write_com(0x80+0x40+10);write_date(tablex);write_com(0x80+0x40+11);write_date('.');write_com(0x80+0x40+12);write_date(tab
18、lec);write_com(0x80+0x40+13);write_date(tablev);/*CLK振荡信号*voidtimer0()interrupt1/定时器0工作方式1TH0=(65536-2)/256;/重装计数初值TL0=(65536-2)%256;/重装计数初值CLK=!CLK;/取反/*主函数*voidmain()TMOD=0X01;/定时器中断0CLK=0;/脉冲信号初始值为0TH0=(65536-2)/256;/定时时间高八位初值TL0=(65536-2)%256;/定时时间低八位初值EA=1;/开CPU中断ET0=1;/开T/C0中断TR0=1;initLCD();w
19、rite_com(0x80);for(i=0;i<16;i+)write_date(table2i);yanshi(5);write_com(0x80+0x40);for(i=0;i<8;i+)write_date(table1i);while(1)/无限循环beep=1;ST=0;ST=1;ST=0;while(!EOC);毕OE=1;AD0809=P1;OE=0;信号/使采集信号为低/开始数据转换/停止数据转换/等待数据转换完/允许数据输出信号/读取数据/关闭数据输出允许if(AD0809>=251)能超过5VAD0809=250;date=AD0809*20;xians
20、hi();数if(DOUT=0)/时,执行条件函数/电压显示不/液晶显示显示函当浓度高于设定值yanshi(5);/延时抗干扰if(DOUT=0)确定浓度高于设定值时,执行条件函数beep=0;yanshi(2000);beep=1;第二部分:课堂设计内容:温度测量系统1实验目的根据温度控制系统的要求和特点,设计了一种基于51单片机的温度显示系统。该系统以单片机为控制核心,结合外围信号采集电路、LCD显示电路、报警电路,实现对温度的测量报警控制。2实验内容温度控制装置由单片机最小系统、LCD夜晶显示电路、报警电路、温度传感器。等四部分组成。3实验原理将温度传感器采集的数据输入单片机,单片机与程
21、序内预先设定好电压阈值进行比较,如果温度数据大于所设定的温度阈值,则蜂鸣器发生进行报警,整个过程LCD实时显示:温度阈值、实际温度值。4实验步骤主程序主要完成初始化、以及调用显示、指示灯、温度采集等等。具体模块包括:显示程序设计温度采集程序设计温度处理程序设计显示程序设计主要将几个数组的内容通过LCD1602的写数据指令显示在LCD屏上。温度采集程序通过18B20温度传感器实时采集温度并发送给单片机。温度处理程序设计将采集到的实时温度与设定温度阈值进行比较,如果温度大于预先设定的阈值,则蜂鸣器发生进行报警。5流程图:土口6程序清单:/将DS18B20所采集到的温度实时显示到1602上。/温度超
22、过阈值则报警#include<reg52.H>#include<intrins.H>#include<math.H>#defineucharunsignedchar#defineuintunsignedint/宏定义ucharvalue,aa;unsignedinttmp;sbitdula=P2八6;/数码管段选引脚sbitwela=P2A7;/数码管位选引脚sbitds=P2A2;/18b20引脚定义sbitRS=P3A5;sbitLCDEN=P3A4;1602引脚定义sbitbeep=P2A3;voiddelayUs()/延时函数_nop_();延时一个
23、机器周期,包含在intrins.h文件中voiddelayMs(uinta)/延时函数,参数auinti,j;for(i=a;i>0;i-)for(j=100;j>0;j-);voidwriteComm(ucharcomm)/写命令RS=0;写命令是RS需给低电平P0=comm;LCDEN=1;/写命令时LCDENT给高电平delayUs();/延时一个机器周期LCDEN=0;delayMs(1);dat) /voidwriteData(uchar写数据:RS=1,RW=0;RS=1;写数据时RS=1P0=dat;LCDEN=1;写数据时LCDEN=1delayUs();/延时一个
24、机器周期LCDEN=0;delayMs(1);voidinit()/初值函数dula=wela=0;/段选)位选清零,数码管不显示writeComm(0x38);writeComm(0x0c);writeComm(0x06);writeComm(0x01);1602的命令初始化voidwriteString(uchar*str,ucharlength)/将数据一个接着一个的写入1602中uchari;for(i=0;i<length;i+)writeData(stri);/将数组中数据以循环的方式写入到1602中voiddsInit()/DS18B20温度初值函数unsignedinti
25、;ds=0;i=100;while(i>0)i-;ds=1;i=4;while(i>0)i-;voiddsWait()unsignedinti;while(ds);while(ds);i=4;while(i>0)i-;bitreadBit()值只能是0,1/延时/延时/等待函数/bit函数返回读一位数据函数unsignedinti;bitb;/bit只定义一位0,1ds=0;i+;/起到延时作用ds=1;i+;i+;b=ds;i=8;while(i>0)i-;returnb;/返回b0,1unsignedcharreadByte()/读一位字节数据函数unsignedi
26、nti;unsignedcharj,dat;dat=0;for(i=0;i<8;i+)j=readBit();dat=(j<<7)|(dat>>1);/位或运算读出的数据最低位最、乙刖/面这样刚好个字节在dat里returndat;voidwriteByte(unsignedchardat)/向18b20写一个字节数据函数unsignedinti;unsignedcharj;bitb;for(j=0;j<8;j+)b=dat&0x01;dat>>=1;/对dat右移一位,将值赋给datif(b)/写1ds=0;i+;i+;ds=1;i=8
27、;while(i>0)i-;elseds=0;写0i=8;while(i>0)i-;ds=1;i+;i+;voidsendChangeCmd()/DS18B20开始获取温度并转换dsInit();/DS18B20温度初值void sendReadCmd()寄存器中存储的温度数据dsWait();delayMs(1);writeByte(Oxcc);据函数,写跳过读ROM旨令writeByte(0x44);据函数,写温度转换指令/等待函数/延时/向18b20写一个字节数/向18b20写一个字节数/读取dsInit();初值dsWait();delayMs(1);writeByte(O
28、xcc);writeByte(Oxbe);intgetTmpValue()/DS18B20温度/等待函数/延时unsignedinttmpvalue;intvalue;floatt;unsignedcharlow,high;sendReadCmd();low=readByte();high=readByte();tmpvalue=high;tmpvalue<<=8;tmpvalue|=low;/按位进行或运算tmpvalue=(tmpvalue|low)value=tmpvalue;t=value*0.0625;value=t*100+(value>0?0.5:-0.5);/大于0加0.5,小于0减0.5returnvalue;voiddisplay(intv)unsignedcharcount;unsignedchardatas口=0,0,0,0,0;tmp=abs(v);datas0=tm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026三年级数学下册 小数思维拓展训练
- 硬质合金及刀具系列三:飙升的钨价将推动刀具材料向何方演进
- 传染病报告培训制度
- 会员管理制度
- 企业案经日制度
- 产品采收或销售记录制度
- 艺培学校招生奖惩制度
- 园林质量奖惩制度范本
- 药店财务奖惩制度范本
- 产品价格管理奖惩制度
- 劳动课行李箱收纳课件
- 2025至2030年中国高端餐饮行业市场全景调研及投资规划建议报告
- 口腔颌面外科典型病例分析
- 公物仓管理办法
- 外墙风管施工方案(3篇)
- 中考英语1600词汇(背诵版)
- 大数据赋能企业财务分析的效率提升路径
- TD/T 1033-2012高标准基本农田建设标准
- 阳光房安装施工合同协议
- 浙商银行不良资产管理办法
- DB34-T 4521-2023 国资国企在线监管信息系统数据交换规范
评论
0/150
提交评论