Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 20.03.2018
Сообщений: 1
1

Нужно немного изменить программу на asm для PIC микроконтроллера (PIC12F629)

20.03.2018, 13:05. Показов 1763. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста, нужно немного изменить программу для этой схемы (код на сайте) http://kazus.ru/shemes/showpage/0/1532/1.html

Вот так будет выглядеть доработанная схема
https://www.cyberforum.ru/atta... 1521540214

Нужно написать код так, чтобы когда из комнаты вышел последний человек, низкий уровень сигнала на выходе GP0 появлялся не сразу, а спустя 5 секунд. И одновременно когда вышел последний человек, на выходе GP3 появлялось напряжение длительностью 5 сек, которое будет идти на цепь с динамиком.

Это будет работать так:
Когда люди входят и выходят схема работает так, как работала изначально без всяких звуковых сопровождений, но когда выходит последний человек и в комнате никого не остается, схема начинает пищать 5 секунд и после сразу выключает свет.

Вот код:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
LIST P=12F629, F=INHX8M
include "P12F629.inc"
__CONFIG _CP_OFF&_CPD_OFF&_BODEN_OFF&_MCLRE_OFF&_PWRTE_ON&_ WDT_OFF&_INTRC_OSC_NOCLKOUT
 
CBLOCK 0X20
K ;Счетчик людей.
N ;Счетчик времени на проверку действительности пересечения луча.
L_SER
H_SER   
Q_SER   ;Переменные для выдержки паузы между сериями вспышек.
L_SER_SET
H_SER_SET
Q_SER_SET
L_OFF
H_OFF   ;Переменные для выдержки паузы между отдельными вспышками.
L_OFF_SET
H_OFF_SET
L_ON
H_ON    ;Переменные для выдержки паузы на длительность вспышки.
L_ON_SET
H_ON_SET
K_LD    ;Для хранения кол-ва вошедших людей в ПП FLASH_LD.
K_ON    ;Флаг "светодиод горит(1)/не горит(0)".
ENDC
ORG 0X2100
DE  "Accoun- tant. Счетчик-выключатель. Юшин ВН 8-916 4534694 "
 
ORG 0X3FF
RETLW   0XB0    
 
ORG 0x0000
GOTO INIT
INIT 
BCF INTCON,7
BSF STATUS , RP0
CALL    0X3FF   ;Настройка частоты внутр. такт. ген.
MOVWF   OSCCAL
CLRF    T1CON   ;Вкл. внутр. такт. генератор.
BCF STATUS , RP0
CLRF GPIO
MOVLW 0x07  ;Компаратор выкл.
MOVWF CMCON
BSF STATUS , RP0
MOVLW 0x06  ;GP1 & GP2 на вход.
MOVWF TRISIO
BCF STATUS , RP0
BCF GPIO , 00
BCF GPIO , 03
BCF GPIO , 04
BCF GPIO , 05
MOVLW   .255
MOVWF   L_SER_SET
MOVWF   L_SER
MOVLW   .255
MOVWF   H_SER_SET
MOVWF   H_SER
MOVLW   .4
MOVWF   Q_SER_SET
MOVWF   Q_SER
 
MOVLW   .255
MOVWF   L_OFF_SET
MOVWF   L_OFF
MOVLW   .100
MOVWF   H_OFF_SET
MOVWF   H_OFF
 
MOVLW   .255
MOVWF   L_ON_SET
MOVWF   L_ON
MOVLW   .10
MOVWF   H_ON_SET
MOVWF   H_ON
 
 
START
CLRF    K
CLRF    K_LD
CLRF    K_ON
LABEL_1
CLRF    N
CALL    FLASH_LD
MOVLW   0X00
SUBWF   K,0
BNZ LABEL_2
BCF GPIO,0  ;Реле выкл.
BCF GPIO,4  ;LD выкл.
LABEL_3
BTFSC   GPIO,1  ;Проверка 1-го луча.
GOTO    LABEL_1
INCFSZ  N
GOTO    LABEL_3
LABEL_4
BTFSS   GPIO,1  ;Ожидание размыкания 1-го луча.
GOTO    LABEL_4
LABEL_5
BTFSC   GPIO,2  ;Проверка 2-го луча.
GOTO    LABEL_1
INCFSZ  N
GOTO    LABEL_5
LABEL_6
BTFSS   GPIO,2  ;Ожидание размыкания 2-го луча.
GOTO    LABEL_6
LABEL_7
BTFSS   GPIO,1
GOTO    LABEL_3
INCFSZ  N
GOTO    LABEL_7
INCF    K
BSF GPIO,0  ;Реле вкл.
GOTO    LABEL_1
 
LABEL_2
BTFSC   GPIO,2
GOTO    LABEL_3
INCFSZ  N
GOTO    LABEL_2
LABEL_8
BTFSS   GPIO,2  ;Ожидание размыкания 2-го луча.
GOTO    LABEL_8
LABEL_9
BTFSC   GPIO,1  ;Ожидание размыкания 1-го луча.
GOTO    LABEL_1
INCFSZ  N
GOTO    LABEL_9
LABEL_10
BTFSS   GPIO,1
GOTO    LABEL_10
BTFSS   GPIO,2
GOTO    LABEL_2
DECF    K   ;Уменьшить кол-во людей.
GOTO    LABEL_1
 
;ПП мигания светодиода. Кол-во миганий=кол-ву вошедших.
FLASH_LD
MOVFW   K_LD    ;Закончилось ли кол-во людей?
SUBLW   .0
BNZ F_label_1
DECFSZ  L_SER
RETURN
MOVFW   L_SER_SET
MOVWF   L_SER
DECFSZ  H_SER
RETURN
MOVFW   H_SER_SET
MOVWF   H_SER
DECFSZ  Q_SER
RETURN
MOVFW   Q_SER_SET
MOVWF   Q_SER
MOVFW   K
MOVWF   K_LD
F_label_1
MOVFW   K_ON    ;Светодиод включен? (1-да, 0-нет).
SUBLW   .1
BZ  F_Label_2
DECFSZ  L_OFF
RETURN
MOVFW   L_OFF_SET
MOVWF   L_OFF
DECFSZ  H_OFF
RETURN
MOVFW   H_OFF_SET
MOVWF   H_OFF
BSF GPIO,4
MOVLW   1
MOVWF   K_ON
F_Label_2
DECFSZ  L_ON
RETURN
MOVFW   L_ON_SET
MOVWF   L_ON
DECFSZ  H_ON
RETURN
MOVFW   H_ON_SET
MOVWF   H_ON
CLRF    K_ON
BCF GPIO,4
DECF    K_LD
RETURN  
END
0
Миниатюры
Нужно немного изменить программу на asm для PIC микроконтроллера (PIC12F629)  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.03.2018, 13:05
Ответы с готовыми решениями:

Переписать программу с ASM на C для PIC
Имеется исходник для pic18 на ASM(с комментариями) нужно нарисовать блок схему алгоритма и...

нужно немного изменить программу)
подскажите, пожалуйста, что нужно изменить в программе, чтобы, например, вместо (5) + i(2) было 5 +...

extra-pic и pic12f629
попросили помочь прошить сабжевый контроллер, программатор дали. сейчас подключил согласно статьи к...

Нужен пример программы для PIC микроконтроллера
Здраствуйте! Помогите начинающему освоить pic микроконтроллер.А если точнее научите писать...

1
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
20.03.2018, 19:00 2
Легко. Ваши предложения?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.03.2018, 19:00

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

BT Portfolio (v 3.0.9) нужно немного изменить вывод текста для слайда
Установил BT Portfolio v. 3.0.9 (Joomla 3.4) В нем очень хороший слайдер, но мне нужно изменить...

не могу изменить программу для немного другого условия
первое условие: дан текстовый файл из чисел, создать новый файл и записать в него минимальный и...

Немного изменить программу
как сделать что бы программа СЧИТАЛА мои баллы??

PIC. Светофор (ASM)
Всем привет. Захотелось сделать светофор на PIC. (Мой первый опыт) Но есть часть проблемного...

Немного изменить лёгонькую программу
Дан тестировщик, который загружает выбранный Вами тест, а я хочу чтобы он сразу открывал...

Необходимо немного изменить программу
Всем привет! Помогите, пожалуйста изменить программу: сейчас она меняет букву на прописную. А...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.