На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Подскажите пожалуйста по PIC16F84A
      Подскажите пожалуйста по PIC16F84A. Изучая код на ассемблере, который посылает сигналы драйверу светодиодов(это тот же сдвиговый регистр), который в свою очередь выводит цифры на табло. Я обнаружил следующие строки:

      ExpandedWrap disabled
        SEG_7   andlw   0x0F
                addwf   PCL,f  
                retlw   b'01111110'
                retlw   b'00000110'
                retlw   b'11011010'
                retlw   b'11001110'
                retlw   b'10100110'
                retlw   b'11101100'
                retlw   b'11111100'
                retlw   b'01000110'
                retlw   b'11111110'
                retlw   b'11101110'
                retlw   b'10000000'
                retlw   b'01000000'
                retlw   b'00100000'
                retlw   b'00010000'
                retlw   b'00001000'
                retlw   b'00000100'
            end


      Подскажите что они делают? Ведь на сколько мне известно retlw это выход из подпрограммы с записью в регистр W какого-то значения.. Но почему здесь все это вподрят??? :blink:
        Потому что эта процедура вызывается в цикле. В программе где-то указано количество элементов данной таблицы и вызывая эту процедуру с определенным номером элемента выполнится только одна из команд retlw, вернув значение требуемой ячейки.

        ExpandedWrap disabled
          CALL TABLE
           
          TABLE:
          ADD PCL ; W + PCL =>PCL (смещение)
          RETLW k0 ;начало таблицы
          RETLW k1
          :
          :
          RETLW kn ;конец таблицы
          ;Перед выполнением:W = 0x07
          ;После выполнения:W = значение kn
        Сообщение отредактировано: spicard -
          идею понял спасибо :)
          1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0215 ]   [ 14 queries used ]   [ Generated: 17.05.24, 11:34 GMT ]