I did a Verilog solution that used most of chip resources, in the BCD to 7 seg
portion, so think thats not viable.
A simple solution is in ROM store a 256 entry table, eg. 256 x 3, and use a pointer
to access the table with the binary value to retrieve each digit.
Here is a text listing that you can possibly edit into C array form and paste into your code.
Note you only need columns 2 - 4, column 1 just used by me to create the excel table.
Col2 = MSD
Col3 = Middle SD
Col4 = LSD
Then after retrieving digit use a 7 segment lookup table to translate into segment data for LED display.
0,0,0,0
1,0,0,1
2,0,0,2
3,0,0,3
4,0,0,4
5,0,0,5
6,0,0,6
7,0,0,7
8,0,0,8
9,0,0,9
10,0,1,0
11,0,1,1
12,0,1,2
13,0,1,3
14,0,1,4
15,0,1,5
16,0,1,6
17,0,1,7
18,0,1,8
19,0,1,9
20,0,2,0
21,0,2,1
22,0,2,2
23,0,2,3
24,0,2,4
25,0,2,5
26,0,2,6
27,0,2,7
28,0,2,8
29,0,2,9
30,0,3,0
31,0,3,1
32,0,3,2
33,0,3,3
34,0,3,4
35,0,3,5
36,0,3,6
37,0,3,7
38,0,3,8
39,0,3,9
40,0,4,0
41,0,4,1
42,0,4,2
43,0,4,3
44,0,4,4
45,0,4,5
46,0,4,6
47,0,4,7
48,0,4,8
49,0,4,9
50,0,5,0
51,0,5,1
52,0,5,2
53,0,5,3
54,0,5,4
55,0,5,5
56,0,5,6
57,0,5,7
58,0,5,8
59,0,5,9
60,0,6,0
61,0,6,1
62,0,6,2
63,0,6,3
64,0,6,4
65,0,6,5
66,0,6,6
67,0,6,7
68,0,6,8
69,0,6,9
70,0,7,0
71,0,7,1
72,0,7,2
73,0,7,3
74,0,7,4
75,0,7,5
76,0,7,6
77,0,7,7
78,0,7,8
79,0,7,9
80,0,8,0
81,0,8,1
82,0,8,2
83,0,8,3
84,0,8,4
85,0,8,5
86,0,8,6
87,0,8,7
88,0,8,8
89,0,8,9
90,0,9,0
91,0,9,1
92,0,9,2
93,0,9,3
94,0,9,4
95,0,9,5
96,0,9,6
97,0,9,7
98,0,9,8
99,0,9,9
100,1,0,0
101,1,0,1
102,1,0,2
103,1,0,3
104,1,0,4
105,1,0,5
106,1,0,6
107,1,0,7
108,1,0,8
109,1,0,9
110,1,1,0
111,1,1,1
112,1,1,2
113,1,1,3
114,1,1,4
115,1,1,5
116,1,1,6
117,1,1,7
118,1,1,8
119,1,1,9
120,1,2,0
121,1,2,1
122,1,2,2
123,1,2,3
124,1,2,4
125,1,2,5
126,1,2,6
127,1,2,7
128,1,2,8
129,1,2,9
130,1,3,0
131,1,3,1
132,1,3,2
133,1,3,3
134,1,3,4
135,1,3,5
136,1,3,6
137,1,3,7
138,1,3,8
139,1,3,9
140,1,4,0
141,1,4,1
142,1,4,2
143,1,4,3
144,1,4,4
145,1,4,5
146,1,4,6
147,1,4,7
148,1,4,8
149,1,4,9
150,1,5,0
151,1,5,1
152,1,5,2
153,1,5,3
154,1,5,4
155,1,5,5
156,1,5,6
157,1,5,7
158,1,5,8
159,1,5,9
160,1,6,0
161,1,6,1
162,1,6,2
163,1,6,3
164,1,6,4
165,1,6,5
166,1,6,6
167,1,6,7
168,1,6,8
169,1,6,9
170,1,7,0
171,1,7,1
172,1,7,2
173,1,7,3
174,1,7,4
175,1,7,5
176,1,7,6
177,1,7,7
178,1,7,8
179,1,7,9
180,1,8,0
181,1,8,1
182,1,8,2
183,1,8,3
184,1,8,4
185,1,8,5
186,1,8,6
187,1,8,7
188,1,8,8
189,1,8,9
190,1,9,0
191,1,9,1
192,1,9,2
193,1,9,3
194,1,9,4
195,1,9,5
196,1,9,6
197,1,9,7
198,1,9,8
199,1,9,9
200,2,0,0
201,2,0,1
202,2,0,2
203,2,0,3
204,2,0,4
205,2,0,5
206,2,0,6
207,2,0,7
208,2,0,8
209,2,0,9
210,2,1,0
211,2,1,1
212,2,1,2
213,2,1,3
214,2,1,4
215,2,1,5
216,2,1,6
217,2,1,7
218,2,1,8
219,2,1,9
220,2,2,0
221,2,2,1
222,2,2,2
223,2,2,3
224,2,2,4
225,2,2,5
226,2,2,6
227,2,2,7
228,2,2,8
229,2,2,9
230,2,3,0
231,2,3,1
232,2,3,2
233,2,3,3
234,2,3,4
235,2,3,5
236,2,3,6
237,2,3,7
238,2,3,8
239,2,3,9
240,2,4,0
241,2,4,1
242,2,4,2
243,2,4,3
244,2,4,4
245,2,4,5
246,2,4,6
247,2,4,7
248,2,4,8
249,2,4,9
250,2,5,0
251,2,5,1
252,2,5,2
253,2,5,3
254,2,5,4
255,2,5,5
Regards, Dana.