搜索
bottom↓
回复: 20

这种段码液晶,怎么能方便的显示变量的数字?

[复制链接]

出0入0汤圆

发表于 2019-8-28 09:51:42 | 显示全部楼层 |阅读模式
拆了一个电动车码表,想DIY一下。




芯片是ARDUINO的328, 库用的论坛的白沙液晶的驱动。现在笔画都实验出来了,把128位的地址置1就能显示指定的笔画。
但是遇到的问题是,好像数字显示不是用的连续的地址,这种数字怎么能方便的建立数组还是函数显示变量的值呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2019-8-28 10:09:48 | 显示全部楼层
数字一共分4组, 上面是电量百分比(我想改成显示电压), 中间是速度值  下面左边大个数码是挡位(我想显示电流) 右边5个小的是里程和时间(用按键切换显示)。

不知道其他功能对LCD显示驱动的影响多大,概述下主要功能吧。

我想显示利用这个码表控制电动自行车(不是电机驱动)。  显示电量 速度 电流 里程 时间 总里程还有灯 喇叭 高低速 定速 震动报警 等功能。
因为显示这个芯片的IO不够用,所以想一共2个 328芯片通讯控制,全部是ARDUINO。 显示这个芯片就是这个液晶板装转把上,  还有个芯片,放电池里面;
显示板的配置是 液晶屏,一路48V输出,震动开关,3个按键,一路速度脉冲输入, 控制板的配置是 灯开关,喇叭开关,定速开关,刹车开关,电机的霍尔测速输出速度脉冲,电流测量,然后 灯继电器,喇叭继电器,定速继电器,刹车灯继电器,高低档继电器,这些都是通讯的,把开关信号发给显示板,接受显示板的控制信号打开关闭继电器。

出0入0汤圆

发表于 2019-8-28 10:16:42 | 显示全部楼层
数组+宏定义好点吧!~

出0入0汤圆

发表于 2019-8-28 10:19:26 | 显示全部楼层
不是要做数据表么

出0入4汤圆

发表于 2019-8-28 10:20:42 | 显示全部楼层
我都是定义宏

驱动层将对应显示的内容放在对应位置。

比如1个8要显示到 8,9,10,11,23,15,17  那就在驱动层判断每一位的显示与否。是则置1,否则写0

这个事情在送显示时写,和上层代码分离。

出0入0汤圆

 楼主| 发表于 2019-8-28 10:49:36 | 显示全部楼层
本帖最后由 69879 于 2019-8-28 10:50 编辑

专门的函数,传入显示的数字,比如电压 48V, 就是 powerVol(48);  怎么显示就交给powerVol 函数。这样是不是,就是要定义 电压显示的2位,

先把电压值分离成2位整数,每一位对应一个数字。然后判断是几,就显示对应笔画。

比如 a表示以为一位数字

if(a==0) {setSymbol(8,1); setSymbol(9,1); setSymbol(10,1);setSymbol(11,1);setSymbol(13,1);setSymbol(14,0);setSymbol(15,1);   }  //0
f(a==1) {setSymbol(8,0); setSymbol(9,1); setSymbol(10,1);setSymbol(11,0);setSymbol(13,0);setSymbol(14,0);setSymbol(15,0);   }  //1

.....

直到if(a==9){}

是这样的吗,  11个数字那要有上千行控制显示了。

出0入0汤圆

发表于 2019-8-28 10:57:02 | 显示全部楼层
显示段码和刷新的RAM地址快建立好逻辑或数据表格。显示时全数据RAM数据传输刷新即可。

出0入0汤圆

发表于 2019-8-28 11:19:13 | 显示全部楼层
Addr 不连续没关系啊,做过断码LCD驱动的很容易找到规律。大致看了一下2个最大的“8”是一样的Seg分布;下排最小的5个“8”,以及左上角2个“8”是一样的分布;不大不小的2个“8”是一样的分布。至于特殊字符,那就只能特殊处理了。

#define LCD_A                                BIT0                                                  
#define LCD_B                                BIT4                              
#define LCD_C                                BIT6  
#define LCD_D                                BIT3
#define LCD_E                                BIT2                       
#define LCD_F                                BIT1                             
#define LCD_G                                BIT5                              
#define LCD_X                                BIT7   

