Project: Write assembly programs to do the following: Goal- To become familiar w
ID: 3840574 • Letter: P
Question
Project: Write assembly programs to do the following:
Goal- To become familiar with using clock frequency, running your program automatically
-Flash all LEDs in one Hz frequency when running your program( 2Hz or 4Hz?)
You must write a subroutine that consumes exactly one second of CPU time. To achieve the flashing effect, in your main program, you need to turn on all the LEDs, then, call this subroutine. Turn off all LEDs, then, call this subroutine.
-Your program must flash LEDs continuously in one Hz frequency until a Reset.
Explanation / Answer
; DDRB = 0x04 ; PORTB = 0x05 ; TCCROB = 0x25 ; TCNT0 = 0x26 ; 0b00000000 = OFF ; 0b00100000 = ON setup: ldi r16, 0b00100000 ; Set r16 to LED ON value out 0x04, r16 ; Set DDRB to output out 0x05, r16 ; Set PORTB to ON ldi r16, 0b00000101 ; Set r16 with prescaler 1024 value out 0x25, r16 ; Set the TCCROB to 1024 ldi r20, 0 ; Reset r20 ldi r21, 1 ; Hold value 1 to increment r20 loop: in r17, 0x26 ; Read the timer cpi r17, 128 ; Check to see if the timer is halfway done (1/2 second, max 255 value) brbc 0, increment ; If r17Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.