Morse Code Bicycle Safety Blinker

  
Inside:
Repository
This is my first project using an AVR microcontroller and really the first embedded systems project I`ve done since college. I had two options for programming languages C and assembly. I chose assembly because I was familiar (at least with the 8051) and because it is well documented in the datasheets. Another advantage of assembly is the ability t
Morse Code Bicycle Safety Blinker - schematic

o know exactly what is going on especially when using a device simulator. ;Bikey Talkie ;by Tim Kyle. include "tn45def. inc" ;Includes the ATTiny45/65/85 definitions file. org 0x0000 ;Places the following code from address 0x0000 ;The Following instructions and "nop"s are for handling interrupts. rjmp RESET ;Take a Relative Jump to the RESET Label rjmp Interrupt0 ;Handle an interrupt input on INT0 or PortB Pin 2 (case pin 7) nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop reti ;return from any other interrupts that might be thrown. They are not important. Interrupt0: ldi r16, 0x10 ; this represents about 1/3 of a second for a dit rcall dah ; this produces a time delay long enough to handle switch bounce. ldi r18, 0x00 ; Zero reference (there are easier ways I know) cpse r18, r22 ; Was the unit on or off If equal (off) skip 1 instruction rjmp RESET pop r20 ;pop the old program counter from the stack. It isn`t important. R20 is a convenient place to put it. sei ;Turn interrupts back on rjmp LOOP RESET: ;Reset Label ;Turn off all unnecessary clocks, timers, etc ldi r16, 0x0F out PRR, r16 ;The momentary button is connected to DIP pin 8 (INT0, Port B Pin 2). It should normally be pulled up. ;The LED is connected directly between pin 3 (Port B pin 4) and Vcc. PWM replaces the resistor. ldi r22, 0x00 ; Tell the interrupt process that the light is currently off. sei ; set Global Interrupt...



Leave Comment

characters left:

New Circuits

.