'**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2011 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 20.10.2011 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** Device 12F629 Xtal = 4 DEFINE OSC 4 Config CP_OFF, PWRTE_ON, MCLRE_OFF, WDT_OFF, INTrc_osc_NOCLKOUT, BODEN_OFF PortB_Pullups = On ' Включить подтягивающие резисторы на PORTB Declare All_Digital = On Declare Optimiser_Level 0 Symbol GPIF = INTCON.0 ' Port Change Interrupt Flag Symbol INTF = INTCON.1 ' GP2/INT External Interrupt Flag Symbol T0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag Symbol GPIE = INTCON.3 ' Port Change Interrupt Enable Symbol INTE = INTCON.4 ' GP2/INT External Interrupt Enable Symbol T0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable Symbol PEIE = INTCON.6 ' Peripheral Interrupt Enable Symbol GIE = INTCON.7 ' Global Interrupt Enable Symbol PS0 = OPTION_REG.0 ' Prescaler Rate Select Symbol PS1 = OPTION_REG.1 ' Prescaler Rate Select Symbol PS2 = OPTION_REG.2 ' Prescaler Rate Select Symbol PSA = OPTION_REG.3 ' Prescaler Assignment Symbol T0SE = OPTION_REG.4 ' TMR0 Source Edge Select Symbol T0CS = OPTION_REG.5 ' TMR0 Clock Source Select Symbol INTEDG = OPTION_REG.6 ' Interrupt Edge Select Symbol NOT_GPPU = OPTION_REG.7 ' GPIO Pull-up Enable Dim R As Byte Dim G As Byte Dim B As Byte Dim Butt As Byte Dim coloR As Byte TRISIO=%010100 GPIO=%000000 INTEDG=0 INTCON=%10010000 On_Interrupt GoTo Int_Label Main: PWM GPIO.0, R, 1 Low GPIO.0 PWM GPIO.1, G, 1 Low GPIO.1 PWM GPIO.5, B, 1 Low GPIO.5 GoTo Main minus: Select coloR Case 0 If G<255 Then G=G+15 Else coloR = 1 EndIf Case 1 If R>0 Then R=R-15 Else coloR = 2 EndIf Case 2 If B<255 Then B=B+15 Else coloR = 3 EndIf Case 3 If G>0 Then G=G-15 Else coloR = 4 EndIf Case 4 If R<255 Then R=R+15 Else coloR = 5 EndIf Case 5 If B>0 Then B=B-15 Else coloR = 0 EndIf EndSelect Return plus: Select coloR Case 0 If G<255 Then G=G+15 Else coloR = 1 EndIf Case 1 If R>0 Then R=R-15 Else coloR = 2 EndIf Case 2 If B<255 Then B=B+15 Else coloR = 3 EndIf Case 3 If G>0 Then G=G-15 Else coloR = 4 EndIf Case 4 If R<255 Then R=R+15 Else coloR = 5 EndIf Case 5 If B>0 Then B=B-15 Else coloR = 0 EndIf EndSelect Return Int_Label: Context Save INTF=0 Select GPIO.4 Case 0 GoSub minus Case 1 GoSub plus EndSelect Context Restore End