📄 lcd.c
字号:
#include <string.h>
#include <stdlib.h>
#include "C8051f.h"
#include "Lcd.h"
bit RS_STU;
unsigned char bdata TA;
sbit ACC0 = TA^0;
sbit ACC1 = TA^1;
sbit ACC2 = TA^2;
sbit ACC3 = TA^3;
sbit ACC4 = TA^4;
sbit ACC5 = TA^5;
sbit ACC6 = TA^6;
sbit ACC7 = TA^7;
#define CS Lcd_CS
#define STD Lcd_STD
#define SCLK Lcd_SCLK
unsigned char code dish[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
unsigned char code disb[]={0x80,0x90,0x88,0x98};
void Delay1ms(unsigned char T);
void Lcd_Delay(unsigned char hjs)
{
do
{
if(hjs == 0)
break;
hjs = hjs-1;
}while(1);
}
void Lcd_Delay2(unsigned int hj)
{
do
{
if(hj == 0)
break;
Lcd_Delay(255);
hj = hj-1;
}while(1);
}
void Lcd_CLK()
{
Lcd_Delay(10);
SCLK=1;
Lcd_Delay(10);
SCLK=0;
}
void Lcd_WR(unsigned char gg)
{
unsigned baka;
// EA = 0;
TA = gg;
CS = 1;
STD = 1;
SCLK = 0;
for(baka = 0; baka<5; baka++)
{
Lcd_CLK();
}
STD = 0;
Lcd_CLK();
if(RS_STU)
{
STD = 1;
}
else
{
STD = 0;
}
Lcd_CLK();
STD = 0;
Lcd_CLK();
for(baka = 0; baka<4; baka++)
{
if(ACC7)
{
STD = 1;
}
else
{
STD = 0;
}
Lcd_CLK();
TA = TA<<1;
}
STD = 0;
for(baka = 0; baka<4; baka++)
{
Lcd_CLK();
}
for(baka = 0; baka<4; baka++)
{
if(ACC7)
{
STD = 1;
}
else
{
STD = 0;
}
Lcd_CLK();
TA = TA<<1;
}
STD = 0;
for(baka = 0; baka<4; baka++)
{
Lcd_CLK();
}
Lcd_Delay(100);
// EA=1;
}
void Lcd_Input(unsigned char gg)
{
Lcd_Delay2(1);
RS_STU = 0;
Lcd_WR(gg);
}
void Lcd_Displ(unsigned char gg)
{
Lcd_Delay2(1);
RS_STU = 1;
Lcd_WR(gg);
}
void Lcd_DisD(unsigned int gg)
{
unsigned char g1;
unsigned char g2;
unsigned char temp;
unsigned int hh;
g1 = 0;
hh = 10000;
for(temp = 0; temp<5; temp++)
{
g2 = gg/hh;
gg = gg-g2*hh;
hh = hh/10;
if(g2 != 0)
{
g1 = 1;
}
if((g1 == 1)||(temp == 4))
{
Lcd_Displ(dish[g2]);
}
}
}
void Lcd_CLS()
{
Lcd_Input(0x01);
Lcd_Delay2(100);
}
void Lcd_Initil()
{
Lcd_RST = 1;
Delay1ms(200);
RS_STU = 0;
Lcd_Delay2(100);
Lcd_Input(0x30);
Lcd_Delay2(100);
Lcd_Input(0x30);
Lcd_Delay2(100);
Lcd_Input(0x30);
Lcd_Delay2(100);
Lcd_Input(0x30);
Lcd_Delay2(100);
Lcd_Input(0x01);
Lcd_Delay2(100);
Lcd_Input(0x06);
Lcd_Delay2(100);
Lcd_Input(0x0c);
Lcd_Delay2(100);
}
void Lcd_Dis(unsigned char ly,unsigned char lx,unsigned char *str)
{
unsigned char temp;
// Initil();
// Lcd_Input(0x01);
// Lcd_Delay2(100);
temp = disb[ly] + lx;
Lcd_Input(temp);
temp = 0;
do
{
if(str[temp] == 0)
break;
Lcd_Displ(str[temp]);
temp++;
}while(1);
}
void Lcd_Display(unsigned char *str)
{
unsigned char temp;
temp = 0;
do
{
if(str[temp] == 0) break;
Lcd_Displ(str[temp]);
temp++;
}while(1);
}
void Lcd_Draw(unsigned char *str)
{
unsigned char kk,k1;
Lcd_CLS();
Lcd_Input(0x34);
Lcd_Input(0x34);
Lcd_Input(0x80);
Lcd_Input(0x80);
Lcd_Input(0x30);
Lcd_Input(0x30);
for(kk = 0; kk < 32; kk++)
{
Lcd_Input(0x34);
Lcd_Input(0x34);
Lcd_Input(0x80+kk);
Lcd_Input(0x80);
Lcd_Input(0x30);
Lcd_Input(0x30);
for(k1 = 0; k1<16; k1++)
{
Lcd_Displ(str[kk*32+k1]);
Lcd_Displ(str[kk*32+k1+1]);
}
}
Lcd_Input(0x34);
Lcd_Input(0x36);
Lcd_Input(0x30);
Lcd_Input(0x30);
}
void CursorMove(unsigned char y, unsigned char x, bit CursorOnOff)
{
unsigned char temp;
temp = disb[y] + x;
Lcd_Input(temp);
Lcd_Delay2(100);
temp = 0x0e;
if (CursorOnOff == 0)
{
temp &= 0xfd;
}
Lcd_Input(temp);
Lcd_Delay2(100);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -