MAX7221 iletve MAX7219 7szegmenses LED vezérlő (SPI)

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

MAX7221 iletve MAX7219 7szegmenses LED vezérlő (SPI)

Hozzászólás Szerző: Robert »

Elkészült (végre) a tesztprogram...
Hátha valaki hasznát veszi....

Az LCD helyere lehet felrakni a AVRDuino es az EXT1 paroson. A 2x16 LCDvel kompatibilis:) Na jó, csak labkiosztas szerint....

Lassan lesz cikk is belole...

SPI buszon at kommunikal....

Kód: Egész kijelölése

'AVR-Duino * EXT1 LCD * 7segment LCD

$regfile = "m328pdef.dat"
$crystal = 16000000

$hwstack = 100
$swstack = 100
$framesize = 512

Disp_en Alias Portd.4                                       ' chip-select for display (Load; RS@LCD)
Ser_clk Alias Portb.0                                       ' clk for display driver (clk; D6@LCD)
Ser_data Alias Portb.1                                      ' data for display driver (din; D7@LCD)

Config Disp_en = Output
Config Ser_clk = Output
Config Ser_data = Output

Dim Disp_num As Byte
Dim Disp_data As Byte
Dim Disp_fulldata As Word


Print "Setup 7SegmentLCD:...";
Gosub Max7219_setup
Print "End"


Dim Kiir As String * 16
Dim Temp1b As Byte
Dim Temp2b As Byte
Dim Temp3b As Byte
Dim Temp1s As String * 1
Dim Demotext As String * 254

'Demotext = "       9       8       7       6       5       4       3       2       1       0       HELP        "
dEMOTEXT="        01234567890HELP-        "
For Temp3b = 1 To Len(demotext)
Kiir = Mid(demotext , Temp3b , 8)
Gosub Kiiras
Waitms 50
Next Temp3b

Kiir = "HELP    "
Gosub Kiiras

'jatek a fenyerovel....

For Temp3b = 1 To 10
   For Disp_data = 0 To &H0F
       Disp_num = &H0A
       Gosub Disp_write
       Waitms 10
   Next Disp_data
   For Disp_data = &H0F To &H00 Step -1
       Disp_num = &H0A
       Gosub Disp_write
       Waitms 10
   Next Disp_data
Next Temp3b
   For Disp_data = 0 To &H0F
       Disp_num = &H0A
       Gosub Disp_write
       Waitms 10
   Next Disp_data

      For Disp_data = &H0F To &H00 Step -1
       Disp_num = &H0A
       Gosub Disp_write
       Waitms 100
   Next Disp_data
'kiiras letorlese
   Kiir = ""
   Gosub Kiiras
End                                                         'end program





' setup max7219 config. registers
Max7219_setup:
   Disp_num = &H0C : Disp_data = 0                             ' Shutdown On
   Gosub Disp_write
   Disp_num = &H09 : Disp_data = &B1111_1111                   ' Decode "B" For 1st 6  ??????
                                                                'ez mondja meg, hogy melyik szegmenseket használhatom! BE kell az összeset kapcsolni!
   Gosub Disp_write
   Disp_num = &H0A : Disp_data = &H0F                          ' Brightness Full(max)
   Gosub Disp_write
   Disp_num = &H0B : Disp_data = 7                             ' # Digits 8   - osszes kell (a kikapcsoltakra nem jutna idő, gyorsabb scan - ha kevesebb kijelzest hasznalunk)
   Gosub Disp_write
   Disp_num = &H0F : Disp_data = 0                             ' Test Off
   Gosub Disp_write
   Disp_num = &H0C : Disp_data = 1                             ' Shutdown Off
   Gosub Disp_write
Return

' Sends data to the Max7219 display driver
Disp_write:
   Reset Ser_data
   Reset Ser_clk
   Reset Disp_en
   Shiftout Ser_data , Ser_clk , Disp_num , 1
   Shiftout Ser_data , Ser_clk , Disp_data , 1
   Set Disp_en
Return



Kiiras:
   Kiir = "        " + Kiir
   Print Kiir
   Temp1b = Len(kiir)
   Temp1b = Temp1b - 7
   Kiir = Mid(kiir , Temp1b , 8)

   Print Kiir
   For Temp2b = 1 To 8
      Disp_data = 8
      Temp1s = Mid(kiir , Temp2b , 1)
      Select Case Temp1s
         Case "1" : Disp_data = 1
         Case "2" : Disp_data = 2
         Case "3" : Disp_data = 3
         Case "4" : Disp_data = 4
         Case "5" : Disp_data = 5
         Case "6" : Disp_data = 6
         Case "7" : Disp_data = 7
         Case "8" : Disp_data = 8
         Case "9" : Disp_data = 9
         Case "0" : Disp_data = 0
         Case "-" : Disp_data = 10
         Case "H" : Disp_data = 12
         Case "E" : Disp_data = 11
         Case "L" : Disp_data = 13
         Case "P" : Disp_data = 14
         Case " " : Disp_data = 15
         Case Else : Disp_data = 15
      End Select
      Print Disp_data
      Disp_num = 9 - Temp2b
      Print Mid(kiir , Disp_num , 1)
      Gosub Disp_write
   Next Temp1b
Return
Video: http://avr.tavir.hu/modules.php?name=Tweet&id=4
Avatar
ampervadasz
Bitmanipulátor
Hozzászólások: 119
Csatlakozott: 2008. január 19. szombat, 7:00

Hozzászólás Szerző: ampervadasz »

Szervusztok!

Tökéletesen tudom üzemeltetni a MAX7219-es LED meghajtó IC-t. Tovább szeretnék lépni. 16x7 karaktert próbálok üzemeltetni cascad üzemmódban. Összekötés rendben programozásban lenne kérdésem.
Hogyan tudom feléleszteni a másik MAX7219-et? Az adatlap erről az üzemmódról szinte semmit nem ír... :(

Közreműködéseteket előre is köszönöm.

Üdv.: Ampervadász
Avatar
eroth
Biztosítékgyilkos
Hozzászólások: 64
Csatlakozott: 2012. március 21. szerda, 6:00

Hozzászólás Szerző: eroth »

Üdv!
Akkor egy költői kérdés: hol lehet beszerezni a hétszegmenses kijelzőpanelt? :oops:
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Nálam 1-2 van még....
:)

Amúgy dipesben is létezik, és lehet építgetni. Nagyjából normális a lábkiosztása...
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Hozzászólás Szerző: kapu48 »

Hi Ampervadasz!

Ugyanúgy, mint az elsőt csak kel neki külön:
Disp_en2 Alias Portd.x ' chip-select
És ezt a pint reset/set-eld a Disp_write: rutinban.
8)
Avatar
eroth
Biztosítékgyilkos
Hozzászólások: 64
Csatlakozott: 2012. március 21. szerda, 6:00

Hozzászólás Szerző: eroth »

Üdv Robert!
Nem csalódtam, sejtettem, hogy rendelkezel még, némi tartalékkal! :D
Még mielőtt rendelnék egy tucatot belőle, vajon mennyibe fáj darabja?
Ha nem túl drága rendelek egyet, + nézek még valamit a WebShop-ban, nehogy unatkozzon hazafelé jövet...! :lol:
Robert írta:Nálam 1-2 van még....
:)

Amúgy dipesben is létezik, és lehet építgetni. Nagyjából normális a lábkiosztása...
Válasz küldése