📄 lcd12864.c
字号:
#include "lcd12864.h"
void loop_lcd12864_is_busy(unsigned char right)
{
unsigned char tmp,counter=0;
do
{
if(right) tmp = LCD_RCR;
else tmp = LCD_LCR;
if(counter++>50) break;//超时跳出
}
while ((tmp|0x7f)==0xff);
}
void lcd_cmd_wr(unsigned char cmdcode,unsigned char right)
{
loop_lcd12864_is_busy(right);
if(right) LCD_RCW = cmdcode;
else LCD_LCW = cmdcode;
}
void lcd_data_wr(unsigned char ldata,unsigned char right)
{
loop_lcd12864_is_busy(right);
if(right) LCD_RDW = ldata;
else LCD_LDW = ldata;
}
void lcd12864_clr(void)
{
unsigned char i,j;
for(i=0;i<8;i++)
{
lcd_cmd_wr(SETY+i,0);
lcd_cmd_wr(SETX,0);
lcd_cmd_wr(SETY+i,1);
lcd_cmd_wr(SETX,1);
for(j=0;j<64;j++)
{
lcd_data_wr(0,0);
lcd_data_wr(0,1);
}
}
}
void lcd12864_init(void)
{
lcd_cmd_wr(DISPON,0);
lcd_cmd_wr(DISPFIRST,0);
lcd_cmd_wr(SETY,0);
lcd_cmd_wr(SETX,0);
lcd_cmd_wr(DISPON,1);
lcd_cmd_wr(DISPFIRST,1);
lcd_cmd_wr(SETY,1);
lcd_cmd_wr(SETX,1);
lcd12864_clr();
}
/*图片写入函数*/
void lcd12864_put_xywhb(unsigned char x,y,w,h,unsigned char *bmp)
{
unsigned char i,j;
h = h/8;
for(i=0;i<h;i++)
{
lcd_cmd_wr(SETY+y+i,0);
lcd_cmd_wr(SETX+x,0);
for(j=0;j<w-64;j++)
lcd_data_wr(bmp[128*i+j],0);
lcd_cmd_wr(SETY+y+i,1);
lcd_cmd_wr(SETX+x,1);
for(j=64;j<w;j++)
lcd_data_wr(bmp[128*i+j],1);
}
}//*
/*8x8点阵asci字符显示*/
void lcd12864_put_xystr(unsigned char x,y,n,unsigned char *str)
{
unsigned char i;
for(i=0;i<n;i++) {
if((x+i)>63) {
lcd_cmd_wr(SETY+y,1);
lcd_cmd_wr(SETX+x+i-64,1);
lcd_data_wr(str[i],1);
}
else {
lcd_cmd_wr(SETY+y,0);
lcd_cmd_wr(SETX+x+i,0);
lcd_data_wr(str[i],0);
}
}
}//*/
/*8x8点阵asci字符显示*/
void lcd12864_put_clr(unsigned char x,y,n)
{
unsigned char i;
for(i=0;i<n;i++) {
if((x+i)>63) {
lcd_cmd_wr(SETY+y,1);
lcd_cmd_wr(SETX+x+i-64,1);
lcd_data_wr(0,1);
}
else {
lcd_cmd_wr(SETY+y,0);
lcd_cmd_wr(SETX+x+i,0);
lcd_data_wr(0,0);
}
}
}//*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -