реклама на сайте
подробности

 
 
> очень нужна помощь с пиком
Mari-999
сообщение Oct 31 2006, 20:07
Сообщение #1


Участник
*

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



помогите, пожалуйста с пиком 16f84А, лаба заключается в следующем на любой вывод подключить светодиод, когда 0 светодид горит - 2 секунды, когда 1 светодиод не горит 1 секунду...и так цикл, прогу надо написать на ассемблере, и подробно опишите пожалуйста, чтоб разобраться, спасибо
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
upc2
сообщение Nov 8 2006, 05:34
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 29-09-05
Из: Донецк
Пользователь №: 9 063



napper
Написана Си и компилятор выдал аsm- файл.Для начинающих сложновато.
Если все работает, то для этого примера подойдет ваша схема.Только светодиод
надо включить как я показал.
Go to the top of the page
 
+Quote Post
napper
сообщение Nov 8 2006, 05:42
Сообщение #3


Участник
*

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



Цитата(upc2 @ Nov 8 2006, 08:34) *
napper
Написана Си и компилятор выдал аsm- файл.

Ничего подобного!!! Я сам писал, ручками! Запускал в MPLAB, все работает.
Я изначально учился программировать пики в ассемблере, поэтому знаю что говорю.
И чего тут сложного? Куда уж проще? Как раз я и написал наиболее простой вариант, где все просто и понятно. Или вы можете предложить что-то лучше?

P.S. Насчет светодиода согласен...

А куда пропал автор темы?
Go to the top of the page
 
+Quote Post
Mari-999
сообщение Nov 10 2006, 19:39
Сообщение #4


Участник
*

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



Цитата(napper @ Nov 8 2006, 08:42) *
Цитата(upc2 @ Nov 8 2006, 08:34) *

napper
Написана Си и компилятор выдал аsm- файл.

Ничего подобного!!! Я сам писал, ручками! Запускал в MPLAB, все работает.
Я изначально учился программировать пики в ассемблере, поэтому знаю что говорю.
И чего тут сложного? Куда уж проще? Как раз я и написал наиболее простой вариант, где все просто и понятно. Или вы можете предложить что-то лучше?

P.S. Насчет светодиода согласен...

А куда пропал автор темы?

Добрый всем!
Спасибо за помощь!!!!!!!
Я здесь! Извиниюсь за не корректное задание. Задание состоит в следующем на RA4 (3 нога) повесили резистор, подключенный к питанию (если резистор подключен к питанию, то на RA4 будет 1), а на RA1 (18 ножка) через резистор подключен диод, катодом в плюс питание. Так вот когда на RA4 у нас единичка, то светодиод мигает с частотой 1 Гц, причем мигает 17 сек, а потом гаснет, если резистор отпаять, то на RA4 будет ноль и светодиод не горит.
Я набросала программку, но она работает не так 1-мигает с частотой 1 Гц, 0- светодиод горит и не смогла разобраться, как сделать, чтобы мигал 17 сек (кварц на 8МГц)
Вот программа
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



#DEFINE Z STATUS,2 ;бит нулевого результата
#DEFINE VD2 PORTA,1 ;светодиод VD2
#DEFINE R1 PORTA,4 ;резистор


ORG 0
GOTO BEGIN
;
ORG 100h
BEGIN
CALL INIT_PORTS ;вызов подпрограммы
;инициализации портов
INIT_PORTS ;подпрограмма инициализации портов

MOVLW 0xFF ;установка линий портов А В в единичное состояние
MOVWF PORTA
MOVWF PORTB
BSF STATUS,RP0 ;переход на банк 1
MOVLW 0x1C ;настройка линий RA0 и RA1 на вывод, другие на ввод
MOVWF TRISA

MOVLW 0x01 ;настройка линии RB0 на ввод, другие на вывод
MOVWF TRISB

BCF STATUS,RP0 ;возврат в банк 0
;RETURN ;возврат из подпрограммы
;
LOOP
CLRWDT ;сброс сторожевого таймера
CALL GET_RA ;вызов подпрограммы GET_RA
CALL R1_VD2M ;вызов подпрограммы R1_VD2M мигание светодиода

GOTO LOOP ;переход к метке LOOP для
DELAY_E ;подпрограмма формирования задержки

MOVWF COUNT2 ;загрузка W в регистр COUNT2
CLRF COUNT1 ;сброс содержимого регистра COUNT1
LOOPD
NOP ;пустая команда
DECFSZ COUNT1,F ;декремент COUNT1
GOTO LOOPD ;повторение цикла 256 раз
CLRWDT ;сброс сторожевого таймера
DECFSZ COUNT2,F ;декремент COUNT2
GOTO LOOPD ;повторение цикла
RETURN ;возврат из подпрограммы
;

