WhyCan Forum

本站无需注册,无需积分,无需回复可下载所有资料,如果真的喜欢小站,请您注册之后请至少回复一个帖子激活Id,谢谢支持! 站长QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

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

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

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

离线

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

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

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

O1CN01Aqm8Ly1IeU4gbuuH5_1799820918.jpg

O1CN01zab1cU1IeU4jooSgB_1799820918.jpg

离线

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

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

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

watch_1.jpg

watch_2.jpg

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

离线

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

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

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
累计积分: 25

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

6了

离线

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

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

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

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

离线

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

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

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

Jmhh247 说:

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

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

离线

页脚