; 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 20h ; data v bitovo adr oblasti data_byte_0: ds 1 ; nase premenne data_byte_1: ds 1 data_byte_2: ds 1 data_byte_3: ds 1 data_byte_4: ds 1 ; ;------------------------------------------------------------------ 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: ; prvym bajtom ... mov c, data_byte_0.0 ; 0,5us presun 1 bitu z ram na pin trva 1,5us pri @24HHz xtale mov serial_pin, c ; 1us mov c, data_byte_0.1 ; zacneme LSB mov serial_pin, c mov c, data_byte_0.2 ; mov serial_pin, c mov c, data_byte_0.3 ; mov serial_pin, c mov c, data_byte_0.4 ; mov serial_pin, c mov c, data_byte_0.5 ; mov serial_pin, c mov c, data_byte_0.6 ; mov serial_pin, c mov c, data_byte_0.7 ; mov serial_pin, c ; mov c, data_byte_1.0 ; druhy byte mov serial_pin, c mov c, data_byte_1.1 ; mov serial_pin, c mov c, data_byte_1.2 ; mov serial_pin, c mov c, data_byte_1.3 ; mov serial_pin, c mov c, data_byte_1.4 ; mov serial_pin, c mov c, data_byte_1.5 ; mov serial_pin, c mov c, data_byte_1.6 ; mov serial_pin, c mov c, data_byte_1.7 ; mov serial_pin, c ; mov c, data_byte_2.0 ; treti byte mov serial_pin, c mov c, data_byte_2.1 ; mov serial_pin, c mov c, data_byte_2.2 ; mov serial_pin, c mov c, data_byte_2.3 ; mov serial_pin, c mov c, data_byte_2.4 ; mov serial_pin, c mov c, data_byte_2.5 ; mov serial_pin, c mov c, data_byte_2.6 ; mov serial_pin, c mov c, data_byte_2.7 ; mov serial_pin, c ; mov c, data_byte_3.0 ; stvrty byte mov serial_pin, c mov c, data_byte_3.1 ; mov serial_pin, c mov c, data_byte_3.2 ; mov serial_pin, c mov c, data_byte_3.3 ; mov serial_pin, c mov c, data_byte_3.4 ; mov serial_pin, c mov c, data_byte_3.5 ; mov serial_pin, c mov c, data_byte_3.6 ; mov serial_pin, c mov c, data_byte_3.7 ; mov serial_pin, c ; mov c, data_byte_4.0 ; piaty byte mov serial_pin, c mov c, data_byte_4.1 ; mov serial_pin, c mov c, data_byte_4.2 ; mov serial_pin, c mov c, data_byte_4.3 ; mov serial_pin, c mov c, data_byte_4.4 ; mov serial_pin, c mov c, data_byte_4.5 ; mov serial_pin, c mov c, data_byte_4.6 ; mov serial_pin, c ; 1us mov c, data_byte_4.7 ; ; 0,5us mov serial_pin, c ; hotovo : ret ; naspat 1 us ;-------------------------------------------------------------------------------- end