”7段LED显示功能优化

G

Guest

Guest
喂,
.

我作出了这个功能也许很快,但我不知道这是否是可能的 优化方法
。因为它的程序存储器大量数据...(如200字节)。

这是一个PIC16Fxxx ...

我认为
, 这项职能的基本形式。这个函数的使用
, 就像vAffichage('7');代码:#包括<pic.h>#定义SEGMENT_A RB0上

#定义SEGMENT_B RB1赛车

#定义SEGMENT_C RB2赛车

#情人碟定义SEGMENT_D

#定义SEGMENT_E RB4

#定义SEGMENT_F RB5

#定义SEGMENT_G RB6#界定1

#定义关闭0无效vAffichage(无符号字符ucCharacter)



开关(ucCharacter)



案件'0':

案件O形:

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G =关;

中断;

案件'1':

案件'报:

SEGMENT_A =关;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D =关;

SEGMENT_E =关;

SEGMENT_F =关;

SEGMENT_G =关;

中断;

案件'2':

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C =关;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F =关;

SEGMENT_G = -1;

中断;

案件'3':

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D = -1;

SEGMENT_E =关;

SEGMENT_F =关;

SEGMENT_G = -1;

中断;

案件'4':

SEGMENT_A =关;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D =关;

SEGMENT_E =关;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件'5':

案件氏':

SEGMENT_A = -1;

SEGMENT_B =关;

SEGMENT_C = -1;

SEGMENT_D = -1;

SEGMENT_E =关;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件'6':

SEGMENT_A = -1;

SEGMENT_B =关;

SEGMENT_C = -1;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件'7':

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D =关;

SEGMENT_E =关;

SEGMENT_F =关;

SEGMENT_G =关;

中断;

案件'8':

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件'9':

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D =关;

SEGMENT_E =关;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件'D'类:

SEGMENT_A =关;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F =关;

SEGMENT_G = -1;

中断;

案件'Ø':

SEGMENT_A =关;

SEGMENT_B =关;

SEGMENT_C = -1;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F =关;

SEGMENT_G = -1;

中断;

案件'甲':

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D =关;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件的'C':

SEGMENT_A = -1;

SEGMENT_B =关;

SEGMENT_C =关;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G =关;

中断;

案件'氟:

SEGMENT_A = -1;

SEGMENT_B =关;

SEGMENT_C =关;

SEGMENT_D =关;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件的H:

SEGMENT_A =关;

SEGMENT_B = -1;

SEGMENT_C = -1;

SEGMENT_D =关;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件'报:

SEGMENT_A =关;

SEGMENT_B =关;

SEGMENT_C =关;

SEGMENT_D = -1;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G =关;

中断;

案件的P':

SEGMENT_A = -1;

SEGMENT_B = -1;

SEGMENT_C =关;

SEGMENT_D =关;

SEGMENT_E = -1;

SEGMENT_F = -1;

SEGMENT_G = -1;

中断;

案件'_':

SEGMENT_A =关;

SEGMENT_B =关;

SEGMENT_C =关;

SEGMENT_D = -1;

SEGMENT_E =关;

SEGMENT_F =关;

SEGMENT_G =关;

中断;

)/ /财务开关(ucCharacter)。)
 
8 LED显示屏:
最好是用在一个位和0 1 1字节的其他7位。
00000001
00000010
00000100
00001000
00010000
00100000
01000000
10000000
00000001
...

