标题:
protues仿真LCD1601亮但是没有显示.求大佬指点一下
[打印本页]
作者:
bzdgjsm
时间:
2023-4-20 23:40
标题:
protues仿真LCD1601亮但是没有显示.求大佬指点一下
原理图.png
(196.78 KB, 下载次数: 34)
下载附件
2023-4-20 23:39 上传
#include<reg51.h>
#include<intrins.h>
#include<math.h>
#define uint unsigned int
#define uchar unsigned char
#define RS_CLR RS=0
#define RS_SET RS=1
#define RW_CLR RW=0
#define RW_SET RW=1
#define EN_CLR EN=0
#define EN_SET EN=1
#define DataPort P2
sbit RS = P3^0;
sbit RW= P3^1;
sbit EN = P3^2;
unsigned char Data ;
unsigned char x;
unsigned char y ;
void LCD_Init(void) ;
void inti()
{LCD_Init() ;
TMOD=0x05 ;/
TH0=F0 ;
TL0=60 ;/
TR0=1;
}
// μ¥???ú??????3?êy??
uint num;
void delay(uint xms)
{
uint j;
for(;xms>0;xms--)
for(j=110;j>0;j--);
}
void DelayUs2x(unsigned char t)
{
while(--t); }
void DelayMs(unsigned char t)
{
while(t--)
{
DelayUs2x(245);
DelayUs2x(245); }}
bit LCD_Check_Busy(void)
{
DataPort= 0xFF;
RS_CLR;
RW_SET;
EN_CLR;
_nop_();
EN_SET;
return (bit)(DataPort & 0x80); }
void LCD_Write_Com(unsigned char com)
{
// while(LCD Check Busy0)
DelayMs(5);
RS_CLR;
RW_CLR;
EN_SET ;
DataPort= com;
_nop_();
EN_CLR; }
void LCD_Write_Data(unsigned char Data)
{
//while(LCD_Check_Busy0)
DelayMs(5);
RS_SET;
RW_CLR;
EN_SET;
DataPort= Data;
_nop_();
EN_CLR;}
void LCD_Clear(void)
{
LCD_Write_Com(0x01);
DelayMs (5); }
void LCD_Write_String (unsigned char x, unsigned char y,unsigned char *s)
{
if (y == 0)
{
LCD_Write_Com(0x80 + x);
}
else
{
LCD_Write_Com(0xC0 + x);
}
while (*s)
{
LCD_Write_Data( *s);
s ++; }}
void LCD_Write_Char(unsigned char x, unsigned char y, unsigned char Data)
{
if (y == 0)
{
LCD_Write_Com(0x80 + x);
}
else
{
LCD_Write_Com(0xC0 + x);
}
LCD_Write_Data( Data); }
void LCD_Init(void)
{
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs(5);
LCD_Write_Com(0x38);
DelayMs (5) ;
LCD_Write_Com(0x38);
LCD_Write_Com(0x08);
LCD_Write_Com(0x01);
LCD_Write_Com(0x06);
DelayMs (5);
LCD_Write_Com(0x0C); }
void main()
{
inti();
while(1)
{
float num1,num2,num;
Data=TH0*255+TL0;
if(Data==4000)
{
TH0=F0;
TL0=60;
TR0=0;
}
num1=Data/4*0.05;
num2=0.05/4*(Data%4);
num=num1+num2;
LCD_Write_Char(x,y,num) ;
}
}
复制代码
作者:
15031773670
时间:
2023-5-27 20:09
这么复 杂。没有什么意义吧。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1