Advertisement
baraczek

Fahrenheit calsjusz

Apr 20th, 2022
1,180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .org 0x32
  2. count: .DB  0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b, 0x77, 0x1f, 0x4e, 0x3d, 0x4f, 0x47
  3.  
  4. .org 0x100
  5. start:
  6.     ldi r20, 0x00
  7.     ldi r23, 0x00
  8.     call setup
  9.  
  10.     ldi r24, 164 ;FAHRENHEIT
  11.     subi r24, 0x20 ;odejmij 32 stopnie
  12.  
  13.    
  14.     mov r16, r24
  15.     lsr r16
  16.     mov r17, r16
  17.     lsr r17
  18.     lsr r17
  19.     lsr r17
  20.     lsr r17
  21.     add r16, r17
  22.  
  23.     mov r24, r16
  24.  
  25.  
  26.     mov r20, r24
  27.    
  28.  
  29.     call display
  30.  
  31.     rjmp start
  32.  
  33.  
  34. set_pointer:
  35.     ldi zl, low(2*count)
  36.     ldi zh, high(2*count) ;z to wskaźnik na tablicę count
  37.     ret
  38.  
  39. setup:
  40.     push r16
  41.     ldi r16, $00
  42.     out portd, r16 ;ustaw same 0 na porcie d
  43.     ldi r16, $ff
  44.     out ddrd, r16 ;ustaw portd jako wyjście
  45.     out ddrc, r16 ;ustaw portc jako wyjście portc steruje anodami
  46.     call set_pointer
  47.     pop r16
  48.     ret
  49.  
  50. display:
  51.     push r16
  52.     push r17
  53.     push r18
  54.     push r19
  55.     push r22
  56.  
  57.     ldi r22, 20 ;ODŚWIEŻ 10 RAZY
  58.     loop10:
  59.         ldi r17, 0x08
  60.  
  61.         call set_pointer
  62.  
  63.         ;SEKCJA 4 i 3
  64.  
  65.  
  66.         com r17
  67.         out portc, r17
  68.         com r17
  69.         lsr r17        
  70.  
  71.         mov r19, r23
  72.         andi r19, 0x0F
  73.         add zl, r19
  74.  
  75.         call print ;WYPISZ
  76.  
  77.         call set_pointer ;USTAW WSKAŹNIK NA 0
  78.  
  79.         call wait ;CZEKAJ
  80.  
  81.         mov r19, r23
  82.         andi r19, 0xF0
  83.         swap r19
  84.         add zl, r19
  85.  
  86.         com r17
  87.         out portc, r17
  88.         com r17
  89.         lsr r17
  90.  
  91.         call print ;WYPISZ
  92.  
  93.         call set_pointer ;USTAW WSKAŹNIK NA 0
  94.  
  95.         call wait ;CZEKAJ
  96.  
  97.  
  98.  
  99.         ;SEKCJA 2 i 1
  100.  
  101.         com r17
  102.         out portc, r17
  103.         com r17
  104.         lsr r17        
  105.  
  106.         mov r19, r20
  107.         andi r19, 0x0F
  108.         add zl, r19
  109.  
  110.         call print ;WYPISZ
  111.  
  112.         call set_pointer ;USTAW WSKAŹNIK NA 0
  113.  
  114.         call wait ;CZEKAJ
  115.  
  116.         mov r19, r20
  117.         andi r19, 0xF0
  118.         swap r19
  119.         add zl, r19
  120.  
  121.         com r17
  122.         out portc, r17
  123.  
  124.         call print ;WYPISZ
  125.  
  126.         call set_pointer ;USTAW WSKAŹNIK NA 0
  127.  
  128.         call wait ;CZEKAJ
  129.     dec r22
  130.     brne loop10
  131.  
  132.     pop r22
  133.     pop r19
  134.     pop r18
  135.     pop r17
  136.     pop r16
  137.     ret
  138.  
  139. print:
  140.     lpm r18, z ;WYPISZ
  141.     com r18 ;WYPISZ
  142.     out portd, r18 ;WYPISZ
  143.     ret
  144.  
  145. wait:   ;ustawione na 1/20s
  146.     push r16
  147.     push r17
  148.     push r18
  149.     ldi r16, 4;tu było 2
  150.     loop1:
  151.         ldi R17, 20 ;tu było 20
  152.         loop2:
  153.             ldi R18, 10 ;tu było 100
  154.             loop3:
  155.                 dec R18
  156.                 brne loop3
  157.             dec R17
  158.             brne loop2
  159.         dec R16
  160.         brne loop1
  161.         pop r18
  162.         pop r17
  163.         pop r16
  164.     ret
  165.  
  166. wait1s: ;ustawione na 1s
  167.     push r16
  168.     push r17
  169.     push r18
  170.     ldi r16, 20 ;tu było 2
  171.     loop4:
  172.         call display
  173.         ldi R17, 25 ;tu było 20
  174.         loop5:
  175.             ldi R18, 5;tu było 100
  176.             loop6:
  177.                 dec R18
  178.                 brne loop6
  179.             dec R17
  180.             brne loop5
  181.         dec R16
  182.         brne loop4
  183.         pop r18
  184.         pop r17
  185.         pop r16
  186.     ret
  187.  
  188. end:
  189. rjmp end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement