WhyCan Forum

人过留名,雁过留声,感谢各位朋友不离不弃地支持。 QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

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

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,175

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

离线

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

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,175

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

O1CN01Aqm8Ly1IeU4gbuuH5_1799820918.jpg

O1CN01zab1cU1IeU4jooSgB_1799820918.jpg

离线

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

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,175

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

watch_1.jpg

watch_2.jpg

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

离线

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

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,175

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

离线

#5 2019-07-24 18:19:34

aozima
会员
注册时间: 2019-05-25
累计积分: 48

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

6了

离线

#6 2019-07-25 09:10:29

Jmhh247
会员
注册时间: 2018-12-21
累计积分: 156

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

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

离线

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

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 8,175

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

Jmhh247 说:

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

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

离线

#8 2019-10-31 09:29:45

hzqlz
会员
注册时间: 2018-03-23
累计积分: 22

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

买了10个在吃灰:D

离线

#9 2019-10-31 09:31:38

test2
会员
注册时间: 2019-10-31
累计积分: 4

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

hzqlz 说:

买了10个在吃灰:D

活捉 ^_^

离线

页脚