Перейти к содержанию
    

napper

Участник
  • Постов

    36
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о napper

  • Звание
    Участник
    Участник
  • День рождения 17.10.1983

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. Я сейчас немного ими занялся. Что конкретно интересует?
  2. Можно попробовать как описано здесь (3 метод, с помощью индуктивности).
  3. Наверное из-за этого МА200 стоит намного дешевле других?... А в чем заключается активное демпфирование? Есть у кого-то опыт в решении данной задачи?
  4. А если попробовать шунтировать датчик после импульса. Можно добиться меньшего минимального расстояния?
  5. Вот упоминавшаяся таблица из "Искусство схемотехники"
  6. Упрощенное зачисление в "свои". У кого есть благодарности, соответственно есть и информационные сообщения, так ведь?
  7. А у меня предложение такого рода: Сделать что-то вроде счетчика благодарностей, видел на каком-то форуме. Сразу будет видно, кто помогает (это я про посетителей). И еще можно засчитывать благодарности при зачислении в свои.
  8. Edmundo, нет проблем! :) Я ведь тоже могу ошибаться, поэтому только за, если кто-то меня поправит. Вот про переменную забыл... #include P16F84A.inc TEMPA EQU 0x0C TEMPB EQU 0x0D COUNT EQU 0x0E COUNT1 EQU 0x0F COUNT2 EQU 0x10 #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 Что я исправил: 1. Объявил переменную COUNT 2. Добавил команду "#include P16F84A.inc" вместо "LIST p=16F84" (У меня MPLAB на это ругается, а разбираться лень) 3. По поводу меток все нормально, имена допустимые. 4. Убрал объявление стандартных регистров. Откомпилировал в MPLAB, все ОК, ошибок 0 P.S. Версия MPLAB 7.30
  9. Может быть это подойдет? Долженко О. В., Королев Г. В. Сборник задач, вопросов и упражнений по радиоэлектронике: Учеб, пособие для сред. ПТУ.- 2-е изд., перераб. и доп. -М,: Высш. шк., 1986. - 10З с: ил. Приведены задачи, вопросы и упражнения по разделам электронные и полупроводниковые приборы, усилители, выпрямители, стабилизаторы, радиотехнические схемы и вычислительная техника. Во втором издании (1-е - 1980 г.) расширен материал по полупроводниковым приборам, транзисторным схемам, добавлен раздел "Операционные усилители". Включены вопросы и задачн, связанные с применением интегральных логических микросхем. http://home.farlep.net/~roman/books/ucheb/...dach_radio.djvu (935К)
  10. Что за ошибки? Я же не ясновидящий!.. Скопируйте их сюда
  11. Давайте разбираться. Что пишет компилятор, на что ругается? А причем здесь компилятор? Вроде это стандартный ассемблер для PICов...
  12. Полная версия программы: 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 О результатах сообщите
  13. Читайте внимательнее, это ПОДпрограмма! Замените в своей программе, начиная с метки R1_VD2M на мою.
  14. PCad 2001 Viewer (7мб) http://www.igtech.co.kr/html/download/pcad/2001viewer.zip P-CAD 2006 Viewer (9,9мб) http://www.altium.com/pcad/resources/downl..._19.01.7520.zip
  15. Я думаю подпрограмму мигания надо организовать вот так: 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 в начале программы!!!
×
×
  • Создать...