Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Мега8 Встроенный ген-р 1МГц. Листинг прилагается.

Отправлено Fantomas 22 октября 2009, г. 22:55
В ответ на: а весь код дать ? мега8 ? :) отправлено пользователем nestandart 22 октября 2009, г. 22:50

;*** Прога начата 27 - 21-31, посвящается всем СЛАВЯНАМ ****

.include "m8def.inc" ;описание Меги8

.def Temp0=R16 ;Временные
.def Temp1=R17
.def ADC_Value=R18
.def ADC_Status=R19
.def SND_Stat=R20



.dseg

.cseg

.org 0


rjmp RESET ; Reset Handler
rjmp EXT_INT0 ; IRQ0 Handler
rjmp EXT_INT1 ; IRQ1 Handler
rjmp TIM2_COMP ; Timer2 Compare Handler
rjmp TIM2_OVF ; Timer2 Overflow Handler
rjmp TIM1_CAPT ; Timer1 Capture Handler
rjmp TIM1_COMPA ; Timer1 CompareA Handler
rjmp TIM1_COMPB ; Timer1 CompareB Handler
rjmp TIM1_OVF ; Timer1 Overflow Handler
rjmp TIM0_OVF ; Timer0 Overflow Handler
rjmp SPI_STC ; SPI Transfer Complete Handler
rjmp USART_RXC ; USART RX Complete Handler
rjmp USART_UDRE ; UDR Empty Handler
rjmp USART_TXC ; USART TX Complete Handler
rjmp ADC_INT ; ADC Conversion Complete Handler
rjmp EE_RDY ; EEPROM Ready Handler
rjmp ANA_COMP ; Analog Comparator Handler
rjmp TWSI ; Two-wire Serial Interface Handler
rjmp SPM_RDY ; Store Program Memory Ready Handler

;RESET: ; Reset Handler
EXT_INT0: ; IRQ0 Handler
EXT_INT1: ; IRQ1 Handler
;TIM2_COMP: ; Timer2 Compare Handler
TIM2_OVF: ; Timer2 Overflow Handler
TIM1_CAPT: ; Timer1 Capture Handler
TIM1_COMPA: ; Timer1 CompareA Handler
TIM1_COMPB: ; Timer1 CompareB Handler
TIM1_OVF: ; Timer1 Overflow Handler
TIM0_OVF: ; Timer0 Overflow Handler
SPI_STC: ; SPI Transfer Complete Handler
USART_RXC: ; USART RX Complete Handler
USART_UDRE: ; UDR Empty Handler
USART_TXC: ; USART TX Complete Handler
;ADC_INT: ; ADC Conversion Complete Handler
EE_RDY: ; EEPROM Ready Handler
ANA_COMP: ; Analog Comparator Handler
TWSI: ; Two-wire Serial Interface Handler
SPM_RDY: ; Store Program Memory Ready Handler
reti

RESET:
ldi r16,high(RAMEND) ; Main program start
out SPH,r16 ; Set Stack Pointer to top of RAM
ldi r16,low(RAMEND)
out SPL,r16

; Настройка Портов



; Настройка Портов
ldi Temp0,(0<<PB7)|(0<<PB6)|(0<<PB5)|(0<<PB2) ;Установка линий вывода (Низкого Уровня)
ldi Temp1,(1<<DDB7)|(1<<DDB6)|(1<<DDB5)|(1<<DDB2) ;Вывод Beeper и Relay
out PORTB,Temp0
out DDRB,Temp1

ldi Temp0,(0<<PC1)|(0<<PC0) ;Линии ввода АЦП
ldi Temp1,(0<<DDC1)|(0<<DDC0) ; АЦП
out PORTC,Temp0
out DDRC,Temp1

ldi Temp0,(0<<PUD) ; Разрешение Пулл-Апс
out SFIOR,Temp0

ldi Temp0,(0<<CS22)|(0<<CS21)|(1<<CS20) ; Timer2 /1
out TCCR2,Temp0

ldi Temp0,(1<<OCIE2) ; Timer2
out TIMSK,Temp0




; Тут будем инициализировать АЦП
ldi Temp0,(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(0<<MUX0) ;Установили внутреннее опорное напряжение 2.56В
out ADMUX,Temp0 ;Равнение по Левому краю и ADC0 вход

ldi Temp0,(1<<ADEN)|(1<<ADIE) ;Инициализируем АЦП, разрешаем прерывания.
out ADCSRA,Temp0

sei ; Разрешили прерывания

sbi ADCSRA,ADSC ;Тестовый запуск ADC

ldi ADC_Status,0b00000001

ldi Temp0,50
out OCR2,Temp0

ldi Temp0,0
ldi Temp1,0
PauseADC_S:
dec Temp0
brne PauseADC_S
dec Temp1
brne PauseADC_S


Main:
andi ADC_Status,0b00000001
cpi ADC_Status,1
breq ADCN1

cbi ADMUX,MUX0 ;ADC0
sbi ADCSRA,ADSC ; На старт ))
rjmp PauseADC

ADCN1: sbi ADMUX,MUX0 ;ADC1
sbi ADCSRA,ADSC ; На старт ))

PauseADC:
ldi Temp0,0
PauseAD256:
dec Temp0
brne PauseAD256

cpi ADC_Value,2 ; Проверка входного напряжения
BRSH SoundON
rjmp Nex1

SoundON:
sbi PortB,2
Nex1: cpi ADC_Value,1
BRLO SoundOFF
rjmp Nex2
SoundOFF:
cbi PortB,2

Nex2:
rjmp Main

TIM2_COMP:
inc SND_Stat
andi SND_Stat,0b00000001
cpi SND_Stat,1
brne ex
sbi PortB,6
cbi PortB,7
reti
ex:
cbi PortB,6
sbi PortB,7


reti

ADC_INT:
in ADC_Value,ADCH
inc ADC_Status
reti


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
поделите двойку на единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru