• 大小: 12.8MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-20
  • 语言: 其他
  • 标签:

资源简介

基于51单片机的传感器使用,文件附有本人亲自测试代码,讲解文档,以及代码详细备注,大家有什么不清楚的地方欢迎咨询。

资源截图

代码片段和文件信息

#include <1602.h>

sbit LCDEN=P3^4;
sbit RS=P3^5;
//RW直接接地,只允许写不允许读
sbit BF=P0^7;

//u8 DectectBusyBit(void)//状态判断函数(忙/闲?)
//{   
// bit result;
// P0 = 0xff; //读状态前先置高电平,防止误判
// RS = 0;
// delay_ms(5);
//    RW = 1;
// LCDEN = 1;
// delay_ms(5);
// result=BF; //若LCM忙则反复测试在此处原地踏步;当LCM闲时,才往下继续
// LCDEN = 0;
// return result;       
//}

//u8 RdACAdr(void)//读当前光标地址
//{   
// u8 result;
// P0 = 0xff; //读地址前先置高电平,防止误判
// RS = 0;
// delay_ms(5);
//    RW = 1;
// LCDEN = 1;
// delay_ms(5);
// result=P0&0x7f; //去掉最高位忙闲标记,只保留低7位地址值
// LCDEN = 0;
// return result;       
//} 

void WrComLCD(u8 ComVal)//写命令函数
{
// while(DectectBusyBit()==1);         //先检测LCM是否空闲
RS = 0;
delay_ms(1);
//  RW = 0;
LCDEN = 1;
P0 = ComVal;
delay_ms(1);
LCDEN = 0;
}

void WrDatLCD(u8 DatVal)//写数据函数
{
// while(DectectBusyBit()==1); 
RS = 1;
delay_ms(1);
//  RW = 0;
LCDEN = 1;
P0 = DatVal;
delay_ms(1);
LCDEN = 0;
}

void LCD1602_Init(void)//1602初始化函数

WrComLCD(0x38);     // 功能设定:16*2行、5*7点阵、8位数据接口
WrComLCD(0x38);
WrComLCD(0x38);    
//多次重复设定功能指令因为LCD启动后并不知道使用的是4位数据接口还是8位的,所以开始时总是默认为4位,这样刚开始写入功能设定指令时,低4位被忽略为了可靠,最好多写几遍该指令 
WrComLCD(0x01);    // 清屏 
WrComLCD(0x06);    // 光标自增、屏幕不动  
delay_ms(1);       // 延时,等待上面的指令生效,下面再显示,防止出现乱码
WrComLCD(0x0C);    // 开显示、关光标
delay_ms(5);
}

void LCD1602pos(u8 xu8 y)//1602显示坐标定位函数:x为行标,0:第一行,1:第二行;y为列标,0-15
{
u8 t;
t=x?0x40:0x00;
WrComLCD(0x80+t+y);  
}

void LCD1602_disstr(u8 *pu8 xu8 y)//从指定坐标开始显示英文字符串(长度不超过32)
{
u8 i=0t;
    LCD1602pos(xy);
while(p[i]!=‘\0‘)
{  
   WrDatLCD(p[i]);
i++;
delay_ms(5);

// t=RdACAdr();
    //  if(t==0x10) LCD1602pos(10);//读当前坐标,如果第1行写完换行到第2行
// if(t==0x50) LCD1602pos(00);//读当前坐标,如果第2行写完换行到第1行
    
    if(y+i==16) {x=x^0x01;LCD1602pos(x0);}//x=x^0x01;//如果第1行写完换行到第2行如果第2行写完换行到第1行

}
}
void LCD1602_disch(u8 chu8 xu8 y)//显示一个英文字符
{
    LCD1602pos(xy);
WrDatLCD(ch);
delay_ms(5);
}

void LCD1602_clear(void)//1602清屏函数
{
  WrComLCD(0x01);    // 清屏


void LCD1602_backspace(void)//向左删除一个字符
{
  WrComLCD(0x10);//光标左移
WrDatLCD(‘ ‘);//输出空格
WrComLCD(0x10);//光标左移
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-02-24 14:05  2016117147 吕建冲 实验二 超声波测距\
     文件       54390  2018-11-16 22:41  2016117147 吕建冲 实验二 超声波测距\2016117147 吕建冲 18实验2.docx
     目录           0  2019-02-24 14:05  2016117147 吕建冲 实验二 超声波测距\超声波\
     文件        5778  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\1602.LST
     文件        6965  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\1602.OBJ
     文件        2593  2018-11-08 08:34  2016117147 吕建冲 实验二 超声波测距\超声波\1602.c
     文件         396  2018-11-06 22:26  2016117147 吕建冲 实验二 超声波测距\超声波\1602.h
     文件        6376  2009-05-07 14:37  2016117147 吕建冲 实验二 超声波测距\超声波\STARTUP.A51
     文件       14051  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\STARTUP.LST
     文件         758  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\STARTUP.OBJ
     文件         247  2018-11-07 11:58  2016117147 吕建冲 实验二 超声波测距\超声波\config.h
     文件        3648  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\supersonic.LST
     文件        5214  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\supersonic.OBJ
     文件        1421  2018-11-13 11:44  2016117147 吕建冲 实验二 超声波测距\超声波\supersonic.c
     文件         228  2018-11-13 11:44  2016117147 吕建冲 实验二 超声波测距\超声波\supersonic.h
     文件       21131  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\test
     文件        4543  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\test.LST
     文件       24154  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\test.M51
     文件        7130  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\test.OBJ
     文件        1858  2018-11-14 16:16  2016117147 吕建冲 实验二 超声波测距\超声波\test.build_log.htm
     文件        1879  2018-11-14 16:37  2016117147 吕建冲 实验二 超声波测距\超声波\test.c
     文件        6776  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\test.hex
     文件          86  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\test.lnp
     文件         258  2019-01-19 22:39  2016117147 吕建冲 实验二 超声波测距\超声波\test.plg
     文件       74630  2018-11-21 19:08  2016117147 吕建冲 实验二 超声波测距\超声波\test.uvgui.Admin
     文件       71401  2018-12-18 19:20  2016117147 吕建冲 实验二 超声波测距\超声波\test.uvgui.Administrator
     文件       57500  2019-01-19 22:39  2016117147 吕建冲 实验二 超声波测距\超声波\test.uvopt
     文件       13893  2019-01-19 22:39  2016117147 吕建冲 实验二 超声波测距\超声波\test.uvproj
     文件        6550  2018-12-18 19:17  2016117147 吕建冲 实验二 超声波测距\超声波\test_uvopt.bak
     文件       14508  2018-12-18 19:17  2016117147 吕建冲 实验二 超声波测距\超声波\test_uvproj.bak
     文件        1298  2018-12-02 11:02  2016117147 吕建冲 实验二 超声波测距\超声波\uart.LST
............此处省略5个文件信息

评论

共有 条评论