Часть 4. Digital Radio Transmitter for control equipments based on Atmel microcontrollers Цифровой Радио Передатчик для управления устройствами построенными на микроконтроллерах Atmel.

Начало смотри:
mtaalamu.ru/blog/186.html
mtaalamu.ru/blog/199.html
mtaalamu.ru/blog/214.html

Программа прошитая в микроконтроллер AT89c2051 изложена ниже.
Зто реально работающая версия программы, которая написана в синтаксисе
«8051 Assembler»(ASM51.EXE Cross-Assembler for DOS 6.22)
ASM51.EXE -8051 Assembler executable program
MOD2051 -MOD files (for the AT89c2051 Assembler's $MOD… directive)
Замечательно работает под Windows98...XP через *.bat в консоли.
Желающим дам *.hex для прошивки.
Кому реально интересно mtaalam-те сюда. в комент.
Возни много — проконсультирую…
;...... nporpaMMa .................
;"t02.asm"  15-08-2009  CKOPOCTb  1200 bod 
; PAbOTA OT KBAPuA = 465 kru.
; HET npepblBaHuu !
; AlropuTM:
; 1. OpraHu3. 3aMkHyTblu uukl owuDaHue P3.5=0 (HawaTa TX)
; 2. P3.5=0   C4uTblBaHue nopTa P3, npoBepka  P1 
; 3. Eclu Ha P1 0FFh To HET nepeDa4u - uukl
; 4. ynakoBka P3, P1, u napaMeTpa B nakeT
; 5. KODuPOBKA nakeTa B uMnyLbcHblu _~_~___~_(Tabl.)
; 6. 3x kpaTHaR nepeDa4a nakeTa
;
;================= t02_vars.txt ==================
$MOD2051        ;...USE AT89C2051 KOHTPOLLEP CODE SFR
$PAGEWIDTH(79)
$OBJECT         ;...DelaeM "*.hex" -file 
$NOPAGING
;-------------------------------------------------
F_STRT      EQU    0EFH ;=40H  ;"@"
F_ANSW      EQU    0F7H ;=21H  ;"!"
F_FIN       EQU    0FFH ;=0DH  ;13d B/K
;
ADPH        EQU    2DH  ;ADPEC LOAD ADDRESS, HIGH BYTE
ADPL        EQU    2EH  ;ADPEC LOAD ADDRESS, LOW BYTE
ADAT        EQU    2FH  ;ADPEC RECORD LOAD DATA
;
;...KOHCTAHTbl................................
ADR0_RX  EQU  30H ;Start bufera  RX    30h-4Fh
LBUF_RX  EQU  1FH ;PA3MEP byfepa RX 31 b
ADR0_TX  EQU  50H ;Start bufera  TX    50h-6Fh
LBUF_TX  EQU  1FH ;PA3MEP byfepa TX 31 b
ADR0_BU  EQU  70H ;Start buf TX ANSW  70h-7Fh
LBUF_BU  EQU  0FH ;PA3MEP byfepa BU 15 b
;
    DSEG AT 2AH
F2:      DS     1   ;Don.Flar F2 no ADPECy=2Ah
RXHE_   BIT    F2.0 ;1=npueM HOB. HE 3akoH4eH
RXOK_   BIT    F2.1 ;1=npuem 3akoH4eH 
DEOK_   BIT    F2.2 ;1=dekodupoBka OK 
KMHE_   BIT    F2.3 ;1=KOMAHDA HE BblnolHeHa 
KMOK_   BIT    F2.4 ;1=KOMAHDA HE BblnolHeHa 
;FA_     BIT    F2.5 ;1=PewuM AHAL.-uuFpoBoro 
;FB_     BIT    F2.6 ;1=PewuM B(nporpaMMaTop) 
FCNT_   BIT    F2.7 ;1=PewuM C4eTa no INT1
;
;-------------------------------                
F3:      DS     1   ;Don.Flar F3 no ADPECy=2Bh
;-------------------------------                
;..... Flar-byfep DLR buToBblx Onepauu ......
F4:      DS     1   ;Don.Flar F4 no ADPECy=2Ch
;-------------------------------                
;        2Dh,2Eh,2Fh
ADDH:    DS   1    ;RECORD LOAD ADDRESS, HIGH BYTE(2Dh)
ADDL:    DS   1    ;RECORD LOAD ADDRESS, LOW BYTE (2Eh)
DAHH:    DS   1    ;RECORD LOAD DATA              (2Fh)
;
;================== t02_intr.txt ===============
;-----------------------------------------------
;     Tabluua npepblBaHuu  AT 89 C 2051 
;-----------------------------------------------
;START0:
    CSEG        ;CErMEHT KODA nporpammbl
    ORG  0000H  ;POWER ON/RESET VECTOR
    JMP  START1 ;XOLODHblu CTAPT
;------------------------------------------------
;BEKTOP BHEWHEro npepblBaHuR INT0(EX0(IE.0)) ypoBeHb 1
    ORG  0003H  ;BEKTOP BHEWH. INT0 
    RETI        ;npepblBaH. HE ucnoLb3yeM !
;------------------------------------------------
;BEKTOP npepblBaHuR no TauM./C4ET. T/C 0
    ORG  000BH  ;OT nepenolH. T0  ET0(IE.1)  ypoBeHb 2
    RETI        ;npepblBaH. HE ucnoLb3yeM !
;------------------------------------------------
;BEKTOP BHEWHEro npepblBaHuR INT1(EX1(IE.2)) ypoBeHb 3    
    ORG  0013H  ;BEKTOP BHEWH. INT1
    RETI        ;npepblBaH. HE ucnoLb3yeM !
;--------------------------------------------
;BEKTOP npepblBaHuR no nepenoLHeH. TauMepa/C4ET4uka 
    ORG  001BH  ;T/C 1  ET1(IE.3)         ypoBeHb 4
    RETI        ;npepblBaH. HE ucnoLb3yeM !
;---------------------------------------------
;BEKTOP npepblBaHuR OT nopTa   UART  ulu  SPI
    ORG  0023H  ;BEKTOP npepblBaHuR  RS232 ypoBeHb 5
    RETI        ;npepblBaH. HE ucnoLb3yeM !
;
;================ t02_main.txt ===================
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;  XolodHblu CTART nporpammbl  ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START1:                                                   
    USING 0    ;REGISTER BANK 0              
;------- RETSET/POWER ON --------------       
    CLR  EA    ;IE.7 0=3anpeTuTb BCE npepblBaHuR
    CALL CLR_RXBUF ;CbpocuTb B 00h 31 bauT RX
    CALL CLR_TXBUF ;CbpocuTb B 00h 31 bauT TX
;... Cbpoc FlaroB .........................    
    MOV  F2,#0     ;BCE !!! flaru cbpocuTb
    MOV  F3,#0     ;BCE !!! flaru cbpocuTb
    MOV  F4,#0     ;BCE !!! flaru cbpocuTb
    CALL INI_RS232 ;nepe3anyck RS232     
;
     CLR EX0   ;IE.0 0=HET  External interrupt 0 
     CLR ET0   ;IE.1 0=HET  Timer 0 interrupt 
     CLR EX1   ;IE.2 1=Enable External interrupt 1 
     CLR ET1   ;IE.3 0=HET  Timer 1 interrupt 
    SETB ES    ;IE.4 1=Enable Serial port interrupt 
    SETB EA    ;ECTb pa3peweH. npepblBaHuu
;............... Cbpoc nopToB ..........        
    MOV  P1, #0FFH ;...OTnycTuM nopT DATA P1          
    MOV  P3, #0FFH ;...OTnycTuM nopT ... P3           
;
    MOV  R2, #00H  ;...Cbpoc CelekTop ynpaBleH. 
    MOV  R5, #0FFH ;...KOD u3 P1 --> B R5
    MOV  R6, #0FFH ;...KOD u3 P3 --> B R6
;-------------------------------------
;------------OCHOBHAR nporpaMMa-------
START2:                             
;uukl owudaHue HawaTuR KHonku TX
    MOV  R2, #00H  ;...Cbpoc CelekTop ynpaBleH. 
;
;........... HAWATA P3.4/P3.5/P3.7   ? ....
    MOV  P1, #0FFH ;...OTnycTuM nopT ... P1
    MOV  A,  P1  ;... P1 ?           
    MOV  R5, A   ;... KOD u3 P1 --> B R5
;
    MOV  P3, #0FFH ;...OTnycTuM nopT ... P3
    MOV  A,  P3  ;... P3 ?           
    MOV  F3, A   ;... P3 B buToBblu Flar F3
    MOV  R6, A   ;... KOD u3 P3 --> B R6
;... KOD  B   R2  - 3TO CelekTop ynpaBleH. 
    JNB  F3.7, TXnpor7 ;...nepeDaeM koD7---^
    JNB  F3.5, TXnpor5 ;...nepeDaeM koD5---^
    JNB  F3.4, TXnpor4 ;...nepeDaeM koD4---^
;
;------ HawaTa KHonka P1.0...P1.7  ?-----
    MOV  A, R5     ;...DAHHblE u3 P1 -> R5 !
;............. npoBepka .............
    CLR  C         ;nepeD Bbl4uTaHueM
    SUBB A,#0FFH   ;nepexoD npu HEHAWATblX KHOnKAX
      JZ ENDnpr    ;A=FF  A=0,C=0 HET PEAKuuu
;
    JMP  TXnpor1   ;...OT P1-->nporp.1
                   ;...BO3BPAT B uukl nporp. 
;
ENDnpr:
;... Hu  P1  Hu  P3 -Tuxo !
;...rlaBHblu uukl nporpammbl 
    CLR   TI   ;=0 Cbpoc TX
    JMP START2 ;-----^ 
;
;--------------------------------------
;-------- KOHEu OCHOBH. uukla---------- 
;--------------------------------------
;
;
;--------- HawaTa KHonka P1.0...P1.7 -----
TXnpor1:
    CALL DEL01CEK  ;3aDepwka 0.1 cek
    MOV  R2, #00H  ;...CelekTop KODA (OT P3=FF)
    CALL TXDATA    ;...nporpaMMa TX           
;... B rlaBHblu uukl nporpammbl 
    CLR   TI   ;=0 Cbpoc TX
    JMP START2 ;-----^ 
;
;
;
;
;--------------------------------------
;--------- HawaTa KHonka K4  P3.4 -----
TXnpor4:
    CALL DEL01CEK  ;3aDepwka 0.1 cek
    MOV  R2, #01H  ;...CelekTop KODA (OT P3=FF)
    CALL TXDATA    ;...nporpaMMa TX           
;... B rlaBHblu uukl nporpammbl 
    CLR   TI   ;=0 Cbpoc TX
    JMP START2 ;-----^ 
;
;
;
;--------------------------------------
;--------- HawaTa KHonka K5  P3.5 -----
TXnpor5:
    CALL DEL01CEK  ;3aDepwka 0.1 cek
    MOV  R2, #02H  ;...CelekTop KODA (OT P3=FF)
    CALL TXDATA    ;...nporpaMMa TX           
;... B rlaBHblu uukl nporpammbl 
    CLR   TI   ;=0 Cbpoc TX
    JMP START2 ;-----^ 
;
;
;
;--------------------------------------
;--------- HawaTa KHonka K7  P3.7 -----
TXnpor7:
    CALL DEL01CEK  ;3aDepwka 0.1 cek
    MOV  R2, #03H  ;...CelekTop KODA (OT P3=FF)
    CALL TXDATA    ;...nporpaMMa TX           
;... B rlaBHblu uukl nporpammbl 
    CLR   TI   ;=0 Cbpoc TX
    JMP START2 ;-----^ 
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;   END OF MAIN   ;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;ВНИМАНИЕ !
;Программа не уместилась!  Остались подпрограммы
;и таблицы данных для кодирования пакета табличным способом.
;Продолжение программы следует по просьбам трудящихся...
  • +3
  • 30 ноября 2009, 16:15
  • Markony

Комментарии (4)

RSS свернуть / развернуть
+
0
А можно комментарии в коде сделать на русском
— и подпрограммы в отдельных блоках code /code
avatar

Gangsta

  • 30 ноября 2009, 16:22
+
0
По-переходи за одну рабочую смену по 500-700 раз из ДОС в Виндос
понятно станет почему ASCII — рулес
Любой конвертер достанет!!!
А может вообще на Atmel-С переделать
Я так понял, что все остальное понятно…
avatar

Markony

  • 30 ноября 2009, 16:38
+
0
Надо полностью и с камментами а то не понятнои если это для промышленного применения то как сигнал кодируется и где?
avatar

Gangsta

  • 30 ноября 2009, 17:01
+
+1
Всему свое время. Все будет!
Программу на АСМе читать не сахар и с комментариями.
А у приемника-то еще хуже!
Я же все «in real Time» леплю — не железный!
avatar

Markony

  • 30 ноября 2009, 17:40

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.