⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd.bak

📁 2008年山东省大学生电子设计大赛 c题 多功能电子计价秤 单片机用的 c8051f005
💻 BAK
📖 第 1 页 / 共 2 页
字号:
#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 + -