久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

基于C8051單片機超聲波測距電平觸發(fā)編寫(留底)

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2012年12月20日   【字體:
#include <c8051f020.h>  
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void SYSCLK_Init (void);
void PORT_Init (void); 
void  StartModule() ;
void display(unsigned char bai,unsigned char shi,unsigned char ge);
void delay(unsigned int z);
void timerinit();
void delay(unsigned int z);
void Timer_Count(void);
unsigned int  time=0;
uchar i;
 uchar j;
unsigned long S=0;
unsigned char qian,bai,shi,ge;
bit flag =0;
sbit lcdrs=P2^5;
sbit lcden=P2^7;
sbit lcdwr=P2^6;
sbit  RX = P0^1;
sbit  TX = P0^0;
uchar abc[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};   //1234567;
uchar result[3];
void delay(void)
{
 int a=10000;
 while(a!=0)
 {
  a--;
 }
}
void write_com(uchar com)
{
 lcdrs=0;
 P3=com;
 delay();
 lcden=1;
 delay();
 lcden=0;
}
void write_date(uchar dat)
{
 lcdrs=1;
 P3=dat;
 delay();
 lcden=1;
 delay();
 lcden=0;
}
void init()
{
 lcdwr=0;
 lcden=0;
 write_com(0x38);
 write_com(0x0c);
 write_com(0x06);
 write_com(0x01);
}
void main()
{
 unsigned int valA;
  WDTCN = 0xde;
  WDTCN = 0xad; 
  timerinit();                      
  SYSCLK_Init ();                                                                 
  PORT_Init ();                        
 init();
 lcdrs=0;
 lcdwr=0;
 write_com(0x40);
while(1)
{    
RX=1;
StartModule();
 
for(valA=100;valA>0;valA--)
{
   if(RX==1)
   {
       Timer_Count();
   }
}
}
}
 void SYSCLK_Init (void)
{
   OSCICN = 0x05;                                                                                  
}
 void PORT_Init (void)
{
   XBR0    = 0x04;                     // Enable UART0
   XBR1    = 0x00;
   XBR2    = 0x40;                     // Enable crossbar and weak pull-ups
  P0MDOUT |= 0xff;                    // enable TX0 as a push-pull output
   P2MDOUT  = 0xe0;                    // P2口設(shè)為推挽方式
   P3MDOUT  = 0xff;                    // P2口設(shè)為推挽方式      
}
void Conut(void)
 {
  time=TH0*256+TL0;
  TH0=0;
  TL0=0;
  S=(uint)(time*1.7*1.6*1.5)/10;     //算出來是MM
  if((S>=7000)||flag==1) //超出測量范圍顯示“-”
  { 
   flag=0;
   display(0x80,0x80,0x80);
  }
  else
  {
   bai=S/100;
   shi=S%100/10;
   ge=S%10;
   display(bai,shi,ge);
  }
 }
void zd0() interrupt 1    //T0中斷用來計數(shù)器溢出,超過測距范圍
  {
    flag=1;        //中斷溢出標志
 RX=0;
  }
void  StartModule()            //啟動模塊
  {
   TX=1;                        //啟動一次模塊
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
/*   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();
   _nop_();*/
   TX=0;
  }
void Timer_Count(void)
{
   TR0=1;       //開啟計數(shù)
      while(RX);   //當(dāng)RX為1計數(shù)并等待
      TR0=0;    //關(guān)閉計數(shù)
 
         Conut();   //計算
}
void timerinit()
{
 TMOD=0x01;     //設(shè)T0為方式1,GATE=1;
 TH0=0;
 TL0=0;         
 ET0=1;             //允許T0中斷
 EA=1;      //開啟總中斷   
}
/*********************************************************/
void display(unsigned char bai,unsigned char shi,unsigned char ge)
{ 
  
     uchar i;
  result[0]=abc[bai];
  result[1]=abc[shi];
  result[2]=abc[ge];
   write_com(0x40);
     for(i=0;i<3;i++)
  {
  write_com(0x80+i+1);
  write_date(result[i])  ;
  }
}
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 色成人免费网站 | 九一视频在线观看 | 完全免费在线视频 | 97久久精品午夜一区二区 | 成人av一区二区三区 | 精品三区 | 久久久青草 | 在线播放国产一区二区三区 | 亚洲 精品 综合 精品 自拍 | 国产一区二区中文字幕 | 一级欧美一级日韩片免费观看 | 久久伊人亚洲 | 99热精品在线观看 | 在线观看精品 | 欧美久久久久久 | 黄视频国产 | 欧美一级在线观看 | 日本小视频网站 | 国产欧美日韩综合精品一区二区 | 精品国产高清一区二区三区 | 欧美中文字幕一区二区 | 精品视频亚洲 | 男人的天堂中文字幕 | 四虎永久免费在线 | 精品视频一区二区三区 | 99热热热热| 欧美片网站免费 | 国产成人午夜电影网 | 一区二区三区国产精品 | 成人三级在线观看 | 亚洲国产免费 | 日日操夜夜摸 | 久久精品亚洲欧美日韩精品中文字幕 | 成人在线中文字幕 | 亚洲 欧美 日韩 在线 | 天天摸天天看 | 国产目拍亚洲精品99久久精品 | 成人av电影天堂 | 在线看片国产精品 | 一区二区三区四区视频 | 成人在线一区二区 |