GET_RA ;подпрограмма чтения состояния порта А

MOVF PORTA,W ;чтение состояния порта A в W
MOVWF TEMPA ;пересылка W в TEMPA
RETURN ;возврат из подпрограммы

;
R1_VD2M ;подпрограмма мигания светодиода
;VD2 при при наличии резистора пропустить команду если TEMPA,4=0 резистор подключен
BTFSC TEMPA,4

GOTO V0 ;перейти на 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
V0
BTFSS TEMPA,4 ;пропустить команду, если TEMPA,4=1 резистор не подключен

GOTO V1 ;перейти на V1
BCF VD2 ;светодиод не горит -а он горит!!!!!
V1
RETURN ; возврат из под программы


END
и нужна подпрограмма на 17 сек, чтоб мигал, а потом перестал!!!
Go to the top of the page
 
+Quote Post
dosikus
сообщение Nov 11 2006, 09:57
Сообщение #5


Участник
*

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



Цитата(Mari-999 @ Nov 10 2006, 22:39) *
а на RA1 (18 ножка) через резистор подключен диод, катодом в плюс питание.


Вы уверены?
Светодиод катодом к плюсу?
И чего вы ожидаете ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Mari-999   очень нужна помощь с пиком   Oct 31 2006, 20:07
- - Herz   Цитата(Mari-999 @ Oct 31 2006, 22:07...   Nov 1 2006, 06:24
- - napper   Цитата(Mari-999 @ Nov 1 2006, 00:07)...   Nov 4 2006, 22:38
|- - upc2   Цитата(napper @ Nov 5 2006, 01:38) [ Что ...   Nov 6 2006, 05:29
- - napper   Схема то хоть такая?   Nov 6 2006, 12:27
|- - upc2   Цитата(napper @ Nov 6 2006, 15:27) Схема ...   Nov 6 2006, 14:03
- - napper   Действительно непонятно: если на ноге 0, то светод...   Nov 6 2006, 15:58
|- - upc2   Цитата(napper @ Nov 6 2006, 18:58) Действ...   Nov 7 2006, 05:25
|- - napper   Я думаю подпрограмму мигания надо организовать вот...   Nov 10 2006, 20:36
|- - Mari-999   [quote name='napper' date='Nov 10 2006...   Nov 14 2006, 12:31
|- - napper   Цитата(Mari-999 @ Nov 14 2006, 15:31...   Nov 14 2006, 13:07
|- - Mari-999   Цитата(napper @ Nov 14 2006, 16:07) Цитат...   Nov 14 2006, 13:52
|- - napper   Полная версия программы: КодLIST p=16F84 INTCON E...   Nov 14 2006, 19:06
|- - Mari-999   Цитата(napper @ Nov 14 2006, 22:06) О рез...   Nov 16 2006, 04:15
|- - Edmundo   Цитата(Mari-999 @ Nov 16 2006, 07:15...   Nov 16 2006, 05:20
|- - napper   Цитата(Mari-999 @ Nov 16 2006, 07:15...   Nov 16 2006, 05:39
|- - Mari-999   Цитата(napper @ Nov 16 2006, 08:39) Цитат...   Nov 16 2006, 06:53
||- - napper   Цитата(Mari-999 @ Nov 16 2006, 09:53...   Nov 16 2006, 07:46
||- - Mari-999   Цитата(napper @ Nov 16 2006, 10:46) Цитат...   Nov 19 2006, 07:06
||- - Edmundo   Цитата(Mari-999 @ Nov 19 2006, 10:06...   Nov 19 2006, 11:51
||- - napper   Цитата(Edmundo @ Nov 19 2006, 14:51) 5 - ...   Nov 19 2006, 15:01
|- - Edmundo   Цитата(napper @ Nov 16 2006, 08:39) А при...   Nov 16 2006, 09:23
- - napper   Условий Вашей задачи я не знаю, поэтому генератор ...   Nov 7 2006, 16:14
|- - Edmundo   Цитата(napper @ Nov 7 2006, 19:14) Е-мое,...   Nov 9 2006, 09:35
|- - napper   КодLIST p=16F84 INTCON EQU 0x0B OPTION EQU ...   Nov 10 2006, 20:23
|- - Mari-999   Цитата(dosikus @ Nov 11 2006, 12:57) Цита...   Nov 11 2006, 22:43
- - upc2   Тогда приношу свои извинения. Куда делся автор не ...   Nov 8 2006, 06:10
- - upc2   MPASM старенький компилятор. Пора переходить на MP...   Nov 16 2006, 09:38
- - MariSev   Цитата(Mari-999 @ Oct 31 2006, 20:07...   Nov 21 2006, 21:03


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 12:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01436 секунд с 7
ELECTRONIX ©2004-2016