.nolist .include "m168def.inc" .list ;;; code rjmp main main: ;; set up stack pointer ldi r16, high(ramend) out sph, r16 ldi r16, low(ramend) out spl, r16 ;; lcd setup rcall lcd_init ;; adc setup ldi r17, 0 ;pin ADC0 is temp sensor ori r17, (1 << ADLAR) ;left adjusted result (because I only want 8bit) sts ADMUX,r17 ldi r17, 0 ori r17 (1 << ADPS0) | (1 << ADPS1) | (1 << ADPS2) | (1 << ADEN) ;set adc clock to 1/128 ;enable adc sts ADCSRA,r17 ori r17, (1 << ADSC) ;fire off one conversion for warm-up sts ADCSRA,r17 busy_loop: ;; wait for adc conversion lds r17, ADCSRA sbrc r17, ADSC rjmp busy_loop get_adc: ;; get adc value lds r16, ADCH ;; start another conversion lds r17, ADCSRA ori r17, (1 << ADSC) sts ADCSRA,r17 ;; display value push r16 ldi r16, 0x02 ;lcd to home position rcall lcd_write_cmd_byte ldi r16, 1 rcall delay_ms pop r16 rcall lcd_write_uint8 rjmp busy_loop .include "delay.inc" .include "lcd.inc"