Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;ćwiczenie 00
- ;po zajęciach z ubiegłego tygodnia studenci powinni być mniej więcej na takim etapie:
- ;zdefiniowane są wzorki i jest kawałek kodu, który pobiera z pamięci programu
- ;wzorek odpowiadający liczbie (0-F) wpisanej do akumulatora
- ;w CSDB zatrzaskiwany jest wzorek, w CSDS "grzebień bitowy" włączający wszystkie wyświetlacze
- CSDS16 EQU 0FF30H ;adres zatrzasku wyboru wskaźnika/wyświetlacza
- CSDB16 EQU 0FF38H ;adres zatrzasku wyboru segmentów/wzorków
- SEGOFF EQU P1.6 ;ten bit włącza wyświetlacze
- ;=======================================
- ;
- ; RESET
- ;
- ORG 00H ;reset
- LJMP START ;
- ;=======================================
- ;
- ; PROGRAM
- ;
- ORG 100H ;program
- START:
- ;laduje do komorek wybrane wartosci ktore chce wyswietlac
- ;najmlodszy bajt (A) to pierwszy wyswietlacz
- MOV 7AH, #6H
- MOV 7BH, #5H
- MOV 7CH, #4H
- MOV 7DH, #3H
- MOV 7EH, #2H
- MOV 7FH, #1H
- CLR SEGOFF ;włącz wyświetlacze
- MOV R5, #80H ;R5 = WARTOSC WYSWIETLAZ
- MOV R4, #1 ;R4 = NUMER WYSWIETLACZA
- LOOP:
- MOV A, R5 ;ZALADUJ OSTATNIA WARTOSC wyswietlana wartosc
- DEC A ;zminiejsz o 1
- ;jezeli wciaz w przedziale od 7AH do 7FH skocz do jeszczeWprzedziale
- CJNE A, #79H, jeszczeWprzedziale
- MOV A, #7fH ;jezeli nie podmien na maksymalna wartosc
- jeszczeWprzedziale:
- MOV R0, A ;zaladuj do R0 lub R1 bo tylko one moga odwolac sie do adresu posredniego
- MOV R5, A ;zapamietaj do R5 ostatnia wartosc bo R0 mozna latwo stracic
- MOV A, @R0 ;zaladuj wartosc na ktora wskazuje rejestr R0
- MOV DPTR, #WZORY ;adres wzorków do DPTR
- MOVC A, @A+DPTR ;wzorek z pamięci programu do A
- MOV DPTR, #CSDB16 ;adres zatrzasku wzorków do DPTR
- SETB SEGOFF
- MOVX @DPTR, A ;wzorek do zatrzasku
- MOV A, R4
- ;sprawdzam czy nie wchodze na diody na wyswietlaczu
- CJNE A, #01000000b, jeszczeWyswietlacz ;jezeli wchodze na 7 wyswietlacz
- MOV A, #00000001 ;podmieniam na 1
- jeszczeWyswietlacz:
- MOV DPTR, #CSDS16 ;adres zatrzasku wyboru wskaźników do DPTR
- MOVX @DPTR, A ;wybierz wskaźniki
- CLR SEGOFF
- RL A ;ZMIANA AKTYWNEGO WYSWIETLACZA
- MOV R4, A
- DELAY:
- ;DJNZ R7, DELAY
- ; DJNZ R6, DELAY
- SJMP LOOP ;never ending loop
- WZORY:
- DB 00111111B, 00000110B, 01011011B, 01001111B ;0123
- DB 01100110B, 01101101B, 01111101B, 00000111B ;4567
- DB 01111111B, 01101111B, 01110111B, 01111100B ;89Ab
- DB 01011000B, 01011110B, 01111001B, 01110001B ;cdEF
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement