Часть 5. Digital Radio Transmitter for control equiрments based on Atmel microcontrollers ...
Продолжение программы…
Начало смотри:
mtaalamu.ru/blog/186.html
mtaalamu.ru/blog/199.html
mtaalamu.ru/blog/214.html
Как получилось, что программа в 1000 строк не влезла в 15000 символов — не понимаю. Извините, что комментарии на галопукском языке. Если присмотреться — все читается. Делал для себя, не для публики.
Меня это всегда устраивало. Переписывать у меня здоровья не хватит. Подойдите к делу творчески. Чужой исходник всегда лишь основа для творчества. Дерзайте! На замечания типа — это не рационально, это не красиво — я реагировать не буду Отвечать буду на вопросы алгоритма. Если возьметесь за паяльник — буду помогать реально. Вплоть до прошивки вашей атмелки на моем программаторе. Этим героям — полный респект и уважуха!!!
Готовьтесь к отладке, работе с осциллографом. Помогу. Будут опубликованы фотографии осциллограмм в контрольных точках схем. Имейте ввиду, что все зто идет на ваших глазах в реальном масштабе времени.
Будут паузы. Паяльник и компьютер-НЕСОВМЕСТИМЫ!!! Буду уходить в глубокий ЗАПАЙ. Одно знаю точно — я доведу это до реального устройства. Буду благодарен, если кто-то пойдет дальше и разработает печатные платы. Только не сейчас. Процесс отладки и макетирования только начинается. Трудности будут с приемником (ВЧ) и детектированием — дешифрация уже отлажена. Отладка была на сверхрегенеративном приемнике — как самый тяжелый случай. Собственные шумы выкомуристые.
Я долго выжидал ложные срабатывания — их НЕТ !!!
Ложных срабатываний на хаос шумов НЕ БЫЛО!
Ложных срабатываний на бродячие редкие импульсы помех НЕТ !
Ложных срабатываний на похожие на пакеты импульсы хаоса НЕТ! На приведенной версии программы передатчика — все имеющиеся реле срабатывали так как задумано УРА!
Продолжение программы. Начало смотри:
mtaalamu.ru/blog/214.html
Остались таблицы данных для кодирования пакета табличным способом.
Продолжение следует…
Начало смотри:
mtaalamu.ru/blog/186.html
mtaalamu.ru/blog/199.html
mtaalamu.ru/blog/214.html
Как получилось, что программа в 1000 строк не влезла в 15000 символов — не понимаю. Извините, что комментарии на галопукском языке. Если присмотреться — все читается. Делал для себя, не для публики.
Меня это всегда устраивало. Переписывать у меня здоровья не хватит. Подойдите к делу творчески. Чужой исходник всегда лишь основа для творчества. Дерзайте! На замечания типа — это не рационально, это не красиво — я реагировать не буду Отвечать буду на вопросы алгоритма. Если возьметесь за паяльник — буду помогать реально. Вплоть до прошивки вашей атмелки на моем программаторе. Этим героям — полный респект и уважуха!!!
Готовьтесь к отладке, работе с осциллографом. Помогу. Будут опубликованы фотографии осциллограмм в контрольных точках схем. Имейте ввиду, что все зто идет на ваших глазах в реальном масштабе времени.
Будут паузы. Паяльник и компьютер-НЕСОВМЕСТИМЫ!!! Буду уходить в глубокий ЗАПАЙ. Одно знаю точно — я доведу это до реального устройства. Буду благодарен, если кто-то пойдет дальше и разработает печатные платы. Только не сейчас. Процесс отладки и макетирования только начинается. Трудности будут с приемником (ВЧ) и детектированием — дешифрация уже отлажена. Отладка была на сверхрегенеративном приемнике — как самый тяжелый случай. Собственные шумы выкомуристые.
Я долго выжидал ложные срабатывания — их НЕТ !!!
Ложных срабатываний на хаос шумов НЕ БЫЛО!
Ложных срабатываний на бродячие редкие импульсы помех НЕТ !
Ложных срабатываний на похожие на пакеты импульсы хаоса НЕТ! На приведенной версии программы передатчика — все имеющиеся реле срабатывали так как задумано УРА!
Продолжение программы. Начало смотри:
mtaalamu.ru/blog/214.html
Остались таблицы данных для кодирования пакета табличным способом.
=========================================
;
;----------------------------------------
;----------------- SUB ------------------
;----------------------------------------
TXDATA: ;...nрorрaMMa TX
CALL CLR_TXBUF;...obHyLeHue byfeрa TX
;...HABEPX neрedaTb Codeрwumoe R2;P3;P1
;"@","B7" "R2" "P3" "P1" "cc" 0D
;--------------------------------------
; B рer. R2 - CelekToр ynрaB.(OT P1=1/OT P3=3)
; B рer. R5 - DAHHblE u3 P1
; B рer. R6 - DAHHblE u3 P3
;--------------------------------------
MOV A,#ADR0_TX ;HAh.ADP TX-byfeрa
MOV R1, A ; ADPEC TX (50h)-------------
MOV A,#F_STRT ; EQU 0EFH (40h="@")
MOV @R1, A ; "@" B TX byfeр M0 "@"/"!"
INC R1 ;+ADPEC TX (51h)-------------
;
MOV A,#0B7H ;"B7"-KOMAHDA-HA3AD B byfeр M1
MOV @R1, A ;"B7"-KOMAHDA-HA3AD B byfeр M1
;------------- H= R2 kod ynр.-----
INC R1 ;+ADPEC TX (52h)--------------
MOV A, R2 ;DAHHblE u3 R2 = H
MOV @R1, A ;DAHHblE u3 R2 B TX byfeр M2
;------------- L= P3 noрT -----
INC R1 ;+ADPEC TX (53h)--------------
MOV A, R6 ;DAHHblE u3 R6(P3) = L
MOV @R1, A ;DAHHblE u3 R6(P3) B TX byfeр M3
;------------- D= P1 noрT -----
INC R1 ;+ADPEC TX (54h)--------------
MOV A, R5 ;DAHHblE u3 R5(P1) B TX byfeр M4
MOV @R1, A ;DAHHblE u3 R5(P1) B TX byfeр M4
; ; M4=F4.0 ... F4.7
;----noDc4eT CRC B SUB "TX_REPORT"------------------
CALL DEL01CEK ;3aDeрwka 0.1 cek
CALL TX_REPORT ;neрedaTb M0,M1,M2,M3,M4,M5 B hexASC
CALL DEL01CEK ;3aDeрwka 0.1 cek
CALL TX_REPORT ;neрedaTb M0,M1,M2,M3,M4,M5 B hexASC
CALL DEL01CEK ;3aDeрwka 0.1 cek
CALL TX_REPORT ;neрedaTb M0,M1,M2,M3,M4,M5 B hexASC
;................BblXOD.................
CLR TI ;...Cbрoc Flara TX
RET ;...BCE !!!
;----------------------------------------
;
;______________________________________SUB_____
;...TunoBou AlroрuTM neрeBoda HEX ASC B HL BYTE
DECO_HL:
INC R0 ;+ADPEC
CALL DECRCRX ;KOHTP.CYMMA HA Mx
CALL ASCH_BYTE ; A -> TABL -> A(Hi)
MOV R7, A ;BPEMEHHO B R7
INC R0 ;++ADPEC
CALL DECRCRX ;KOHTP.CYMMA HA Mx+1
CALL ASCL_BYTE ; A -> TABL -> A(Lo)
ORL A, R7 ;xxxx0000 OR 0000xxxx
RET
;__________________________________SUB___
DECRCRX:
;...KOHTP.CYMMA HA Mx
MOV A, @R0 ;KOD u3 RX byfeрa Mx
MOV B, A ;obMeH coDeрw. рer.-рoB A B
XRL A, R4 ;KOHTP.CYMMA HA Mx
MOV R4,A ;COXP. B R4 KOHT.CYM.
MOV A, B ;obMeH coDeрw. рer.-рoB A B
RET
;__________________________________SUB___
DLY10MKC:
NOP ;...465kru
NOP
NOP
RET
;
;============= t02_subs.txt ================
; Obwue noDnрorрaMMbl
;
;____________________SUB____________________
;obHyLeHue o3y (B R1-KOL-BO bauT ObHyl.O3y)
CLEAR_OZU:
MOV @R0,#0 ;nрonucblBaeM KODOM 0h
INC R0 ;yBeLu4uBaeM ADPEC
DJNZ R1,CLEAR_OZU ;AHALu3 kolu4ecTBa bauT
RET
;obHyLeHue byfeрa RX ObHyleHue O3y RX
CLR_RXBUF:
MOV R1,#LBUF_RX ;kolu4ecTBo obHylReMblx bauT
MOV R0,#ADR0_RX ;CTAPTOBblu ADPEC TXbuf
CALL CLEAR_OZU ;obHyLeHue O3y
RET
;obHyLeHue byfeрa TX ObHyleHue O3y TX
CLR_TXBUF:
MOV R1,#LBUF_TX ;kolu4ecTBo obHylReMblx bauT
MOV R0,#ADR0_TX ;CTAPTOBblu ADPEC TXbuf
CALL CLEAR_OZU ;obHyLeHue O3y
RET
;
;______________________SUB____________________
;uHuuualu3auuR nocleDoBaTeLbHoro KAHALA RS-232
INI_RS232:
MOV TMOD,#00100001B ; - PerucTр рewuMoB T/C =21h
; ........__ M0.0 \ рewuM .0
; M1 M0 PewuM .......___ M1.0 /
; 0 0 0 ......____ C/T0 0-TauMeр,1-c4eT4uk
; 0 1 1 ....._____ GATE0 0-ynр.no INT0 3anрeweHo,1-рa3рew.
; 1 0 2 ....______ M0.1 \
; 1 1 3 ..._______ M1.1 / рewuM .1
; ..________ C/T1 0-TauMeр,1-c4eT4uk
; ._________ GATE1 0-ynр.no INT1 3anрeweHo,1-рa3рew.
;
;....... 13-09-2009 reHeрaToр 465 kru .........
;
MOV TH1,#0FEH;...1200 b nрu 465kru (TauMeр1 -cTaрw.bauT)
MOV TL1,TH1 ; (TauMeр 1 -MLaDwuu bauT)
SETB TR1 ; nyck TauMeрa 1
; MOV SCON,#01010000B
; ........__ RI-flag nрeрbIBaHuR nрuemHuKA
; SM0 SM1 Pewum .......___ TI-flag nрeрbIBaHuR neрedaT4uka
; 0 0 0 ......____ RB8- 9 bIu buT nрuHRTbIX DAHHbIX
; 0 1 1 ....._____ TB8- 9 bIu buT neрedaHHbIX DAHHbIX
; 1 0 2 ....______ REN- рa3рeweH. nрuema nocledoBaTelbHbIX DAHH.
; 1 1 3 ..._______ SM2- рa3рeweH. MHOronрoueccoрHoi рaboTbI
; ..________ SM1
; ._________ SM0
;
MOV SCON,#50H ;PewuM noрTa N1,8-buT
MOV PCON,#80H ;yDBoeHue ckoрocTu BKL.
SETB EA ;рa3рewuTb nрeрblBaHuR
SETB ES ;рa3рeweH. nрeр.RS232
SETB REN ;рa3рeweH. RX
RET
;
;__________________________________SUB_______
;neрedaTb 3XO nрuHRTou nocbllku
ECHO:
SETB EA ;рa3рeweH. nрeрblBaHuu
SETB ES ;рa3рeweH. nрeрblBaHuu RS232
MOV ADR0_RX,#0F7H ;...#21H ;"!"
MOV A,#(ADR0_RX-1);HAh.ADP ANSW-byfeрa
MOV R0,A ;ADPEC(=30h-1)
TX_B:
SETB TI ;uHuuualu3uрyem TX flar
TX_ECHO:
INC R0 ;
MOV A,@R0 ;++ADPEC(=30h/50h)
XRL A,#F_FIN ;=B/K=0Dh ?
JZ TX_END ;BblXOD,EClu ODh=B/K --->
MOV A,@R0 ;ADPEC(=30h+)
CALL TX_BYTE ;nрeda4a bauTa
JMP TX_ECHO ;noBToр,EClu HE ODh =B/K
TX_END:
MOV A,@R0 ;++ADPEC(=30h/50h)
CALL TX_BYTE ;nрeda4a bauTa
TX_END1:
JNB TI,TX_END1 ;KOHEu neрeda4u ?
CLR TI ;OnycTowuTb u CbрocuTb
CLR RI ;BCE B RS232
RET
;
;__________________________________SUB_______
;neрeda4a рanoрTa HABEPX
TX_REPORT:
;70h 71h 72h 73h 74h 75h 76h 77h 78h 79h 7Ah 7Bh
;"!","A","2","Hр2","Lр2","Hр1","Lр1","Hр0","Lр0","Hcrc","Lcrc",0D
SETB EA ;рa3рeweH. nрeрblBaHuu
SETB ES ;рa3рeweH. nрeрblBaHuu RS232
MOV R4,#0 ;CRC=0
MOV A,#ADR0_TX ;HAh.ADP TX-byfeрa
MOV R0,A ;OTKYDA 50h Mt0
MOV A,#ADR0_BU ;HAh.ADP ANSW-byfeрa
MOV R1,A ;KYDA 70h Mr0
MOV @R1,#F_STRT ; EQU 0EFH (40h="@")
; "@" B TX byfeр M0 "@"/"!"
;
INC R0 ;A2h,B2h,C3h.. Mt1
INC R1 ;"A","B","C" Mr1
CALL BTHL_ASCHL ;neрeBod bauTa A1h B "A"u "1"
INC R0 ;Hр2 Lр2 Mt2
INC R1 ; Mr2
CALL BTHL_ASCHL ;neрeBod bauTa A1h B "A"u "1"
INC R0 ;Hр1 Lр1 Mt3
INC R1 ; Mr3
CALL BTHL_ASCHL ;neрeBod bauTa A1h B "A"u "1"
INC R0 ;Hр0 Lр0 Mt4
INC R1 ; Mr4
CALL BTHL_ASCHL ;neрeBod bauTa A1h B "A"u "1"
;
INC R0 ;Hcrc Lcrc Mt5
INC R1 ; Mr5
;----------------------------- Hi CRC ----
MOV A,R4 ;CRC h
ANL A,#0F0H ;Hi Asc "A" 11110000
SWAP A ;ObMEH TETPAD A 00001111
CALL BYTE_ASC ;0Ah --> "A"
MOV @R1,A ;"Hcrc" B RX_byf Mr1
;----------------------------- Lo CRC ----
MOV A,R4 ;CRC h
ANL A,#0FH ;Lo Asc "2"
CALL BYTE_ASC ;02h --> "2"
INC R1 ;"x0...xF"
MOV @R1,A ;"Lcrc" B RX_byf Mr2
;
INC R0 ;
INC R1 ;
MOV @R1,#F_FIN; B/K=0Dh=13
;...HenocрedcTBeHHo neрeda4a DAHHblX OTBETA
MOV A,#(ADR0_BU-1);HAh.ADP ANSW-byfeрa
MOV R0,A ;ADPEC(=6Fh)
MOV R1,#0CH ;KOL-BO TX BYTE(12baut)
SETB TI ;uHuuualu3uрyem TX flar
TX_DATA:
INC R0 ;
MOV A,@R0 ;ADPEC(=20h)
CALL TX_BYTE ;nрeda4a bauTa
DJNZ R1,TX_DATA ;noBToр,EClu HE BECb nakeT
TX_DEND:
JNB TI,TX_DEND ;KOHEu neрeda4u ?
CLR TI ;OnycTowuTb u CbрocuTb
CLR RI ;BCE B RS232
RET
;
;____________________SUB____________________
TX_STRING:
;...neрeDaeM 3aroToBleHHble coobweHuR
;Do noRBleHuR B/K (0Dh) BKOHuE CTPOKu
PUSH ACC ;
SETB TI ;uHuuualu3uрyem TX flar
SS1:
CLR A ;
MOVC A,@A+DPTR ;GET CHARACTER
CALL TX_BYTE ;SEND_CHAR
XRL A,#F_FIN ;#0DH ;B/K ?
JZ SS2 ;neрexod eclu 0Dh(B/K)
INC DPTR ;POINT TO NEXT CHARACTER
JMP SS1
SS2:
JNB TI,SS2 ;KOHEu neрeda4u ?
CLR TI ;OnycTowuTb u CbрocuTb
CLR RI ;BCE B RS232
POP ACC
RET
;
;_________________________ SUB _________
;TunoBou AlroрuTm neрeBoda
;bauTa A1h B naрy ASC "A" u "1" (HEX)
BTHL_ASCHL:
;-------------------------- Hi
MOV A,@R0 ;A2h
ANL A,#0F0H ;Hi Asc "A" 11110000
SWAP A ;ObMEH TETPAD A 00001111
CALL BYTE_ASC ;0Ah --> "A"
MOV @R1,A ;"A" B RX_byf Mr1
CALL CRC_ASC ;KOHTP.CYMMA
;-------------------------- Lo
MOV A,@R0 ;A2h
ANL A,#0FH ;Lo Asc "2"
CALL BYTE_ASC ;02h --> "2"
INC R1 ;"x0...xF"
MOV @R1,A ;"2" B RX_byf Mr2
CALL CRC_ASC ;KOHTP.CYMMA
RET
;
;__________________________________SUB___
;...noDc4eT KOHTP.CYMMbl no uckl.ulu
;...no KODAM cuMBoloB(ASC) B byfeрe TX
CRC_ASC: ;KOHTP.CYMMA HA TX ASC
XRL A,R4 ;KOHTP.CYMMA HA Mx
MOV R4,A ;COXP. B R4 KOHT.CYM.
RET
;
;____________________SUB____________________
;...TunoBou AlroрuTM neрeDa4u 1-ro bauTa
TX_BYTE:
JNB TI,TX_BYTE ;wDeM 1-nрu3Hak okoH.neрeDa4u
CLR TI ;cbрoc nрu3Haka okoH.neрeDa4u
MOV SBUF,A ;3arрy3ka HoBoro bauTa B TX
RET ;
;
;-------------------------------------
;------ End of SUBS ------------------
;-------------------------------------
Продолжение следует…
Комментарии (6)
RSS свернуть / развернутьSergei_T
Sergei_T
Mihael
Sergei_T
После отладки — оформлю архив *.zip с полным пакетом минимально-необходимого для сборки реального устроиства.
Куда выложить архив? Как поступить правильно?
Markony
Вообще нам нужен свой файл хостинг и хостинг изображений
Sergei_T
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.