传感器与检测技术课程设计报告-超声波测距系统的设计内容摘要:

构成声音报警电路,测量值小于设定值时蜂鸣器会发音报警,同事发光二极管会闪烁报警。 声音报警电路图3.7显示模块数码管动态显示原理:在编程时,单片机通过I/O口输出段选和位选信号,首先位选信号选中其中一个数码管,然后输出段码,利用人的视觉暂留的特点,使该数码管显示所需要的内容,延时一段非常短的时间后,再选中另一个数码管,再输出对应的段码,高速交替。 数码管电路第四章软件设计本系统软件设计的思路是:当电路通电时,;然后调用测距函数。 ,当检测到按键4按下时数码管显示三位数(,单位是m)为要设置的报警值并判断是否有其他按键按下,,设置完成后再按按键4 确认。 在程序中定义一个变量value(初值为0),作为是否报警的判断标志位,当测得的实际距离distance小于等于设定值set_d时,中间量value加1,否则保持不变,为了消除实际距离在设定距离左右变化时的干扰,报警结束时给value赋初值0等待下次报警。 完整的程序主要由数码管段选定义、1ms延时函数 、处理距离函数 、把数据传到单片机和从单片机中读取数据程序、独立按键程序、按键处理显示函数、报警函数、数码位选和数码显示函数、超声波测距程序以及定时器中断服务程序等其他一些小程序组成。 主函数如下:void main(){ beep = 0。 //开机叫一声 delay_1ms(150)。 P0 = P1 = P2 = P3 = 0xff。 //初始化单片机IO口为高电平 send_wave()。 //测距离函数 smg_display()。 //处理距离显示函数 time_init()。 //定时器初始化程序 init_eeprom()。 //开始初始化保存的数据 send_wave()。 //测距离函数 send_wave()。 //测距离函数 while(1) { if(flag_300ms == 1) { flag_300ms = 0。 clock_h_l()。 //报警函数 if(beep == 1) send_wave()。 //测距离函数 if(menu_1 == 0) smg_display()。 //处理距离显示函数 } key()。 //按键函数 if(key_can 10) { key_with()。 //按键处理函数 } }}第五章总结课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。 通过这次接口设计,本人在多方面都有所提高。 通过这次模具设计,综合运用本专业所学课程的理论和生产实际知识进行一次接口设计设计工作的实际训练从而培养和提高学生独立工作能力,巩固与扩充了AT89S51芯片设计等课程所学的内容,以及8AT89S51芯片设计的内容。 在这次设计过程中,体现出自己单独设计接口的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 我们的王老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次接口设计的每个实验细节和每个数据,都离不开老师您的细心指导。 而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。 同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 本实验是基于超声波测距的智能报警系统的单片机技术。 通过本系统的工作核心处理器单片机AT89S51,超声波传感器,它是一种新型的片被动超声波探头,可以测量前面的非接触距离的物体,并把它转换成相应的电信号输出,并进行适当的报警。 该报警器的最大特点是使用户操作简单,易懂,灵活。 且易于安装,高智能,低误报率。 此系统的设计由于条件限制存在一定的误差,如果是用于精度要求更高的场合一定需要加上温度补偿电路,可以减小很大的误差。 随着现代人的快速发展,增强科技安全意识,我相信警报将在更广阔的领域,特别是获得在汽车和交通运输领域的应用有更深层次。 参考文献:[1] 李光飞,楼然苗,[M].北京:北京航空航天大学出版社,2004[2] [M].北京:人民邮电出版社,2001[3] 姚建栓,于意仲 光电子技术 北京:高等教育出版社,2006[4] 张毅刚 单片机原理及应用 哈尔滨:高等教育出版社,2012 [5] 梁森,欧阳三泰 自动检测技术及应用 浙江:机械工业出版社,2006附录1:附录2:include include include define uchar unsigned char define uint unsigned int//数码管段选定义 0 1 2 3 4 5 6 7 8 9 uchar code smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}。 //断码//数码管位选定义uchar code smg_we[]={0xe0,0xd0,0xb0,0x70}。 uchar dis_smg[8] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}。 sbit smg_we1 = P3^4。 //数码管位选定义sbit smg_we2 = P3^5。 sbit smg_we3 = P3^6。 sbit smg_we4 = P3^7。 sbit c_send = P3^2。 //超声波发射sbit c_recive = P3^3。 //超声波接收uchar flag_hc_value。 //超声波中间变量sbit beep = P2^3。 //蜂鸣器IO口定义bit flag_key_b_en,flag_key_set_en。 //按键蜂鸣器使能uchar smg_i = 3。 //显示数码管的个位数bit flag_300ms。 bit key_500ms。 long distance。 //距离uint set_d。 //距离bit flag_csb_juli。 //超声波超出量程uint flag_time0。 //用来保存定时器0的时候的// 按键的IO变量的定义uchar key_can。 //按键值的变量uchar zd_break_en,zd_break_value。 //自动退出设置界面uchar menu_shudu = 10。 //用来控制连加的速度bit flag_lj_en。 //按键连加使能bit flag_lj_3_en。 //按键连3次连加后使能 加的数就越大了 uchar key_time,flag_value。 //用做连加的中间变量uchar menu_1。 //菜单设计的变量uchar a_a。 /***********************1ms延时函数*****************************/void delay_1ms(uint q){ uint i,j。 for(i=0。 iq。 i++) for(j=0。 j120。 j++)。 }/***********************处理距离函数****************************/void smg。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。