关键词不能为空

当前您在: 主页 > 英语 >

超声波代码

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-09 08:27
tags:

-

2021年2月9日发(作者:dermes)


#include


#include


#define uint unsigned int


#define uchar unsigned char



sbit rs=P2^6;













//1602


的数据


/


指令选择控制线





sbit rw=P2^5;












//1602


的读写控制线







sbit en=P2^7;











//1602


的使能控制线








sbit trig=P3^1;







//


超声波测距模块


Trig



sbit echo=P3^2;






//


超声波测距模块


Echo



bit flag1;










//


触发信号标志位


//


sbit r=P1^0;



uchar count;












//


中断累加变量



long int distance;





//


测量所得距离




unsigned char code table[ ]={


定义字符数组显示数字




/*--------------------------------------- ---------




















延时函数



------------ ------------------------------------*/


void delay(uint n)





























{







uint x,y;








for(x=n;x>0;x--)







for(y=110;y>0;y--);



}




< /p>


/*-------------------------------------- ----------




















延时函数



------------ ------------------------------------*/


void delayt(uint x)


{






uchar j;






while(x-- > 0)






{
















for(j = 0;j < 125;j++)










{












;










}






}


}






/*------------- -----------------------------------


















1602


写命令函数




--------------------------- ---------------------*/


void lcd_wcom(uchar com)














{







rs=0;

















//


选择指令寄存器








rw=0;
















//


选择写








P0=com;













//


把命令字送入


P0







delay(5);










//< /p>


延时一小会儿,让


1602


准备接收数据








en=1;













//< /p>


使能线电平变化,命令送入


1602


的< /p>


8


位数据口


,


这 点非常重要








en=0;




}




/* ------------------------------------------------

















1602


写数据函数







----------------------------------------- -------*/


void lcd_wdat(uchar dat)










{







rs=1;














//


选择数据寄存器








rw=0;













//


选择写








P0=dat;










//


把要显示的数据送入


P0







delay(5);







//


延时一小会儿,让


1602

< p>
准备接收数据


,


也就是检测忙信号,这点非常


重要。







en=1;










//


使能线电平变化,数据送入


1602< /p>



8


位数据口








en=0;





}





/*------------- -----------------------------------


















1602


初始化函数









--------------- ---------------------------------*/


void lcd_init()
















{







lcd_wcom(0x38);








//8


位 数据,双列,


5*7


字形




,用到功能设定指令












lcd_wcom(0x0c);







//


开启显示屏,关光标,光标不闪烁,用到显示开关控制指令








lcd_wcom(0x06);






//


显示地址递增,即写一个数据后,显示位置右移一位,用到了< /p>


写入模式设置指令







lcd_wcom(0x01);





//


清屏,用到了清屏指令



}




/* ------------------------------------------------
















1602


显示固定字符函数









--------------- ---------------------------------*/


void lcd_xianshi()
















{







lcd_wcom(0x80+0x40);










lcd_wdat('D');










lcd_wdat('i');










lcd_wdat('s');










lcd_wdat('t');










lcd_wdat('a');













lcd_wdat('n');










lcd_wdat('c');










lcd_wdat('e');










lcd_wdat(':');










lcd_wcom(0x80+0x4c);










lcd_wdat('.');










lcd_wcom(0x80+0 x4e);//


单位是厘米


//










lcd_wdat('c');










lcd_wdat('m');



}



< /p>


/*-------------------------------------- ----------


???


定时器


0


初始化,用于计算响应信号时间



- -----------------------------------------------*/


void init_t0()


{










TMOD=0x01;




















TL0=0x66;










TH0=0xfc;















//1ms






ET0=1;























EA=1;
























}




/* ------------------------------------------------


???






超声波模块触发信号



--------------------------------------------- ---*/


void trigger()


{






trig=0;




_nop_();


-


-


-


-


-


-


-


-



本文更新与2021-02-09 08:27,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/620043.html

超声波代码的相关文章