📄 lcd.bak
字号:
#include"include.h"
//--------------------------------------------------------
//数字字模
//每个数字8X16 x+8 page+2 y+16
//--------------------------------------------------------
uchar code num0[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
uchar code num1[]={0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
uchar code num2[]={0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
uchar code num3[]={0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
uchar code num4[]={0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
uchar code num5[]={0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
uchar code num6[]={0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
uchar code num7[]={0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
uchar code num8[]={0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
uchar code num9[]={0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
uchar code dot[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
uchar code hc[]={0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x08,0x38,0xFF,0x38,0x08,0x00};
uchar * code albnum[]={num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,dot,hc};
//汉字
uchar code ssd[]={0x00,0x0E,0x0A,0x0E,0xE0,0x10,0x08,0x04,0x04,0x04,0x04,0x04,0x08,0x38,0x00,0x00,
0x00,0x00,0x00,0x00,0x03,0x04,0x08,0x10,0x10,0x10,0x10,0x10,0x08,0x04,0x00,0x00};
uchar code dan1[]={0x00,0x00,0xF8,0x28,0x29,0x2E,0x2A,0xF8,0x28,0x2C,0x2B,0x2A,0xF8,0x00,0x00,0x00,
0x08,0x08,0x0B,0x09,0x09,0x09,0x09,0xFF,0x09,0x09,0x09,0x09,0x0B,0x08,0x08,0x00};//单
uchar code jia4[]={0x40,0x20,0xF0,0x1C,0x47,0x22,0x10,0xC8,0x04,0x03,0x04,0xD8,0x30,0x60,0x20,0x00,
0x00,0x00,0xFF,0x00,0x80,0x60,0x18,0x07,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00};//价
uchar code zhong4[]={0x08,0x08,0x0A,0xEA,0xAA,0xAA,0xAA,0xFF,0xA9,0xA9,0xA9,0xE9,0x08,0x08,0x08,0x00,
0x40,0x40,0x48,0x4B,0x4A,0x4A,0x4A,0x7F,0x4A,0x4A,0x4A,0x4B,0x48,0x40,0x40,0x00};//重
uchar code liang4[]={0x40,0x40,0x40,0xDF,0x55,0x55,0x55,0xD5,0x55,0x55,0x55,0xDF,0x40,0x40,0x40,0x00,
0x40,0x40,0x40,0x57,0x55,0x55,0x55,0x7F,0x55,0x55,0x55,0x57,0x50,0x40,0x40,0x00};//量
uchar code zong3[]={0x00,0x00,0x00,0xF8,0x89,0x8E,0x88,0x88,0x88,0x8C,0x8B,0xF8,0x00,0x00,0x00,0x00,
0x00,0x20,0x38,0x00,0x3C,0x40,0x40,0x42,0x4C,0x40,0x40,0x70,0x04,0x18,0x30,0x00};//总
uchar code ge2[]={0x08,0x88,0x68,0xFF,0x48,0xA8,0x10,0x0C,0x97,0xA4,0x44,0xB4,0x8C,0x00,0x00,0x00,
0x02,0x01,0x00,0xFF,0x00,0x01,0x01,0xFF,0x42,0x42,0x42,0x42,0xFE,0x01,0x01,0x00};//格
uchar code nian2[]={0x40,0x20,0x10,0x0C,0xE3,0x22,0x22,0x22,0xFE,0x22,0x22,0x22,0x22,0x02,0x00,0x00,
0x04,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x00};//年
uchar code yue4[]={0x00,0x00,0x00,0x00,0x00,0xFF,0x11,0x11,0x11,0x11,0x11,0xFF,0x00,0x00,0x00,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x01,0x01,0x01,0x21,0x41,0x3F,0x00,0x00,0x00,0x00};//月
uchar code ri4[]={0x00,0x00,0x00,0xFE,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xFE,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x3F,0x00,0x00,0x00,0x00};//日
uchar code dian4[]={0x00,0x00,0xFC,0x04,0x04,0x04,0x04,0x05,0xFE,0x44,0x44,0x44,0x44,0x44,0x04,0x00,
0x40,0x30,0x0F,0x00,0x00,0x7E,0x22,0x22,0x23,0x22,0x22,0x22,0x7E,0x00,0x00,0x00};//店
uchar code yuan2[]={0x00,0x00,0x00,0xE0,0x2F,0x29,0x29,0xA9,0x29,0x29,0x29,0x2F,0xE0,0x00,0x00,0x00,
0x00,0x00,0x80,0x8F,0x40,0x20,0x18,0x07,0x08,0x10,0x20,0xE0,0x4F,0x00,0x00,0x00};//员
uchar code pin3[]={0x00,0x00,0x00,0x00,0x7E,0x22,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,0x00,
0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00};//品
uchar code ming2[]={0x00,0x40,0x20,0x10,0x08,0x27,0x44,0x84,0x44,0x24,0x14,0x0C,0x04,0x00,0x00,0x00,
0x04,0x04,0x04,0x02,0x7E,0x23,0x23,0x22,0x22,0x22,0x22,0x22,0x7E,0x00,0x00,0x00};//名
uchar code shi2[]={0x00,0xFC,0x44,0x44,0x44,0xFC,0x10,0x90,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,
0x00,0x07,0x04,0x04,0x04,0x07,0x00,0x00,0x03,0x40,0x80,0x7F,0x00,0x00,0x00,0x00};//时
uchar code fen1[]={0x80,0x40,0x20,0x98,0x87,0x82,0x80,0x80,0x83,0x84,0x98,0x30,0x60,0xC0,0x40,0x00,
0x00,0x80,0x40,0x20,0x10,0x0F,0x00,0x00,0x20,0x40,0x3F,0x00,0x00,0x00,0x00,0x00};//分
uchar code miao3[]={0x12,0x12,0xD2,0xFE,0x91,0x11,0xC0,0x38,0x10,0x00,0xFF,0x00,0x08,0x10,0x60,0x00,
0x04,0x03,0x00,0xFF,0x00,0x83,0x80,0x40,0x40,0x20,0x23,0x10,0x08,0x04,0x03,0x00};//秒
uchar code jin1[]={0x40,0x40,0x20,0x20,0x50,0x48,0x44,0xC3,0x44,0x48,0x50,0x50,0x20,0x60,0x20,0x00,
0x40,0x40,0x42,0x42,0x4A,0x72,0x42,0x7F,0x42,0x62,0x5A,0x42,0x42,0x40,0x40,0x00};//金
uchar code e2[]={0x00,0x4C,0x24,0x5D,0x96,0xD4,0x34,0x0C,0xF6,0x12,0x1A,0x96,0x12,0x12,0xF2,0x00,
0x04,0x04,0x7E,0x23,0x22,0x22,0x3F,0x40,0x4F,0x20,0x18,0x07,0x08,0x10,0x6F,0x00};//额
uchar code shi4[]={0x80,0x80,0x80,0x80,0xBE,0xAA,0xAA,0xAA,0xAA,0xAA,0xAA,0xBE,0x80,0x80,0x80,0x00,
0x00,0x40,0x20,0x10,0x0E,0x10,0x20,0x3F,0x44,0x44,0x44,0x44,0x44,0x40,0x40,0x00};//
uchar code fou3[]={0x00,0x82,0x82,0x42,0x62,0x22,0x12,0xFA,0x0E,0x02,0x12,0x22,0x62,0xC2,0x00,0x00,
0x00,0x00,0x00,0x7E,0x22,0x22,0x22,0x23,0x22,0x22,0x22,0x7E,0x00,0x00,0x00,0x00};//
uchar code da3[]={0x10,0x10,0x10,0xFF,0x90,0x50,0x14,0x04,0x04,0x04,0xFC,0x04,0x04,0x04,0x04,0x00,
0x02,0x42,0x81,0x7F,0x00,0x00,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00};//
uchar code yin4[]={0x00,0xFC,0x44,0x44,0x42,0x42,0x42,0x00,0xFE,0x02,0x02,0x02,0x02,0xFE,0x00,0x00,
0x08,0x1F,0x08,0x04,0x04,0x02,0x00,0x00,0xFF,0x00,0x00,0x04,0x08,0x07,0x00,0x00};//
uchar code qing1[]={0x10,0x61,0x06,0xE0,0x18,0x20,0xAA,0xAA,0xAA,0xBF,0xAA,0xAA,0xAA,0x2A,0x00,0x00,
0x04,0x04,0xFF,0x00,0x00,0x00,0xFF,0x0A,0x0A,0x0A,0x4A,0x8A,0x7F,0x00,0x00,0x00};//
uchar code wenhao[]={0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//
uchar code qianke[]={0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,
0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00};//Kg
uchar code yuan22[]={0x00,0x20,0x20,0x22,0x22,0xE2,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x20,0x20,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x40,0x70,0x00};//元
//----------------------------------------------------
//液晶初始化
//----------------------------------------------------
void lcd_init()
{
LCD_RES=1;
delay(20000);
lcd_send_cmd(0xE2); //复位
lcd_send_cmd(0xA2); //d0:Set LCD drive voltage bias ratio 0=1/9bias 1=1/7bias
lcd_send_cmd(0xC8); //d3:select COM output direction 0=normal 1=reverse
lcd_send_cmd(0xA0); //d0:select SEG output direction 0=normal 1=reverse
lcd_send_cmd(0xA6); //d0:0=display normal 1=reverse
lcd_send_cmd(0xF8); //select booster ratio
lcd_send_cmd(0x00); //select booster ratio d0&d1:00=4x
lcd_send_cmd(0x2C); //d2:1=select internal power supply operating mode
lcd_send_cmd(0x2E);
lcd_send_cmd(0x2F);
lcd_send_cmd(0x81); //select the VO output voltage electronic volume register
lcd_send_cmd(0x14); //select the VO output voltage electronic volume register
lcd_send_cmd(0x0E); //select the VO output voltage electronic volume register
lcd_send_cmd(0xAF); //d0:LCD display ON=1/OFF=0
lcd_send_cmd(0xE0);
lcd_send_cmd(0x40); //Set the display RAM start line address
}
//----------------------------------------------------
//发送页地址
//----------------------------------------------------
void lcd_set_page(uchar dat)
{
lcd_send_cmd(0xb0|dat);
}
//----------------------------------------------------
//发送列地址
//----------------------------------------------------
void lcd_set_colume(uchar dat)
{
uchar tmp;
tmp=dat>>4;
lcd_send_cmd(0x10|tmp); //送列地址高四位
tmp=0x0f&dat;
lcd_send_cmd(tmp); //送列地址低四位
}
//----------------------------------------------------
//清屏
//----------------------------------------------------
void lcd_clr()
{
uchar i,j;
for(i=0;i<8;i++)
{
lcd_set_page(i);
lcd_set_colume(0);
for(j=0;j<128;j++)
lcd_send_data(0x00);
}
}
//----------------------------------------------------
//清屏2页的第m列到第n-1列
//----------------------------------------------------
void lcd_clr_page(uchar page,uchar m,uchar n)
{
uchar i;
lcd_set_page(page);
for(i=m;i<n;i++)
{
lcd_set_colume(i);
lcd_send_data(0x00);
}
lcd_set_page(page+1);
for(i=m;i<n;i++)
{
lcd_set_colume(i);
lcd_send_data(0x00);
}
}
//----------------------------------------------------
//发送命令
//----------------------------------------------------
void lcd_send_cmd(uchar dat)
{
uchar i;
LCD_CS=0; //片选选通
LCD_A0=0; //选择发送命令
LCD_SCK=1;
for(i=0;i<8;i++)
{
dat<<=1; //将要发送位送人CY寄存器
LCD_DA=CY; //发送CY中字节
LCD_SCK=0;
delay(10);
LCD_SCK=1; //时钟电平上升沿 数据位送给LCD
delay(10);
}
LCD_CS=1; //片选关
delay(20);
}
//----------------------------------------------------
//发送数据
//----------------------------------------------------
void lcd_send_data(uchar dat)
{
uchar i;
LCD_CS=0; //片选选通
LCD_A0=1; //选择发送数据
LCD_SCK=1;
for(i=0;i<8;i++)
{
dat<<=1; //将要发送位送人CY寄存器
LCD_DA=CY; //发送CY中字节
LCD_SCK=0;
delay(10);
LCD_SCK=1; //时钟电平上升沿 数据位送给LCD
delay(10);
}
LCD_CS=1; //片选关
delay(20);
}
//--------------------------------------------
//显示1个阿拉伯数字
//每个数字宽8 高16
//wordx:数字列位置(0-119) wordy:数组行(页)(1-8) num:显示的数字(10-0之间的浮点数)
//--------------------------------------------
void lcd_display_one_num(uchar wordx,uchar wordy,uchar n)
{
uchar i;
lcd_set_page(wordy);
lcd_set_colume(wordx);
for(i=0;i<8;i++)
lcd_send_data(*(albnum[n]+i));
lcd_set_page(wordy+1);
lcd_set_colume(wordx);
for(i=0;i<8;i++)
lcd_send_data(*(albnum[n]+i+8));
}
//--------------------------------------------
//显示一个浮点数
//在wordx wordy位置
//第4小数位用舍去法 没有四舍五入
//--------------------------------------------
void lcd_display_float(uchar wordx,uchar wordy,float num)
{
uint num_int; //整数部分
uint num_fra; //小数部分
if(num<0)
{
num=0;
}
// num+=0.0004;
num_int=(uint)num;
num_fra=(uint)((num-num_int)*1000);
// num_fra/=10;
//--------------------------------------------显示整数部分
if(num_int>=10000)
{
lcd_display_one_num(wordx,wordy,num_int/10000); //显示万位
wordx+=8;
lcd_display_one_num(wordx,wordy,(num_int%10000)/1000);//显示千位
wordx+=8;
lcd_display_one_num(wordx,wordy,(num_int%1000)/100); //显示百位
wordx+=8;
lcd_display_one_num(wordx,wordy,(num_int%100)/10); //显示十位
wordx+=8;
lcd_display_one_num(wordx,wordy,num_int%10); //显示个位
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -