Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: demanik  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » PIC+74CH595 (Опять LED индикатор и регистр 74CH595)
PIC+74CH595
PINCOD Дата: Ср, 30.11.2016, 09:11  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 37
Репутация: 1   ±
Замечания:   ±
На сайте с 05.10.2011

Статус: Offline

Всем доброго времени суток друзья.Не хотел ни кого тревожить,но решил с экономить на ногах камня и пристроил регистр 74CH595.Но при отображении для пробы числа 1234,почему то получается такая картина 1233.Не пойму где в коде косяк?Буду рад кого - нибудь услышать

  Device = 16F628A
  Xtal = 4 ;частота кварца 4МГц
  'Declare Create_Coff = 1
  Reminders = 0
  Config BODEN_OFF, BOREN_OFF, CP_OFF, DATA_CP_OFF, PWRTE_ON, WDT_OFF, LVP_OFF, MCLRE_OFF, XT_OSC
  Reminders = 1
  Declare All_Digital = On 
  Declare PortB_Pullups = OFF           
  TRISA = %00000000
  TRISB = %00000000
  CMCON = 7 'Компаратор нам не нужен, отключим ...  
'--------------------------------------------------------------------------------------------------- 
Symbol SH_CP = PORTB.7 ;порт управления регистром    
Symbol DS    = PORTB.6 ;порт управления регистром
Symbol ST_CP = PORTB.5 ;порт управления регистром
Symbol RAZ1  = PORTB.1 ;порт упр.1 разрядом индикатора
Symbol RAZ2  = PORTB.2 ;порт упр.2 разрядом индикатора
Symbol RAZ3  = PORTB.3 ;порт упр.3 разрядом индикатора
Symbol RAZ4  = PORTB.4 ;порт упр.4 разрядом индикатора 
'---------------------------------------------------------------------------------------------------    
Dim N As Byte     'для выделения цифры из числа
Dim Value As Byte 'Переменная для осуществления табличного конвертирования цифры
Dim RAZR As Byte  'переменная для управления табличного конвертирования разрядами ССИ
Dim A As Dword    ;переменная № разряда
Dim B As Byte     ;переменная для общего счета                           
A = 1234

  
'-------------------------------Инициализация микроконтроллера--------------------------------------
MAIN:   

GoSub Indic

GoTo MAIN
Indic:
'---------------Зажигание первого справа разряда индикатора и вывод на него цифры------------------- 
N = 1'Dig A,3 'Выделяем из числа 1-ю с права цифру
GoSub Convert 'и конвертируем в код ССИ  
SHOut DS, SH_CP, MsbFirst, [Value]'Проталкиваем в регистр семисегментный код
 
RAZ1 = 1 : RAZ2 = 0 : RAZ3 = 0 : RAZ4 = 0 ;зажигаем 1 разряд
ST_CP = 1 'Защелкиваем данные
DelayMS 4 
ST_CP = 0 'Обнуляем защелку данных

'---------------Зажигание второго справа разряда индикатора и вывод на него цифры------------------- 
N = 2'Dig A,2 'Выделяем из числа 2-ю с права цифру 
GoSub Convert 'и конвертируем в код ССИ  
SHOut DS, SH_CP, MsbFirst, [Value]'Проталкиваем в регистр семисегментный код
 
RAZ1 = 0 : RAZ2 = 1 : RAZ3 = 0 : RAZ4 = 0 ;зажигаем 2 разряд
ST_CP = 1 'Защелкиваем данные
DelayMS 4 
ST_CP = 0 'Обнуляем защелку данных

'---------------Зажигание третьего справа разряда индикатора и вывод на него цифры------------------ 
N = 3'Dig A,1 'Выделяем из числа 3-ю с права цифру 
GoSub Convert 'и конвертируем в код ССИ 
SHOut DS, SH_CP, MsbFirst, [Value]'Проталкиваем в регистр семисегментный код
 
RAZ1 = 0 : RAZ2 = 0 : RAZ3 = 1 : RAZ4 = 0  ;зажигаем 3 разряд
 
ST_CP = 1 'Защелкиваем данные
DelayMS 4 
ST_CP = 0 'Обнуляем защелку данных

 
'---------------Зажигание четвертого справа разряда индикатора и вывод на него цифры---------------- 
N = 4'Dig A,0 'Выделяем из числа 4-ю с права цифру 
GoSub Convert 'и конвертируем в код ССИ  
SHOut DS, SH_CP, MsbFirst, [Value]'Проталкиваем в регистр семисегментный код
 
RAZ1 = 0 : RAZ2 = 0 : RAZ3 = 0 : RAZ4 = 1  ;зажигаем 4 разряд
ST_CP = 1 'Защелкиваем данные
DelayMS 4 
ST_CP = 0 'Обнуляем защелку данных

Return 
'----------------------------------------------------------------------------------------------------  

Convert: 

Value = LookUp N, [192,249,164,176,153,146,130,248,128,144]'156] 'маска для ССИ с общ.анодом

'Value = LookUp N, [63,6,91,79,102,109,124,7,127,103]   'маска для ССИ с общ.катодом

Return 
'---------------------------------------------------------------------------------------------------
Прикрепления: 0862037.jpg(330.2 Kb) · PIC74HC595.dsn(93.4 Kb) · PIC74HC595.bas(3.5 Kb)

Сообщение отредактировал PINCOD - Ср, 30.11.2016, 12:25
ЯНДЕКС Дата: 30.11.2016
ivan_fd Дата: Вт, 13.11.2018, 14:49  |                                                                                                                Сообщение # 31
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1009
Репутация: 82   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Anatoliy1000, возьмите тестер и напишите нам сюда какой вывод МК идет на какой вывод 74HC595.
МК у Вас 12F675???
Тот модуль можно проверить вообще без контроллера, проводками потыкать.

Схема вашего модуля должна быть похожа на:
Прикрепления: 3609467.jpg(75.6 Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Вт, 13.11.2018, 15:03
ЯНДЕКС Дата: 13.11.2018
anatol Дата: Вт, 13.11.2018, 23:32  |                                                                                                                Сообщение # 32
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 577
Репутация: 18   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Поигрался с примером PINCOD - погоже глюки Протеуса.  wacko  Завтра продолжу. smile
ivan_fd Дата: Ср, 14.11.2018, 00:38  |                                                                                                                Сообщение # 33
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1009
Репутация: 82   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

anatol, дата создания сообщения 2016 год. Pincod вроде бы разобрался.

Меня все время преследуют умные мысли...но я быстрее!!!
Anatoliy1000 Дата: Ср, 14.11.2018, 04:13  |                                                                                                                Сообщение # 34
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 92
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Цитата доцент2 ()
Вы под свой контроллер 628А переделали?
У меня 675

Добавлено (14.11.2018, 04:16)
---------------------------------------------

Цитата ivan_fd ()
возьмите тестер и напишите нам сюда какой вывод МК идет на какой вывод 74HC595
Попробую тестером. Как проводками потыкать не понимаю.


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
ivan_fd Дата: Ср, 14.11.2018, 13:21  |                                                                                                                Сообщение # 35
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1009
Репутация: 82   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Цитата Anatoliy1000 ()
Попробую тестером. Как проводками потыкать не понимаю.

Снял видео как потыкать проводками. Может поймете принцип работы со сдвиговым регистром.





И файл протеуса.
Прикрепления: 9592752.jpg(107.5 Kb) · DynamicInd.pdsp.zip(16.0 Kb)


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Ср, 14.11.2018, 13:23
Форум Picbasic.ru » Программирование МК » Proton PicBasic » PIC+74CH595 (Опять LED индикатор и регистр 74CH595)
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск: