Я думаю, что прочитав теоретическую часть, в которой не всё сразу понятно, лучше сразу потихонечку приступим к практике.
Схему приемника и передатчика DMX, которую я предлагаю изучить, можно найти в просторах интернета, но она заброшена.
Мне кажется, что человек, который её придумал, пошел дальше и ему это устройство стало неинтересно. А нам, как начинающим, познавать этот микроконтроллерный мир, в самый раз
.
Какой микроконтроллер лучше, а какой хуже, спор вечный, это также как на чём лучше писать программы на Ассемблере, VB, СИ или Delphi.
Да выбирайте, какой вам по душе, все они хороши, если знаешь что с ними делать.
Для меня, как начинающего, по душе сейчас простой PIC16F84, Proteus, Ассемблер и Delphi.
Ну и конечно набор программ, облегчающий жизнь программиста.
Содержание статьи / Table Of Contents
Передатчик состоит из набора резисторов, пару конденсаторов, кварцевого резонатора, кнопочек и соответственно самого «мозга» микроконтроллера PIC16F84A.
1. Кнопки-переключатели (любые) - 12 шт.
2. R1-R12 10k
3. R13 4.7k
4. C1-C2 15p
5. D1 1N4148
6. U1 PIC16F84A
🎁
asm.zip
21.52 Kb ⇣ 106
Наш файловый сервис предназначен для полноправных участников сообщества "Datagor Electronics".
Для получения файла зарегистрируйтесь и войдите на сайт с паролем.
;Asm файл для pic16c84 или 16f84, работает с кварцем 1MHz
;12 входов, управление переключателями (резисторы на «землю», перекл. на +5v)
; DMX выход с 1 по 12 канал, включаются (FFh), все остальные коды отключают канал.
; port A0 - DMX выход, соединяют с микросхемой sn75176 dmx driver (в другой схеме ;будет)
list p=16F84;
#include
__config _CP_OFF & _HS_OSC & _WDT_OFF & _PWRTE_ON
Reg_1 equ 0x00
Reg_2 equ 0x00
ch1 equ 0x10
ch2 equ 0x11
ch3 equ 0x12
ch4 equ 0x13
ch5 equ 0x14
ch6 equ 0x15
ch7 equ 0x16
ch8 equ 0x17
ch9 equ 0x18
ch10 equ 0x19
ch11 equ 0x1A
ch12 equ 0x1B
org 0x00
goto start
org 0x05
start
CLRF PORTA ;NEW
CLRF PORTB ;NEW
bsf STATUS,RP0
movlw 0xFF ; port b input
movwf TRISB
movlw 0xFE ; portA0 output, other bits input
movwf TRISA
movlw b'11010000'
movwf OPTION_REG
movlw b'00100000' ; don't allow interrupt
movwf INTCON
bcf STATUS,RP0
begin movlw 0x00
movwf ch1
movwf ch2
movwf ch3
movwf ch4
movwf ch5
movwf ch6
movwf ch7
movwf ch8
movwf ch9
movwf ch10
movwf ch11
movwf ch12
movlw 0xff
btfsc PORTB,0
movwf ch1
btfsc PORTB,1
movwf ch2
btfsc PORTB,2
movwf ch3
btfsc PORTB,3
movwf ch4
btfsc PORTB,4
movwf ch5
btfsc PORTB,5
movwf ch6
btfsc PORTB,6
movwf ch7
btfsc PORTB,7
movwf ch8
btfsc PORTA,1
movwf ch9
btfsc PORTA,2
movwf ch10
btfsc PORTA,3
movwf ch11
btfsc PORTA,4
movwf ch12
;---------------------------------------------------
dmxout
;---------------------------------------------------
;delay 2 cycle = 8uS
;---------------------------------------------------
bsf PORTA,0 ; PORTA =0000 0001
bsf PORTA,0 ; PORTA =0000 0001
;---------------------------------------------------
;delay 22 cycle = 88uS BREAK
;---------------------------------------------------
bcf PORTA,0 ; PORTA =0000 0000
movlw 0x06 ; PORTA =0000 0000
movwf Reg_1 ; PORTA =0000 0000
wr decfsz Reg_1, F ; PORTA =0000 0000
goto wr ; PORTA =0000 0000
nop ; PORTA =0000 0000
nop ; PORTA =0000 0000 88uS BREAK
;---------------------------------------------------
;delay 2 cycle = 8uS
;-----------------------------------------------
bsf PORTA,0 ; PORTA =0000 0001
bsf PORTA,0 ; PORTA =0000 0001
;---------------------------------------------------
;delay 9 cycle = 36uS begin startcode
;-----------------------------------------------
bcf PORTA,0 ;startbit ; PORTA =0000 0000
;delay = 8 machine cycles
nop
nop
movlw .2
movwf Reg_2
wr1 decfsz Reg_2, F
goto wr1
nop
;-----------------------------------------------
bsf PORTA,0 ;stopbits
bsf PORTA,0
bsf PORTA,0
;-----------------------------------------------
movlw 0x10
movwf FSR
chanel
movf INDF,w
;---------------------------------------------------
;delay 8 cycle ????
;-----------------------------------------------
bcf PORTA,0
movwf PORTA
nop
nop
nop
nop
nop
nop
nop
;-----------------------------------------------
bsf PORTA,0
bsf PORTA,0
bsf PORTA,0
;-----------------------------------------------
bcf STATUS,2
clrwdt
incf FSR
movf FSR,w
xorlw 0x1C
btfss STATUS,2
goto chanel
goto begin
end
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.