Advertisement
Guest User

Untitled

a guest
Apr 29th, 2018
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .include "m16def.inc"
  2. .org 0x0000
  3.  
  4. .def temp = r16
  5. .def divider  = r17
  6. .def data = r18
  7. .def b_state = r19
  8. .def count = r20
  9. .def button = r21
  10.  
  11. ldi temp, low(RAMEND)
  12. out SPL, temp
  13. ldi temp, high(RAMEND)
  14. out SPH, temp
  15.  
  16. ldi temp,  (1 << CS02) | (1 << CS00) //Preddelitel 1024, Normal Mode (WGM00, WGM01 = 0)
  17. out TCCR0, temp
  18.  
  19. ldi temp, 0x00
  20. out DDRA, temp
  21. ldi temp, 0xff
  22. out PORTA, temp
  23.  
  24. ldi temp, (1 << TXEN) | (1 << RXEN)
  25. out UCSRB, temp
  26. ldi temp, (1 << UCSZ1) | (1 << UCSZ0) | (1 << URSEL)
  27. out UCSRC, temp
  28.  
  29. ldi temp, high(25)
  30. out UBRRH, temp
  31. ldi temp, low(25)
  32. out UBRRL, temp
  33.  
  34. reset:
  35.     rcall check_buttons
  36.  
  37. main:
  38.     ldi divider, 85
  39.    
  40. overflow:
  41.     in temp, TIFR
  42.     sbrs temp, TOV0
  43.     rjmp overflow
  44.     out TIFR, temp
  45.     dec divider
  46.     brne overflow
  47.     ldi data, '\r'
  48.     rcall send_byte
  49.     ldi data, '\n'
  50.     rcall check_buttons
  51.     rjmp main
  52.  
  53. check_buttons:
  54.     sbis PINA, 0
  55.     rjmp PC+3
  56.     rcall b0_notpressed
  57.     rjmp PC+2
  58.     rcall b0_pressed
  59.     sbis PINA, 1
  60.     rjmp PC+3
  61.     rcall b1_notpressed
  62.     rjmp PC+2
  63.     rcall b1_pressed
  64.     sbis PINA, 2
  65.     rjmp PC+3
  66.     rcall b2_notpressed
  67.     rjmp PC+2
  68.     rcall b2_pressed
  69.     sbis PINA, 3
  70.     rjmp PC+3
  71.     rcall b3_notpressed
  72.     rjmp PC+2
  73.     rcall b3_pressed
  74.     sbis PINA, 4
  75.     rjmp PC+3
  76.     rcall b4_notpressed
  77.     rjmp PC+2
  78.     rcall b4_pressed
  79.     sbis PINA, 5
  80.     rjmp PC+3
  81.     rcall b5_notpressed
  82.     rjmp PC+2
  83.     rcall b5_pressed
  84.     sbis PINA, 6
  85.     rjmp PC+3
  86.     rcall b6_notpressed
  87.     rjmp PC+2
  88.     rcall b6_pressed
  89.     sbis PINA, 7
  90.     rjmp PC+3
  91.     rcall b7_notpressed
  92.     rjmp PC+2
  93.     rcall b7_pressed
  94.     ret
  95.    
  96. send_byte:
  97.     sbis UCSRA, UDRE
  98.     rjmp PC-1
  99.     out UDR, data
  100.     ret
  101.    
  102. b0_pressed:
  103.     ldi data, 'B'
  104.     rcall send_byte
  105.     ldi data, '0'
  106.     rcall send_byte
  107.     ldi data, ' '
  108.     rcall send_byte
  109.     ldi data, '='
  110.     rcall send_byte
  111.     ldi data, ' '
  112.     rcall send_byte
  113.     ldi data, '1'
  114.     rcall send_byte
  115.     ldi data, ' '
  116.     rcall send_byte
  117.     ldi data, '\r'
  118.     rcall send_byte
  119.     ldi data, '\n'
  120.     rcall send_byte
  121.     ret
  122.  
  123. b0_notpressed:
  124.     ldi data, 'B'
  125.     rcall send_byte
  126.     ldi data, '0'
  127.     rcall send_byte
  128.     ldi data, ' '
  129.     rcall send_byte
  130.     ldi data, '='
  131.     rcall send_byte
  132.     ldi data, ' '
  133.     rcall send_byte
  134.     ldi data, '0'
  135.     rcall send_byte
  136.     ldi data, ' '
  137.     rcall send_byte
  138.     ldi data, '\r'
  139.     rcall send_byte
  140.     ldi data, '\n'
  141.     rcall send_byte
  142.     ret
  143.  
  144. b1_notpressed:
  145.     ldi data, 'B'
  146.     rcall send_byte
  147.     ldi data, '1'
  148.     rcall send_byte
  149.     ldi data, ' '
  150.     rcall send_byte
  151.     ldi data, '='
  152.     rcall send_byte
  153.     ldi data, ' '
  154.     rcall send_byte
  155.     ldi data, '0'
  156.     rcall send_byte
  157.     ldi data, ' '
  158.     rcall send_byte
  159.     ldi data, '\r'
  160.     rcall send_byte
  161.     ldi data, '\n'
  162.     ret
  163.    
  164. b1_pressed:
  165.     ldi data, 'B'
  166.     rcall send_byte
  167.     ldi data, '1'
  168.     rcall send_byte
  169.     ldi data, ' '
  170.     rcall send_byte
  171.     ldi data, '='
  172.     rcall send_byte
  173.     ldi data, ' '
  174.     rcall send_byte
  175.     ldi data, '1'
  176.     rcall send_byte
  177.     ldi data, ' '
  178.     rcall send_byte
  179.     ldi data, '\r'
  180.     rcall send_byte
  181.     ldi data, '\n'
  182.     rcall send_byte
  183.     ret
  184.    
  185. b2_notpressed:
  186.     ldi data, 'B'
  187.     rcall send_byte
  188.     ldi data, '2'
  189.     rcall send_byte
  190.     ldi data, ' '
  191.     rcall send_byte
  192.     ldi data, '='
  193.     rcall send_byte
  194.     ldi data, ' '
  195.     rcall send_byte
  196.     ldi data, '0'
  197.     rcall send_byte
  198.     ldi data, ' '
  199.     rcall send_byte
  200.     ldi data, '\r'
  201.     rcall send_byte
  202.     ldi data, '\n'
  203.     ret
  204.    
  205. b2_pressed:
  206.     ldi data, 'B'
  207.     rcall send_byte
  208.     ldi data, '2'
  209.     rcall send_byte
  210.     ldi data, ' '
  211.     rcall send_byte
  212.     ldi data, '='
  213.     rcall send_byte
  214.     ldi data, ' '
  215.     rcall send_byte
  216.     ldi data, '1'
  217.     rcall send_byte
  218.     ldi data, ' '
  219.     rcall send_byte
  220.     ldi data, '\r'
  221.     rcall send_byte
  222.     ldi data, '\n'
  223.     rcall send_byte
  224.     ret
  225.    
  226. b3_notpressed:
  227.     ldi data, 'B'
  228.     rcall send_byte
  229.     ldi data, '3'
  230.     rcall send_byte
  231.     ldi data, ' '
  232.     rcall send_byte
  233.     ldi data, '='
  234.     rcall send_byte
  235.     ldi data, ' '
  236.     rcall send_byte
  237.     ldi data, '0'
  238.     rcall send_byte
  239.     ldi data, ' '
  240.     rcall send_byte
  241.     ldi data, '\r'
  242.     rcall send_byte
  243.     ldi data, '\n'
  244.     ret
  245.    
  246. b3_pressed:
  247.     ldi data, 'B'
  248.     rcall send_byte
  249.     ldi data, '3'
  250.     rcall send_byte
  251.     ldi data, ' '
  252.     rcall send_byte
  253.     ldi data, '='
  254.     rcall send_byte
  255.     ldi data, ' '
  256.     rcall send_byte
  257.     ldi data, '1'
  258.     rcall send_byte
  259.     ldi data, ' '
  260.     rcall send_byte
  261.     ldi data, '\r'
  262.     rcall send_byte
  263.     ldi data, '\n'
  264.     rcall send_byte
  265.     ret
  266.    
  267. b4_notpressed:
  268.     ldi data, 'B'
  269.     rcall send_byte
  270.     ldi data, '4'
  271.     rcall send_byte
  272.     ldi data, ' '
  273.     rcall send_byte
  274.     ldi data, '='
  275.     rcall send_byte
  276.     ldi data, ' '
  277.     rcall send_byte
  278.     ldi data, '0'
  279.     rcall send_byte
  280.     ldi data, ' '
  281.     rcall send_byte
  282.     ldi data, '\r'
  283.     rcall send_byte
  284.     ldi data, '\n'
  285.     ret
  286.  
  287. b4_pressed:
  288.     ldi data, 'B'
  289.     rcall send_byte
  290.     ldi data, '4'
  291.     rcall send_byte
  292.     ldi data, ' '
  293.     rcall send_byte
  294.     ldi data, '='
  295.     rcall send_byte
  296.     ldi data, ' '
  297.     rcall send_byte
  298.     ldi data, '1'
  299.     rcall send_byte
  300.     ldi data, ' '
  301.     rcall send_byte
  302.     ldi data, '\r'
  303.     rcall send_byte
  304.     ldi data, '\n'
  305.     rcall send_byte
  306.     ret
  307.    
  308. b5_notpressed:
  309.     ldi data, 'B'
  310.     rcall send_byte
  311.     ldi data, '5'
  312.     rcall send_byte
  313.     ldi data, ' '
  314.     rcall send_byte
  315.     ldi data, '='
  316.     rcall send_byte
  317.     ldi data, ' '
  318.     rcall send_byte
  319.     ldi data, '0'
  320.     rcall send_byte
  321.     ldi data, ' '
  322.     rcall send_byte
  323.     ldi data, '\r'
  324.     rcall send_byte
  325.     ldi data, '\n'
  326.     ret
  327.    
  328. b5_pressed:
  329.     ldi data, 'B'
  330.     rcall send_byte
  331.     ldi data, '5'
  332.     rcall send_byte
  333.     ldi data, ' '
  334.     rcall send_byte
  335.     ldi data, '='
  336.     rcall send_byte
  337.     ldi data, ' '
  338.     rcall send_byte
  339.     ldi data, '1'
  340.     rcall send_byte
  341.     ldi data, ' '
  342.     rcall send_byte
  343.     ldi data, '\r'
  344.     rcall send_byte
  345.     ldi data, '\n'
  346.     rcall send_byte
  347.     ret
  348.    
  349. b6_notpressed:
  350.     ldi data, 'B'
  351.     rcall send_byte
  352.     ldi data, '6'
  353.     rcall send_byte
  354.     ldi data, ' '
  355.     rcall send_byte
  356.     ldi data, '='
  357.     rcall send_byte
  358.     ldi data, ' '
  359.     rcall send_byte
  360.     ldi data, '0'
  361.     rcall send_byte
  362.     ldi data, ' '
  363.     rcall send_byte
  364.     ldi data, '\r'
  365.     rcall send_byte
  366.     ldi data, '\n'
  367.     ret
  368.    
  369. b6_pressed:
  370.     ldi data, 'B'
  371.     rcall send_byte
  372.     ldi data, '6'
  373.     rcall send_byte
  374.     ldi data, ' '
  375.     rcall send_byte
  376.     ldi data, '='
  377.     rcall send_byte
  378.     ldi data, ' '
  379.     rcall send_byte
  380.     ldi data, '1'
  381.     rcall send_byte
  382.     ldi data, ' '
  383.     rcall send_byte
  384.     ldi data, '\r'
  385.     rcall send_byte
  386.     ldi data, '\n'
  387.     rcall send_byte
  388.     ret
  389.    
  390. b7_notpressed:
  391.     ldi data, 'B'
  392.     rcall send_byte
  393.     ldi data, '7'
  394.     rcall send_byte
  395.     ldi data, ' '
  396.     rcall send_byte
  397.     ldi data, '='
  398.     rcall send_byte
  399.     ldi data, ' '
  400.     rcall send_byte
  401.     ldi data, '0'
  402.     rcall send_byte
  403.     ldi data, ' '
  404.     rcall send_byte
  405.     ldi data, '\r'
  406.     rcall send_byte
  407.     ldi data, '\n'
  408.     ret
  409.    
  410. b7_pressed:
  411.     ldi data, 'B'
  412.     rcall send_byte
  413.     ldi data, '7'
  414.     rcall send_byte
  415.     ldi data, ' '
  416.     rcall send_byte
  417.     ldi data, '='
  418.     rcall send_byte
  419.     ldi data, ' '
  420.     rcall send_byte
  421.     ldi data, '1'
  422.     rcall send_byte
  423.     ldi data, ' '
  424.     rcall send_byte
  425.     ldi data, '\r'
  426.     rcall send_byte
  427.     ldi data, '\n'
  428.     rcall send_byte
  429.     ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement