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

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

Придётся рассекретить ))

Отправлено Fantomas 13 ноября 2007 г. 01:24
В ответ на: А весь код модуля управления боеголовкой томагавка привести можно? отправлено Flasher 13 ноября 2007 г. 01:20

.include "2313def.inc" //ïîäêëþ÷àåì çàãîëîâî÷íûé ôàéë

.def Temp=R16
.def Temp1=R17
.def Temp2=R18
.def Temp3=R19
.def Temp4=R20
.def ResCnt=R21 //ðåãèñòð ïîä ñ÷åò÷èê ñáðîñîâ
.def IRcnt=R22 //ðåãèñòð ïîä ñ÷åò÷èê IR

.dseg

Digit: .byte 1

.cseg //îáîçíà÷àåò íà÷àëî ïðîãðàììíîãî ñåãìåíòà
.org 0 //çàäàåò íà÷àëüíûé àäðåñ.  äàííîì ñëó÷àå îí = 0


rjmp Reset ;âåêòîðà ïðåðûâàíèé
rjmp INT_0
rjmp INT_1
rjmp Timer1_capt1
rjmp Timer1_comp1
rjmp Timer1_OVF1
rjmp Timer0_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_TX
rjmp ANA_COMP


;Reset:
;INT_0:
INT_1:
Timer1_capt1:
;Timer1_comp1:
Timer1_OVF1:
Timer0_OVF0:
UART_RX:
UART_UDRE:
UART_TX:
ANA_COMP:
reti

Reset: ldi Temp1,0
ldi Temp2,0

ldi IRcnt,0

l_res: ;êîìàíäó èíêðåìåíòà ÷åðåç çàäåðæêó. Òîãäà ëîæíûå ñðàáàòûâàíèÿ, ïðîìåæóòîê ìåæäó êîòîðûìè ìåíüøå âðåìåíè çàäåðæêè, íå ïðèâåäóò ê èíêðåìåíòó ñ÷åò÷èêà…
; dec Temp1
; brne l_res

; dec Temp2
; brne l_res

Pause: ; ldi Temp1,0
; ldi Temp2,0

; dec Temp1
; brne Pause

; dec Temp2
; brne Pause


inc ResCnt

ldi Temp,0b11111111 ;;ïðèñâîåíèå êîíñòàíòû (Íàñòðàèâàåì ïîðò Â íà âûâîä)
out DDRB,Temp

ldi Temp,0b01110000 ;íàñòðîéêà ïîðòîâ
out DDRD,Temp

ldi Temp,0b01110000 ;èíèöèàëèçàöèÿ ÈÊ ïðè¸ìíèêà
out PortD,Temp

PauseIR: ldi Temp1,0
ldi Temp2,0

;dec Temp1
;brne PauseIR

;dec Temp2
;brne PauseIR

ldi Temp,0b01000000 ;èíèöèàëèçàöèÿ
out GIFR,Temp


ldi Temp,0b10000000 ;Ãëîáàëüíîå ðàçðåøåíèå ïðåðûâàíèÿ
out SREG,Temp

ldi Temp,0b01000000 ;Ðàçðåøåíèå ïðåðûâàíèÿ
out GIMSK,Temp

ldi Temp,0b00000010 ;ïðåðûâàíèå ïî ëîã 0 (HL)
out MCUCR,Temp

ldi Temp,0b01000000 ;ðàçðåøèòü ïðåðûâàíèå êîìïàðàòîðà
out TIMSK,Temp

ldi Temp,0b00000101 ;òàêòîâûé ñèãíàë = CK/1024
out TCCR1B,Temp

ldi Temp,0x27 ;èíèöèàëèçàöèÿ êîìïàðàòîðà
out OCR1AH,Temp
ldi Temp,0x10
out OCR1AL,Temp

ldi Temp,0 ;îáíóëåíèå òàéìåðà
out TCNT1H,Temp
out TCNT1L,Temp

;****************************************************
; ÈÍÈÖÈÀËÈÇÀÖÈß
;****************************************************
init:
ldi Temp1,RamEnd ;óñòàíîâêà óêàçàòåëÿ ñòåêà
out SPL,Temp1
;cli

SelectMode: // Âûáîð ðåæèìà ðàáîòû 1/2/3 - Íîðìà/Ýêîíîì/Âûêëþ÷åí
andi ResCnt,0b00000011 ;îòñå÷êà ëèøíèõ ðàçðÿäîâ ñ÷. ñáðîñîâ
cpi ResCnt,0 ;ñðàâíåíèå ñ÷åò÷èêà ñáðîñîâ ñ êîíñò.
brne Test1 ;åñëè íå ðàâíî - ñëåä. ïðîâåðêà
rjmp Normal
Test1:
cpi ResCnt,1 ;ñðàâíåíèå ñ÷åò÷èêà ñáðîñîâ ñ êîíñò.
brne Test2 ;åñëè íå ðàâíî - ñëåä. ïðîâåðêà
rjmp Sleeep
Test2:
cpi ResCnt,2 ;ñðàâíåíèå ñ÷åò÷èêà ñáðîñîâ ñ êîíñò.
brne Test3 ;åñëè íå ðàâíî - ñëåä. ïðîâåðêà
rjmp Counter
Test3:
cpi ResCnt,3 ;ñðàâíåíèå ñ÷åò÷èêà ñáðîñîâ ñ êîíñò.
brne SelectMode ;åñëè íå ðàâíî - ñëåä. ïðîâåðêà
rjmp Off

INT_0:
ldi Temp1,0
;ldi Temp,0 ;îáíóëåíèå òàéìåðà
;out TCNT1H,Temp
;out TCNT1L,Temp
inc IRcnt
;cpi IRcnt, 2
mov Temp1, IRcnt
;rcall Decoder
out PortB,IRcnt
rjmp expectation

Timer1_comp1:

ldi Temp,0b00000000 ;8.
out PortB,Temp
reti

Normal:
ldi Temp,0b11011000 ;Cèíõðî
out PortB,Temp
rjmp expectation

Sleeep:
ldi Temp,0b11010000 ;C.èíõðî Ýêîíîì
out PortB,Temp
rjmp expectation

Off:
ldi Temp,0b01000000 ;Quit
out PortB,Temp
rjmp expectation

;****************************************************
; ÎÆÈÄÀÍÈÅ, ãëàâíàÿ ÷àñòü ïðîãè
;****************************************************
expectation: rjmp expectation
Counter:
ldi Temp,0b00101001 ;Hàñòðîéêà
out PortB,Temp
sei ;ðàçðåøèòü ïðåðûâàíèÿ
ldi Temp,0b11101001 ;Hàñòðîéêà
out PortB,Temp

rjmp Counter


;*********************************************************
Decoder:
;ïðåîáðàçîâàíèå äâîè÷íîãî ÷èñëà
;â êîä 7-ñåãìåíòíîãî èíäèêàòîðà

ldi ZL,Low(DcMatrix*2) ;èíèöèàëèçàöèÿ ìàññèâà
ldi ZH,High(DcMatrix*2)

ldi Temp2,0 ;ïðèáàâëåíèå ïåðåìåííîé
add ZL,Temp1 ;ê 0-ìó àäðåñó ìàññèâà
adc ZH,Temp2

lpm ;çàãðóçêà çíà÷åíèÿ
mov Temp1,r0
ret

DcMatrix:
;ìàññèâ - òàáëèöà èñòèííîñòè äåêîäåðà
; bgdchefa bgdchefa
.db 0b10110111,0b10001000 ;0,1
.db 0b01011011,0b01001111 ;2,3
.db 0b01100110,0b01101101 ;4,5
.db 0b01111101,0b00000111 ;6,7
.db 0b01111111,0b01101111 ;8,9

;*********************************************************



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

Ответы


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

Сообщение:

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

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

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

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