51超声波串口打印

发布者:MoonlightStar最新更新时间:2020-05-13 来源: eefocus关键字:超声波  串口打印 手机看文章 扫描二维码
随时随地手机看文章

51超声波串口显示程序。


/***********************************************************************************************************/

//HC-SR04 超声波测距模块 DEMO 程序

//晶振:11。0592

//接线:模块TRIG接 P1.2  ECH0 接P1.1

//串口波特率9600

/***********************************************************************************************************/   

#include   

#include   

    #include   


    #define uchar unsigned  char

    #define uint  unsigned   int  

#define  RX  P1_1

    #define  TX  P1_2

  


unsigned int  time=0;

unsigned int  timer=0;

float         S=0;

    bit           flag =0;


/********************************************************/

    void Conut(void)

{

time=TH0*256+TL0;

TH0=0;

TL0=0;

S=(time*1.87)/100;     //算出来是CM

if(flag==1)     //超出测量

{

  flag=0;

  printf("-----n"); 

}


  printf("S=%fn",S); 

}

/********************************************************/ 

void delayms(unsigned int ms)

{

unsigned char i=100,j;

for(;ms;ms--)

{

while(--i)

{

j=10;

while(--j);

}

}

}

/********************************************************/

     void zd0() interrupt 1 //T0中断用来计数器溢出,超过测距范围

  {

    flag=1; //中断溢出标志

  }

/********************************************************/

   void  StartModule()          //T1中断用来扫描数码管和计800MS启动模块

  {

  TX=1;                  //800MS  启动一次模块

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_();

  _nop_(); 

  _nop_(); 

  _nop_(); 

  _nop_();

  TX=0;

  }

/********************************************************/

void main(void)

{  

    TMOD=0x21;    //设T0为方式1,GATE=1;

SCON=0x50;

TH1=0xFD;

TL1=0xFD;

TH0=0;

TL0=0; 

TR0=1;  

ET0=1;             //允许T0中断

TR1=1;    //开启定时器

TI=1;


EA=1;    //开启总中断



while(1)

{

StartModule();

while(!RX); //当RX为零时等待

TR0=1;     //开启计数

while(RX); //当RX为1计数并等待

TR0=0; //关闭计数

     Conut(); //计算

delayms(100); //100MS


}


}

关键字:超声波  串口打印 引用地址:51超声波串口打印

上一篇:基于51 单片机的串口收发数据
下一篇:51单片机实现printf函数

推荐阅读最新更新时间:2024-11-08 18:52

A51中段和RSEG用法
RSEG是段选择指令,要想明白它的意思就要了解段的意思。 段是程序代码或数据对象的存储单位。程序代码放到代码段,数据对象放到数据段。段分两种,一是绝对段,一是再定位段。绝对段在汇编语言中指定,在用L51联接的时候,地址不会改变。用于如访问一个固定存储器的i/o,或提供中断向量的入口地址。而再定位段的地址是浮动的。它的地址由L51对程序模块连接时决定,C51对源程序编译所产生的段都是再定位段,它都有段名和存储类型。绝对段没有段名。 说了这么多,大家可能还是不明白段是什么意思。别急,接着往下看。 例如,你用C写了一个函数 void test_fun(void) { } , 存在test.c中,用编译器编译以后,在SRC FILE中会
[单片机]
基于51单片机设计的呼吸灯
一、项目介绍 呼吸灯是一种常见的LED灯光效果,它可以模拟人类呼吸的变化,使灯光看起来更加柔和和自然。51单片机是一种广泛使用的微控制器,具有体积小、功耗低、成本低等优点,非常适合用于控制LED呼吸灯。本项目的呼吸灯将使用PWM(脉冲宽度调制)技术控制LED亮度,从而实现呼吸灯的效果。 在本项目中,将使用51单片机作为主控制器,通过编程实现呼吸灯的控制。将使用C语言编写代码,并使用Keil C51集成开发环境进行编译和调试。使用Proteus仿真软件进行电路设计和仿真,确保电路的正确性和稳定性。 二、设计原理 2.1 PWM技术 PWM是脉冲宽度调制(Pulse Width Modulation)的缩写,是一种通过改变脉冲
[单片机]
基于<font color='red'>51</font>单片机设计的呼吸灯
由AT89C51/55构成的温湿度自动检测系统
1系统硬件设计 系统结构如图1所示,采用ATMEL公司生产的51系列单片机AT89C55和AT89C51为核心,其中主机采用AT89C55、从机采用AT89C51。从机负责64点的数据检测,各检测点的温度和湿度经过温、湿度传感器及其转换电路转变为电压信号;经过矩阵网络进行信号选择,所得信号送到相应的信号放大整理电路放大,再进入A/D转换器,进行模数转换,将数字量送入从机,再经从机的数据处理,送给LED进行显示,同时定时传送给主机AT89C55;主机负责收集各粮仓内的数据(可监测50"100个粮仓),实现数据的保存、打印以及调用历史数据,并可巡回显示各粮仓的及时温湿度及报警状态。   AT89C55/51芯片是由ATMEL公司
[应用]
基于51单片机的各种花样的流水灯c51程序
/*----------------------------------------------- 功能:流水灯对称移动闪烁(双闪烁) ------------------------------------------------*/ #include REG52.H #define uint unsigned int void delay(uint); main() { uint comp1=0xfe; uint comp2=0x80; P1=0x7e; delay(30000); while(1) { P1=0xff; comp1 =1;
[单片机]
基于51单片机之16键电子琴实验例程
************************** Copyright(C) CaKe **************************************** ============================================= ==============**版权信息 : CaKen工作室 ============== ==============**文件名 : main.c ============== ==============**作者 : CaKen ============== ==============**版本号
[单片机]
自己整的PID程序(C51,增量式PID)
void PID(void) { //调差量 VW88 , 电压反馈量VW50,pid运算反馈量:VW10,pid给定:VW700 int VW700,VW50; //0-32768~+32768 int VW500,VW502,VW504,VW506; long VW530,VW538; int VW526,VW522,VW524; uchar Kp=7; //P 取值0-20 书:20 PLC试验得3\1\7 uchar Ki=4; //I 取值0-20 书:01 uchar Kd=4 ; //D 取值0-10 书:18 VW700=GeiDin; //给定 最大1100 VW50
[单片机]
STC89C52R并行驱动LCD12864(asm/c51)
/*已实验论证 AT89C52与LCD12864 未用BF(忙信号)查询,延时1ms 不能进行BF查询*/ rs bit p2.4 rw bit p2.5 e bit p2.6 psb bit p2.1 res bit p2.3 com equ 30h date equ 31h org 0000h sjmp main org 0030h main:mov p0,#00h mov p2,#10000111b lcall delay setb res mov sp,#60h lcall init lcall page1 clr p1.7 sjmp $ init:mov com,#00110000b;基本
[单片机]
STC89C52R并行驱动LCD12864(asm/c<font color='red'>51</font>)
51单片机实验】3-单片机并行口与中断系统应用
一、实验目的 掌握51单片机并行口的应用设计 掌握中断系统的使用方法和中断应用程序设计 熟悉单片机应用系统设计、调试以及软硬件联合调试的方法。 二、实验设备 1、微机一台,Keil C集成开发环境 2、DP-51PRO.NET综合实验箱 3、Proteus仿真软件 注:本实验报告采用的单片机为AT89C51,其晶振频率为12MHz 三、实验内容 1、51单片机的P1口接8个发光二极管LED,相邻的4个LED为一组,实现两组LED每隔1秒交替点亮一次,周而复始,画出电路,并用C51编写程序。 提示:1秒延时函数建议采用定时器编程实现。 方法1——for循环嵌套实现1秒延时 //循环嵌套实现——8个LE
[单片机]
【<font color='red'>51</font>单片机实验】3-单片机并行口与中断系统应用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved