[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » форумы » Общие вопросы по Bascom-AVR » Каскадное подключение MAX7219 (Нужен код, позволяющий подключать MAX7219 каскадно)
Каскадное подключение MAX7219
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
Вопрос закрыт. Всё в архиве.
Прикрепления: 1037427.rar (47.4 Kb) · 2741942.rar (47.4 Kb) · 3331325.jpg (107.0 Kb)




Сообщение отредактировал marss70 - Пятница, 16.05.2014, 00:19
 
Форум » форумы » Общие вопросы по Bascom-AVR » Каскадное подключение MAX7219 (Нужен код, позволяющий подключать MAX7219 каскадно)
  • Страница 1 из 1
  • 1
Поиск: