版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 /40图6-2程序流程图硬件调试在制作实物时有忘记连接、虚焊、飞线以及连接错误等情况,好在都成功检查了出来并改善了。目前硬件工作正常。制作过程中最严重的问题是将液晶的数据口与P0口连接错误,完全倒置连接。考虑到P0口与液晶数据口连接处布线密集,飞线难度大,最后既定,将8根数据线剪断,再焊上两排排针,用杜邦线连接,最后效果很好。硬件的连接已经在前面各节中详细介绍,此处不再赘述。电路原理图和实物照片参见附录一和附录二。软件调试本设计所用编译软件时keil。各模块的软件设计已经在前面各节中介绍,这里主要介绍下标志数的应用,按键消抖和松手检测,定时器和定时器中断,主要谈及它们的原理以及软件实现过程。
2、标志数的应用(主函数运行待机程序还是检测程序的判断)为了能让主函数分清是执行执行待机程序还是检测程序报警程序,引进标志数flag。当flag为1时执行待机程序:while(flag=1)待机程序当flag为0时执行检测报警程序:while(flag=0)检测报警程序在初始化函数中先将flag置一:flag=1;上电后则进入待机状态。按键k1后使flag置零,执行检测报警程序。按键k2后使flag置零,又执行待机程序。值得注意的是要在执行待机程序或检测报警程序前,执行待机程序的程序尾部,以及执行检测报警程序的程序尾部多加入按键检测程序:if(k1=0)/按键检测delay(5);/消抖if(k1
3、=0)flag=0;while(!k1);/松手检测if(k2=0)/按键检测delay(5);/消抖if(k2=0)flag=1;while(!k2);/松手检测这样就可以重新设置flag,再执行完待机程序或检测报警程序后,判断接下来要执行什么程序。6.4.2按键的消抖与松手检测的程序实现为什么要消抖?主要在手刚刚按下轻触开关时,会有抖动,有抖动时,程序会快速跑走,这样有可能等同于按了两下或多下按键的效果。消抖原理:在检测到按键后,立刻延时约五毫秒,即延时消抖,这样就过了抖动时间,之后手的按键力度是非常稳定的。注意延时结束后立马在检测下按键是否还按下,以免因其它抖动误判。程序如下。k1消抖:
4、if(k1=0)/按键检测delay(5);/延时消抖if(k1=0)/再次按键检测k2消抖:if(k2=0)/按键检测delay(5);/延时消抖if(k2=0)/再次按键检测其实用了连个开关k1和k2来分别将标志数flag置一或置零,此时消抖不是很重要,不消抖也不会让程序误判。松手检测,用while语句,如下。k1松手检测语句:while(!k1);k2松手检测语句:while(!k2);当还按着键时,一直执行while循环语句,等待放手,放手后跳出循环,执行下面语句。6.4.3定时器与定时器中断本设计在待机时,执行一个简易的十分钟以内的计时程序。这时用定时器零产生中断,让其计时。定时器是
5、独立与cpu的单独部件,与软件延时比起来,它不占用程序时间,定时很精确。当时间到了时,它就产生定时中断,让主程序让执行定时器中断函数。设置TMOD=0 x01使定时器零工作在方式一,工作方式一是十六位不能自动重装初值的方式,所以在进入定时器中断函数后要重新装初值。结束语从理论上说,要判断是否是酒后驾驶,最简单可行的方法是现场检测驾驶人员呼气中的酒精含量。大量的统计研究结果表明,如果被测者深吸气后以中等力度呼气达三秒钟以上,这时呼出的气就是从肺部深处出来的气体,呼气中的酒精含量与血液中的酒精含量。根据国家质量监督检验检疫局发布的车辆驾驶人员血液、呼气酒精含量阈值与检验(GB195222004)中
6、规定,该规定指出,饮酒驾车是指车辆驾驶人员血液中的酒精含量大于或者等于20mg/100ml小于80mg/100ml的驾驶行为。醉酒驾车是指车辆驾驶人员血液中的酒精含量大于或者等于80mg/100ml的驾驶行为本设计编程采用c语言,体现了其很好的计算机语言优势。本人非常认真地且独立地完成了本毕业设计地全部工作,有电路图的设计,原理图的绘制,实物的制作,程序的编写与调试、论文的撰写。在设计中查过许多资料,请教过老师和同学,但无剽窃等原则性错误。致谢本设计是在指导老师顾学俊老师的悉心指导下,还有许多同学的帮助下完成的。顾老师严谨的治学态度,优秀的学术底蕴,孜孜不悔的教学精神,平易近人的人格魅力,对我
7、影响深远。在此向顾老师表示深深地感谢!也对所有帮助过我毕业设计的人在此一并表示感谢!1徐玮.51单片机综合学习系统一1602字符型液晶显示篇J.电子制作,2008,2(1):1-32苏成富.多功能音乐门铃J.电机电器技术日用电器,2000,(3):68-693郇玉龙,赵宁.用单片价设计电子音乐门铃J.电子制作用单片机制作,2007,(5):24-264夏方林.基于AT89C2051的单户可视对讲门铃室内分机的设计J.微计算机信息,2004,5(10):96-975胡俐蕊,朱彪.多功能电子门铃的设计与实现J.电子元器件应用,2006.10,(8):35-38.6冯育长等.单片机系统设计育实例分析
8、M,XX电子科技大学,2007.7李念强等.单片机原理及应用M,机械工业,2007.8吴金戌等.8051单片机实践与应用M,清华大学,2002.11沈红卫.单片机实用系统设计实例与分析M.:航空航天大学.9谢魁.一种新型的语音门铃电子与自动化J,2000(3):46-47.10孟利民,X明珊.无线可视对讲门铃系统中语音通信的设计与实现J.XX工业大学学报,2005.2(1):24-27.附录一硬件设计原理图PPP叫PFFPii;1G3+1-Q3鸟TKDP51圜思附录二实物照片附录三程序/*定义包含reg52头文件*/#include/*/*宏定义*/defineuintunsignedint#
9、defineucharunsignedchar/*/*位定义*/sbitbeep=P1A0;sbitd1=P1A1;sbitd2=P1A3;sbitk1=P2A0;sbitk2=P2A1;sbitlcdrs=P2A5;sbitlcdrw=P2A6;sbitlcden=P2A7;sbitcs=P1A5;sbitrd=P1A6;sbitwr=P1A7;/*/*定义字符数组*/ucharcodestr=ACvalue:;ucharcodestr0=ppm;ucharcodetable=0123456789:;/*/*定义无符号字符型全局变量ucharflag,temp,a,b,c,d,tt;/*/*
10、子函数声明*/voidinit();/初始化函数voiddelay(uint);/有无符号整型形参的延时函数voidwrite_str(uchar*);/向液晶写入字符串的函数voidwrite_(uchar);/液晶写命令函数voidwrite_data(uchar);/液晶写数据函数voidad();/AD转换函数voiddisplay();/酒精浓度显示函数/*/*主函数部分*/voidmain()/调用初始化函数init();/调用初始化函数while(1)if(k1=0)delay(5);if(k1=0)flag=0;while(!k1);if(k2=0)delay(5);if(k2
11、=0)flag=1;while(!k2);while(flag=0)TR0=0;/按键检测/消抖/松手检测/按键检测/消抖/松手检测/执行待机程序d2=1;write_(1);write_(0 x80);write_str(str);write_(0 x80+0 x40+9);write_str(str0);while(flag=0)ad();display();if(temp=20)beep=0;d1=0;elsebeep=1;d1=1;if(k1=0)delay(5);if(k1=0)flag=0;while(!k1);if(k2=0)delay(5);if(k2=0)flag=1;whi
12、le(!k2);while(flag=1)beep=1;d1=1;tt=0;a=0;/按键检测/按键检测/执行检测报警程序b=10;c=0;d=0;write_(1);d2=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;while(flag=1)write_(0 x80+6);write_data(tablea);write_(0 x80+7);write_data(tableb);write_(0 x80+8);write_data(tablec);write_(0 x80+9);write_data(tabled);/按键检测/按键
13、检测if(k1=0)/按键检测/按键检测delay(5);if(k1=0)flag=0;while(!k1);if(k2=0)delay(5);if(k2=0)flag=1;while(!k2);/*/*初始化子函数*/voidinit()lcdrw=0;lcden=0;write_(0 x38);write_(0 x0c);write_(0 x06);cs=0;flag=1;b=10;TMOD=0 x01;EA=1;ET0=1;/*/*延时子函数*/voiddelay(uintz)uintx,y;for(x=110;x0;x-)for(y=z;y0;y-);voidwrite_str(uch
14、ar*p)while(*p)write_data(*p+);/*/*液晶写命令子函数*/voidwrite_(uchar)lcdrs=0;P0=;delay(5);lcden=1;delay(5);lcden=0;/*/*液晶写数据子函数*/voidwrite_data(ucharda)lcdrs=1;P0=da;delay(5);lcden=1;delay(5);lcden=0;/*/*ad转换子函数*/voidad()wr=0;delay(1);wr=1;delay(5);P3=0 xff;delay(1);rd=0;delay(1);temp=P3;rd=1;/*/*酒精浓度显示子函数*/voiddisplay()uintvalue;uchara,b,c;value=3.92*temp;a=value/100;b=value%100/10;c=value%10;write_(0 x80+0 x40+4);write_data(0 x30+a);write_(0 x80+0 x40+5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道路景观工程园路铺装施工专项方案
- 磁性元器件生产线项目物料配送方案
- 本科四年级跨学科就业指导:自我介绍动态建构教学方案
- 2026非织造布产业数字化全产业链布局优化与市场价值深化研究分析报告
- 2026非洲粮食安全现状市场供需国际援助可行性投资发展分析报告
- 2026广东肇庆市德庆县教育局赴高校公开招聘教师31人备考题库完整答案详解
- 2026年北大荒农垦集团有限公司应届高校毕业生招聘50人备考题库及一套完整答案详解
- 2026山西朔州市大医院影像科、核医学科工作人员招聘4人备考题库完整参考答案详解
- 2026贵州茅台酒厂(集团)酒店经营管理有限公司招聘7人备考题库及一套完整答案详解
- 2026湖北双环科技股份有限公司社会招聘6人备考题库带答案详解
- 非结核分枝杆菌病诊断与治疗指南(2025版)
- 布鲁氏菌病诊疗指南2025
- 2026内蒙古乌海市国创数字产业发展有限责任公司招聘15人考试备考试题及答案解析
- 2026年江苏省自考13428当代中国政府与政治考点重点
- 2026河北建投交通投资有限责任公司暑期实习生招聘笔试参考试题及答案解析
- 2026长江科学院武汉长江科创科技发展有限公司招聘26人笔试参考题库及答案解析
- 2026年九年级数学中考模拟试卷(重庆卷)
- 2026年超星尔雅人工智能与信息社会练习题库含答案详解【B卷】
- (新教材)2026人教版三年级下册道德与法治期末复习知识点总结梳理
- 城市公园公共厕所堵塞应急预案
- 14 《我们都是中国人》 第一课时(教学设计)道法统编版二年级上册(新教材)
评论
0/150
提交评论