Hallo,
kann mir mal jemand unter die Arme greifen,
möchte folgenden PIC Code in Bascom AVR übersetzen !!
Bin Anfänger
Gruß Gerhardt
Code:************************************************************** * Name : HDSP2112.BAS * * : Tested with HDSP-2112 Display & PIC16F877 **************************************************************** DEFINE OSC 20 ' 20MHz oscillator DEFINE LOADER_USED 1' Using boot-loader for initial prototype TRISA = 0 ' Setup PortA = output for Address Bus TRISB = 0 ' Setup PortB = output for Data Bus TRISC = $80 ' RC.7 = input, rest outputs [used for loader] ADCON1 = 7 ' A/D OFF A_Bus VAR PortA ' PortA Address Bus D_Bus VAR PortB ' PortB = Data Bus W_Pin VAR PortC.0 ' HDSP-2112 write strobe pin #13 A3 VAR PortC.1 ' HDSP-2112 mode select pin #6 RST VAR PortC.2 ' HDSP-2112 reset pin #1 Digit VAR BYTE[8] ' 8-byte digit array DigPat VAR BYTE ' Digit pattern from lookup table LP_Cnt VAR BYTE ' Loop counter LowDig VAR BYTE ' Holds "low" digit # to lookup LowDig = 0 ' 1st digit = 0 HiDig VAR BYTE ' Holds "high" digit # to lookup HiDig = 7 ' Last digit = 7 J VAR BYTE ' Array index pointer J = 0 ' 1st byte in array S_Speed VAR WORD ' Holds display scroll speed S_Speed = 300 ' Set display scroll speed here LOW D_Bus.7 ' Set display for normal operation EOM CON "~" ' Character used as "End of Message" marker '* // Initialize display - then set brightness * //' Init_Display: ' * // Initialize Display Here * //' HIGH W_Pin : LOW RST : PAUSE 10 : HIGH RST : PAUSE 10 ' * // Set Display Brightness Here * //' ' To change display brightness ' D_Bus = | 0 | 1 | 2 | 3 | 4 | 5 | 6 | ' Bright =| 100% | 80% | 53% | 40% | 27% | 20% | 13% | ' ' Set 27% | mode.bit | strobe settings into display | D_Bus = 4 : LOW A3 : LOW W_Pin : HIGH W_Pin HIGH A3 ' A3 used only for setting display brightness '* // Get 8 digits into "Digit Array" for display * //' GetDig: FOR LP_Cnt = LowDig TO HiDig LOOKUP LP_Cnt,[" Hello.! ~"],DigPat Digit[J] = DigPat ' Load all 8 digits into array J = J + 1 ' Increment array index pointer NEXT ' Loop until we have all 8 digits loaded J=0 ' Re-set array index pointer LowDig = LowDig + 1 ' Increment to next "low" digit HiDig = HiDig + 1 ' Increment to next "high" digit ' * // We're using the "~" character in EOM to tag the end of message * //' IF Digit[7] = EOM THEN ' End-of-message indicator..? Digit[7] = " " ' Then load a "blamk space" character LowDig = 0 ' Re-load 0-7 MAX digit count HiDig = 7 ' ENDIF '* // Display 8 digits on display then return for more // *' DisplayDigit: FOR LP_Cnt = 0 TO 7 ' Scroll right-to-left A_Bus = LP_Cnt ' Place digit address on address bus D_Bus = Digit[J] ' Place digit data on data bus LOW W_Pin : HIGH W_Pin' Strobe data into display J = J + 1 ' Increment array pointer to next digit NEXT J = 0 ' Re-set array index pointer PAUSE S_Speed ' Set display scroll speed GOTO GetDig '* // Display connections * //' ' PortB Display | PortA Display | PortC Display ' B0 #19 | A0 #3 | C0 #13 ' B1 #20 | A1 #4 | C1 #6 ' B2 #23 | A2 #5 | C2 #1 ' B3 #24 ' B4 #25 ' B5 #26 ' B6 #27 ' * // Display GND, VCC and N.C. [no connection] * //' ' GND 15,16,17,28 ' VCC 2,7,8,9,10,11,14,18 ' N.C. 12
Lesezeichen