const unsigned char LCD_Code[16] =                       
{
    LCD_A+LCD_B+LCD_C+LCD_D+LCD_E+LCD_F,                                // 0
    LCD_B+LCD_C,                                                                                                                                // 1
    LCD_A+LCD_B+LCD_D+LCD_E+LCD_G,              // 2
    LCD_A+LCD_B+LCD_C+LCD_D+LCD_G,              // 3
    LCD_B+LCD_C+LCD_F+LCD_G,                    // 4
    LCD_A+LCD_C+LCD_D+LCD_F+LCD_G,              // 5
    LCD_A+LCD_C+LCD_D+LCD_E+LCD_F+LCD_G,               // 6
    LCD_A+LCD_B+LCD_C,                          // 7
    LCD_A+LCD_B+LCD_C+LCD_D+LCD_E+LCD_F+LCD_G,        // 8
    LCD_A+LCD_B+LCD_C+LCD_D+LCD_F+LCD_G,        // 9
    LCD_A+LCD_B+LCD_C+LCD_E+LCD_F+LCD_G,        // A
    LCD_C+LCD_D+LCD_E+LCD_F+LCD_G,              // B
    LCD_A+LCD_D+LCD_E+LCD_F,                    // C
    LCD_B+LCD_C+LCD_D+LCD_E+LCD_G,              // D
    LCD_A+LCD_D+LCD_E+LCD_F+LCD_G,              // E
    LCD_A+LCD_E+LCD_F+LCD_G,                    // F
};

出0入0汤圆

 楼主| 发表于 2019-8-28 13:11:20 | 显示全部楼层
好的,谢谢。 我照着试一下。

出0入4汤圆

发表于 2019-8-28 14:28:16 | 显示全部楼层
先建映射表,用起来就方便了。

出0入0汤圆

发表于 2019-8-29 09:41:29 | 显示全部楼层
每个要显示的内容,用一个SWITCH CASE ,一个函数搞定,就是函数略长。可能得300行

出0入0汤圆

发表于 2019-8-29 10:03:33 | 显示全部楼层
楼主真能折腾啊。
仪表和控制器直接可能是有通信协议的,楼主分析过了吗

出0入16汤圆

发表于 2019-8-29 10:10:21 | 显示全部楼层
布心 发表于 2019-8-28 11:19
Addr 不连续没关系啊,做过断码LCD驱动的很容易找到规律。大致看了一下2个最大的“8”是一样的Seg分布;下 ...

液晶表一般没那么简单的。
由于液晶内部走线不能交叉,所有液晶的各个段都是乱的,比如个位的6和十位的6可能都是不一样的段位排布的
所以这种液晶一般是每个字符单独解码的了

出0入0汤圆

发表于 2019-8-29 13:49:49 | 显示全部楼层
用宏应该就可以了

出0入0汤圆

 楼主| 发表于 2019-8-29 15:13:32 | 显示全部楼层

非常感谢,竟然发了这么多代码。
我用的ARDUINO编程,最终还是笨方法,用了1100行,每行定义一个位的一个数字。 11个数字每个10行定义0-9。

出0入0汤圆

 楼主| 发表于 2019-8-29 15:16:42 | 显示全部楼层
本帖最后由 69879 于 2019-8-29 15:26 编辑
startwar0418 发表于 2019-8-29 10:03
楼主真能折腾啊。
仪表和控制器直接可能是有通信协议的,楼主分析过了吗 ...


原来的确实是有协议的,好像叫一线通。
我把原来的控制芯片拆下来了,换上ARDUINO的328芯片。 用arduino IDE编程。这样就能自己控制了。
另外,原车的驱动器我也换了,因为自带的8秒自动定速去不掉,就是8秒不动转把,自动保持这个速度,即使松了转吧,那个功能太危险了,关键时刻反应不及摔倒。
我换的控制器是手动定速,非常好用,按一下就定速,再按或者刹车就取消。
灯和喇叭我 接入单片机控制是想增加点报警功能。

出0入0汤圆

 楼主| 发表于 2019-8-29 15:17:32 | 显示全部楼层
Elex 发表于 2019-8-29 10:10
液晶表一般没那么简单的。
由于液晶内部走线不能交叉,所有液晶的各个段都是乱的,比如个位的6和十位的6 ...

原来是不能跳线啊,怪不得不弄成统一的形式。

出0入0汤圆

 楼主| 发表于 2019-8-29 15:28:09 | 显示全部楼层
本帖最后由 69879 于 2019-8-29 15:30 编辑

//电量图标  根据电压显示电量
void battSymbol(uint8_t battVal)
{
  if(battVal>100)  {setSymbol(89,1);} else{setSymbol(89,0);} //100
  if(battVal>90)   {setSymbol(88,1);} else{setSymbol(88,0);} //
  if(battVal>80)   {setSymbol(84,1);} else{setSymbol(84,0);} //
  if(battVal>70)   {setSymbol(85,1);} else{setSymbol(85,0);} //
  if(battVal>60)   {setSymbol(86,1);} else{setSymbol(86,0);} //
  if(battVal>50)   {setSymbol(87,1);} else{setSymbol(87,0);} //
  if(battVal>40)   {setSymbol(83,1);} else{setSymbol(83,0);} //
  if(battVal>30)   {setSymbol(82,1);} else{setSymbol(82,0);} //
  if(battVal>20)   {setSymbol(81,1);} else{setSymbol(81,0);} //
  if(battVal>10)   {setSymbol(80,1);} else{setSymbol(80,0);} //
  if(battVal>=0)   {setSymbol(90,1);} else{setSymbol(90,0);} //
}



//数字显示函数,传递0-9的数字显示在指定位置,10为关闭显示
/*      
*      A
*    -----
*  B|     |F
*   |  G  |
*    -----
*   |     |
*  C|     |E
*    -----
*      D
*/
//电压数字个位
void battNumBit(uint8_t battBit)
{   
  //                             A               B               C               D               E               F               G                             
  if(battBit==0)   {setSymbol(72,1);setSymbol(73,1);setSymbol(74,1);setSymbol(75,1);setSymbol(78,1);setSymbol(76,1);setSymbol(77,0);}//0
  if(battBit==1)   {setSymbol(72,0);setSymbol(73,0);setSymbol(74,0);setSymbol(75,0);setSymbol(78,1);setSymbol(76,1);setSymbol(77,0);}//1  
  if(battBit==2)   {setSymbol(72,1);setSymbol(73,0);setSymbol(74,1);setSymbol(75,1);setSymbol(78,0);setSymbol(76,1);setSymbol(77,1);}//2
  if(battBit==3)   {setSymbol(72,1);setSymbol(73,0);setSymbol(74,0);setSymbol(75,1);setSymbol(78,1);setSymbol(76,1);setSymbol(77,1);}//3
  if(battBit==4)   {setSymbol(72,0);setSymbol(73,1);setSymbol(74,0);setSymbol(75,0);setSymbol(78,1);setSymbol(76,1);setSymbol(77,1);}//4  
  if(battBit==5)   {setSymbol(72,1);setSymbol(73,1);setSymbol(74,0);setSymbol(75,1);setSymbol(78,1);setSymbol(76,0);setSymbol(77,1);}//5   
  if(battBit==6)   {setSymbol(72,1);setSymbol(73,1);setSymbol(74,1);setSymbol(75,1);setSymbol(78,1);setSymbol(76,0);setSymbol(77,1);}//6   
  if(battBit==7)   {setSymbol(72,1);setSymbol(73,0);setSymbol(74,0);setSymbol(75,0);setSymbol(78,1);setSymbol(76,1);setSymbol(77,0);}//7
  if(battBit==8)   {setSymbol(72,1);setSymbol(73,1);setSymbol(74,1);setSymbol(75,1);setSymbol(78,1);setSymbol(76,1);setSymbol(77,1);}//8
  if(battBit==9)   {setSymbol(72,1);setSymbol(73,1);setSymbol(74,0);setSymbol(75,1);setSymbol(78,1);setSymbol(76,1);setSymbol(77,1);}//9
  if(battBit==10)  {setSymbol(72,0);setSymbol(73,0);setSymbol(74,0);setSymbol(75,0);setSymbol(78,0);setSymbol(76,0);setSymbol(77,0);}//OFF
}

  //电压数字十位
void battNumTen(uint8_t battTen)
{   
  //                             A               B               C               D               E               F               G        
  if(battTen==0)   {setSymbol(64,1);setSymbol(65,1);setSymbol(66,1);setSymbol(67,1);setSymbol(70,1);setSymbol(68,1);setSymbol(69,0);}//0
  if(battTen==1)   {setSymbol(64,0);setSymbol(65,0);setSymbol(66,0);setSymbol(67,0);setSymbol(70,1);setSymbol(68,1);setSymbol(69,0);}//1
  if(battTen==2)   {setSymbol(64,1);setSymbol(65,0);setSymbol(66,1);setSymbol(67,1);setSymbol(70,0);setSymbol(68,1);setSymbol(69,1);}//2
  if(battTen==3)   {setSymbol(64,1);setSymbol(65,0);setSymbol(66,0);setSymbol(67,1);setSymbol(70,1);setSymbol(68,1);setSymbol(69,1);}//3
  if(battTen==4)   {setSymbol(64,0);setSymbol(65,1);setSymbol(66,0);setSymbol(67,0);setSymbol(70,1);setSymbol(68,1);setSymbol(69,1);}//4  
  if(battTen==5)   {setSymbol(64,1);setSymbol(65,1);setSymbol(66,0);setSymbol(67,1);setSymbol(70,1);setSymbol(68,0);setSymbol(69,1);}//5  
  if(battTen==6)   {setSymbol(64,1);setSymbol(65,1);setSymbol(66,1);setSymbol(67,1);setSymbol(70,1);setSymbol(68,0);setSymbol(69,1);}//6  
  if(battTen==7)   {setSymbol(64,1);setSymbol(65,0);setSymbol(66,0);setSymbol(67,0);setSymbol(70,1);setSymbol(68,1);setSymbol(69,0);}//7
  if(battTen==8)   {setSymbol(64,1);setSymbol(65,1);setSymbol(66,1);setSymbol(67,1);setSymbol(70,1);setSymbol(68,1);setSymbol(69,1);}//8  
  if(battTen==9)   {setSymbol(64,1);setSymbol(65,1);setSymbol(66,0);setSymbol(67,1);setSymbol(70,1);setSymbol(68,1);setSymbol(69,1);}//9
  if(battTen==10)  {setSymbol(64,0);setSymbol(65,0);setSymbol(66,0);setSymbol(67,0);setSymbol(70,0);setSymbol(68,0);setSymbol(69,0);}//OFF
}

  //速度数字个位
