; test sw ; mikrokontroler AT89C2051, krystal @24MHz, ; M-IDE Studio $NOMOD51 $include (89C2051.MCU) ; Konfiguracia I/O pinov ;------------------------------------------------------------------ serial_pin equ p3.0 ; vystupny pin ser. dat ;------------------------------------------------------------------ dseg ;datovy segment org 30h ; data od adr 48 data_byte: ds 5 ; rezervacia 5bajtov ; ;------------------------------------------------------------------ cseg ; programovy segment org 0h sjmp start ;org 00Bh ;reti ;------------------------------------------------------------------ org 30h ; program ulozeny vo flash pamati od adr #30h start: mov sp,#90 ; zasobnik v ram od adr 90dec mov data_byte+0, #10 ; pociatocne hodnoty mov data_byte+1, #20 mov data_byte+2, #30 mov data_byte+3, #40 mov data_byte+4, #50 ;------------------------------------------------------------------ ;Hlavna slucka ;------------------------------------------------------------------ main: acall send_data ;posli sjmp main ; ; ;------------------------------------------------------------------ ;Podprogramy ;------------------------------------------------------------------ ; posle data "data_byte" z ram seriovo na prislusny pin cas vykonavania send_data: mov r0, #data_byte ; adresa prveho bajtu 0,5 us mov r2, #5 ; posleme 5bajtov 0,5 us send_data_1: mov r1, #8 ; pocet opakovani 0,5 us x5 mov a, @r0 ; presun do acc 0,5 us x5 send_data_2: rrc a ; vzdy zaciname od LSB 0,5 us x8 mov serial_pin, c ; presun log. hodnotu na pin 1 us x8 djnz r1, send_data_2 ; opakuj 8krat 1 us x8 inc r0 ; dalsi byte 0,5 us x5 djnz r2, send_data_1 ; opakuj 5krat 1 us x5 ret ; naspat 1 us ;-------------------------------------------------------------------------------- end