Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Примеры применения в среде Баском » Исследование внешнего АЦП MCP3201_MCP3202_MCP3204_MCP3208


Исследование внешнего АЦП MCP3201_MCP3202_MCP3204_MCP3208

Сообщений 1 страница 3 из 3

1

Внешний АП 12-бит, работает по шине SPI

Документация производителя чипа АЦП:

MCP3201 - http://ww1.microchip.com/downloads/en/D … 21290F.pdf
MCP3202 - http://ww1.microchip.com/downloads/en/D … 21034F.pdf
MCP3204_MCP3208 - http://ww1.microchip.com/downloads/en/D … 21298e.pdf

Симуляция Протеус 7.10 + исходники Bascom 2.0.7.1 + модели для Протеуса + программа для создания образов SD карты + документация + снимки экрана  -  скачать

Все варианты в архиве

Снимки экрана

http://sd.uploads.ru/t/IsqnG.jpg http://sd.uploads.ru/t/oGLue.jpg
http://sd.uploads.ru/t/XBauf.jpg http://sd.uploads.ru/t/EZUVR.jpg

+3

2

Вариант с MCP3201 - скачать

Исходник

'-----------------------  Конфигурация контроллера  ----------------------------
  $map       ' Получаем карту распределения памяти компилятором Bascom
  $regfile = "m328pdef.dat"       ' Используемый контроллер, документация производителя - http://www.atmel.com/Images/Atmel-2549- … asheet.pdf
  $crystal = 1000000       ' 1 МГц, частота для расчета временных задержек компилятором, должна соответствовать запрограммированым фьюзам МК
  $framesize = 64       ' Размер области используемой и необходимой для преобразований
  $hwstack = 64       ' Размер аппаратного стека
  $swstack = 64       ' Размер программного стека

'-----------------------  Конфигурация USART  ----------------------------------
  $baud = 4800       ' Скорость трансляции
  Config Com1 = Baud , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
  Ucsr0a.1 = 1       ' Baud = Baud * 2

'-----------------------  Конфигурация MCP330x  --------------------------------
  Pin_din_mcp320x Alias 4
  Port_din_mcp320x Alias Pinb
  Din_mcp320x Alias Pinb.4 : Config Din_mcp320x = Input

  Cs_mcp320x Alias Portb.2 : Config Cs_mcp320x = Output : Cs_mcp320x = 1
  Sck_mcp320x Alias Portb.5 : Config Sck_mcp320x = Output : Reset Sck_mcp320x

'---------------  Используемые переменные, для работы с MCP330x ----------------
  Dim A_mcp320x As Byte
  Dim Сигнатура_mcp320x As Byte
  Dim Данные_mcp320x_word As Word

'===============================================================================
  Главный_цикл:
'===============================================================================

        Gosub Ацп_mcp320x

        Print Данные_mcp320x_word
        Waitms 500

'===============================================================================
  Goto Главный_цикл
End
'===============================================================================

'===============================================================================
  Ацп_mcp320x:
'-------------------------------------------------------------------------------
    Sck_mcp320x = 0
    Cs_mcp320x = 0

    Sck_mcp320x = 1
    Sck_mcp320x = 0
    Sck_mcp320x = 1
    Sck_mcp320x = 0

   'Принимаем старший байт
    !clr R16
    !ldi R17 , 4
   Чтение_mcp320x_high:
    Sck_mcp320x = 1
    Sck_mcp320x = 0
    !SBIC Port_din_mcp320x , Pin_din_mcp320x
    !SET
    !sBIs Port_din_mcp320x , Pin_din_mcp320x
    !clt
    !BLD R16 , 0
    !mov R27 , R16
    !LSl R16
    !dec R17
    !brne Чтение_mcp320x_high

   'Принимаем младший байт
    !clr R16
    !ldi R17 , 8
   Чтение_mcp320x_low:
    Sck_mcp320x = 1
    Sck_mcp320x = 0
    !SBIC Port_din_mcp320x , Pin_din_mcp320x
    !SET
    !sBIs Port_din_mcp320x , Pin_din_mcp320x
    !clt
    !BLD R16 , 0
    !mov R26 , R16
    !LSl R16
    !dec R17
    !brne Чтение_mcp320x_low

   'Забираем, что намеряли
    !sts {Данные_mcp320x_word} , R26
    !sts {Данные_mcp320x_word + 1} , R27

    Cs_mcp320x = 1
'-------------------------------------------------------------------------------
  Return
'===============================================================================

http://sg.uploads.ru/t/iV3QT.jpg

+2

3

В Протеус 8, не работает симуляция, зависает на передаче в MCP320x, в железе всё работает !

Работающий вариант в Протеус 8  -  скачать

http://s7.uploads.ru/t/6Wmlw.jpg

0


Вы здесь » Программирование ATMEL в BASCOM. » Примеры применения в среде Баском » Исследование внешнего АЦП MCP3201_MCP3202_MCP3204_MCP3208