; PROGRAM MAJACY NA CELU OBSLUGE PRALKI ; PO WCISNIECIU KLAWISZA 1 MA WCHODZIC W TRYB 1 I ODLICZAC KOLJNO C1=10, C2=3, C3=30, C4=5, C5=10 ; PO WCISNIECIU KLAWISZA 2 MA WCHODZIC W TRYB 2 I ODLICZAC KOLEJNO C1=35, C2=7, C3=10 ; PO WCISNIECIU KLAWISZA 3 MA WCHODZIC W TRYB 3 I ODLICZAC KOLEJNO C1=17, C2=5, C3=7 ; KZDE WEJSCIE DO TRYBU MA BYC ODPOWIEDNIO ZATWIERDZONE WCISNIECIEM GWIAZDKI MOV DPTR, #400H CLR P3.3 CLR P3.4 poczatek: MOV R0, #14 CLR F0 SETB P0.0 SETB P0.1 SETB P0.2 SETB P0.3 CLR P0.0 CALL sprawdzenie sprawdzono: SETB P0.0 CLR P0.3 CALL colScan JMP poczatek colScan: JNB P0.6, pe1 JNB P0.5, pe2 JNB P0.4, pe3 RET sprawdzenie: JNB P0.6, sprawdzono JNB P0.5, sprawdzono JNB P0.4, sprawdzono JMP poczatek pe1: setb P3.3 setb P3.4 MOV A,R0 MOVC A,@A+DPTR MOV P1, A call czekaj MOV P1, #11111111B INC R0 clr P3.3 setb P3.4 MOV A,R0 MOVC A,@A+DPTR MOV P1, A call czekaj MOV P1, #11111111B INC R0 call daleko CJNE R0, #24, pe1 JMP poczatek pe2: setb P3.3 setb P3.4 MOV A,R0 MOVC A,@A+DPTR MOV P1, A call czekaj MOV P1, #11111111B INC R0 clr P3.3 setb P3.4 MOV A,R0 MOVC A,@A+DPTR MOV P1, A call czekaj MOV P1, #11111111B INC R0 CJNE R0, #16, dalej2 MOV R7, #4 MOV R6, #6 call odliczanie dalej2: CJNE R0, #18, dale2 MOV R7, #1 MOV R6, #8 call odliczanie dale2: CJNE R0, #20, dal2 MOV R7, #2 MOV R6, #1 call odliczanie dal2: CJNE R0, #20, pe2 JMP poczatek pe3: setb P3.3 setb P3.4 MOV A,R0 MOVC A,@A+DPTR MOV P1, A call czekaj MOV P1, #11111111B INC R0 clr P3.3 setb P3.4 MOV A,R0 MOVC A,@A+DPTR MOV P1, A call czekaj MOV P1, #11111111B INC R0 CJNE R0, #16, dalej3 MOV R7, #2 MOV R6, #8 call odliczanie dalej3: CJNE R0, #18, dale3 MOV R7, #1 MOV R6, #6 call odliczanie dale3: CJNE R0, #20, dal3 MOV R7, #1 MOV R6, #8 call odliczanie dal3: CJNE R0, #20, pe3 JMP poczatek daleko: CJNE R0, #16, dalejj1 MOV R7, #2 MOV R6, #1 call odliczanie dalejj1: CJNE R0, #18, dalej1 MOV R7, #1 MOV R6, #4 call odliczanie dalej1: CJNE R0, #20, dale1 MOV R7, #4 MOV R6, #1 call odliczanie dale1: CJNE R0, #22, dal1 MOV R7, #1 MOV R6, #6 call odliczanie dal1: CJNE R0, #24, da1 MOV R7, #2 MOV R6, #1 call odliczanie da1: RET odliczanie: setb P3.3 clr P3.4 MOV A,R7 MOVC A,@A+DPTR MOV P1, A ; petla czekajaca MOV R5, #10 MOV R4, #10 bupczekamy: MOV A,R5 MOVC A,@A+DPTR MOV A, R4 MOVC A,@A+DPTR DEC R4 CJNE R4, #0, bupczekamy MOV R4,#10 DEC R5 CJNE R5,#0, bupczekamy MOV R5,#10 DEC R4 ;call czekaj MOV P1, #111111111B clr P3.3 clr P3.4 MOV A, R6 MOVC A,@A+DPTR MOV P1, A MOV R5, #10 MOV R4, #10 bupczekamy2: MOV A,R5 MOVC A,@A+DPTR MOV A, R4 MOVC A,@A+DPTR DEC R4 CJNE R4, #0, bupczekamy2 MOV R4,#10 DEC R5 CJNE R5,#0, bupczekamy2 MOV R5,#10 DEC R4 ;call czekaj MOV P1, #111111111B DEC R6 CJNE R6, #0, odliczanie MOV R6,#10 DEC R7 CJNE R7,#0, odliczanie MOV R7,#10 DEC R6 RET czekaj: NOP ;dajemy 100 lub 200 nupow by ustawic speed na 100 i wyeliminowac krzaki w programie NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP RET ORG 400H DB 11111111B ;pomocnicze;0 DB 11000000B ;0 ;1 DB 11111001B ;1 ;2 DB 10100100B ;2 ;3 DB 10110000B ;3 ;4 DB 10011001B ;4 ;5 DB 10010010B ;5 ;6 DB 10000010B ;6 ;7 DB 11111000B ;7 ;8 DB 10000000B ;8 ;9 DB 10010000B ;9 ;10 DB 10001001B ;GWIAZDKA ;11 DB 11000000B ;0 ;12 DB 10101010B ;HASH ;13 DB 11000110B ;C ;14 DB 11111001B ;1 ;15 DB 11000110B ;C ;16 ;1 DB 10100100B ;2 ;17 DB 11000110B ;C ;18 ;2 DB 10110000B ;3 ;19 DB 11000110B ;C ;20 ;3 DB 10011001B ;4 ;21 DB 11000110B ;C ;22 ;4 DB 10010010B ;5 ;23 DB 11111111B ;pomocnicze;24 ;5