Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
79
0
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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement