'****************************************************************************************** ' AVR Sample Program ' Project : ' Program Name : ' Programer : ' Create date : Version 1.0 H19.01.10 ' History : ' Laungage : BASCOM-AVR BASIC '****************************************************************************************** ' (1)Description ' '****************************************************************************************** ' ============================== ' 1.Define Segment ' ============================== $regfile = "2313def.dat" $crystal = 10000000 'Used 10MHz OSC Dim Lp As Integer Dim Wtim As Integer Dim Mled As Integer Dim Ledlst As Integer Declare Sub Moveled(ledlst As Integer) ' ============================== ' 2.Initialize Segment ' ============================== ' (1)Define I/O Config Portb = Output Config Portd.0 = Input Config Portd.1 = Input ' (2)Define Parameter Wtim = 100 Mled = 8 Ledlst = 1 ' ============================== ' 3.Program Segment ' ============================== Portb = 1 Do ' (1)Get Value Do If Mled > 56 Then Mled = 8 Else Mled = Mled + 1 End If Debounce Pind.0 , 1 , Lp1 , Sub Debounce Pind.1 , 1 , Lp1 , Sub Loop ' (2)Move LED Lp1: For Lp = 1 To Mled Step 1 Call Moveled(ledlst) Portb = Ledlst Waitms Wtim Next Lp Loop '****************************************************************************************** ' Function Name : Moveled ' Title : Move LED LIST (Sift LED) ' Input : ' Output : '****************************************************************************************** Sub Moveled(ledlst As Integer) If Ledlst = 1 Then Ledlst = 2 Elseif Ledlst > 127 Then Ledlst = 1 Else Ledlst = Ledlst * 2 End If End Sub End