void kmhNumBit(uint8_t kmhBit)
{   
  //                             A                B                C                D                E                F                G         
  if(kmhBit==0)   {setSymbol(127,1);setSymbol(126,1);setSymbol(125,1);setSymbol(124,1);setSymbol(121,1);setSymbol(123,1);setSymbol(122,0);}//0
  if(kmhBit==1)   {setSymbol(127,0);setSymbol(126,0);setSymbol(125,0);setSymbol(124,0);setSymbol(121,1);setSymbol(123,1);setSymbol(122,0);}//1
  if(kmhBit==2)   {setSymbol(127,1);setSymbol(126,0);setSymbol(125,1);setSymbol(124,1);setSymbol(121,0);setSymbol(123,1);setSymbol(122,1);}//2
  if(kmhBit==3)   {setSymbol(127,1);setSymbol(126,0);setSymbol(125,0);setSymbol(124,1);setSymbol(121,1);setSymbol(123,1);setSymbol(122,1);}//3
  if(kmhBit==4)   {setSymbol(127,0);setSymbol(126,1);setSymbol(125,0);setSymbol(124,0);setSymbol(121,1);setSymbol(123,1);setSymbol(122,1);}//4
  if(kmhBit==5)   {setSymbol(127,1);setSymbol(126,1);setSymbol(125,0);setSymbol(124,1);setSymbol(121,1);setSymbol(123,0);setSymbol(122,1);}//5
  if(kmhBit==6)   {setSymbol(127,1);setSymbol(126,1);setSymbol(125,1);setSymbol(124,1);setSymbol(121,1);setSymbol(123,0);setSymbol(122,1);}//6
  if(kmhBit==7)   {setSymbol(127,1);setSymbol(126,0);setSymbol(125,0);setSymbol(124,0);setSymbol(121,1);setSymbol(123,1);setSymbol(122,0);}//7
  if(kmhBit==8)   {setSymbol(127,1);setSymbol(126,1);setSymbol(125,1);setSymbol(124,1);setSymbol(121,1);setSymbol(123,1);setSymbol(122,1);}//8
  if(kmhBit==9)   {setSymbol(127,1);setSymbol(126,1);setSymbol(125,0);setSymbol(124,1);setSymbol(121,1);setSymbol(123,1);setSymbol(122,1);}//9
  if(kmhBit==10)  {setSymbol(127,0);setSymbol(126,0);setSymbol(125,0);setSymbol(124,0);setSymbol(121,0);setSymbol(123,0);setSymbol(122,0);}//OFF  
}
  
  //速度数字十位
void kmhNumTen(uint8_t kmhTen)
{   
  //                            A               B               C               D               E               F               G     
  if(kmhTen==0)   {setSymbol(95,1);setSymbol(94,1);setSymbol(93,1);setSymbol(92,1);setSymbol(97,1);setSymbol(99,1);setSymbol(98,0);}//0
  if(kmhTen==1)   {setSymbol(95,0);setSymbol(94,0);setSymbol(93,0);setSymbol(92,0);setSymbol(97,1);setSymbol(99,1);setSymbol(98,0);}//1
  if(kmhTen==2)   {setSymbol(95,1);setSymbol(94,0);setSymbol(93,1);setSymbol(92,1);setSymbol(97,0);setSymbol(99,1);setSymbol(98,1);}//2
  if(kmhTen==3)   {setSymbol(95,1);setSymbol(94,0);setSymbol(93,0);setSymbol(92,1);setSymbol(97,1);setSymbol(99,1);setSymbol(98,1);}//3
  if(kmhTen==4)   {setSymbol(95,0);setSymbol(94,1);setSymbol(93,0);setSymbol(92,0);setSymbol(97,1);setSymbol(99,1);setSymbol(98,1);}//4
  if(kmhTen==5)   {setSymbol(95,1);setSymbol(94,1);setSymbol(93,0);setSymbol(92,1);setSymbol(97,1);setSymbol(99,0);setSymbol(98,1);}//5
  if(kmhTen==6)   {setSymbol(95,1);setSymbol(94,1);setSymbol(93,1);setSymbol(92,1);setSymbol(97,1);setSymbol(99,0);setSymbol(98,1);}//6
  if(kmhTen==7)   {setSymbol(95,1);setSymbol(94,0);setSymbol(93,0);setSymbol(92,0);setSymbol(97,1);setSymbol(99,1);setSymbol(98,0);}//7
  if(kmhTen==8)   {setSymbol(95,1);setSymbol(94,1);setSymbol(93,1);setSymbol(92,1);setSymbol(97,1);setSymbol(99,1);setSymbol(98,1);}//8
  if(kmhTen==9)   {setSymbol(95,1);setSymbol(94,1);setSymbol(93,0);setSymbol(92,1);setSymbol(97,1);setSymbol(99,1);setSymbol(98,1);}//9
  if(kmhTen==10)  {setSymbol(95,0);setSymbol(94,0);setSymbol(93,0);setSymbol(92,0);setSymbol(97,0);setSymbol(99,0);setSymbol(98,0);}//OFF
}


  //速度数字小数位
void kmhNumDic(uint8_t kmhDic)
{   
  //                             A                B                C                D                E                F                G     
  if(kmhDic==0)   {setSymbol(119,1);setSymbol(118,1);setSymbol(117,1);setSymbol(116,1);setSymbol(113,1);setSymbol(115,1);setSymbol(114,0);}//0
  if(kmhDic==1)   {setSymbol(119,0);setSymbol(118,0);setSymbol(117,0);setSymbol(116,0);setSymbol(113,1);setSymbol(115,1);setSymbol(114,0);}//1
  if(kmhDic==2)   {setSymbol(119,1);setSymbol(118,0);setSymbol(117,1);setSymbol(116,1);setSymbol(113,0);setSymbol(115,1);setSymbol(114,1);}//2
  if(kmhDic==3)   {setSymbol(119,1);setSymbol(118,0);setSymbol(117,0);setSymbol(116,1);setSymbol(113,1);setSymbol(115,1);setSymbol(114,1);}//3
  if(kmhDic==4)   {setSymbol(119,0);setSymbol(118,1);setSymbol(117,0);setSymbol(116,0);setSymbol(113,1);setSymbol(115,1);setSymbol(114,1);}//4
  if(kmhDic==5)   {setSymbol(119,1);setSymbol(118,1);setSymbol(117,0);setSymbol(116,1);setSymbol(113,1);setSymbol(115,0);setSymbol(114,1);}//5
  if(kmhDic==6)   {setSymbol(119,1);setSymbol(118,1);setSymbol(117,1);setSymbol(116,1);setSymbol(113,1);setSymbol(115,0);setSymbol(114,1);}//6
  if(kmhDic==7)   {setSymbol(119,1);setSymbol(118,0);setSymbol(117,0);setSymbol(116,0);setSymbol(113,1);setSymbol(115,1);setSymbol(114,0);}//7
  if(kmhDic==8)   {setSymbol(119,1);setSymbol(118,1);setSymbol(117,1);setSymbol(116,1);setSymbol(113,1);setSymbol(115,1);setSymbol(114,1);}//8
  if(kmhDic==9)   {setSymbol(119,1);setSymbol(118,1);setSymbol(117,0);setSymbol(116,1);setSymbol(113,1);setSymbol(115,1);setSymbol(114,1);}//9
  if(kmhDic==10)  {setSymbol(119,0);setSymbol(118,0);setSymbol(117,0);setSymbol(116,0);setSymbol(113,0);setSymbol(115,0);setSymbol(114,0);}//OFF
}



  //挡位数字
void gearNumBit(uint8_t gearBit)
{
  //                            A              B               C               D               E               F               G     
  if(gearBit==0)   {setSymbol(8,1);setSymbol(9,1);setSymbol(10,1);setSymbol(11,1);setSymbol(15,1);setSymbol(13,1);setSymbol(14,0);}//0
  if(gearBit==1)   {setSymbol(8,0);setSymbol(9,0);setSymbol(10,0);setSymbol(11,0);setSymbol(15,1);setSymbol(13,1);setSymbol(14,0);}//1
  if(gearBit==2)   {setSymbol(8,1);setSymbol(9,0);setSymbol(10,1);setSymbol(11,1);setSymbol(15,0);setSymbol(13,1);setSymbol(14,1);}//2
  if(gearBit==3)   {setSymbol(8,1);setSymbol(9,0);setSymbol(10,0);setSymbol(11,1);setSymbol(15,1);setSymbol(13,1);setSymbol(14,1);}//3
  if(gearBit==4)   {setSymbol(8,0);setSymbol(9,1);setSymbol(10,0);setSymbol(11,0);setSymbol(15,1);setSymbol(13,1);setSymbol(14,1);}//4
  if(gearBit==5)   {setSymbol(8,1);setSymbol(9,1);setSymbol(10,0);setSymbol(11,1);setSymbol(15,1);setSymbol(13,0);setSymbol(14,1);}//5
  if(gearBit==6)   {setSymbol(8,1);setSymbol(9,1);setSymbol(10,1);setSymbol(11,1);setSymbol(15,1);setSymbol(13,0);setSymbol(14,1);}//6
  if(gearBit==7)   {setSymbol(8,1);setSymbol(9,0);setSymbol(10,0);setSymbol(11,0);setSymbol(15,1);setSymbol(13,1);setSymbol(14,0);}//7
  if(gearBit==8)   {setSymbol(8,1);setSymbol(9,1);setSymbol(10,1);setSymbol(11,1);setSymbol(15,1);setSymbol(13,1);setSymbol(14,1);}//8
  if(gearBit==9)   {setSymbol(8,1);setSymbol(9,1);setSymbol(10,0);setSymbol(11,1);setSymbol(15,1);setSymbol(13,1);setSymbol(14,1);}//9
  if(gearBit==10)  {setSymbol(8,0);setSymbol(9,0);setSymbol(10,0);setSymbol(11,0);setSymbol(15,0);setSymbol(13,0);setSymbol(14,0);}//OFF
}

//里程数字个位
void funNumBit(uint8_t funBit)
{
  //                            A               B               C               D               E               F               G      
  if(funBit==0)   {setSymbol(40,1);setSymbol(41,1);setSymbol(42,1);setSymbol(43,1);setSymbol(47,1);setSymbol(45,1);setSymbol(46,0);}//0
  if(funBit==1)   {setSymbol(40,0);setSymbol(41,0);setSymbol(42,0);setSymbol(43,0);setSymbol(47,1);setSymbol(45,1);setSymbol(46,0);}//1
  if(funBit==2)   {setSymbol(40,1);setSymbol(41,0);setSymbol(42,1);setSymbol(43,1);setSymbol(47,0);setSymbol(45,1);setSymbol(46,1);}//2
  if(funBit==3)   {setSymbol(40,1);setSymbol(41,0);setSymbol(42,0);setSymbol(43,1);setSymbol(47,1);setSymbol(45,1);setSymbol(46,1);}//3
  if(funBit==4)   {setSymbol(40,0);setSymbol(41,1);setSymbol(42,0);setSymbol(43,0);setSymbol(47,1);setSymbol(45,1);setSymbol(46,1);}//4
  if(funBit==5)   {setSymbol(40,1);setSymbol(41,1);setSymbol(42,0);setSymbol(43,1);setSymbol(47,1);setSymbol(45,0);setSymbol(46,1);}//5
  if(funBit==6)   {setSymbol(40,1);setSymbol(41,1);setSymbol(42,1);setSymbol(43,1);setSymbol(47,1);setSymbol(45,0);setSymbol(46,1);}//6
  if(funBit==7)   {setSymbol(40,1);setSymbol(41,0);setSymbol(42,0);setSymbol(43,0);setSymbol(47,1);setSymbol(45,1);setSymbol(46,0);}//7
  if(funBit==8)   {setSymbol(40,1);setSymbol(41,1);setSymbol(42,1);setSymbol(43,1);setSymbol(47,1);setSymbol(45,1);setSymbol(46,1);}//8
  if(funBit==9)   {setSymbol(40,1);setSymbol(41,1);setSymbol(42,0);setSymbol(43,1);setSymbol(47,1);setSymbol(45,1);setSymbol(46,1);}//9
  if(funBit==10)  {setSymbol(40,0);setSymbol(41,0);setSymbol(42,0);setSymbol(43,0);setSymbol(47,0);setSymbol(45,0);setSymbol(46,0);}//OFF
}

