Author Topic: Туторијал за програмирање во MikroBasic (ADC)  (Read 900 times)

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
Туторијал за програмирање во MikroBasic (ADC)
« Opened on 10.08.2011, Wednesday, 19:14:21 (Edited 10.08.2011, Wednesday, 19:28:57) »
Главна страна (дискусии, прашања)
http://elektronika-mk.net/index.php?topic=4291.msg39377#msg39377

Шема :


Кодот го има во атачмент

Видео:
ADC
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
Код со кој може да направите прост волтметар кој мери напон од 0 до 5V
доколку сакате поголем напон мора да поставите напонски делите на влез
Code: [Select]
'************* Туториал - ADC **********
'********* Македонски Форум за Електроника********
'********* http://elektronika-mk.net **********
'********* Микроконтролер PIC16F887 @ 8MHz, Симулација ISIS 7
'************** DEVIL ****************
program ADC                                           'Име на програмата
dim promenliva, promenlivaa as word                   'Promenliva- променлива вредност која во
    txt as char[5]                                    ' тек на програмата зазема некоја вредност
    LCD_RS as sbit at RB4_bit                         'Поставувања на пиновите за LCD дисплејот
    LCD_EN as sbit at RB5_bit
    LCD_D4 as sbit at RB0_bit
    LCD_D5 as sbit at RB1_bit
    LCD_D6 as sbit at RB2_bit
    LCD_D7 as sbit at RB3_bit

    LCD_RS_Direction as sbit at TRISB4_bit
    LCD_EN_Direction as sbit at TRISB5_bit
    LCD_D4_Direction as sbit at TRISB0_bit
    LCD_D5_Direction as sbit at TRISB1_bit
    LCD_D6_Direction as sbit at TRISB2_bit
    LCD_D7_Direction as sbit at TRISB3_bit

main:                                                 'Главна програма
  ANSEL  = 0x04                                       ' Порт А 2 (AN2) е аналоген влез
  ANSELH = 0                                          'Останатите пинови се дигитални
  C1ON_bit = 0                                        'компараторите се исклучени
  C2ON_bit = 0

  TRISA  = 0xFF                                       'Поставување на порта А како влезна порта
  TRISB  = 0                                          'Поставување на порта Б како излезна порта
  Delay_ms(200)                                       'Кратка пауза

  txt = "0.0"                                           'Доколку нема ништо на влез ќе се појави 0.0
  Lcd_Init()                                            'Поставување на LCD
  Lcd_Cmd(_LCD_CLEAR)                                   'Бришење доколку се појави нешто несакано
  Lcd_Cmd(_LCD_CURSOR_OFF)                              'Исклучување на курсорот
  Lcd_Out(1, 1, "Vrednost:")                            'Текстот кој ќе се појави во I-та линија
  Delay_ms(1000)
 while TRUE                                             'Бескрајна проверка
     promenliva = ADC_Read(2)                           'Вредноста која ќе се прочита се запишува како променлива
   promenlivaa = (promenliva * 5) div 1023              'Променливата која треба да се прикаже претходно
 WordToStr(promenlivaa, txt)                            ' мора да биде претворена од дигитален 10 битен код
 Lcd_Out(2,5, txt)                                      ' во оддреден број кој подозна зазема одредено ниво
  wend                                                  ' постапката за претворање од дигитален код
end.                                                    ' во аналогна вредност е Vout = (5*Vin)/ 1023
                                                        'Променливата која се добива се множи со 5 (напон на
                                                        ' напојување) и после тоа добиената вредност се дели
                                                        ' со 1023, тоа е поради тоа што се користи 10-битна
                                                        ' резолуција на ADC конверзијата, односно од 0 до 1023
                                                        ' (2^10 = 1024). Подоцна оваа вредност се впишува на
                                                        ' LCD дисплејот во втората линија
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!