在每一个开关指令只是旋转此字节,并把它移植于显示打开。

 
优化开关通常是使用数组。
7段7位是指1个字节到适合。
你可以声明字节数组并将其存储在ROM中。

 
试试这个代码。
#定义SEG_A 0#定义SEG_B 1#定义SEG_C 2#定义SEG_D 3#定义SEG_E 4#定义SEG_F 5#定义SEG_G 6
#界定1#定义关闭0
#定义cod_0(关于“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关闭“”SEG_G )#定义cod_1(关闭“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关闭“”SEG_D)|(关闭“”SEG_E)|(关闭“”SEG_F)|(关闭“”SEG_G )#定义cod_2(关于“”SEG_A)|(关于“”SEG_B)|(关闭“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关闭“”SEG_F)|(关于“”SEG_G )#定义cod_3(关于“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关于“”SEG_D)|(关闭“”SEG_E)|(关闭“”SEG_F)|(关于“”SEG_G )#定义cod_4(关闭“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关闭“”SEG_D)|(关闭“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_5(关于“”SEG_A)|(关闭“”SEG_B)|(关于“”SEG_C)|(关于“”SEG_D)|(关闭“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_6(关于“”SEG_A)|(关闭“”SEG_B)|(关于“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_7(关于“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关闭“”SEG_D)|(关闭“”SEG_E)|(关闭“”SEG_F)|(关闭“”SEG_G )#定义cod_8(关于“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_9(关于“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关闭“”SEG_D)|(关闭“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_A(关于“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关闭“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_C(关于“”SEG_A)|(关闭“”SEG_B)|(关闭“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关闭“”SEG_G )#定义cod_d(关闭“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关闭“”SEG_F)|(关于“”SEG_G )#定义cod_F(关于“”SEG_A)|(关闭“”SEG_B)|(关闭“”SEG_C)|(关闭“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_o(关闭“”SEG_A)|(关闭“”SEG_B)|(关于“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关闭“”SEG_F)|(关于“”SEG_G )#定义cod_H(关闭“”SEG_A)|(关于“”SEG_B)|(关于“”SEG_C)|(关闭“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod_L(关闭“”SEG_A)|(关闭“”SEG_B)|(关闭“”SEG_C)|(关于“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关闭“”SEG_G )#定义cod_P(关于“”SEG_A)|(关于“”SEG_B)|(关闭“”SEG_C)|(关闭“”SEG_D)|(关于“”SEG_E)|(关于“”SEG_F)|(关于“”SEG_G )#定义cod__(关闭“”SEG_A)|(关闭“”SEG_B)|(关闭“”SEG_C)|(关于“”SEG_D)|(关闭“”SEG_E)|(关闭“”SEG_F)|(关闭“”SEG_G )
无效vAffichage_ver2(无符号字符ucCharacter)(开关(ucCharacter)(案件'0':案件O形:PORTB的= cod_0;中断;案件'1':案件'报:PORTB的= cod_1;中断;案件'2':PORTB的= cod_2;中断;案件'3':PORTB的= cod_3;中断;案件'4':PORTB的= cod_4;中断;案件'5':案件氏':PORTB的= cod_5;中断;案件'6':PORTB的= cod_6;中断;案件'7':PORTB的= cod_7;中断;案件'8':PORTB的= cod_8;中断;案件'9':PORTB的= cod_9;中断;案件'D'类:PORTB的= cod_d;中断;案件'Ø':PORTB的= cod_o;中断;案件'甲':PORTB的= cod_A;中断;案件的'C':PORTB的= cod_C;中断;案件'氟:PORTB的= cod_F;中断;案件的H:PORTB的= cod_H;中断;案件'报:PORTB的= cod_L;中断;案件的P':PORTB的= cod_P;中断;案件'_':PORTB的= cod__;中断;))13分钟后添加:迪班说:

优化开关通常是使用数组。

7段7位是指1个字节到适合。

你可以声明字节数组并将其存储在ROM中。
 
嗨,
这个怎么样:

代码:

常数零:std_logic_vector(6 downto 0):=“1000000”;

永恒的:std_logic_vector(6 downto 0):=“1111001”;

常数2:std_logic_vector(6 downto 0):=“0100100”;

不断树:std_logic_vector(6 downto 0):=“0110000”;

常数四:std_logic_vector(6 downto 0):=“0011001”;

常数五:std_logic_vector(6 downto 0):=“0010010”;

常数六:std_logic_vector(6 downto 0):=“0000010”;

常数七:std_logic_vector(6 downto 0):=“1111000”;

经常八:std_logic_vector(6 downto 0):=“0000000”;

常数九:std_logic_vector(6 downto 0):=“0010000”;

-持续10:std_logic_vector(6 downto 0):=“0001000”;

-持续11:std_logic_vector(6 downto 0):=“0000011”;

-持续12:std_logic_vector(6 downto 0):=“1000110”;

-持续13:std_logic_vector(6 downto 0):=“0100001”;

-持续14:std_logic_vector(6 downto 0):=“0000110”;

-持续15:std_logic_vector(6 downto 0):=“0001110”;

 

Welcome to EDABoard.com

Sponsor

Back
Top