/*****************************************
模块名称:手表段码屏驱动程序
作者:SocialSisterYi
制作时间:2019.3
说明:数字/图标->段码的接口程序
备注:
*****************************************/
#include "uc1671.h"
#include "LCD.h"
unsigned char DRAM[20];//显存
//数字/字符码表                       0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F   空白
unsigned char code num_code_tab1[]={0x5f,0x50,0x3d,0x79,0x72,0x6b,0x6f,0x51,0x7f,0x7b,0x77,0x6e,0x0f,0x7c,0x2f,0x27,0x00};//用于第一行
unsigned char code num_code_tab2[]={0x5f,0x06,0x3d,0x2f,0x66,0x6b,0x7b,0x0e,0x7f,0x6f,0x7e,0x73,0x59,0x37,0x79,0x78,0x00};//用于第二、三行
//图标码表
struct
{
	unsigned char seg;
	unsigned char dig;
}code icon_tab[]={
// 图标所在的字节	图标在字节的位置
	2 ,				0x01,//月
	0 ,				0x10,//日
	0 ,				0x80,//笑脸
	7 ,				0x80,//冒号
	11,				0x10,//小菊花
	16,				0x01 //步
};
/*********************************
函数名称:Lcd_num
功能:LCD屏幕显示数码
输入:数码序号,显示数字
输出:无
备注:15个数码的编码有些不相同,所以要分情况讨论
*********************************/
void Lcd_num(unsigned char seg,unsigned char num)
{
	if(seg>14)
		return;
	
	switch(seg)
	{
		//第一行
		case 0:
		case 1:
				DRAM[4-seg]&=0x80;
				DRAM[4-seg]|=num_code_tab1[num];
				break;
		case 2:
		case 3:
				DRAM[4-seg]&=0x0f;
				DRAM[3-seg]&=0xf8;
				
				DRAM[4-seg]|=num_code_tab1[num]<<4;
				DRAM[3-seg]|=num_code_tab1[num]>>4;
				break;
		//第二行
		case 4:
		case 5:
		case 6:
		case 7:
		//第三行
		case 8:
		case 9:
				DRAM[seg+1]&=0x80;
				DRAM[seg+1]|=num_code_tab2[num];
				break;
		case 10:
		case 11:
		case 12:
		case 13:
		case 14:
				DRAM[seg+1]&=0xf8;
				DRAM[seg+2]&=0x0f;
				
				DRAM[seg+1]|=num_code_tab2[num]>>4;
				DRAM[seg+2]|=num_code_tab2[num]<<4;
				break;
	}
	Lcd_write_DDRAM(0,DRAM,19);//同步显存
}
/*********************************
函数名称:Lcd_icon
功能:LCD屏幕显示图标
输入:图标序号,图标开关
输出:无
备注:
*********************************/
void Lcd_icon(unsigned char icon_num,bit on)
{
	if(icon_num>5)
		return;
	if(on)
		DRAM[icon_tab[icon_num].seg]|=icon_tab[icon_num].dig;
	else
		DRAM[icon_tab[icon_num].seg]&=~icon_tab[icon_num].dig;
	Lcd_write_DDRAM(0,DRAM,19);//同步显存
}网友 @社会易姐 C51 源码下载: watch_LCD_C51.7z
离线
真的6,有点亮后的图没,晕哥
离线
买了10个在吃灰:D
离线
买了10个在吃灰:D
活捉 ^_^
离线
5年前,360儿童卫士2的屏幕
离线

离线
5年前,360儿童卫士2的屏幕
果然是, 这都能找到, 牛叉!
离线
pcf8576主控 iic
离线
pcf8576主控 iic
看来大侠是行内人
离线