教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

基于AT89C51单片机倒车防撞报警系统设计 - 图文(4)

来源:网络收集 时间:2026-08-18
导读: _nop_(); _nop_(); _nop_(); _nop_(); } csb_in=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } 4.8 超声波接收及显示程序 Void duqu() { Uchar num; num0=num1=num2=num

_nop_(); _nop_(); _nop_(); _nop_(); }

csb_in=0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); }

4.8 超声波接收及显示程序

Void duqu() {

Uchar num;

num0=num1=num2=num3=num4=0; csb_out=1;

for(num=0;num<10;num++) send(); TR0=1

If(csb_out==0) {

TR0=0;

time=(TH0*256+TL0)/2; Long=0.344*time;

Distance=Long; P1=distance;

Num4=distance/10000;

Num3=distance000/1000; Num2=distance00/100; Num1=distance0/10; Num0=distance;

write_com(0×80+0×40+0×10); write_date(0×30+num4); delay(10);

13

write_date(0×30+num3); delay(10);

write_date(0×30+num2); delay(10);

write_date(0×30+num1); delay(10);

write_date(0×30+num0); delay(10); // delay(1000); TH0=0×00; TL0=0×00;

} }

4.9 1602显示初始化写指令写数据程序

/*****************************************************************

检查LCD忙状态

Lcd_busy为1时,忙,等待。Lcd_busy为0时,闲,可写指令与数据。 /

bit lcd_busy() {

bit result; lcdrs=0; lcdrw=1; lcden=1; _nop_(); _nop_(); _nop_(); _nop_();

result=(bit)(P0&0×80); lcden=0;

return result; }

/*************************************************************** /* 1602液晶写指令函数 */ /* */ /***********************************************************/

14

void write_com(uchar com) {

white(lcd_busy()): lcdrs=0; //选择写指令模式

lcdrw=0; //设置1602液晶为写模式 Icden=0; //使能端置低电平

P0=com; //将要写的命令字送到数据总线上 _nop_(); //稍作延时是为了数据稳定 _nop_(); _nop_(); _nop_();

Icden=1 //给使能端一个高脉冲,初始化已将能使端至低 _nop_(); //稍作延时 _nop_(); _nop_(); _nop_();

Icden=0; //将使能端置0为了完成高脉冲 }

/********************************************/ 1602液晶写数据函数

/********************************************/ Void write_date() }

While(Icd_busy90);

Icdrs=1 ; //选择读指令模式

Icden=0; //设置1602液晶为写模式 Icden=0; //使能端置低电平

P0=date; //将要写的命令字送到数据总线上 _nop_(); //稍作延时是为了是数据稳定 _nop_(); _nop_(); _nop_();

Icden=1; //给使能端一个高脉冲,初始化中已将使能端至低

_nop_(); _nop_();

_nop_(); //稍作延时 _nop_();

Icden=0 //将使能端至0是为了完成高脉冲 }

15

/*******************************************************************

/* */

/* 1062液晶显示函数 */

/* */

/**********************************************************************

*/

Void icd_display() {

Uchar a,b,c,d; For(a=0;a<16;a++) {

Write_date(table0[a]); //显示table0 Delay(200); }

Write_com(0×80+0×40); //第二行首地址 For(b=0;b<12;b++) {

Write_date(table1[b]); //显示table1 Delay(200); }

Write_com(0×01); //清屏 Write_com(0×80); For(c=0;c<16;c++) {

Write_date(table2[c]); //第二次写入显示table2

Delay(200) }

Write_com(0×80+0×40); For(b=0;b<12;b++) {

16

Write_date(table3[d]); //显示table3 Delay(200); }

TR0=1; //开定时器0 TR1=1; }

/*********************************************************************

初始化函数

/********************************************************************/

Void init() {

Delay(15);

Write_com(0×01); //清除LED的显示内容

Write_com(0×38); //16*2显示,5*7点阵,8位数据 Delay(5)

Write_com(0×38); Delay(5)

Write_com(0×38); //设置16×2显示,5×7点阵,8位数据口

Delay(5)

Write_com(0×0c); //设置开显示,不显示光标 Delay(5)

Write_com(0×06); //设置写入一个字符后指针自动加一 Delay(5); Write_com(0×80); //第一行数据首地址

TMOD=0×11 TH0=0×00

TL0=0×00

TH1=(65536-50000)/256;//设定初值 TL1=(65536-50000)%6;

EA=1; //开总中断

// ET0=1; //开定时器0中断

ET1=1;

}

/********************************************************************

设定显示位置

/**************************************************************

17

…… 此处隐藏:1151字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于AT89C51单片机倒车防撞报警系统设计 - 图文(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/448487.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)