IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 物联网实训Day 04 -> 正文阅读

[嵌入式]物联网实训Day 04

Day04

  • 讲解了部分倒车雷达代码
#include <ioCC2530.h>
#define TRIG P0_0
#define ECHO P0_1
#define buzzer P2_0
#define LED1 P1_4 
#define ON 0
#define OFF 1
unsigned char ms_cnt = 0;
void rada_init(void);
int mark;
int getdistance();
void hc_sr04_init(void);
void Buzzer_Init(void);
void delay_10us(void);
void Buzzer_Init(void);
void led_init(void);

void main(void)
{
  led_init();
  rada_init();
  hc_sr04_init();
  Buzzer_Init();
  while(1)
  {
    mark = getdistance();
    if(mark <= 60){
      //buzzer = 1;
      LED1 = ON;
    }else{
      //buzzer = 0;
      LED1 = OFF;
    }
  }
}

void rada_init(void)
{
  P0SEL &= ~0x03;//普通IO置0,或者外设置1
  P0DIR |= 0x01;//方向:输出置1
  P0DIR &= 0x02;//输入置0
  P0INP &= 0x02;//置0,上拉/下拉
  P2INP |= 0x20;//置1,端口0所有引脚下拉
  
  P2SEL &= ~0x01;
  P2DIR |= 0x01;
  
  
  T1CTL = 0x04;//分频,2N
  T1CNTL = 0x00;
  T1CNTH = 0x00;
  T1CC0L = 0x00;
  T1CC0H = 0x07;
  
  IEN1 |= 0x02;   //端口0中断使能
  IRCON = 0x00;//中断标志寄存器 置0,无中断未决
  EA = 1;//开中断
  
}

//中断
#pragma vector=T1_VECTOR
__interrupt void time_ISR(void)
{
  if(T1STAT&0x20)//定时器1计数器溢出中断标志
  {
     ms_cnt++;
  }
   IRCON&=~0x02;
}
 

void hc_sr04_init()
{
  TRIG=1;
  delay_10us();//提供一个10us以上脉冲触发信号
  TRIG=0;
  while(!ECHO);
  T1CTL |= 0x01; //开始自由运行模式
}


int getdistance()
{
  unsigned char i;
  int distance = 0;
  unsigned char val;
  unsigned char reg_val;
  for(i = 0; i < 5; i++)
  {
    TRIG = 1;
    delay_10us();
    TRIG = 0;
    while(!ECHO);
    T1CTL &= ~0x03;//先清零
    T1CTL |= 0x02;//模模式启动
    while(ECHO){
      if(ms_cnt > 40)
      {
        T1CTL &= ~0x03;
        T1CNTL = 0x00;
        T1CNTH |= 0x00;
        ms_cnt = 0;
        return 0;//非正常结束
      }
    }
    //测量正确
    T1CTL &= ~0x03;
    val = T1CNTL;
    reg_val = T1CNTH;
    reg_val = ((reg_val<<8) | val)>>1;
    distance += (ms_cnt*1000 + reg_val)/59;
    T1CNTL = 0x00;
    T1CNTH = 
    ms_cnt = 0;  
  }
  distance = distance *17;
  distance /= 5;
  return distance;
}



void delay_10us(void)
{
  int i;
  for(i = 0; i < 10; i++);
}


/******蜂鸣器输出初始化******/
void Buzzer_Init(void)
{
  P2SEL &= ~0x01;
  P2DIR |= 0x01;     //P2_0定义为输出
  buzzer = 0;
}

void led_init(void){
 P1SEL &= ~0x10; 
 P1DIR |= 0x10; 
 LED1   = OFF; 
}
  • 完整代码下篇见~
  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-07-09 17:37:02  更:2021-07-09 17:37:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:20:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码