您尚未登录。

楼主 #1 2019-07-24 08:55:19

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

带控制器 0.9 寸(段码???)液晶, 0.3元





离线

楼主 #2 2019-07-24 08:57:16

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 带控制器 0.9 寸(段码???)液晶, 0.3元

O1CN01Aqm8Ly1IeU4gbuuH5_1799820918.jpg

O1CN01zab1cU1IeU4jooSgB_1799820918.jpg





离线

楼主 #3 2019-07-24 08:59:08

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 带控制器 0.9 寸(段码???)液晶, 0.3元

watch_1.jpg

watch_2.jpg

网友 @社会易姐 逆向出来的资料





离线

楼主 #4 2019-07-24 09:00:30

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 带控制器 0.9 寸(段码???)液晶, 0.3元

/*****************************************
模块名称:手表段码屏驱动程序
作者: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





离线

楼主 #7 2019-07-25 09:16:32

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 带控制器 0.9 寸(段码???)液晶, 0.3元

Jmhh247 说:

真的6,有点亮后的图没,晕哥

我没有时间测试了, 从大神那里拿到资料反手就传上来了,不知道有没有坑,欢迎测试,哈哈!





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn