• 大小: 246KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: 测距  

资源简介

基于msp430的超声波测距的程序,大家可以参考。

资源截图

代码片段和文件信息

#include 
#include“1602.h“
#define uchar unsigned char
#define uint unsigned int
#define CPU_F ((double)8000000) 
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) 
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))

extern unsigned char table[]; 
extern unsigned char table2[];
extern  unsigned char table1[4]; 
uint num;
void delay( int n)   
  { 
    unsigned int ij; 
    for(i=0;i    for(j=0;j<530;j++); 
  } 

void IO_1602_init()
{
  P4DIR&=0X00;
  P4DIR|=0XFF;        //P4设置为输出
  P5DIR&=0X00;      //P5.6 RW  为0  写
  P5DIR|=0XFF;         //P5初始状态设置为输出低电平
  P5OUT&=0X00;      
  //P3DIR|=0XFF;         //P3输出
  //P1DIR|=0Xf0;              // 1111 0000   P1.0~P1.3作为键盘输入检测 
  //P1SEL|= 0xf0;            //   1111 0000   P14~P1.7作为复用IO口
     
}

void write_com(unsigned char com)   //命令
{  
  P5OUT&=0xDF; //选择写命令  P5.5=0     & 1101 1111  RS=0 
  delay(10);
  P5OUT|=0x80; //使能信号      P5.7=1   |1000 0000    EC=1
  P4OUT=com;     //P4口为数据口
  delay(10);
  P5OUT&=0x00;   //关闭使能信号  
}

void write_data(int date)   //数据

 
  P5OUT|=0x20; //选择写数据     P5.5=1      |0010 0000  RS=1
  delay(10);
  P5OUT|=0x80;   //使能信号      P5.7=1   |1000 0000    EC=1
  P4OUT=date;
  delay(10);
  P5OUT&=0x00;  //关闭使能
}

void init()

  write_com(0x38);  //00111000 设置16*2显示,5*7点阵 8为数据接口
  write_com(0x0c);   //00001100 设置开显示,不显示光标
  write_com(0x06);  // 00000110 写一个字符后地址指针加 1
  write_com(0x01);  //00000001 显示清0,数据指针清零  /*   */
}

void yj1602()  //液晶控制
{  
  init();
  delay(50);
  write_com(0x80); //1000 0000+0100 0000
  for(num=0;num<14;num++)
   {
  write_data(table[num]);
  delay_ms(10);
   } 
 
  write_com(0x80+0x40+7); //1000 0000+0100 0000
  for(num=14;num<16;num++)
   {
  write_data(table[num]);
  delay_ms(10);
   } }

void num_show(uchar sint string)

     int abcd;            //mn
     a=string/1000;          //AD的千位
     b=string/100-10*a;     //AD的百
     c=string%100/10;       //AD的十位
     d=string%10;           // AD的个位
     table1[3]=table2[d];
     table1[2]=table2[c];
     table1[1]=table2[b];
     table1[0]=table2[a];
  
        write_com(0x80+0x40+s);
         for(num=0;num<4;num++)
       { 
          write_data(table1[num]);
          delay_ms(30);
       }    
}

void show_xiaoshu(float n)
{    int a1a2a3a4;
     float m;
     a1=(int)(n);              //a1为整数部分      13
     m=n-a1;                //m为小数部分        0.678          
     a2=a1%10;             //a2为个位       3
     a1=a1/10;           //a1为十位         1           
     a3=(int)(m*10);       //a2为小数点后第1位   6
     a4=(int)((m*100)-10*a3);          //a3为小数点后第一位    6            
     delay_ms(10);
     write_com(0x80+0x40+2);
     write_data(table2[a1]);
     delay_ms(10);
     write_com(0x80+0x40+3);
     write_data(table2[a2]);
     delay_ms(10); 
     write_com(0x80+0x40+5);
     write_data(table2[a3]);
     delay_

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-07-26 16:38  我的超声波测距程序\
     文件        3259  2012-07-20 18:24  我的超声波测距程序\1602.c
     文件         303  2012-07-20 18:24  我的超声波测距程序\1602.h
     文件         599  2012-07-20 18:24  我的超声波测距程序\csb.c
     文件         357  2012-07-20 18:24  我的超声波测距程序\csb.h
     文件        4584  2012-07-26 16:38  我的超声波测距程序\csbcj.dep
     文件       47892  2012-07-21 20:08  我的超声波测距程序\csbcj.ewp
     文件         159  2012-07-20 18:24  我的超声波测距程序\csbcj.eww
     目录           0  2012-07-20 18:24  我的超声波测距程序\Debug\
     目录           0  2012-07-20 18:24  我的超声波测距程序\Debug\Exe\
     文件       41253  2012-07-21 20:08  我的超声波测距程序\Debug\Exe\csbcj.ad4
     文件       23369  2012-07-20 18:24  我的超声波测距程序\Debug\Exe\csbcj.d43
     文件       21393  2012-07-20 18:24  我的超声波测距程序\Debug\Exe\csbcj.txt
     目录           0  2012-07-20 18:24  我的超声波测距程序\Debug\List\
     目录           0  2012-07-26 16:38  我的超声波测距程序\Debug\Obj\
     文件         514  2012-07-26 16:38  我的超声波测距程序\Debug\Obj\1602.pbi
     文件       26105  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\1602.r43
     文件         512  2012-07-26 16:38  我的超声波测距程序\Debug\Obj\csb.pbi
     文件        5473  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\csb.r43
     文件         308  2012-07-26 16:38  我的超声波测距程序\Debug\Obj\csbcj.pbd
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW1071.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW1082.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW10DF.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW11CD.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW12D1.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW13C8.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW1581.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW15D3.r43
     文件         867  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW1637.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW17A4.r43
     文件         852  2012-07-20 18:24  我的超声波测距程序\Debug\Obj\EW17CC.r43
............此处省略265个文件信息

评论

共有 条评论