fork(2) download
  1. ;************************************************
  2.  
  3. ;Zegarek
  4.  
  5. ;************************************************
  6.  
  7.  
  8.  
  9. SEG_ON EQU P1.6 ;włączenie wyświetlacza.
  10.  
  11.  
  12.  
  13. ;Lista cyfr:
  14. ZERO EQU 0111111B ;kod cyfry 0
  15.  
  16. ONE EQU 0000110B ;kod cyfry 1
  17.  
  18. TWO EQU 1011011B ;kod cyfry 2
  19.  
  20. THREE EQU 1001111B ;kod cyfry 3
  21.  
  22. FOUR EQU 1100110B ;kod cyfry 4
  23.  
  24. FIVE EQU 1101101B ;kod cyfry 5
  25.  
  26. SIX EQU 1111101B ;kod cyfry 6
  27.  
  28. SEVEN EQU 0000111B ;kod cyfry 7
  29.  
  30. EIGHT EQU 1111111B ;kod cyfry 8
  31.  
  32. NINE EQU 1101111B ;kod cyfry 9
  33.  
  34. DOT EQU 10000000B ;kod kropki
  35.  
  36. ;Pamięć wewnętrzna RAM
  37.  
  38. DISPLAY EQU 30H
  39.  
  40. ;**************************************
  41.  
  42.  
  43. LJMP START
  44.  
  45. ORG 100H
  46.  
  47. START:
  48.  
  49.  
  50.  
  51. MOV DISPLAY,#SIX
  52.  
  53. MOV DISPLAY+1,#FIVE
  54.  
  55. MOV DISPLAY+2,#FOUR + DOT
  56.  
  57. MOV DISPLAY+3,#THREE ;wskaźniki
  58.  
  59. MOV DISPLAY+4,#ZERO + DOT ;dla kolejnych
  60.  
  61. MOV DISPLAY+5,#ONE ;wpisz kody cyfr
  62.  
  63.  
  64.  
  65. LOOP_DISP: ;ustawienie danych do
  66.  
  67. ;wyświetlania na 1-szym
  68.  
  69. ;wskaźniku
  70.  
  71. MOV R0,#DISPLAY ;adres pobierania kodów
  72.  
  73. MOV R2,#7 ;licznik-il. wskaźników
  74.  
  75. MOV R3,#00000001B ;wybór wskaźnika
  76.  
  77. ;-kod 1 z 8
  78.  
  79.  
  80.  
  81. LOOP:
  82.  
  83. SETB SEG_ON ;wyłącz poprzedni
  84.  
  85. ;wskaźnik
  86.  
  87.  
  88.  
  89. MOV R1,#CSDS ;adres wyboru wskaźnika
  90.  
  91. MOV A,R3 ;aktualny wskaźnik (1z8)
  92.  
  93. MOVX @R1,A ;wpisz nr wskaźnika
  94.  
  95.  
  96.  
  97. RL A ;obrót w lewo - numer
  98.  
  99. MOV R3,A ;następnego wskaźnika
  100.  
  101. ;(kod 1 z 8)
  102.  
  103.  
  104.  
  105. MOV R1,#CSDB ;adres danych wskaźnika
  106.  
  107. MOV A,@R0 ;kod aktualnego wskaźnika
  108.  
  109. MOVX @R1,A ;wpisz kod segmentów
  110.  
  111.  
  112.  
  113. INC R0 ;adres pobierania kodu
  114.  
  115. ;dla następnego wskaźnika
  116.  
  117.  
  118.  
  119. CLR SEG_ON ;włączenie wskaźnika
  120.  
  121.  
  122.  
  123. MOV A,#1 ;czas 1ms - świecenie
  124.  
  125.  
  126.  
  127. DJNZ R2,LOOP ;kolejne świecenie
  128.  
  129. ;siedmiu wskaźników
  130.  
  131.  
  132.  
  133. SJMP LOOP_DISP ;zacznij od wskaźnika 1
  134.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.asm:43: error: parser: instruction expected
prog.asm:45: error: parser: instruction expected
prog.asm:51: error: expression syntax error
prog.asm:53: error: expression syntax error
prog.asm:55: error: expression syntax error
prog.asm:57: error: expression syntax error
prog.asm:59: error: expression syntax error
prog.asm:61: error: expression syntax error
prog.asm:71: error: expression syntax error
prog.asm:73: error: expression syntax error
prog.asm:75: error: expression syntax error
prog.asm:89: error: expression syntax error
prog.asm:93: error: parser: instruction expected
prog.asm:97: error: parser: instruction expected
prog.asm:105: error: expression syntax error
prog.asm:109: error: symbol `MOVX' redefined
prog.asm:109: error: parser: instruction expected
prog.asm:119: error: parser: instruction expected
prog.asm:123: error: expression syntax error
prog.asm:127: error: parser: instruction expected
prog.asm:133: error: parser: instruction expected
stdout
Standard output is empty