Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 07.02.2005, 11:23  
impuls-v
Частый гость
 
Регистрация: 18.01.2005
Сообщений: 33
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
impuls-v на пути к лучшему
По умолчанию микроконтроллер и com-порт

Люди. Кто знает как передать или получить информацию с микроконтроллеров Pic или Atmel.
Помогите в данном вопрое.
Реклама:
impuls-v вне форума  
Непрочитано 07.02.2005, 16:34  
lisergin
Прописка
 
Регистрация: 29.01.2005
Адрес: Киев
Сообщений: 227
Сказал спасибо: 50
Сказали Спасибо 32 раз(а) в 24 сообщении(ях)
lisergin на пути к лучшему
По умолчанию

У меня тоже встанет буквально в скором времени такая задача, поэтому я пока не пробовал, но подзапасся теорией. Во-первых, в некоторых контроллерах уже есть внутренняя реализация RS-232 например в ПИКах это из 16-й серии 63-я, 65-я, 73-я и 74-я модели и может ещё какие-то другие, не помню точно. Если не годятся по причине относительной дороговизны или по каким-то другим, эмулируем програмно. У тебя есть описание протокола RS-232? Можно почитать и подумать. Теоретически скорость возможна вплоть до 9600 на 4-х мегагерцовой версии или 19200 на 10-ти МГцовой. Идея такая(для приема). Дождались старт-бита, а далее контролируем состояние ноги контроллера во время, соответствующее средине бита, который передается. Записываем его в CARRY и двигаем дальше в переменную приёма, и так 8 раз. Что пока не обдумывал – согласование уровней ТТЛ и RS, для приема, думаю подойдет резистор )). Ну, и если что, то всегда имеется микросхемка MAX 232 в которую с любой стороны входит ТТЛ или RS, а выходит соответственно RS или ТТЛ. Удачи!
lisergin вне форума  
Непрочитано 07.02.2005, 21:49  
xelos
Прописка
 
Регистрация: 27.08.2004
Сообщений: 107
Сказал спасибо: 0
Сказали Спасибо 20 раз(а) в 20 сообщении(ях)
xelos на пути к лучшему
По умолчанию

все намного проще с Пиками. В 16 серии есть такое понятие как SCI - последовательный интерфейс. Там на програмном уровне не надо реализовывать протокол. Все уже готовое - конфигурировать только контроллер и вперед. Он сам прерывание запустит, как байт будет считан. Буфер там на два байта, вроде.
xelos вне форума  
Непрочитано 08.02.2005, 10:58  
Гость
 
Сообщений: n/a
По умолчанию

Я имел ввиду именно для тех микроконтроллеров у которых нет встроенных интерфейсов RS-232, с зтим то все просто.
 
Непрочитано 08.02.2005, 13:19  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

лююююдиииии!!!! Ну пользуйтесь поисковыми системами!!!
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
Непрочитано 08.02.2005, 13:22  
DK
Почётный гражданин KAZUS.RU
 
Аватар для DK
 
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,528
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
DK на пути к лучшему
По умолчанию

http://piclist.com/techref/piclist/cheapic/alphabet.htm

Код:
Program #7 - Send & Receive Serially at 1200 baud 
;-----------------------------------------------------------------------;
; ALPHABET.ASM        Send and Receive serially at 1200 baud to PC      ;
;-----------------------------------------------------------------------;

;-----------------------------------------------------------------------;
;        the next 5 lines are directions to the assembler               ;
;-----------------------------------------------------------------------;

        LIST P=16F84           ;  tells which processor is used
        INCLUDE "p16f84.inc"   ;  defines various registers etc. Look it over.
        ERRORLEVEL -224        ;  supress annoying message because of tris
        __CONFIG _PWRTE_ON &_LP_OSC &_WDT_OFF   ;  configuration switches

         CBLOCK H'0C'
           txreg              ; holds byte to be transmitted
           rxreg              ; holds byte received
           char               ; holds character to be transmitted
           bitcount           ; holds count of bits when transmitting
           timecnt            ; holds counter for timer
         ENDC

           ORG 0              ; start a program memory location zero
           goto main          ; skip over subroutines

;-----------------------------------------------------------------------;
;          initialization - set up ports and timer options              ;
;-----------------------------------------------------------------------;
init:
         movlw B'00000001'    ; RA0 to input
         tris PORTA           ; contents of W copied to PORT A ...
         movlw 0
         tris PORTB           ; and PORT B
         movlw B'00000001'    ; pull-ups active
                              ; prescalar assigned to TMR0 and set 1:4
         option               ; rolls over each second
         return

;-----------------------------------------------------------------------;
;                        time delay routines                            ;
;-----------------------------------------------------------------------;
eighth:
          movlw 1              ; wait 1/8 th second
          goto $ +2            ; jump over
onesecond:
          movlw D'8'           ; wait one second
          movwf timecnt
          clrf TMR0
          bcf INTCON, T0IF     ; clear the interrupt flag
          btfss INTCON, T0IF   ; wait on T0IF to be set
          goto $ -1            ; loop till it is
          decfsz timecnt, f    ; finished timing?
          goto $ -3            ; not yet
          return               ; yes


;-----------------------------------------------------------------------;
;                     the main program                                  ;
;-----------------------------------------------------------------------;
main:                         ; this is the main program
         call init            ; set up ports
         call onesecond       ; let things settle for 1 second
loop:
         call rx              ; get a character from keyboard
         movwf char           ; save so we can increment it
         incf char, f         ; send back the next 3 characters
         movf char, W
         call tx
         incf char, f
         movf char, W
         call tx
         incf char, f
         movf char, W
         call tx
         goto loop            ; do it forever

;-----------------------------------------------------------------------;
;                 transmit byte in W at 1200 baud out RB7               ;
;-----------------------------------------------------------------------;
; normal rs232 is -V for a high, +V for a low
; this would translate to 0V for high +5 for low
tx:
         movwf txreg          ; set up transmit register
         comf txreg, f        ; flip all bits
         movlw D'8'           ; eight bits to transmit
         movwf bitcount
         bsf PORTB, 7         ; start bit (+5V is 'low')
         nop                  ; a total of 7 instruction cycles
         nop                  ; (one is the rrf at txloop)
         nop
         nop
         nop
txloop:
         rrf txreg, f         ; lsb out of txreg into carry
         rrf PORTB, f         ; bit 7 of port B high or low with carry
         nop                  ; make total loop delay 7 instruction counts
         nop                  ; 7 * 122 usec = 854, (should be 833)
         decfsz bitcount, f   ; 4 instruction cycles to here
         goto txloop          ; total 4 + 3 = 7 instructions cycles in loop
         bcf PORTB, 7         ; 0 Volts is the 'high' state this is
         nop                  ; stop bit
         nop                  ; delay 7 instruction cycles
         nop
         nop
         return

;-----------------------------------------------------------------------;
;             receive byte  at 1200 baud in RA0, put in W               ;
;-----------------------------------------------------------------------;
rx:      movlw 8              ; eight bits to input
         movwf bitcount
waitstart:
         btfss PORTA, 0       ; wait for input to go high, (start bit)
         goto waitstart
         nop                  ; wait 1/2 start bit time 3 including branch
         nop                  ; next four instruction are to make
         nop                  ; 1 bit time delay before first reading of
         nop                  ; input port
         nop
receive:
         nop                  ; make total loop delay 7 instruction counts
         nop                  ; 7 * 122 usec = 854, (should be 833)
         rrf PORTA, f         ; PORT A bit 0 into carry
         rrf rxreg, f         ; rotate carry into receive register
         decfsz bitcount, f   ;
         goto receive         ; total 4 + 3 = 7 instructions cycles in loop
         comf rxreg, W        ; return compliment of value collected
         nop                  ; wait at least one stop bit
         nop
         nop
         nop
         return

         end
вот еще http://piclist.com/techref/microchip/irtoserial.htm
http://piclist.com/techref/microchip/16f84-rs232-an.htm
http://piclist.com/techref/microchip/rs232.htm
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
DK вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Порт цифрового штангенциркуля Brinzmen Цифровые сигнальные процессоры 2 28.04.2009 19:09
Виртуальный ком порт Tcom Микроконтроллеры, АЦП, память и т.д 4 12.05.2007 18:24
ADNS-2051 и COM порт mDavem Цифровые сигнальные процессоры 1 23.12.2006 12:29
ИК-порт <> com порт модема shura Микроконтроллеры, АЦП, память и т.д 12 23.01.2005 03:45


Часовой пояс GMT +4, время: 00:53.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot