📄 lcd12232ea.c.bak
字号:
#include <pic.h>
#include <pic1687x.h>
#include "ZWH2.h"
//定义:
extern void delay1ms(char count);
extern void delay3(void);
extern bank1 char c485Buf[31];
void check_busy();
//void LCD_Write_Com(unsigned char val);
//void LCD_Write_Dat(unsigned char val);
void ioint();
void delayLCD(unsigned int time);
void LcdFucInt(void) ;
void LcdCout(unsigned char COUNT ) ;
void LCDCOUNTOVER (unsigned char COUNT);
void LcdFuc(unsigned char FucLcd);//显示内容用
void LcdFuc2(char CLen,const unsigned char *FData);//显示菜单方法2
//LCD显示用的数字缓存
unsigned char DispCout[1];
unsigned char timecount ;
//
void delayLCD(unsigned int time)
{
int s;
for(s=0;s<time;s++);
}
void check_busy(){
RS=0;RW=1; //按照上表,设定好读取LCD状态字的控制线。
do{
E=0;
E=1;
}while(Lcd_IO&0x80); //判断最高位状态,如果是1,则反复送E时续,直到LCD空闲
E=0;
SetLcd_IO=0;
//使IO口处于输出状态,为向LCD写数据作准备。
}
//写命令与数据
void LCD_Write_Com(unsigned char val)
{
check_busy(); //检查LCD是否空闲
RS=0;RW=0; //根据上表设定控制脚,CS1、2在check_busy();里事先有设定
E=1;
Lcd_IO=val; //E时续下降沿输入数据
asm("nop");
asm("nop");
E=0;
SetLcd_IO=0xff; //写完数据,立即把IO口设定成高阻,提高可靠性。
delayLCD(10);
}
void LCD_Write_Dat(unsigned char val)
{
check_busy();
RS=1;RW=0;
E=1;
Lcd_IO=val;
E=0;
SetLcd_IO=0xff;
delayLCD(10);
}
// 初始化函数
void ioint()
{
PORTA=0;
PORTD=0; //先清0 C、D口,避免干扰
SetLcd_CON =0B11100000; //把C口控制线设成输出。
SetLcd_IO=0x00; //D口输入。
}
//
void Lcdint() //显示屏初始化
{
ioint();
//delay3 的延时是300US
//delay1ms 0x10 是12MS 0A是 7.8MS 0X7F是100MS
//;FUNCTION SET 设定为八位并口模式
delay1ms(0X7F);
LCD_Write_Com(0x30);
//
// 要延时200USS
delay3();
LCD_Write_Com(0x30);
//;DISPON/OFF CONTROL 显示状态设定
//要延时200USS
delay3();
LCD_Write_Com(0X0F);
//;DISPLAY CLEAR 消除显示
//延时100MS
delay1ms(0x7f);
LCD_Write_Com(0X01);
//ENTRY MODE SET 进入设定点
LCD_Write_Com(0X06);
//延时10MS
delay1ms(0x7f);
}
void LcdFuc2(char CLen,const unsigned char *FData)
{
char c;
LCD_Write_Com(0X01);
delay1ms(0x7f);
if(CLen<15)
{
LCD_Write_Com(0x80);
nop;
if (CLen != 0)
{
for (c = 0; c < CLen; c++)
{
LCD_Write_Dat(*FData++); // Send data
nop;
}
}
}
else if(CLen>14)
{
LCD_Write_Com(0x80);
for (c = 0; c < 14; c++)
{
LCD_Write_Dat(*FData++); // Send data
}
LCD_Write_Com(0X90);
for (c = 14; c < CLen; c++)
{
LCD_Write_Dat(*FData++); // Send data
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -