knepet är att man kopplar 2St LED:s på samma sätt som en 2 bens grön/röd LED.
Kod: Markera allt
;
; ASM code generated by mikroVirtualMachine for PIC - V. 2.0.1.0
; Date/Time: 2005-11-08 22:14:02
; Info: http://www.mikroelektronika.co.yu
;
; Address Instruction
;-------------------------------------
0000 GOTO main
;--- procedure delays_delay_22us ---
delays_delay_22us:
0004 MOVLW 7
0005 BCF STATUS,RP1
0006 BCF STATUS,RP0
0007 MOVWF STACK_0
0008 DECFSZ STACK_0,F
0009 GOTO $-1
000A RETURN
;---endproc---
;--- function ADClib_A_E_adc_read ---
ADClib_A_E_adc_read:
000B MOVLW 240
000C BCF STATUS,RP1
000D BCF STATUS,RP0
000E ANDWF ADCON0,W
000F MOVWF ADCON0
0010 MOVLW 240
0011 BSF STATUS,RP0
0012 IORWF ANSEL,W
0013 MOVWF ANSEL
0014 BCF STATUS,RP0
0015 BSF adcon0,7
0016 MOVF ADClib_A_E_adc_read_param_channel,W
0017 MOVWF STACK_1
0018 MOVLW 2
0019 MOVWF STACK_2
001A L_ADClib_A_E_0:
001A MOVF STACK_2,W
001B BTFSC STATUS,Z
001C GOTO L_ADClib_A_E_1
001D RLF STACK_1,F
001E BCF STACK_1,0
001F DECFSZ STACK_2,F
0020 GOTO L_ADClib_A_E_0
0021 L_ADClib_A_E_1:
0021 MOVF STACK_1,W
0022 IORWF ADCON0,W
0023 MOVWF ADCON0
0024 BSF adcon0,0
0025 CALL delays_delay_22us
0026 BSF adcon0,1
0027 L_ADClib_A_E_3:
0027 CLRF STACK_0
0028 BTFSC adcon0,1
0029 INCF STACK_0,F
002A MOVLW 1
002B SUBWF STACK_0,W
002C BTFSS STATUS,Z
002D GOTO L_ADClib_A_E_4
002E L_ADClib_A_E_2:
002E nop
002F GOTO L_ADClib_A_E_3
0030 L_ADClib_A_E_4:
0030 MOVF ADRESH,W
0031 MOVWF ADClib_A_E_adc_read_result_1
0032 MOVLW 8
0033 MOVWF STACK_0
0034 MOVLW 0
0035 MOVWF ADClib_A_E_adc_read_result_2
0036 L_ADClib_A_E_5:
0036 MOVF STACK_0,W
0037 BTFSC STATUS,Z
0038 GOTO L_ADClib_A_E_6
0039 RLF ADClib_A_E_adc_read_result_1,F
003A RLF ADClib_A_E_adc_read_result_2,F
003B BCF ADClib_A_E_adc_read_result_1,0
003C DECFSZ STACK_0,F
003D GOTO L_ADClib_A_E_5
003E L_ADClib_A_E_6:
003E CLRF STACK_0
003F BSF STATUS,RP0
0040 MOVF ADRESL,W
0041 IORWF ADClib_A_E_adc_read_result_1,W
0042 MOVWF ADClib_A_E_adc_read_result_1
0043 MOVF STACK_0,W
0044 IORWF ADClib_A_E_adc_read_result_2,W
0045 MOVWF ADClib_A_E_adc_read_result_2
0046 BCF STATUS,RP0
0047 BCF adcon0,0
0048 RETURN
;---endproc---
;--- procedure main ---
main:
0049 BCF STATUS,RP1
004A BCF STATUS,RP0
004B CLRF GPIO
004C MOVLW 7
004D MOVWF CMCON
004E BSF STATUS,RP0
004F CLRF TRISIO
0050 BSF trisio,0
0051 BSF trisio,1
0052 BCF STATUS,RP0
0053 BCF adcon0,6
0054 MOVLW 4
0055 MOVWF GPIO
0056 MOVLW 6
0057 MOVWF STACK_0
0058 MOVLW 255
0059 MOVWF STACK_1
005A MOVLW 255
005B MOVWF STACK_2
005C DECFSZ STACK_0,F
005D GOTO $+2
005E GOTO $+8
005F DECFSZ STACK_1,F
0060 GOTO $+2
0061 GOTO $+4
0062 DECFSZ STACK_2,F
0063 GOTO $-1
0064 GOTO $-5
0065 GOTO $-9
0066 MOVLW 26
0067 MOVWF STACK_0
0068 MOVLW 255
0069 MOVWF STACK_1
006A DECFSZ STACK_0,F
006B GOTO $+2
006C GOTO $+4
006D DECFSZ STACK_1,F
006E GOTO $-1
006F GOTO $-5
0070 MOVLW 66
0071 MOVWF STACK_0
0072 DECFSZ STACK_0,F
0073 GOTO $-1
0074 MOVLW 1
0075 MOVWF main_global_poweron
0076 L_Thomas_Bro2_0:
0076 MOVLW 5
0077 MOVWF STACK_0
0078 MOVF main_global_poweron,W
0079 SUBWF STACK_0,W
007A BTFSS STATUS,C
007B GOTO L_Thomas_Bro2_1
007C MOVLW 4
007D MOVWF GPIO
007E MOVLW 3
007F MOVWF STACK_1
0080 MOVLW 255
0081 MOVWF STACK_2
0082 MOVLW 255
0083 MOVWF STACK_3
0084 DECFSZ STACK_1,F
0085 GOTO $+2
0086 GOTO $+8
0087 DECFSZ STACK_2,F
0088 GOTO $+2
0089 GOTO $+4
008A DECFSZ STACK_3,F
008B GOTO $-1
008C GOTO $-5
008D GOTO $-9
008E MOVLW 11
008F MOVWF STACK_1
0090 MOVLW 255
0091 MOVWF STACK_2
0092 DECFSZ STACK_1,F
0093 GOTO $+2
0094 GOTO $+4
0095 DECFSZ STACK_2,F
0096 GOTO $-1
0097 GOTO $-5
0098 MOVLW 24
0099 MOVWF STACK_1
009A DECFSZ STACK_1,F
009B GOTO $-1
009C CLRF GPIO
009D MOVLW 3
009E MOVWF STACK_1
009F MOVLW 255
00A0 MOVWF STACK_2
00A1 MOVLW 255
00A2 MOVWF STACK_3
00A3 DECFSZ STACK_1,F
00A4 GOTO $+2
00A5 GOTO $+8
00A6 DECFSZ STACK_2,F
00A7 GOTO $+2
00A8 GOTO $+4
00A9 DECFSZ STACK_3,F
00AA GOTO $-1
00AB GOTO $-5
00AC GOTO $-9
00AD MOVLW 11
00AE MOVWF STACK_1
00AF MOVLW 255
00B0 MOVWF STACK_2
00B1 DECFSZ STACK_1,F
00B2 GOTO $+2
00B3 GOTO $+4
00B4 DECFSZ STACK_2,F
00B5 GOTO $-1
00B6 GOTO $-5
00B7 MOVLW 24
00B8 MOVWF STACK_1
00B9 DECFSZ STACK_1,F
00BA GOTO $-1
00BB L_Thomas_Bro2_2:
00BB CLRF STACK_1
00BC INCF STACK_1,F
00BD MOVF main_global_poweron,W
00BE ADDWF STACK_1,W
00BF MOVWF main_global_poweron
00C0 GOTO L_Thomas_Bro2_0
00C1 L_Thomas_Bro2_1:
00C1 CLRF GPIO
00C2 MOVLW 11
00C3 MOVWF STACK_0
00C4 MOVLW 255
00C5 MOVWF STACK_1
00C6 MOVLW 255
00C7 MOVWF STACK_2
00C8 DECFSZ STACK_0,F
00C9 GOTO $+2
00CA GOTO $+8
00CB DECFSZ STACK_1,F
00CC GOTO $+2
00CD GOTO $+4
00CE DECFSZ STACK_2,F
00CF GOTO $-1
00D0 GOTO $-5
00D1 GOTO $-9
00D2 MOVLW 51
00D3 MOVWF STACK_0
00D4 MOVLW 255
00D5 MOVWF STACK_1
00D6 DECFSZ STACK_0,F
00D7 GOTO $+2
00D8 GOTO $+4
00D9 DECFSZ STACK_1,F
00DA GOTO $-1
00DB GOTO $-5
00DC MOVLW 136
00DD MOVWF STACK_0
00DE DECFSZ STACK_0,F
00DF GOTO $-1
00E0 CLRF main_global_poweron
00E1 L_Thomas_Bro2_3:
00E1 MOVLW 1
00E2 MOVWF ADClib_A_E_adc_read_param_channel
00E3 CALL ADClib_A_E_adc_read
00E4 MOVF ADClib_A_E_adc_read_result_1,W
00E5 MOVWF main_global_brovinkel_1
00E6 MOVF ADClib_A_E_adc_read_result_2,W
00E7 MOVWF main_global_brovinkel_2
00E8 MOVLW 1
00E9 SUBWF main_global_poweron,W
00EA BTFSS STATUS,Z
00EB GOTO L_Thomas_Bro2_6
00EC L_Thomas_Bro2_5:
00EC MOVLW 16
00ED MOVWF GPIO
00EE MOVLW 65
00EF MOVWF STACK_2
00F0 MOVLW 255
00F1 MOVWF STACK_3
00F2 DECFSZ STACK_2,F
00F3 GOTO $+2
00F4 GOTO $+4
00F5 DECFSZ STACK_3,F
00F6 GOTO $-1
00F7 GOTO $-5
00F8 MOVLW 195
00F9 MOVWF STACK_2
00FA DECFSZ STACK_2,F
00FB GOTO $-1
00FC nop
00FD CLRF GPIO
00FE MOVLW 65
00FF MOVWF STACK_2
0100 MOVLW 255
0101 MOVWF STACK_3
0102 DECFSZ STACK_2,F
0103 GOTO $+2
0104 GOTO $+4
0105 DECFSZ STACK_3,F
0106 GOTO $-1
0107 GOTO $-5
0108 MOVLW 195
0109 MOVWF STACK_2
010A DECFSZ STACK_2,F
010B GOTO $-1
010C nop
010D GOTO L_Thomas_Bro2_7
010E L_Thomas_Bro2_6:
010E L_Thomas_Bro2_7:
010E MOVLW 1
010F MOVWF main_global_poweron
0110 MOVLW 0
0111 MOVWF STACK_1
0112 MOVF main_global_brovinkel_2,W
0113 SUBWF STACK_1,W
0114 BTFSS STATUS,Z
0115 GOTO $+3
0116 MOVF main_global_brovinkel_1,W
0117 SUBLW 63
0118 BTFSS STATUS,C
0119 GOTO L_Thomas_Bro2_3
011A L_Thomas_Bro2_4:
011A CLRF GPIO
011B MOVLW 11
011C MOVWF STACK_0
011D MOVLW 255
011E MOVWF STACK_1
011F MOVLW 255
0120 MOVWF STACK_2
0121 DECFSZ STACK_0,F
0122 GOTO $+2
0123 GOTO $+8
0124 DECFSZ STACK_1,F
0125 GOTO $+2
0126 GOTO $+4
0127 DECFSZ STACK_2,F
0128 GOTO $-1
0129 GOTO $-5
012A GOTO $-9
012B MOVLW 51
012C MOVWF STACK_0
012D MOVLW 255
012E MOVWF STACK_1
012F DECFSZ STACK_0,F
0130 GOTO $+2
0131 GOTO $+4
0132 DECFSZ STACK_1,F
0133 GOTO $-1
0134 GOTO $-5
0135 MOVLW 136
0136 MOVWF STACK_0
0137 DECFSZ STACK_0,F
0138 GOTO $-1
0139 L_Thomas_Bro2_9:
0139 MOVLW 0
013A MOVWF ADClib_A_E_adc_read_param_channel
013B CALL ADClib_A_E_adc_read
013C MOVF ADClib_A_E_adc_read_result_1,W
013D MOVWF main_global_tid_1
013E MOVF ADClib_A_E_adc_read_result_2,W
013F MOVWF main_global_tid_2
0140 CLRF main_global_zov_1
0141 CLRF main_global_zov_2
0142 MOVLW 0
0143 SUBWF main_global_tid_2,W
0144 BTFSS STATUS,Z
0145 GOTO $+3
0146 MOVLW 100
0147 SUBWF main_global_tid_1,W
0148 BTFSC STATUS,C
0149 GOTO L_Thomas_Bro2_12
014A L_Thomas_Bro2_11:
014A MOVLW 100
014B MOVWF main_global_tid_1
014C CLRF main_global_tid_2
014D GOTO L_Thomas_Bro2_13
014E L_Thomas_Bro2_12:
014E L_Thomas_Bro2_13:
014E MOVF main_global_tid_2,W
014F SUBLW 3
0150 BTFSS STATUS,Z
0151 GOTO $+3
0152 MOVF main_global_tid_1,W
0153 SUBLW 242
0154 BTFSC STATUS,C
0155 GOTO L_Thomas_Bro2_16
0156 L_Thomas_Bro2_15:
0156 MOVLW 2
0157 MOVWF main_global_tid_1
0158 CLRF main_global_tid_2
0159 GOTO L_Thomas_Bro2_17
015A L_Thomas_Bro2_16:
015A L_Thomas_Bro2_17:
015A L_Thomas_Bro2_19:
015A MOVLW 1
015B ADDWF main_global_zov_1,W
015C MOVWF STACK_2
015D CLRF STACK_3
015E MOVF main_global_zov_2,W
015F BTFSC STATUS,C
0160 INCF STACK_3,F
0161 ADDWF STACK_3,F
0162 MOVF STACK_2,W
0163 MOVWF main_global_zov_1
0164 MOVF STACK_3,W
0165 MOVWF main_global_zov_2
0166 MOVLW 1
0167 MOVWF main_global_loopz
0168 L_Thomas_Bro2_21:
0168 MOVLW 30
0169 MOVWF STACK_2
016A MOVF main_global_loopz,W
016B SUBWF STACK_2,W
016C BTFSS STATUS,C
016D GOTO L_Thomas_Bro2_22
016E MOVLW 138
016F MOVWF STACK_3
0170 MOVLW 255
0171 MOVWF STACK_4
0172 DECFSZ STACK_3,F
0173 GOTO $+2
0174 GOTO $+4
0175 DECFSZ STACK_4,F
0176 GOTO $-1
0177 GOTO $-5
0178 MOVLW 76
0179 MOVWF STACK_3
017A DECFSZ STACK_3,F
017B GOTO $-1
017C nop
017D nop
017E CLRF STACK_3
017F BTFSC gpio,3
0180 INCF STACK_3,F
0181 MOVLW 0
0182 SUBWF STACK_3,W
0183 BTFSS STATUS,Z
0184 GOTO L_Thomas_Bro2_25
0185 L_Thomas_Bro2_24:
0185 CLRF main_global_zov_1
0186 CLRF main_global_zov_2
0187 MOVLW 0
0188 MOVWF ADClib_A_E_adc_read_param_channel
0189 CALL ADClib_A_E_adc_read
018A MOVF ADClib_A_E_adc_read_result_1,W
018B MOVWF main_global_tid_1
018C MOVF ADClib_A_E_adc_read_result_2,W
018D MOVWF main_global_tid_2
018E MOVLW 0
018F SUBWF main_global_tid_2,W
0190 BTFSS STATUS,Z
0191 GOTO $+3
0192 MOVLW 100
0193 SUBWF main_global_tid_1,W
0194 BTFSC STATUS,C
0195 GOTO L_Thomas_Bro2_29
0196 L_Thomas_Bro2_28:
0196 MOVLW 100
0197 MOVWF main_global_tid_1
0198 CLRF main_global_tid_2
0199 GOTO L_Thomas_Bro2_30
019A L_Thomas_Bro2_29:
019A L_Thomas_Bro2_30:
019A MOVF main_global_tid_2,W
019B SUBLW 3
019C BTFSS STATUS,Z
019D GOTO $+3
019E MOVF main_global_tid_1,W
019F SUBLW 242
01A0 BTFSC STATUS,C
01A1 GOTO L_Thomas_Bro2_33
01A2 L_Thomas_Bro2_32:
01A2 MOVLW 2
01A3 MOVWF main_global_tid_1
01A4 CLRF main_global_tid_2
01A5 GOTO L_Thomas_Bro2_34
01A6 L_Thomas_Bro2_33:
01A6 L_Thomas_Bro2_34:
01A6 MOVLW 26
01A7 MOVWF STACK_4
01A8 MOVLW 255
01A9 MOVWF STACK_5
01AA MOVLW 255
01AB MOVWF STACK_6
01AC DECFSZ STACK_4,F
01AD GOTO $+2
01AE GOTO $+8
01AF DECFSZ STACK_5,F
01B0 GOTO $+2
01B1 GOTO $+4
01B2 DECFSZ STACK_6,F
01B3 GOTO $-1
01B4 GOTO $-5
01B5 GOTO $-9
01B6 MOVLW 127
01B7 MOVWF STACK_4
01B8 MOVLW 255
01B9 MOVWF STACK_5
01BA DECFSZ STACK_4,F
01BB GOTO $+2
01BC GOTO $+4
01BD DECFSZ STACK_5,F
01BE GOTO $-1
01BF GOTO $-5
01C0 MOVLW 88
01C1 MOVWF STACK_4
01C2 DECFSZ STACK_4,F
01C3 GOTO $-1
01C4 nop
01C5 nop
01C6 GOTO L_Thomas_Bro2_26
01C7 L_Thomas_Bro2_25:
01C7 L_Thomas_Bro2_26:
01C7 L_Thomas_Bro2_23:
01C7 CLRF STACK_3
01C8 INCF STACK_3,F
01C9 MOVF main_global_loopz,W
01CA ADDWF STACK_3,W
01CB MOVWF main_global_loopz
01CC GOTO L_Thomas_Bro2_21
01CD L_Thomas_Bro2_22:
01CD MOVF main_global_zov_2,W
01CE SUBWF main_global_tid_2,W
01CF BTFSS STATUS,Z
01D0 GOTO $+3
01D1 MOVF main_global_zov_1,W
01D2 SUBWF main_global_tid_1,W
01D3 BTFSS STATUS,Z
01D4 GOTO L_Thomas_Bro2_19
01D5 L_Thomas_Bro2_20:
01D5 MOVLW 4
01D6 MOVWF GPIO
01D7 MOVLW 3
01D8 MOVWF STACK_1
01D9 MOVLW 255
01DA MOVWF STACK_2
01DB MOVLW 255
01DC MOVWF STACK_3
01DD DECFSZ STACK_1,F
01DE GOTO $+2
01DF GOTO $+8
01E0 DECFSZ STACK_2,F
01E1 GOTO $+2
01E2 GOTO $+4
01E3 DECFSZ STACK_3,F
01E4 GOTO $-1
01E5 GOTO $-5
01E6 GOTO $-9
01E7 MOVLW 140
01E8 MOVWF STACK_1
01E9 MOVLW 255
01EA MOVWF STACK_2
01EB DECFSZ STACK_1,F
01EC GOTO $+2
01ED GOTO $+4
01EE DECFSZ STACK_2,F
01EF GOTO $-1
01F0 GOTO $-5
01F1 MOVLW 161
01F2 MOVWF STACK_1
01F3 DECFSZ STACK_1,F
01F4 GOTO $-1
01F5 nop
01F6 L_Thomas_Bro2_36:
01F6 MOVLW 1
01F7 MOVWF ADClib_A_E_adc_read_param_channel
01F8 CALL ADClib_A_E_adc_read
01F9 MOVF ADClib_A_E_adc_read_result_1,W
01FA MOVWF main_global_brovinkel_1
01FB MOVF ADClib_A_E_adc_read_result_2,W
01FC MOVWF main_global_brovinkel_2
01FD MOVLW 36
01FE MOVWF GPIO
01FF MOVLW 39
0200 MOVWF STACK_2
0201 MOVLW 255
0202 MOVWF STACK_3
0203 DECFSZ STACK_2,F
0204 GOTO $+2
0205 GOTO $+4
0206 DECFSZ STACK_3,F
0207 GOTO $-1
0208 GOTO $-5
0209 MOVLW 219
020A MOVWF STACK_2
020B DECFSZ STACK_2,F
020C GOTO $-1
020D nop
020E MOVLW 52
020F MOVWF GPIO
0210 MOVLW 65
0211 MOVWF STACK_2
0212 MOVLW 255
0213 MOVWF STACK_3
0214 DECFSZ STACK_2,F
0215 GOTO $+2
0216 GOTO $+4
0217 DECFSZ STACK_3,F
0218 GOTO $-1
0219 GOTO $-5
021A MOVLW 195
021B MOVWF STACK_2
021C DECFSZ STACK_2,F
021D GOTO $-1
021E nop
021F MOVLW 1
0220 SUBWF main_global_brovinkel_2,W
0221 BTFSS STATUS,Z
0222 GOTO $+3
0223 MOVLW 109
0224 SUBWF main_global_brovinkel_1,W
0225 BTFSS STATUS,C
0226 GOTO L_Thomas_Bro2_36
0227 L_Thomas_Bro2_37:
0227 MOVLW 36
0228 MOVWF GPIO
0229 MOVLW 3
022A MOVWF STACK_1
022B MOVLW 255
022C MOVWF STACK_2
022D MOVLW 255
022E MOVWF STACK_3
022F DECFSZ STACK_1,F
0230 GOTO $+2
0231 GOTO $+8
0232 DECFSZ STACK_2,F
0233 GOTO $+2
0234 GOTO $+4
0235 DECFSZ STACK_3,F
0236 GOTO $-1
0237 GOTO $-5
0238 GOTO $-9
0239 MOVLW 140
023A MOVWF STACK_1
023B MOVLW 255
023C MOVWF STACK_2
023D DECFSZ STACK_1,F
023E GOTO $+2
023F GOTO $+4
0240 DECFSZ STACK_2,F
0241 GOTO $-1
0242 GOTO $-5
0243 MOVLW 161
0244 MOVWF STACK_1
0245 DECFSZ STACK_1,F
0246 GOTO $-1
0247 nop
0248 MOVLW 4
0249 MOVWF GPIO
024A MOVLW 3
024B MOVWF STACK_1
024C MOVLW 255
024D MOVWF STACK_2
024E MOVLW 255
024F MOVWF STACK_3
0250 DECFSZ STACK_1,F
0251 GOTO $+2
0252 GOTO $+8
0253 DECFSZ STACK_2,F
0254 GOTO $+2
0255 GOTO $+4
0256 DECFSZ STACK_3,F
0257 GOTO $-1
0258 GOTO $-5
0259 GOTO $-9
025A MOVLW 140
025B MOVWF STACK_1
025C MOVLW 255
025D MOVWF STACK_2
025E DECFSZ STACK_1,F
025F GOTO $+2
0260 GOTO $+4
0261 DECFSZ STACK_2,F
0262 GOTO $-1
0263 GOTO $-5
0264 MOVLW 161
0265 MOVWF STACK_1
0266 DECFSZ STACK_1,F
0267 GOTO $-1
0268 nop
0269 MOVLW 1
026A MOVWF main_global_loopz
026B L_Thomas_Bro2_38:
026B MOVLW 4
026C MOVWF STACK_1
026D MOVF main_global_loopz,W
026E SUBWF STACK_1,W
026F BTFSS STATUS,C
0270 GOTO L_Thomas_Bro2_39
0271 MOVLW 26
0272 MOVWF STACK_2
0273 MOVLW 255
0274 MOVWF STACK_3
0275 MOVLW 255
0276 MOVWF STACK_4
0277 DECFSZ STACK_2,F
0278 GOTO $+2
0279 GOTO $+8
027A DECFSZ STACK_3,F
027B GOTO $+2
027C GOTO $+4
027D DECFSZ STACK_4,F
027E GOTO $-1
027F GOTO $-5
0280 GOTO $-9
0281 MOVLW 127
0282 MOVWF STACK_2
0283 MOVLW 255
0284 MOVWF STACK_3
0285 DECFSZ STACK_2,F
0286 GOTO $+2
0287 GOTO $+4
0288 DECFSZ STACK_3,F
0289 GOTO $-1
028A GOTO $-5
028B MOVLW 88
028C MOVWF STACK_2
028D DECFSZ STACK_2,F
028E GOTO $-1
028F nop
0290 nop
0291 L_Thomas_Bro2_40:
0291 CLRF STACK_2
0292 INCF STACK_2,F
0293 MOVF main_global_loopz,W
0294 ADDWF STACK_2,W
0295 MOVWF main_global_loopz
0296 GOTO L_Thomas_Bro2_38
0297 L_Thomas_Bro2_39:
0297 MOVLW 4
0298 MOVWF GPIO
0299 L_Thomas_Bro2_41:
0299 MOVLW 1
029A MOVWF ADClib_A_E_adc_read_param_channel
029B CALL ADClib_A_E_adc_read
029C MOVF ADClib_A_E_adc_read_result_1,W
029D MOVWF main_global_brovinkel_1
029E MOVF ADClib_A_E_adc_read_result_2,W
029F MOVWF main_global_brovinkel_2
02A0 MOVLW 4
02A1 MOVWF GPIO
02A2 MOVLW 65
02A3 MOVWF STACK_2
02A4 MOVLW 255
02A5 MOVWF STACK_3
02A6 DECFSZ STACK_2,F
02A7 GOTO $+2
02A8 GOTO $+4
02A9 DECFSZ STACK_3,F
02AA GOTO $-1
02AB GOTO $-5
02AC MOVLW 195
02AD MOVWF STACK_2
02AE DECFSZ STACK_2,F
02AF GOTO $-1
02B0 nop
02B1 MOVLW 20
02B2 MOVWF GPIO
02B3 MOVLW 65
02B4 MOVWF STACK_2
02B5 MOVLW 255
02B6 MOVWF STACK_3
02B7 DECFSZ STACK_2,F
02B8 GOTO $+2
02B9 GOTO $+4
02BA DECFSZ STACK_3,F
02BB GOTO $-1
02BC GOTO $-5
02BD MOVLW 195
02BE MOVWF STACK_2
02BF DECFSZ STACK_2,F
02C0 GOTO $-1
02C1 nop
02C2 MOVLW 0
02C3 SUBWF main_global_brovinkel_2,W
02C4 BTFSS STATUS,Z
02C5 GOTO $+3
02C6 MOVLW 63
02C7 SUBWF main_global_brovinkel_1,W
02C8 BTFSC STATUS,C
02C9 GOTO L_Thomas_Bro2_41
02CA L_Thomas_Bro2_42:
02CA MOVLW 4
02CB MOVWF GPIO
02CC MOVLW 16
02CD MOVWF STACK_1
02CE MOVLW 255
02CF MOVWF STACK_2
02D0 MOVLW 255
02D1 MOVWF STACK_3
02D2 DECFSZ STACK_1,F
02D3 GOTO $+2
02D4 GOTO $+8
02D5 DECFSZ STACK_2,F
02D6 GOTO $+2
02D7 GOTO $+4
02D8 DECFSZ STACK_3,F
02D9 GOTO $-1
02DA GOTO $-5
02DB GOTO $-9
02DC MOVLW 76
02DD MOVWF STACK_1
02DE MOVLW 255
02DF MOVWF STACK_2
02E0 DECFSZ STACK_1,F
02E1 GOTO $+2
02E2 GOTO $+4
02E3 DECFSZ STACK_2,F
02E4 GOTO $-1
02E5 GOTO $-5
02E6 MOVLW 206
02E7 MOVWF STACK_1
02E8 DECFSZ STACK_1,F
02E9 GOTO $-1
02EA CLRF GPIO
02EB MOVLW 16
02EC MOVWF STACK_1
02ED MOVLW 255
02EE MOVWF STACK_2
02EF MOVLW 255
02F0 MOVWF STACK_3
02F1 DECFSZ STACK_1,F
02F2 GOTO $+2
02F3 GOTO $+8
02F4 DECFSZ STACK_2,F
02F5 GOTO $+2
02F6 GOTO $+4
02F7 DECFSZ STACK_3,F
02F8 GOTO $-1
02F9 GOTO $-5
02FA GOTO $-9
02FB MOVLW 76
02FC MOVWF STACK_1
02FD MOVLW 255
02FE MOVWF STACK_2
02FF DECFSZ STACK_1,F
0300 GOTO $+2
0301 GOTO $+4
0302 DECFSZ STACK_2,F
0303 GOTO $-1
0304 GOTO $-5
0305 MOVLW 206
0306 MOVWF STACK_1
0307 DECFSZ STACK_1,F
0308 GOTO $-1
0309 GOTO L_Thomas_Bro2_9
030A L_Thomas_Bro2_10:
030A GOTO $
;---endproc---
______________________________ Slut på fil ______________________________
program Thomas_Bro2;
//******************************************************************************
// microcontroller : P12f675
//
// Svenska.
// Projekt: Thomas styrsystem för klaffbro
// Detta projekt är disangat att fungera med PIC 12F675
// med några mindre ändringar bör det fungera med andra PIC MCU.
//
// Denna kod driver en motor på GP3 och GP2.
// ADC konverterningens värde anger vinkeln bron har och vänte tiden
// mellan varje bro rörelse.
//
// English.
// Project: Thomas controls system for drawbridge
// This project is designed to work with PIC 12F675
// with minor adjustments, it should work with any other PIC MCU.
//
// This code drives a motor at GP3 and GP2.
// ADC conversion value determinate the angel for bridge and the wainting time
// betwen the bridge events.
//******************************************************************************
//program adc_leds;
var Zov,BroVinkel,Tid : word;
Loopz,PowerON:Byte;
Begin
//Setup
GPIO := 0;
CMCON := 7;
TRISIO := 0; // designate gpio as output
SetBit(TRISIO,ANS0); // pin ANS0 as input
SetBit(TRISIO,ANS1); // pin ANS1 as input
ClearBit(ADCON0,VCFG); // Vdd as Vref
// Power ON visning 5 blink
// Power ON show 5 blink
GPIO := $04; // Tänder LED 1101 1111=DF Orginal
delay_ms(1000);
For PowerON:=1 to 5 do
Begin
GPIO := $04; // Tänder LED 1101 1111=DF Orginal
// 0010 0000=20
delay_ms(400);
GPIO := $00; // Släcker alla LED 1111 1111=FF Orginal
// 0000 0000=00
delay_ms(400);
End;
// Kontrollerar att bron är nere
// Controlls if bridge is down
GPIO := $00;
delay_ms(2000);
PowerON:=0;
repeat
Begin
BroVinkel:=ADC_read(ANS1); // ADC conversion
If PowerON=1 then
Begin //Block av - Relä (av)läge ner - Motor på * Block off - Relay (Off) pos. down - Motor on
GPIO := $10; //Bron var inte nere säncker bron! ******** bridge is not down!
delay_ms(50);//Pulserar motorstömen för långsam gång *** Pulse motorpower for slow run
GPIO := $00; //Block av - Relä (av)läge ner - Motor av * Block off - Relay (Off) pos. down - Motor off
delay_ms(50);
End;
PowerON:=1;
End;
until BroVinkel<=63; // <--- Ner värdet 1 ------------------------------------
GPIO := $00;
delay_ms(2000);
// Huvud progrsm
// Main program
repeat // beginning of a repeat endless loop
Begin
// Väntar inställd tid
// Want for set time
//GPIO := $00;
Tid:=ADC_read(ANS0); // ADC conversion
Zov:=0;
If Tid<100 then
Begin
Tid:=100; // 6=Test 100=Normal
//GPIO:=$34; // Tag Bort * Remove
//delay_ms(2000); // Tag Bort * Remove
End;
If Tid>1010 then
Begin
Tid:=2; // 6=Test 100=Normal
End;
//GPIO := $00; // Tag Bort * Remove
//delay_ms(500); // Tag Bort * Remove
Repeat
Begin
Zov:=Zov+1; // Antal varv att vänta * Number of lap too want
for Loopz:=1 to 30 do
Begin
//GPIO:=$20; // Tag Bort
delay_ms(106); // Tid att vänta * Loopz värdet
IF TestBit(GPIO,3)=0 Then
Begin
Zov:=0; // Nollar tidsräknaren * Reset timecount
//GPIO:=$04; // Tag Bort * Remove
Tid:=ADC_read(ANS0); // ADC conversion
If Tid<100 then
Begin
Tid:=100; // 6=Test 100=Normal
End;
If Tid>1010 then
Begin
Tid:=2; // 6=Test 100=Normal
End;
delay_ms(5000); // Väntar ca: 5 Sekunder * Wants 5 Sec.
End;
End;
//GPIO:=$00; // Tag Bort
//delay_ms(200);
End;
until Tid=Zov; // Klart att höja bron
// Clear too take up the bridge
// Höjer bron * Up bridge
GPIO:=$04; // Block på - Relä (av)läge ner - Motor av
Delay_ms(500); // Block on - Relay (Off) pos. down - Motor off
repeat
Begin
BroVinkel:=ADC_read(ANS1); // ADC conversion
GPIO:=$24; // Block på - Relä (på)läge upp - Motor av
Delay_ms(30); // Block on - Relay (on) pos. up - Motor off
GPIO:=$34;
Delay_ms(50); // Block på - Relä (på)läge upp - Motor på
End; // Block on - Relay (on) pos. up - Motor on
until BroVinkel>=365; // <---- Upp värdet ---------------------------------------------
GPIO:=$24; // Block på - Relä (på)läge upp - Motor av
Delay_ms(500); // Block on - Relay (on) pos. up - Motor off
GPIO:=$04; // Block på - Relä (av)läge ner - Motor av
Delay_ms(500); // Block on - Relay (Off) pos. down - Motor off
//Väntar i 20Sekunder * Wants 20 Sec
For Loopz:=1 to 4 do
Begin
Delay_ms(5000);
End;
// 5000mS = 5 Sekunder.
// 5 * 4 = 20 Sekunder.
//Sänker bron
GPIO:=$04; //Block på - Relä (av)läge ner - Motor av * Block on - Relay (Off) pos. down - Motor off
repeat
Begin
BroVinkel:=ADC_read(ANS1); // ADC conversion
GPIO:=$04; // Block på - Relä (av)läge ner - Motor av
Delay_ms(50);// Block on - Relay (Off) pos. down - Motor off
GPIO:=$14; // Block på - Relä (av)läge ner - Motor på
Delay_ms(50); // Block on - Relay (Off) pos. down - Motor on
End;
until BroVinkel<63; // <---- Ner värdet -----------------------------------------
GPIO:=$04; // Block på - Relä (av)läge ner - Motor av
delay_ms(3000);// Block on - Relay (Off) pos. down - Motor off
GPIO:=$00; // Block av - Relä (av)läge ner - Motor av
delay_ms(3000); // Block off - Relay (Off) pos. down - Motor off
End;
until 0 = 1; // endless loop (as this condition is never satisfied)
end.
______________________________ Slut på fil ______________________________