⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.c

📁 51单片机上的1602LCD显示程序(4线模式)可以实现字符和变量的显示
💻 C
字号:
#include <reg52.h>
//1602显示模块 四位数据线P1高四位 用sprintf显示浮点变量过于占用资源           
#include <string.h>
#include "stdio.h"

/********************************************************************/
#define  LCM_Data       P1

sbit LCM_RS=P2^0;   

sbit LCM_RW=P2^1;   

sbit LCM_E=P2^2;

sbit P1_7=P1^7;

char buffer[10];//浮点变量显示

//5ms延时 
void Delay5Ms(void) 
{ 
unsigned int TempCyc = 5552; 
while(TempCyc--); 
} 

//400ms延时 
void Delay400Ms(void) 
{ 
unsigned char TempCycA = 5; 
unsigned int TempCycB; 
while(TempCycA--) 
{ 
TempCycB=7269; 
while(TempCycB--); 
}; 
}

//读状态 
unsigned char ReadStatusLCM(void) 
{ 
P1_7=1; 
LCM_RS = 0; 
LCM_RW = 1; 
LCM_E = 0; 
LCM_E = 0; 
LCM_E = 1; 
while(P1_7&0x01);//检测忙信号 
return(P1_7); 
} 
 

void writelcd(bit command,unsigned char ddata) 
{ 
ReadStatusLCM(); //检测忙 
LCM_Data = (ddata&0xf0)|(P1&0x0f); 
LCM_RW = 0; 
if(command==0) LCM_RS = 0; else LCM_RS=1; 
LCM_E = 1; 
LCM_E = 0; 
LCM_E = 0; 
LCM_Data = ((ddata<<4)&0xf0)|(P1&0x0f); 
if(command==0) LCM_RS = 0; else LCM_RS=1; 
LCM_E = 1; 
LCM_E = 0; 
LCM_E = 0; 
} 


void LCMInit(void) //LCM初始化 
{ 
//LCM_Data=0xff; 
writelcd(0,0x01); //显示清屏 
writelcd(0,0x28); //三次显示模式设置,不检测忙信号 
Delay5Ms(); 
writelcd(0,0x28); 
Delay5Ms(); 
writelcd(0,0x28); 
Delay5Ms(); 
writelcd(0,0x28); //显示模式设置,开始要求每次检测忙信号 
writelcd(0,0x0c); // 显示开及光标设置 
writelcd(0,0x01); //显示清屏 

writelcd(0,0x06); // 显示光标移动设置 
} 

//按指定位置显示一个字符 
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData) 
{ 
Y &= 0x1; X &= 0xF; //限制X不能大于15,Y不能大于1 
if (Y) X |= 0x40; //当要显示第二行时地址码+0x40; 
X |= 0x80; //算出指令码 
writelcd(0,X); 
//Delay5Ms(); //////////////////////////
writelcd(1,DData); 

} 

//按指定位置显示一串字符 ***原来的遇到空格0x20就不显示*** 
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char  *DData) //原来unsigned char code DData
{ 
unsigned char ListLength,j,buchong; 
ListLength = strlen(DData); 
Y &= 0x1; 
X &= 0xF; //限制X不能大于15,Y不能

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -