SHARE
TWEET

Untitled

a guest Dec 12th, 2018 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .NOLIST
  2. .INCLUDE "m128def.inc"
  3. .LIST
  4. .cseg
  5. pozice:
  6. .DB 0xF3, 0xF7, 0xFB, 0xFF
  7.  
  8. znaky:
  9. .DB 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80 
  10. ; '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
  11.  
  12.     ;definování zásobníku
  13.     ldi R16, low(RAMEND)
  14.     out spl, R16
  15.     ldi R16, high(RAMEND)
  16.     out sph, R16
  17.  
  18.     ; porty jako vystup
  19.     LDI R16, 0b11111111
  20.     OUT DDRB, R16      
  21.     LDI R16, 0b11111111
  22.     OUT DDRE, R16
  23.  
  24.    
  25. smycka:
  26.     ;načte počáteční adresu pozic a znaků
  27.     call adresaZnaku
  28.     call adresaPozic
  29.     ldi R17, 4          ; počet opakování
  30. prvniCtverice: 
  31.     mov ZL, XL
  32.     mov ZH, XH
  33.     lpm R16, Z+         ;načte pozici a inkrementuje
  34.     mov XL, ZL
  35.     mov XH, ZH
  36.     out portE, R16      ;hodí pozici na výstup
  37.     mov ZL, YL
  38.     mov ZH, YH
  39.     lpm R16, Z+         ;načte znak a inkrementuje
  40.     mov YL, ZL
  41.     mov YH, ZH
  42.     out portB, R16      ;hodí číslo na výstup
  43.     call delay
  44.     dec R17
  45. brne prvniCtverice      ;cyklus se opakuje 4krát - 4 pozice
  46.  
  47.     ldi R17, 4
  48.     call adresaPozic   
  49.  
  50.     ;restartujeme počítadlo pozic a adresu pozic a jdeme dělat
  51.     ;stejný cyklus s další čtveřicí čísel ale s jiným zpožděním
  52.  
  53. druhaCtverice:
  54.     mov ZL, XL
  55.     mov ZH, XH
  56.     lpm R16, Z+
  57.     mov XL, ZL
  58.     mov XH, ZH
  59.     out portE, R16
  60.     mov ZL, YL
  61.     mov ZH, YH
  62.     lpm R16, Z+
  63.     mov YL, ZL
  64.     mov YH, ZH
  65.     out portB, R16
  66.     call delay
  67.     call delay
  68.     dec R17
  69. brne druhaCtverice
  70. jmp smycka                  ;skočí zpátky na začátek a takhle pořád dokola ;)
  71.  
  72. delay:
  73.     ldi  r18, 41
  74.     ldi  r19, 150
  75.     ldi  r20, 125
  76. L1: dec  r20
  77.     brne L1
  78.     dec  r19
  79.     brne L1
  80.     dec  r18
  81.     brne L1
  82.     nop
  83. ret
  84.  
  85. adresaZnaku:
  86.     LDI YL,low(znaky*2)
  87.     LDI YH,high(znaky*2)
  88. ret
  89.  
  90. adresaPozic:
  91.     LDI XL,low(pozice*2)
  92.     LDI XH,high(pozice*2)
  93. ret
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top