|
|
  |
очень нужна помощь с пиком |
|
|
|
Nov 10 2006, 20:36
|

Участник

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685

|
Я думаю подпрограмму мигания надо организовать вот так: Код R1_VD2M ;подпрограмма мигания светодиода BTFSS TEMPA,4 GOTO V1 ;перейти на V1 MOVLW 0x09 MOVWF COUNT ;СЧЕТЧИК МИГАНИЙ 9 РАЗ ГОРИТ, 9 - НЕ ГОРИТ, ИТОГО 18 СЕК (ЧАСТОТА МИГАНИЙ 1 ГЕРЦ, ЗНАЧИТ 1 ;МИГАНИЕ/НЕМИГАНИЕ В СЕКУНДУ), ПОСЛЕДНЕЕ НЕМИГАНИЕ НЕ УЧИТЫВАЕМ - ПОЛУЧАЕМ 17 СЕК V0 BSF VD2 ;зажечь светодиод VD2 MOVLW 0xF3 ;пересылка константы ;H'F3' = .243 в W CALL DELAY_E ;вызов подпрограммы DELAY_E BCF VD2 ; светодиод мигает MOVLW 0xF3 ;пересылка константы ;H'F3' = .243 в W CALL DELAY_E ;вызов подпрограммы DELAY_E GOTO V1 ;перейти на V1 DECFSZ COUNT,F GOTO V0 V1 BCF VD2 ; RETURN ;возврат из под программы
END Надеюсь паузы в подпрограмме DELAY_E вы подобрали правильно P.S. Не забудьте объявить переменную COUNT в начале программы!!!
|
|
|
|
|
Nov 11 2006, 09:57
|

Участник

Группа: Участник
Сообщений: 65
Регистрация: 5-02-05
Из: Russia Ярославль
Пользователь №: 2 447

|
Цитата(Mari-999 @ Nov 10 2006, 22:39)  а на RA1 (18 ножка) через резистор подключен диод, катодом в плюс питание. Вы уверены? Светодиод катодом к плюсу? И чего вы ожидаете ?
|
|
|
|
|
Nov 11 2006, 22:43
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171

|
Цитата(dosikus @ Nov 11 2006, 12:57)  Цитата(Mari-999 @ Nov 10 2006, 22:39)  Вы уверены? Светодиод катодом к плюсу? нет не уверена
|
|
|
|
|
Nov 14 2006, 12:31
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171

|
[quote name='napper' date='Nov 10 2006, 23:36' post='174600'] Я думаю подпрограмму мигания надо организовать вот так: Код R1_VD2M ;подпрограмма мигания светодиода BTFSS TEMPA,4 GOTO V1 ;перейти на V1 MOVLW 0x09 MOVWF COUNT ;СЧЕТЧИК МИГАНИЙ 9 РАЗ ГОРИТ, 9 - НЕ ГОРИТ, ИТОГО 18 СЕК (ЧАСТОТА МИГАНИЙ 1 ГЕРЦ, ЗНАЧИТ 1 ;МИГАНИЕ/НЕМИГАНИЕ В СЕКУНДУ), ПОСЛЕДНЕЕ НЕМИГАНИЕ НЕ УЧИТЫВАЕМ - ПОЛУЧАЕМ 17 СЕК V0 BSF VD2 ;зажечь светодиод VD2 MOVLW 0xF3 ;пересылка константы ;H'F3' = .243 в W CALL DELAY_E ;вызов подпрограммы DELAY_E BCF VD2 ; светодиод мигает MOVLW 0xF3 ;пересылка константы ;H'F3' = .243 в W CALL DELAY_E ;вызов подпрограммы DELAY_E GOTO V1 ;перейти на V1 DECFSZ COUNT,F GOTO V0 V1 BCF VD2 ; RETURN ;возврат из под программы
END Надеюсь паузы в подпрограмме DELAY_E вы подобрали правильно P.S. Не забудьте объявить переменную COUNT в начале программы!!! [/quot] не работает даже не компилиться
|
|
|
|
|
Nov 14 2006, 13:07
|

Участник

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685

|
Цитата(Mari-999 @ Nov 14 2006, 15:31)  не работает даже не компилиться Читайте внимательнее, это ПОДпрограмма! Замените в своей программе, начиная с метки R1_VD2M на мою.
|
|
|
|
|
Nov 14 2006, 13:52
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171

|
Цитата(napper @ Nov 14 2006, 16:07)  Цитата(Mari-999 @ Nov 14 2006, 15:31)  не работает даже не компилиться
Читайте внимательнее, это ПОДпрограмма! Замените в своей программе, начиная с метки R1_VD2M на мою. Да, именно так и сделала (это то я поняла конечно, что это подпрограмма  ), заменила, она не работает и ругаеться на строчки MOVLW 0x09 и GOTO V0
|
|
|
|
|
Nov 14 2006, 19:06
|

Участник

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685

|
Полная версия программы: Код LIST p=16F84 INTCON EQU 0x0B OPTION EQU 0x81 TMR0 EQU 0x01 INTF EQU 1 T0IF EQU 5 PCL EQU 0x02 STATUS EQU 0x03 RP0 EQU 5 PORTA EQU 0x05 PORTB EQU 0x06 TRISA EQU 0x05 TRISB EQU 0x06 W EQU 0 F EQU 1 TEMPA EQU 0x0C TEMPB EQU 0x0D COUNT1 EQU 0x0E COUNT2 EQU 0x0F
#DEFINE Z STATUS,2;бит нулевого результата #DEFINE VD2 PORTA,1;светодиод VD2 #DEFINE R1 PORTA,4;резистор
ORG 0 INIT_PORTS ;подпрограмма инициализации портов BSF STATUS,RP0;переход на банк 1 MOVLW 0x1C ;настройка линий RA0 и RA1 на вывод, другие на ввод MOVWF TRISA MOVLW 0x01 ;настройка линии RB0 на ввод, другие на вывод MOVWF TRISB BCF STATUS,RP0;возврат в банк 0 ; LOOP MOVF PORTA,W;чтение состояния порта A в W MOVWF TEMPA ;пересылка W в TEMPA BTFSS TEMPA,4 GOTO LOOP ;перейти на LOOP MOVLW 0x09 MOVWF COUNT ;СЧЕТЧИК МИГАНИЙ 9 РАЗ ГОРИТ, 9 - НЕ ГОРИТ, ИТОГО 18 СЕК ;(ЧАСТОТА МИГАНИЙ 1 ГЕРЦ, ЗНАЧИТ 1 МИГАНИЕ/НЕМИГАНИЕ В СЕКУНДУ), ;ПОСЛЕДНЕЕ НЕМИГАНИЕ НЕ УЧИТЫВАЕМ - ПОЛУЧАЕМ 17 СЕК;-) V0 BSF VD2 ;зажечь светодиод VD2 MOVLW 0xF3 ;пересылка константы ;H'F3' = .243 в W CALL DELAY_E;вызов подпрограммы DELAY_E BCF VD2 ;светодиод мигает MOVLW 0xF3 ;пересылка константы ;H'F3' = .243 в W CALL DELAY_E;вызов подпрограммы DELAY_E DECFSZ COUNT,F GOTO V0 GOTO LOOP ;переход к метке LOOP
DELAY_E ;подпрограмма формирования задержки
MOVWF COUNT2;загрузка W в регистр COUNT2 CLRF COUNT1;сброс содержимого регистра COUNT1 LOOPD NOP ;пустая команда DECFSZ COUNT1,F;декремент COUNT1 GOTO LOOPD ;повторение цикла 256 раз DECFSZ COUNT2,F;декремент COUNT2 GOTO LOOPD ;повторение цикла RETURN ;возврат из подпрограммы
END О результатах сообщите
|
|
|
|
|
Nov 16 2006, 04:15
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171

|
Цитата(napper @ Nov 14 2006, 22:06)  О результатах сообщите не работает две ошибки
|
|
|
|
|
Nov 16 2006, 05:39
|

Участник

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685

|
Цитата(Mari-999 @ Nov 16 2006, 07:15)  не работает две ошибки Давайте разбираться. Что пишет компилятор, на что ругается? Цитата(Edmundo @ Nov 16 2006, 08:20)  Небось, компиляторы разные... В чем компилируете? А причем здесь компилятор? Вроде это стандартный ассемблер для PICов...
|
|
|
|
|
Nov 16 2006, 06:53
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171

|
Цитата(napper @ Nov 16 2006, 08:39)  Цитата(Mari-999 @ Nov 16 2006, 07:15)  не работает две ошибки Давайте разбираться. Что пишет компилятор, на что ругается? Цитата(Edmundo @ Nov 16 2006, 08:20)  Небось, компиляторы разные... В чем компилируете? А причем здесь компилятор? Вроде это стандартный ассемблер для PICов... MPASM выдает 5 ошибок, одну нашла не объявлена переменная COUNT, остальные не знаю
|
|
|
|
|
Nov 16 2006, 07:46
|

Участник

Группа: Новичок
Сообщений: 36
Регистрация: 26-10-06
Из: Волгоград
Пользователь №: 21 685

|
Цитата(Mari-999 @ Nov 16 2006, 09:53)  MPASM выдает 5 ошибок, одну нашла не объявлена переменная COUNT, остальные не знаю Что за ошибки? Я же не ясновидящий!.. Скопируйте их сюда
|
|
|
|
|
Nov 19 2006, 07:06
|
Участник

Группа: Новичок
Сообщений: 16
Регистрация: 14-01-06
Пользователь №: 13 171

|
Цитата(napper @ Nov 16 2006, 10:46)  Цитата(Mari-999 @ Nov 16 2006, 09:53)  MPASM выдает 5 ошибок, одну нашла не объявлена переменная COUNT, остальные не знаю
Что за ошибки? Я же не ясновидящий!.. Скопируйте их сюда У нас mpasmwin, он когда переводишь в hex выдает 5 ошибок, одну нашла не обьявлена перем.count, осталось три, он не указывает какие, но когда комментируешь те две строки MOVLW 0x09 и GOTO V0, он выдает 0 ошибок, я посмотрела, но так прога не работает
Сообщение отредактировал Mari-999 - Nov 19 2006, 07:08
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|