//里程数字十位
void funNumTen(uint8_t funTen)
{
  //                            A               B               C               D               E               F               G     
  if(funTen==0)   {setSymbol(32,1);setSymbol(33,1);setSymbol(34,1);setSymbol(35,1);setSymbol(39,1);setSymbol(37,1);setSymbol(38,0);}//0
  if(funTen==1)   {setSymbol(32,0);setSymbol(33,0);setSymbol(34,0);setSymbol(35,0);setSymbol(39,1);setSymbol(37,1);setSymbol(38,0);}//1
  if(funTen==2)   {setSymbol(32,1);setSymbol(33,0);setSymbol(34,1);setSymbol(35,1);setSymbol(39,0);setSymbol(37,1);setSymbol(38,1);}//2
  if(funTen==3)   {setSymbol(32,1);setSymbol(33,0);setSymbol(34,0);setSymbol(35,1);setSymbol(39,1);setSymbol(37,1);setSymbol(38,1);}//3
  if(funTen==4)   {setSymbol(32,0);setSymbol(33,1);setSymbol(34,0);setSymbol(35,0);setSymbol(39,1);setSymbol(37,1);setSymbol(38,1);}//4
  if(funTen==5)   {setSymbol(32,1);setSymbol(33,1);setSymbol(34,0);setSymbol(35,1);setSymbol(39,1);setSymbol(37,0);setSymbol(38,1);}//5
  if(funTen==6)   {setSymbol(32,1);setSymbol(33,1);setSymbol(34,1);setSymbol(35,1);setSymbol(39,1);setSymbol(37,0);setSymbol(38,1);}//6
  if(funTen==7)   {setSymbol(32,1);setSymbol(33,0);setSymbol(34,0);setSymbol(35,0);setSymbol(39,1);setSymbol(37,1);setSymbol(38,0);}//7
  if(funTen==8)   {setSymbol(32,1);setSymbol(33,1);setSymbol(34,1);setSymbol(35,1);setSymbol(39,1);setSymbol(37,1);setSymbol(38,1);}//8
  if(funTen==9)   {setSymbol(32,1);setSymbol(33,1);setSymbol(34,0);setSymbol(35,1);setSymbol(39,1);setSymbol(37,1);setSymbol(38,1);}//9
  if(funTen==10)  {setSymbol(32,0);setSymbol(33,0);setSymbol(34,0);setSymbol(35,0);setSymbol(39,0);setSymbol(37,0);setSymbol(38,0);}//OFF
}

//里程数字百位
void funNumHun(uint8_t funHun)
{
  //                            A               B               C               D               E               F               G     
  if(funHun==0)   {setSymbol(60,1);setSymbol(61,1);setSymbol(62,1);setSymbol(63,1);setSymbol(59,1);setSymbol(57,1);setSymbol(58,0);}//0
  if(funHun==1)   {setSymbol(60,0);setSymbol(61,0);setSymbol(62,0);setSymbol(63,0);setSymbol(59,1);setSymbol(57,1);setSymbol(58,0);}//1
  if(funHun==2)   {setSymbol(60,1);setSymbol(61,0);setSymbol(62,1);setSymbol(63,1);setSymbol(59,0);setSymbol(57,1);setSymbol(58,1);}//2
  if(funHun==3)   {setSymbol(60,1);setSymbol(61,0);setSymbol(62,0);setSymbol(63,1);setSymbol(59,1);setSymbol(57,1);setSymbol(58,1);}//3
  if(funHun==4)   {setSymbol(60,0);setSymbol(61,1);setSymbol(62,0);setSymbol(63,0);setSymbol(59,1);setSymbol(57,1);setSymbol(58,1);}//4
  if(funHun==5)   {setSymbol(60,1);setSymbol(61,1);setSymbol(62,0);setSymbol(63,1);setSymbol(59,1);setSymbol(57,0);setSymbol(58,1);}//5
  if(funHun==6)   {setSymbol(60,1);setSymbol(61,1);setSymbol(62,1);setSymbol(63,1);setSymbol(59,1);setSymbol(57,0);setSymbol(58,1);}//6
  if(funHun==7)   {setSymbol(60,1);setSymbol(61,0);setSymbol(62,0);setSymbol(63,0);setSymbol(59,1);setSymbol(57,1);setSymbol(58,0);}//7
  if(funHun==8)   {setSymbol(60,1);setSymbol(61,1);setSymbol(62,1);setSymbol(63,1);setSymbol(59,1);setSymbol(57,1);setSymbol(58,1);}//8
  if(funHun==9)   {setSymbol(60,1);setSymbol(61,1);setSymbol(62,0);setSymbol(63,1);setSymbol(59,1);setSymbol(57,1);setSymbol(58,1);}//9
  if(funHun==10)  {setSymbol(60,0);setSymbol(61,0);setSymbol(62,0);setSymbol(63,0);setSymbol(59,0);setSymbol(57,0);setSymbol(58,0);}//OFF
}

