|
发表于 2022-7-22 20:13:36
|
显示全部楼层
程序
#include <reg52.h>
#include <intrins.h>
#define LCD_DataPart P0
#define uchar unsigned char
sbit LCD_RS=P1^2;
sbit LCD_RW=P1^1;
sbit LCD_EN=P1^0;
void Delay1ms();//@11.0592MHz
void LCD_Init();
void LCD_ShowChar(uchar Line,uchar Column,uchar Char);
void main()
{
LCD_Init();
LCD_ShowChar(1,1,'A');
while(1)
{
}
}
void LCD_WriteCmd(uchar Cmd)//写命令
{
LCD_RS=0;
LCD_RW=0;
LCD_DataPart=Cmd;
LCD_EN=1;
Delay1ms();
LCD_EN=0;
Delay1ms();
}
void LCD_WriteData(uchar Data)//写数据
{
LCD_RS=1;
LCD_RW=0;
LCD_DataPart=Data;
LCD_EN=1;
Delay1ms();
LCD_EN=0;
Delay1ms();
}
void LCD_Init()//初始化
{
LCD_WriteCmd(0x38); //开显示
LCD_WriteCmd(0x0C); //开显示关光标
LCD_WriteCmd(0x06);//写字符指针加一
LCD_WriteCmd(0x01); //清屏
}
void LCD_ShowChar(uchar Line,uchar Column,uchar Char)
{
if(Line==1)
{
LCD_WriteCmd(0x80|(Column-1));
}
else
{
LCD_WriteCmd(0x80|(Column-1)+0x40);
}
LCD_WriteData(Char);
}
void Delay1ms()//@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
} |
|