版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、51单片机驱动超声波测距模块C51程序#include;#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong*函数声明*voidinit_Total();/voidinit_T0();/voidinit_T1();/voidinit_inter0();/voidsend_T();voiddelay(uintz);/voiddelay_300us();/voiddelay_100us();/总初始化初始化定时器T0初始化定时器T1初始化外部中断1延时一段时间延时300us延时100us*sbitlcdrs=P
2、1A7;sbitlcdrw=P3A1;sbitlcden=P1A5;/1602液晶限制端sbitsend=P1A.;/sbitBEEP=P2A5;sbitwei=P2A6;sbitduan=P2A7;volatileucharCount_TH,Count_TL;/分别读计数器T1的高位TH1,低位TL1uchart0,flag;uinttime;ucharcodetable1="distance"ucharcodetable2=""/初始化显示voidwrite_com(ucharcom)/1602写指令函数(lcdrs=
3、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(0
4、x30+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
5、;/* 名称:voidinit_T1()* 功能:初始化定时器T1为工作方式1* 入口参数:NULL* 全局变量:NULL* 返回值:NULL*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)户*40KHz的方波* 名称:voidinter_T0()interrupt1* 功能:定时器T0中断函数产生* 入口参数:
6、NULL* 全局变量:NULL* 返回值:NULL* */voidinter_T0()interrupt1send=send;)/* 名称:voidinter_T1()interrupt3* 功能:定时器T1中断函数* 入口参数:NULL* 全局变量: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
7、()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_30
8、0us()* 功能:延时300us* 入口参数:NULL* 全局变量: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(用ag);等待回波或定时器T1溢由if(flag=1)/回波(Count_TH=TH1;读计数器T1的高位TH1Count_TL=TL1;/读计数器T1的低位TL1t=Count_TH*256+Count_TL;s=(33140*t)/400000;dist
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年心脏起搏器(含体内)项目评价分析报告
- 2024年三好学生个人的演讲稿
- 2024年爱护眼睛从自身做起演讲稿
- 第16天 《有理数》测试-每日一题之快乐暑假七年级数学人教版
- 新高考生物总复习专题9伴性遗传与人类遗传病练习含答案
- 人世间读后感800字四篇
- 【正版授权】 IEC 62430:2019 EN/FR Environmentally conscious design (ECD) - Principles,requirements and guidance
- 买卖购销合同模板
- 2024小升初数学《有理数》衔接讲义(原卷+解析)
- 计算机职业生涯规划书
- (完整版)水电工安全技术交底
- 肿瘤科实习生入科培训课件
- 妊娠合并甲减护理查房
- 《事故案例集锦》PPT课件(67页PPT)
- ITCT6232A数码编程分区控制器说明书
- 潮湿敏感度等级(STD标准)讲述
- IPC77117721电子组件的返工维修和修改教程课件
- (精心整理)线描课程教案
- 252kV SF6 气体绝缘金属封闭开关设备(GIS)用户手册第2部分改
- 专业工序交接制度
- 机械原理课程设计-插床设计21页
评论
0/150
提交评论