marss70 | Дата: Среда, 14.05.2014, 21:30 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Привет! Кто подскажет, как соединить два и более MAX7219 для вывода инфы длиной более 8-ми знаков? Вот рабочий код для индикатора из 8 знаков. В приложении исходник и Протеус. $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32
Config Portd = Output
Cs Alias Portd.6 Ser_clk Alias Portd.7 Ser_data Alias Portd.5
Config Portc.5 = Output Led Alias Portc.5
Dim A As Word Dim B As Word Dim Digit(8)as Byte Dim Y As Byte Dim Yy As Byte Dim Disp_num As Byte Dim Disp_data As Byte Dim Digit_str As String * 16 Dim Temp_str As String * 16 Gosub Max7219_setup
Do Toggle Led Digit_str = "12345678" 'ñòðîêà êîòîðóþ âûâåäåì íà äèñïëåé Gosub Prepare 'âûçûâàåì ïîäïðîãðàììó ïîäãîòîâêè è îòïðàâêè äàííûõ 'âûçûâàåì ïîäïðîãðàììó ïîäãîòîâêè è îòïðàâêè äàííûõ Waitms 10 Loop
End 'Ïîäãîòîâêà äàííûõ äëÿ ïåðåäà÷è Prepare:
For Y = 1 To 8 Temp_str = Mid(digit_str , Y , 1) Select Case Temp_str Case "0" : Temp_str = "126" '&b01111110 Case "1" : Temp_str = "48" '&b00110000 Case "2" : Temp_str = "109" '&b01101101 Case "3" : Temp_str = "121" '&b01111001 Case "4" : Temp_str = "51" '&b00110011 Case "5" : Temp_str = "91" '&b01011011 Case "6" : Temp_str = "95" '&b01011111 Case "7" : Temp_str = "112" '&b01110000 Case "8" : Temp_str = "127" '&b01111111 Case "9" : Temp_str = "123" '&b01111011 Case "." : Temp_str = "128" '&b10000000 'ìîæíî è ñàìîñòîÿòåëüíî ââåñòè íóæíûå ñèìâîëû Case "A" : Temp_str = "119" '&b01110111 Case "B" : Temp_str = "127" '&b01001110 Case "C" : Temp_str = "78" '&b01001110 Case "D" : Temp_str = "254" '&b01001110 Case "E" : Temp_str = "79" '&b01001111 Case "F" : Temp_str = "71" '&b01110111 Case "G" : Temp_str = "94" '&b01011110 Case "H" : Temp_str = "55" '&b00000000 Case "J" : Temp_str = "56" '&b00111101 Case "L" : Temp_str = "14" '&b01011110 Case "Z" : Temp_str = "73" '&b00000000 Case "O" : Temp_str = "126" '&b00111101 Case "P" : Temp_str = "103" '&b00111101 Case "Q" : Temp_str = "254" '&b00111101 Case "S" : Temp_str = "91" '&b00000000 Case "Y" : Temp_str = "59" '&b00000000 Case "o" : Temp_str = "29" '&b00011101 Case "d" : Temp_str = "61" '&b00111101 Case " " : Temp_str = "0" '&b00000000 Case "q" : Temp_str = "115" '&b01001110 Case "p" : Temp_str = "103" '&b01001111 Case "n" : Temp_str = "21" '&b00011101 Case "b" : Temp_str = "31" '&b00111101 Case "t" : Temp_str = "15" '&b00111101 Case "r" : Temp_str = "5" '&b00000000 Case "o" : Temp_str = "29" '&b00000000 Case "u" : Temp_str = "28" '&b00000000 Case "=" : Temp_str = "9" Case "*" : Temp_str = "0" '&b00000000 'è òàê äàëåå... End Select Digit(y) = Val(temp_str)
'Disp_num = Y 'çíàêîìåñòî (ðàçðÿä) íà êîòîðûé âûâîäèì òåêóùóþ öèôðó
Select Case Y Case 1 : Disp_num = 8 Case 2 : Disp_num = 7 Case 3 : Disp_num = 6 Case 4 : Disp_num = 5 Case 5 : Disp_num = 4 Case 6 : Disp_num = 3 Case 7 : Disp_num = 2 Case 8 : Disp_num = 1 End Select
Disp_data = Digit(y) 'äàííûå êîòîðûå îòïðàâëÿåì íà âûáðàííûé ðàçðÿä Gosub Disp_write Next Y 'êîãäà âûâåëè äàííûå íà âñå 4 ðàçðÿäà âîçâðàùàåìñÿ â ãëàâíûé öèêë Return
'Ïåðåäàåì äàííûå â max7221 Disp_write: Ser_data = 0 Ser_clk = 0 Cs = 0 Shiftout Ser_data , Ser_clk , Disp_num , 1 'îòïðàâëÿåì íîìåð ðàçðÿäà Shiftout Ser_data , Ser_clk , Disp_data , 1 'îòïðàâëÿåì äàííûå â ýòîò ðàçðÿä Cs = 1
Return
'èíèöèàëèçàöèè max7221 Max7219_setup: Waitms 300 Disp_num = &H0C : Disp_data = 0 'ðåæèì Shutdown (0-âêëþ÷åí, 1-âûêëþ÷åí) Gosub Disp_write Disp_num = &H09 : Disp_data = 0 'ðåæèì ïðÿìîãî óïðàâëåíèÿ ñåãìåíòàìè èíäèêàòîðà Gosub Disp_write Disp_num = &H0A : Disp_data = 10 'óðîâåíü ñâå÷åíèÿ ñåãìåíòîâ (0-ìèíèìóì, 15-ìàêñèìóì) Gosub Disp_write Disp_num = &H0B : Disp_data = 15 '÷èñëî èñïîëüçóåìûõ ðàçðÿäîâ (ñ÷åò îò 0) Gosub Disp_write Disp_num = &H0F : Disp_data = 0 'òåñòîâûé ðåæèì âûêëþ÷åí (0-âûêëþ÷åí, 1-âêëþ÷åí) Gosub Disp_write Disp_num = &H0C : Disp_data = 1 Gosub Disp_write Return
Прикрепления:
__.rar
(47.5 Kb)
Сообщение отредактировал marss70 - Среда, 14.05.2014, 21:31 |
|
| |
max | Дата: Среда, 14.05.2014, 21:46 | Сообщение # 2 |
Группа: Друзья
Сообщений: 170
Статус: Offline
| Тебе сюда.
|
|
| |
marss70 | Дата: Среда, 14.05.2014, 22:16 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Это я видел. Я ничего не понял(.
|
|
| |
marss70 | Дата: Пятница, 16.05.2014, 00:17 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 80
Статус: Offline
| Вопрос закрыт. Всё в архиве.
Сообщение отредактировал marss70 - Пятница, 16.05.2014, 00:19 |
|
| |