ASM18b20AvecLCD/main.asm

90 lines
2.0 KiB
NASM

;
; chenillarEssai3.asm
;
; Created: 19-03-18 13:13:56
; Author : Adrien
;
.dseg
.def rtmp = r16
.def rdec = r17
.def rsens = r18
.cseg
.include "m328pdef.inc"
.org 0x0000
jmp RESET
.org OC0Aaddr
jmp TIM0_COMPA ; Timer0 CompareA
.org OVF0addr
jmp TIM0_OVF
.org 0x0100
RESET:
ldi rtmp, HIGH(RAMEND) ;Charge la valeur haute de l?adresse en fin m?moire RAM
out SPH, rtmp ;Positionne le pointeur de pile haut sur cette adresse
ldi rtmp, LOW(RAMEND) ;Charge la valeur basse de l?adresse en fin m?moire RAM
out SPL, rtmp ;Positionne le pointeur de pile bas sur cette adresse
; Replace with your application code
ser rtmp ;Port en sortie (les bits du port sont mis ? 1, soit en sortie)
out DDRD, rtmp ;Ecriture sur le
clr rtmp ;Port en bas (les bits du port sont mis ? 0, Led ?teinte)
ldi rtmp, 0x01
out PORTD, rtmp ;PINB1 Mis ? 1
clr rsens
;_____________________________________________________________________________
;Setup Timer0
;_____________________________________________________________________________
CLR rtmp
OUT TCCR0A, rtmp ;Normal port op
LDI rtmp, 0x01
OUT TCCR0B, rtmp ; No Force, No wave, Clk from precal/1024, 7.8125Khz, 128?s
ldi rtmp, 0x02
sts TIMSK0, rtmp ; OCR0A Interrupt Enable
CLR rtmp
OUT TCNT0, rtmp ;
LDI rtmp, 0xff
OUT OCR0A, rtmp ; 256*128?s = 16ms
LDI rdec, 0xFF
;_____________________________________________________________________________
;Setup PWM Timer0
;_____________________________________________________________________________
SEI
start:
nop
nop
nop
jmp PC-2
TIM0_COMPA:
dec rdec
BRNE PC+7
in rtmp, PORTD
lsl rtmp ;Shift left
BRCC PC+2; Si le cary est ? 0 rtmp est dif de 0x00 Si carry est ? 1, rtmp = 0x00 donc on le met ? 0x01
ldi rtmp, 0x01
out PORTD, rtmp
ldi r18, 0xff
ldi rtmp, 0x00
out TCNT0, rtmp
reti ;Fin de l?interruption
TIM0_OVF:
dec rdec
BRNE PC+1
in rtmp, PORTD
lsl rtmp ;Shift left
BRCC PC+2; Si le cary est ? 0 rtmp est dif de 0x00 Si carry est ? 1, rtmp = 0x00 donc on le met ? 0x01
ldi rtmp, 0x01
out PORTD, rtmp
reti