📄 lcd.c
字号:
#include<regx52.h>
#include<intrins.h>
#include"lcd.h"
uchar m_x=0,m_y=0,m_b=0;
/* */
void lcd_delay(void)
{
unsigned char i;
for (i=0;i<10;i++);
}
/* */
void lcd_wbyte(char s){
unsigned char i; //24个时钟周期读写一个字节 11111_RW_RS_0_D7_D6_D5_D4_0000_D3_D2_D1_D0_0000
for(i=0;i<8;i++)
LCD_CLK(
SID=(bit)(s&0x80);
s=s<<1;
)
}
/* */
void lcd_write_cmd(char dat){
lcd_wbyte(WRITE_CMD);
lcd_wbyte(dat&0xf0);
lcd_wbyte(dat<<4);
lcd_delay();
}
/* */
void lcd_write_data(char dat){
lcd_wbyte(WRITE_DATA);
lcd_wbyte(dat&0xf0);
lcd_wbyte(dat<<4);
lcd_delay();
}
/* */
void lcd_init_text(void){
SID=0;
SCLK=0;
CS=1;
lcd_write_cmd(LCD_TEXT_SEL);
lcd_write_cmd(TEXT_ON);
lcd_write_cmd(TEXT_CLEAR);
lcd_write_cmd(TEXT_RESET);
// lcd_write_cmd(0x06);
lcd_write_cmd(TRAM);
}
/**/
void _clear(void){
lcd_write_cmd(TEXT_ON);
lcd_write_cmd(TEXT_CLEAR);
lcd_write_cmd(TEXT_OFF);
}
/**/
void _puts(char*str){
lcd_write_cmd(TEXT_ON);
while(*str)
lcd_write_data(*str++);
lcd_write_cmd(TEXT_OFF);
}
/**/
void lcd_init_grah(void){
lcd_write_cmd(GRAH_ON);
lcd_write_cmd(GRAM|0x00);
lcd_write_cmd(GRAM|0x00);
clear();
m_x=m_y=m_b=0;
}
void clear(){
unsigned char i,j;
for(j=0;j<32;j++)
{
lcd_write_cmd(GRAM|0x00+j);
lcd_write_cmd(GRAM|0x00);
for(i=0;i<32;i++)
lcd_write_data(0x00);
}
lcd_write_cmd(GRAM|0x00);
lcd_write_cmd(GRAM|0x00);
}
void moveto(uchar x,uchar y){
if(x<0||x>127||y<0||y>63)return;
m_y=y%32;
m_x=x/16+(y>>5)*8;
m_b=x%16;
lcd_write_cmd(GRAM|m_y);
lcd_write_cmd(GRAM|m_x);
}
void pot(uchar x,uchar y){ //画点的效率很低
moveto(x,y);
if(m_b>7)lcd_write_data(0x00);
lcd_write_data(1<<(7-m_b));
}
void draw_line(uchar j){
uchar i;
if(j<0||j>63)return;
lcd_write_cmd(GRAM|0x00+j%32);
lcd_write_cmd(GRAM|0x00+j/32*8);
for(j=0;j<16;j++)
lcd_write_data(0xff);
}
void draw_row(uchar k){
uchar i,j;
if(k<0||k>127)return;
moveto(k,0);
for(i=0;i<64;i++)
{
lcd_write_cmd(GRAM|(i%32));
lcd_write_cmd(GRAM|m_x+(i/32)*8);
if(m_b>7)lcd_write_data(0x00);
lcd_write_data(1<<(7-m_b));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -