版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
51单片机驱动超声波测距模块C51程序#include;#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong//*******************函数声明**************************voidinit_Total();//总初始化voidinit_T0();//初始化定时器T0voidinit_T1();//初始化定时器T1voidinit_inter0();//初始化外部中断1voidsend_T();voiddelay(uintz);//延时一段时间voiddelay_300us();//延时300usvoiddelay_100us();//延时100us//********************************************************sbitlcdrs=P1"7;sbitlcdrw=P3"1;sbitleden=P1"5;//1602液晶控制端sbitsend=P1"0;//sbitBEEP=P2"5;sbitwei=P2"6;sbitduan=P2"7;volatileucharCount_TH,Count_TL;//分别读计数器T1的高位TH1,低位TL1uchart0,flag;uinttime;ucharcodetable1[]="distance";ucharcodetable2[]=" ";//初始化显示voidwrite_com(ucharcom)//1602写指令函数{lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_data(uchardatb)//1602写数据函数{lcdrs=1;P0=datb;delay(1);lcden=1;delay(1);lcden=0;}voiddistance(ucharaddr,uintdatb){ucharbai,shi,ge;bai=datb/100;shi=datb%100/10;ge=datb%10;write_com(0x80+0x40+addr);write_data(0x30+bai);write_data(0x30+shi);write_data(0x30+ge);**************************************************************************************名 称:voidinit_Total()*功 能:总初始化*入口参数:NULL*全局变量:NULL*返回值:NULL**************************************************************************************/voidinit_Total(){init_T0(); //初始化定时器T0为工作方式2init_T1(); //初始化定时器T1为工作方式1init_inter0();//初始化外部中断1EA=1; //开总中断}/**************************************************************************************名 称:voidinit_T0()*功 能:初始化定时器T0为工作方式2入口参数:NULL*全局变量:NULL*返回值:NULL**************************************************************************************/voidinit_T0(){TMOD=0X12;TH0=0XE7;TL0=0XE7;EA=0;ET0=1;TR0=1;}/**************************************************************************************名 称:voidinit_T1()*功 能:初始化定时器T1为工作方式1*入口参数:NULL全局变量:NULL返回值:NULL**************************************************************************************/voidinit_T1(){TMOD=0X12;TH1=0;TL1=0;EA=0;ET1=1;TR1=1;}***************************************************************************************名 称:voidinit_inter1()*功 能:初始化外部中断1为低电平触发方式*入口参数:NULL*全局变量:NULL*返回值:NULL**************************************************************************************/voidinit_inter0()IT0=0;//低电平触发EA=0;EX0=0; //关外部中断1}**************************************************************************************名称:voidinter_T0()interrupt1*功能:定时器T0中断函数产生40KHZ的方波*入口参数:NULL*全局变量:NULL*返回值:NULL**************************************************************************************/voidinter_T0()interrupt1{send=~send;}/**************************************************************************************名称:voidinter_T1()interrupt3*功能:定时器T1中断函数*全局变量:NULL*返回值:NULL**************************************************************************************/voidinter_T1()interrupt3{TR1=0;EX0=0;//关外部中断0TH1=0;TL1=0;flag=2;}/**************************************************************************************名称:voidinter1()interrupt2*功 能:外部中断1函数*入口参数:NULL全局变量:Count_TH,Count_TL返回值:NULL**************************************************************************************/voidinter0()interrupt0{TR1=0;EX0=0;flag=1;}***************************************************************************************名 称:voidsend_T()*功 能:发送10个超声波脉冲*入口参数:NULL*全局变量:Count*返回值:NULL**************************************************************************************/voidsend_T(){delay_100us();//发送100us的方波TR0=0;//关定时器T0}**************************************************************************************名 称:voiddelay(uintz)*功 能:延时一段时间*入口参数:z*全局变量:NULL*返回值:NULL**************************************************************************************/voiddelay(uintz){uintx,y;for(x=z;x>;0;x--)for(y=1000;y>;0;y--);}/**************************************************************************************名 称:voiddelay_300us()*功 能:延时300us*全局变量:NULL*返回值:NULL**************************************************************************************/voiddelay_300us(){uintx;for(x=75;x>;0;x--);}/**************************************************************************************名 称:voiddelay_100us()*功 能:延时100us*入口参数:NULL全局变量:NULL返回值:NULL**************************************************************************************/voiddelay_100us(){uintx;for(x=24;x>;0;x--);//***************************************************************************************voidmain(){uintt,s;init_Total();//总初始化while(1){TR1=1;//启动定时器1TR0=1;//启动定时器0send_T(); 〃发送100us超声波脉冲delay_300us();//延时300us跳过盲区EX1=1; //开外部中断1while(!flag);//等待回波或定时器T1溢出if(flag==1) //回波{Count
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中外合资企业承包经营合同
- 个人租房合同范本电子版
- 个人房产作为抵押的借款合同
- 个人固定资产典当借款合同
- 个人借款合同标准文本模板
- 临街门面出租合同范本
- 乡村振兴背景下土地承包合同变更合同
- 中外合资经营合同(EXW条款)
- 2025年江西九江市高三一模高考化学试卷试题(含答案详解)
- 业务合作合同样本打造双赢合作框架
- 药品经营和使用质量监督管理办法培训试题及答案2023年9月27日国家市场监督管理总局令第84号公布
- 人教版五年级上册数学脱式计算练习200题及答案
- 苏教版六年级下册数学第二单元《圆柱与圆锥》单元分析及全部教案+每课作业设计
- 卵巢黄体囊肿破裂教学查房
- 医院定岗定编
- 计算机网络毕业论文3000字
- 2023年大学物理化学实验报告化学电池温度系数的测定
- 脑出血的护理课件脑出血护理查房PPT
- 煤矿机电运输安全培训课件
- 扣缴个人所得税报告表-(Excel版)
- Unit+4+History+and+Traditions单元整体教学设计课件 高中英语人教版(2019)必修第二册单元整体教学设计
评论
0/150
提交评论