基于51单片机的超声波测距系统的毕业设计报告

内容发布更新时间 : 2025/7/20 15:19:54星期一 下面是文章的全部内容请认真阅读。

中北大学毕业论文

Write_Comm(0x01); //清显示 Write_Comm(0x80); //写首地址 for(a=0;a<16;a++) {

d=dispBUF[a];

if((a>11)&&(a<14)) {

d=numcode[num[a]]; }

if(14==a) { d=0xdf; }

Write_Data(d); }

Write_Comm(0xc0); for(b=16;b<33;b++) {

d=dispBUF[b]; if((b>24)&&(b<29)) {

d=numcode[num[b]]; }

Write_Data(d); } }

/*********检查LCD忙状态***********/ bit LCD_BUSY() { bit BS; RW = 1; RS = 0; E = 1; delay1ms(1); BS =(bit)(P0&0x80);

//如果是结果位到num[]里面读取

//待显示的结果

//写入要显示的数据

//换行,换到第二行

//写入要显示的数据(数据传输)

//lcd_busy为1时,忙,等待。lcd-busy

为0时,闲,可写指令与数据

41

中北大学毕业论文

E = 0; return BS; }

/*******************写指令函数******************************/ void Write_Comm(uchar lcdcomm) //写指令

{

while(LCD_BUSY()); RS = 0; RW = 0; E = 1; delay1ms(1); P0= lcdcomm; delay1ms(1); E = 0; }

/*********************写数据函数****************************/ void Write_Data(uchar lcddata)//写数据 {

while(LCD_BUSY()); RS = 1; RW = 0; E = 1; delay1ms(1); P0= lcddata;

delay1ms(1); //判断是否忙状态 E = 0; }

/*********************初始化LCD****************************/ void Init_LCD() {

delay(); //稍微延时,等待LCD进入工作状态 Write_Comm(0x01); //清显示 Delay(2);

Write_Comm(0x38); //8位2行 5*8 Delay(2);

Write_Comm(0x06); //文字不动,光标右移

42

中北大学毕业论文

Delay(2);

Write_Comm(0x0c); //显示开/关,光标开闪烁开 Delay(2); }

/*************************延时n*15US函数*************************/ void delay15(uchar us)

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi