Помогите с PIC16F84A

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 12, 2006 23:32:05

Сообщение AsekarT »

Помогите новичку с усовершенствованием кода

Код: Выделить всё


list p=16f84
   
   #include <p16F84a>

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


count1 EQU  0x0C
count2 EQU  0x0D
ledset EQU  0x0E


   ORG 0x000
   
   clrf PORTA
   clrf PORTB
      bsf STATUS, RP0
   movlw b'11111100'
   movwf PORTA
   movlw b'00000101'
   movwf PORTB

   bcf OPTION_REG,7
   bcf STATUS,RP0
   clrf ledset

loop   movlw b'00000011'
   xorwf ledset, f
   movf ledset, w
   movwf PORTA
      
      movlw 0x00

   movwf count1
cycle1 movlw 0xFF
      movwf count2
cycle2 decfsz count2, f
      goto cycle2
      
      incfsz count1, f
      goto cycle1
     
      goto loop
      
      end   
Значит эта прога заставляет мигать 2 диода...за ножки отвечает эта строчка, она рассчитана и она была дописана мной для двух светиков
movlw b'11111100' ; последние 2 нуля показывают что на 17 и 18 ножках светики
movwf PORTA
Далее инвертируется этот адресс в строчке

movlw b'00000011' ; тут инвертируется значние и выходит так что на 17 и 18 ножках логическая 1....

xorwf ledset, f
movf ledset, w
movwf PORTA

Как дописать, чтоб светики мигали поочередно, а не вместе...??? Кто знает отзовись и помоги юному пиковщику.... Не допру сам никак :(
Контактная информация:
Реклама
Открыл глаза
Аватара пользователя
Сообщения: 44
Зарегистрирован: Пн июл 10, 2006 00:26:01
Откуда: Николаев

Сообщение Naddir »

А не пробывал написать так:
movlw b'11111110'
Если быть кратким.
Реклама
Гость

Сообщение Гость »

А не пробывал написать так:
movlw b'11111110'
Если быть кратким.
Тогда мигает только второй светодиод. А я вот думаю может как-то это всё через таймере зделать...вы не знаете как?
Встал на лапы
Аватара пользователя
Сообщения: 85
Зарегистрирован: Пт май 26, 2006 23:28:37
Откуда: Харьков

Сообщение yaroslav »

А почему нельзя инвертировать биты не командой XORWF, а командой COMF ? Было бы проще:

Код: Выделить всё

  movlw b'00000001' 
  movwf ledset
loop
  comf ledset, f 
  movf ledset, w 
  movwf PORTA
и далее по тексту... 
Так светодиоды будут мигать попеременно :))
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 12, 2006 23:32:05

Сообщение AsekarT »

Здравствуйте....Всем огромное спасибо за вашу помощь, вот работающая как мне нужно программа! Спасибо за помощь...
Код

Код: Выделить всё

list p=16f84
    
    #include <p16F84a>

    __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


count1    EQU  0x0C
count2    EQU  0x0D
ledset    EQU  0x0E


       ORG    0x000
    
       clrf PORTA
       clrf PORTB
       bsf STATUS, RP0
       movlw b'11111100'
       movwf PORTA
       movlw b'00000101'
       movwf PORTB

       bcf OPTION_REG,7
       bcf STATUS,RP0
       movlw b'00000001'
       movwf ledset

loop comf ledset, f
       movf ledset, w
       movwf PORTA

       movlw 0xFF
     
       movwf count1
cycle1 movlw 0xD9
       movwf count2
cycle2 decfsz count2, f
       goto cycle2
       
       decfsz count1, f
       goto cycle1
       
       goto loop
       
       end         

Мне вот интересно, а можно ли эту программу переписать и зделать так, чтоб она работала не через прерывания как щас, а через таймер, чтоб можно было задавать паузу между миганиями...огромное пасибо...[/code]
Контактная информация:
Реклама
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 12, 2006 23:32:05

Сообщение AsekarT »

Так знает кто то как эту прогу под таймер переписать?
Контактная информация:
Реклама
gri
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 336
Зарегистрирован: Чт июн 29, 2006 21:17:41
Откуда: Мариуполь

Сообщение gri »

качаешь микропаскаль и получаешь удовольствие. Если конешно нет цели натереть мозоли на заднице программируя в асме.
:]\/\/\/\/ххх\/\/\/\/\/\/ххх\/\/\/\/\/ххх\/\/\/\/\/\[:
В мае на гульках 2 баяна порвал...одной лапой.
Другая болела, после того, как потрогал паяльник.
Контактная информация:
Открыл глаза
Аватара пользователя
Сообщения: 44
Зарегистрирован: Пн июл 10, 2006 00:26:01
Откуда: Николаев

Сообщение Naddir »

AsekarT писал(а):Так знает кто то как эту прогу под таймер переписать?
Да приеду домой в пятницу пришлю всю прогу. Потерпишь?
Родился
Сообщения: 10
Зарегистрирован: Вс ноя 12, 2006 23:32:05

Сообщение AsekarT »

Конечно потерплю, буду благодарен и рад любой помощи!!! :))
Контактная информация:
Ответить

Вернуться в «PIC»