资源简介

单片机型号:STC12C5A60S2 显示型号:MAX7219 温度芯片:DS18B20 超声波测距芯片:HRS420

资源截图

代码片段和文件信息

 #include
 #include  //包含_nop_()函数
 #include


/*********************定时器0、定时器1初始化******************/
void timer_init()   
{

  TMOD|= 0x01;//定时器0工作方式1
  TH0=0x00;    
  TL0=0x00; 
  ET0=1;
  EA=1;

/*void timer0() interrupt 1
{
static unsigned int i;
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
i++;
if(i==1000)
{
i=0;
led=~led;
}
}  */





void DelayUs2x(unsigned char t)
{   
 while(--t);
}
 
unsigned int test_distan()   //测试距离函数。 晶振fosc=11.0592Mhz时,一个机器周期为0.9216us
 { 
  double time=0;
  timer_init();
 TRIG=1;       //触发信号是高电平脉冲,宽度大于10us
DelayUs2x(10);
TRIG=0;
while(!ECHO); //等待高电平
TR0=1;
while(ECHO);  //等待低电平
TR0=0;
time = TH0*256+TL0;//取出定时器值高8位和低8位合并
    TH0=0;
TL0=0; 

  return time;
   
 }  
  
 /*************************************
   有关串口通信的初始化

 ****************************************/
 void uart_init()
{
   TMOD=0x21;     //TMOD=0
   TH1=0xfd;      //11.0592MHZ   ,BPS:9600,N,8,1
   TL1=0xfd;
   PCON=0x00;     //方式一8位数据位,一位起始位和一位结束位
   TR1=1;         //
   SCON=0x50;     //串口通信控制寄存器  模式一
 
}
/***   串口中断函数   ***/
/*void uart_Serial(void)  interrupt 4
{
    if(RI)   //接收中断
    {
        TH0 = T0MS;          //每收到一位数据,定时器重新赋初值(位与位之间发送时间大约1us)
        TL0 = T0MS>>8;
        REV[index++] = SBUF;   //接收
        RI = 0;                //RI中断软件清零,准备接收下一帧数据    
        TR0 = 1;               //打开定时器T0
    }
}  */

void uart_putchar(unsigned char dat)
{
SBUF=dat; //把数据送给sbuf缓存器中
while(TI!=1);//发送标志位 TI如果发送了为1,没发送为0,没发送等待,到了退出循环
TI=0;  //到了,TI清为0
  
}
void uart_printf(unsigned char *buff)
{
 
  while(*buff)
  uart_putchar(*buff++);
}         


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-29 11:07  超声波测距\
     文件        4228  2018-05-23 15:40  超声波测距\bsp_timer.lst
     文件        2763  2018-05-22 09:53  超声波测距\KEIL.DSK
     文件        2116  2018-05-22 09:53  超声波测距\KEIL.PRJ
     文件       22288  2018-05-25 08:40  超声波测距\seg
     文件        5211  2018-05-25 08:40  超声波测距\SEG.C
     文件        6983  2018-05-25 08:40  超声波测距\SEG.HEX
     文件          70  2018-05-25 08:40  超声波测距\SEG.LNP
     文件        9540  2018-05-25 08:40  超声波测距\seg.LST
     文件       27169  2018-05-25 08:40  超声波测距\SEG.M51
     文件       11560  2018-05-25 08:40  超声波测距\seg.OBJ
     文件        1447  2018-05-22 09:53  超声波测距\seg.opt.bak
     文件         171  2018-05-29 11:07  超声波测距\SEG.PLG
     文件        2210  2018-05-22 09:53  超声波测距\seg.Uv2.bak
     文件       82383  2018-05-29 11:07  超声波测距\seg.uvopt
     文件       13797  2018-05-23 11:14  超声波测距\seg.uvproj
     文件        1447  2018-05-22 09:53  超声波测距\seg_Opt.Bak
     文件        2173  2018-05-22 09:53  超声波测距\seg_Uv2.Bak
     文件       82403  2018-05-25 08:44  超声波测距\seg_uvopt.bak
     文件       13627  2018-05-22 09:53  超声波测距\seg_uvproj.bak
     文件        6376  2018-05-22 09:53  超声波测距\STARTUP.A51
     文件       14048  2018-05-25 08:40  超声波测距\STARTUP.LST
     文件         749  2018-05-25 08:40  超声波测距\STARTUP.OBJ
     文件        1948  2018-05-25 08:39  超声波测距\super.c
     文件         265  2018-05-24 09:17  超声波测距\super.h
     文件        4322  2018-05-25 08:40  超声波测距\super.LST
     文件        4778  2018-05-25 08:40  超声波测距\super.OBJ
     文件        3908  2018-05-24 10:19  超声波测距\template.c
     文件        1279  2018-05-24 10:24  超声波测距\template.h
     文件        8930  2018-05-25 08:40  超声波测距\template.LST
     文件        7830  2018-05-25 08:40  超声波测距\template.OBJ
............此处省略0个文件信息

评论

共有 条评论