//里程数字千位
void funNumTho(uint8_t funTho)
{
  //                            A               B               C               D               E               F               G     
  if(funTho==0)   {setSymbol(20,1);setSymbol(21,1);setSymbol(22,1);setSymbol(23,1);setSymbol(19,1);setSymbol(17,1);setSymbol(18,0);}//0
  if(funTho==1)   {setSymbol(20,0);setSymbol(21,0);setSymbol(22,0);setSymbol(23,0);setSymbol(19,1);setSymbol(17,1);setSymbol(18,0);}//1
  if(funTho==2)   {setSymbol(20,1);setSymbol(21,0);setSymbol(22,1);setSymbol(23,1);setSymbol(19,0);setSymbol(17,1);setSymbol(18,1);}//2
  if(funTho==3)   {setSymbol(20,1);setSymbol(21,0);setSymbol(22,0);setSymbol(23,1);setSymbol(19,1);setSymbol(17,1);setSymbol(18,1);}//3
  if(funTho==4)   {setSymbol(20,0);setSymbol(21,1);setSymbol(22,0);setSymbol(23,0);setSymbol(19,1);setSymbol(17,1);setSymbol(18,1);}//4
  if(funTho==5)   {setSymbol(20,1);setSymbol(21,1);setSymbol(22,0);setSymbol(23,1);setSymbol(19,1);setSymbol(17,0);setSymbol(18,1);}//5
  if(funTho==6)   {setSymbol(20,1);setSymbol(21,1);setSymbol(22,1);setSymbol(23,1);setSymbol(19,1);setSymbol(17,0);setSymbol(18,1);}//6
  if(funTho==7)   {setSymbol(20,1);setSymbol(21,0);setSymbol(22,0);setSymbol(23,0);setSymbol(19,1);setSymbol(17,1);setSymbol(18,0);}//7
  if(funTho==8)   {setSymbol(20,1);setSymbol(21,1);setSymbol(22,1);setSymbol(23,1);setSymbol(19,1);setSymbol(17,1);setSymbol(18,1);}//8
  if(funTho==9)   {setSymbol(20,1);setSymbol(21,1);setSymbol(22,0);setSymbol(23,1);setSymbol(19,1);setSymbol(17,1);setSymbol(18,1);}//9
  if(funTho==10)  {setSymbol(20,0);setSymbol(21,0);setSymbol(22,0);setSymbol(23,0);setSymbol(19,0);setSymbol(17,0);setSymbol(18,0);}//OFF
}

//里程数字万位
void funNumMil(uint8_t funMil)
{
  //                            A               B               C               D               E               F               G     
  if(funMil==0)   {setSymbol(28,1);setSymbol(29,1);setSymbol(30,1);setSymbol(31,1);setSymbol(27,1);setSymbol(25,1);setSymbol(26,0);}//0
  if(funMil==1)   {setSymbol(28,0);setSymbol(29,0);setSymbol(30,0);setSymbol(31,0);setSymbol(27,1);setSymbol(25,1);setSymbol(26,0);}//1
  if(funMil==2)   {setSymbol(28,1);setSymbol(29,0);setSymbol(30,1);setSymbol(31,1);setSymbol(27,0);setSymbol(25,1);setSymbol(26,1);}//2
  if(funMil==3)   {setSymbol(28,1);setSymbol(29,0);setSymbol(30,0);setSymbol(31,1);setSymbol(27,1);setSymbol(25,1);setSymbol(26,1);}//3
  if(funMil==4)   {setSymbol(28,0);setSymbol(29,1);setSymbol(30,0);setSymbol(31,0);setSymbol(27,1);setSymbol(25,1);setSymbol(26,1);}//4
  if(funMil==5)   {setSymbol(28,1);setSymbol(29,1);setSymbol(30,0);setSymbol(31,1);setSymbol(27,1);setSymbol(25,0);setSymbol(26,1);}//5
  if(funMil==6)   {setSymbol(28,1);setSymbol(29,1);setSymbol(30,1);setSymbol(31,1);setSymbol(27,1);setSymbol(25,0);setSymbol(26,1);}//6
  if(funMil==7)   {setSymbol(28,1);setSymbol(29,0);setSymbol(30,0);setSymbol(31,0);setSymbol(27,1);setSymbol(25,1);setSymbol(26,0);}//7
  if(funMil==8)   {setSymbol(28,1);setSymbol(29,1);setSymbol(30,1);setSymbol(31,1);setSymbol(27,1);setSymbol(25,1);setSymbol(26,1);}//8
  if(funMil==9)   {setSymbol(28,1);setSymbol(29,1);setSymbol(30,0);setSymbol(31,1);setSymbol(27,1);setSymbol(25,1);setSymbol(26,1);}//9
  if(funMil==10)  {setSymbol(28,0);setSymbol(29,0);setSymbol(30,0);setSymbol(31,0);setSymbol(27,0);setSymbol(25,0);setSymbol(26,0);}//OFF  
}

ARDUINO的代码

出0入0汤圆

发表于 2019-8-29 18:28:08 | 显示全部楼层
MARK一下,最头疼就是码表。。。

出0入8汤圆

发表于 2019-8-30 09:58:23 | 显示全部楼层
69879 发表于 2019-8-29 15:17
原来是不能跳线啊,怪不得不弄成统一的形式。

玻璃也不能像PCB一样打个过孔 通电,所以只能绕了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 10:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表