Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;
- ; HelloWorld.asm
- ;
- ; Created: 16.04.2019 14:45:12
- ; Author : NetLab-Student
- ;
- ; Replace with your application code
- ;#define Variablen
- #include <avr/io.h>
- .global vorstart
- #define dio 3
- #define clk 2
- #define cmd1 0x44
- #define cmd2a 0xc0
- #define cmd2b 0xc1
- #define cmd2c 0xc2
- #define cmd2d 0xc3
- #define cmd3 0x8f
- #define data1 0b01111000
- #define data2 0b01111001
- #define data3 0b01101101
- #define data4 0b01111000
- #define byte r16
- #define couter_preset 0b10000000
- #define counter r17
- ;Set bit in I/O Register _SFR_IO_ADDR(DDRD) -> output_bit
- vorstart:
- sbi _SFR_IO_ADDR(DDRD), clk
- call starti
- starti : ;Programmstarti
- sbi _SFR_IO_ADDR(DDRD), dio
- sbi _SFR_IO_ADDR(PORTD), dio
- sbi _SFR_IO_ADDR(PORTD), clk
- ; 1
- ldi byte, cmd1
- rcall sendbyte
- rcall stop
- ldi byte, cmd2a
- rcall sendbyte
- MOV byte, R25
- rcall sendbyte
- rcall stop
- ; 2
- ldi byte, cmd1
- rcall sendbyte
- rcall stop
- ldi byte, cmd2b
- rcall sendbyte
- MOV byte, R24
- rcall sendbyte
- rcall stop
- ; 3
- ldi byte, cmd1
- rcall sendbyte
- rcall stop
- ldi byte, cmd2c
- rcall sendbyte
- MOV byte, R23
- rcall sendbyte
- rcall stop
- ; 4
- ldi byte, cmd1
- rcall sendbyte
- rcall stop
- ldi byte, cmd2d
- rcall sendbyte
- MOV byte, R22
- rcall sendbyte
- rcall stop
- ldi byte, cmd3
- rcall sendbyte
- rcall stop
- //EVTL NICHT AUSKLAMMERN
- //rjmp starti ; Relative Jump nach starti
- loop: ;loop1
- dec r18
- tst r18
- brne loop
- ret
- sendbyte:
- ldi counter, couter_preset
- cbi _SFR_IO_ADDR(PORTD), dio
- ldi r18, 32
- rcall loop
- rcall serial
- ldi r18, 127
- rcall loop
- serial:
- cbi _SFR_IO_ADDR(PORTD), clk
- sbrc byte, 0
- sbi _SFR_IO_ADDR(PORTD), dio
- sbrs byte, 0
- cbi _SFR_IO_ADDR(PORTD), dio
- ldi r18, 32
- rcall loop
- sbi _SFR_IO_ADDR(PORTD), clk
- ldi r18, 32
- rcall loop
- lsr byte
- lsr counter
- cpi counter, 0
- brne serial
- rcall ack
- ret
- ack:
- cbi _SFR_IO_ADDR(PORTD), clk
- cbi _SFR_IO_ADDR(PORTD), dio
- ldi r18, 32
- rcall loop
- sbi _SFR_IO_ADDR(PORTD), dio
- cbi _SFR_IO_ADDR(DDRD), dio
- cbi _SFR_IO_ADDR(PORTD), clk
- ldi r18, 32
- rcall loop
- sbi _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
- ;sbic _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
- ;ret
- sbi _SFR_IO_ADDR(PORTD), clk
- ;sbi _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
- sbi _SFR_IO_ADDR(DDRD), dio
- ret
- acko:
- cbi _SFR_IO_ADDR(PORTD), clk
- cbi _SFR_IO_ADDR(PORTD), dio
- ldi r18, 32
- rcall loop
- sbi _SFR_IO_ADDR(PORTD), dio
- cbi _SFR_IO_ADDR(DDRD), dio
- cbi _SFR_IO_ADDR(PORTD), clk
- ldi r18, 32
- rcall loop
- sbi _SFR_IO_ADDR(PORTD), clk
- ;sbic _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
- ;ret
- sbi _SFR_IO_ADDR(PORTD), clk
- ;sbi _SFR_IO_ADDR( _SFR_IO_ADDR(PIND)), dio
- sbi _SFR_IO_ADDR(DDRD), dio
- ret
- stop:
- ldi r18, 32
- rcall loop
- cbi _SFR_IO_ADDR(PORTD), clk
- ldi r18, 32
- rcall loop
- sbi _SFR_IO_ADDR(PORTD), clk
- ldi r18, 32
- rcall loop
- sbi _SFR_IO_ADDR(PORTD), dio
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement