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

PIC16F84A

30.11.2015, 17:10. Просмотров 520. Ответов 5
Метки нет (Все метки)

Не давно познакомился с программой Proteus, как отображать на одном 7 сегментном дисплее разобрался , а вот с 2 проблема. схема есть но вот как на PIC16F84A отобразить число на пример 12 не могу понять. Схема в Proteus ниже . Помогите с кодом.
0
Миниатюры
PIC16F84A  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2015, 17:10
Ответы с готовыми решениями:

PIC16F84A
Подскажите что будет легче сделать для начинающего? 1)На основе микроконтроллера разработать...

PIC16F84A+DS18B20
Собственно, такая проблема. Накатал программку для работы с датчиком DS18B20 и просимулировал в...

Светофор на PIC16F84A
Получил задание по микроконтроллерам, написать программу имитации светофора на PIC16F84A на...

Тактирование pic16f84a
Кто-нибуть пробовал тактировать сабж от внешней RC цепи? Интересно - насколько стабильно такое...

5
Модератор
8132 / 6008 / 798
Регистрация: 14.02.2011
Сообщений: 20,765
30.11.2015, 18:55 2
почитай что такое динамическая индикация
в двух словах
выводим число 1
подключаем 1 разряд
ждем
выключаем первый разряд
выводим число 2
включаем второй разряд
ждем
выключаем второй разряд
идем в начало
0
890 / 531 / 80
Регистрация: 15.05.2012
Сообщений: 3,118
01.12.2015, 09:19 3
И убираем резисторы с выводов 1 и 2 дисплея.
Пункты "ждем" - 10мс.
0
1 / 1 / 0
Регистрация: 13.04.2013
Сообщений: 69
01.12.2015, 15:54  [ТС] 4
саму логику я то понимаю , но вот с кодом проблема. нужен на Ассемблере , а я с ним не очень. И если можно помогите с кодом.
0
890 / 531 / 80
Регистрация: 15.05.2012
Сообщений: 3,118
01.12.2015, 20:13 5
Цитата Сообщение от Netkas Посмотреть сообщение
как отображать на одном 7 сегментном дисплее разобрался
Цитата Сообщение от Netkas Посмотреть сообщение
с кодом проблема
Что-то у меня не срастается.
0
1 / 1 / 0
Регистрация: 13.04.2013
Сообщений: 69
02.12.2015, 19:24  [ТС] 6
Вот такой код для вывода чисел от 0 до 9 на один сегмент с задержкой 300000 машиных циклов . А вот изменить его для 2 сегментов не получается . не могу понять как их переключать между собой . Да и если можете помогите кодом , очень нужно.

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
#include p16f84a.inc                
; Include register definition file
 
;====================================================================
; VARIABLES
;====================================================================
      VARIABLE I=0CH ;0,1,2,...9
      VARIABLE Reg_1=0DH;
      VARIABLE Reg_2=10H;
      VARIABLE Reg_3=2CH;
;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================
 
      ; Reset Vector
RST   code  0x0 
      goto  Start
 
;====================================================================
; CODE SEGMENT
;====================================================================
CIFRA ADDWF PCL,F
      RETLW B'00111111';0
      RETLW B'00000110';1
      RETLW B'01011011';2
      RETLW B'01001111';3
      RETLW B'01100110';4
      RETLW B'01101101';5
      RETLW B'01111101';6
      RETLW B'00000111';7
      RETLW B'01111111';8
      RETLW B'01101111';9
      
      ;delay = 300'000 machine cycles
Pause       movlw       .153
            movwf       Reg_1
            movlw       .134
            movwf       Reg_2
            movlw       .2
            movwf       Reg_3
wr          decfsz      Reg_1, F
            goto        wr
            decfsz      Reg_2, F
            goto        wr
            decfsz      Reg_3, F
            goto        wr
        RETURN
        
PGM   code
Start
      ; Write your code here
      BSF STATUS,RP0
      CLRF TRISB
      BCF STATUS,RP0
      CLRF I
Loop  MOVF I,W
      CALL CIFRA 
      MOVWF PORTB
      call Pause
      INCF I,F
      movlw .10
      SUBWF I,W
      BTFSS STATUS,Z
      goto  Loop
      clrf  I
      goto  Loop
 
;====================================================================
      END
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2015, 19:24

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

LC- Metr на PIC16F84A
Вот сделал себе приборчик по материалам с этого сайта...

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

Выручайте PIC16F84A
Вообще ничего не понимаю в микроконтроллерах. В общем есть 2 задачи с PIC16F84A 1: Напишите...

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


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

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

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