урок 3 - ПРОЦЕСОР С регистър 74HC5

 урок 3 - ПРОЦЕСОР С регистър 74HC595

https://www.youtube.com/watch?v=SsYDZx7yjM4

урок 2 - преместващ регистър 74HC595

урок 2 с видео в тубата за начинаещи и напреднали със лека хакерска връзка в електронната схема на урока, да се види какво с случва вътре в регистъра и как това се показва на изходите. нещо като дебъгване на ттл схемата на този преместващ регистър удобен и полезен за работа:) чети внимателно, печелиш обезателно !!!

линк към клипа в тубата >>> https://www.youtube.com/watch?v=sAsDBkWMYrk

 

урок - преместващ регистър 74HC595

урок - преместващ регистър 74HC595 - https://www.youtube.com/watch?v=LLxcAz1l2rE <> бърз урок за шифт регистрите да са научите как са управляват първо със бутони после със софтуер за RASPBERRY PICO RPI2040 🙂 който иска да научи нещо, да гледа, който не да ходи, да копа картофи 🙂

 

 

 

 

 

микрочип училище с много видео и софтуер

микрочип училище с много видео и софтуер >>> link >>>> https://mu.microchip.com/




таймери в ПИК процесорите - урок 7

код за урока за таймерите в пик процесорите -

link here >>> http://karadev.net/basto/?dir=timer_pic1829

препоръчително използване на NOTEPAD++ с настройка за разпознаване на С/С++ код за да можете да видите различните регистри, променливи и другите особенности на езика за програмиране на пик процесорите.

симулацията е в програмата протеус, версия последна има я в нета, или си начертайте собствена схема според графиките в предните уроци. успех

========================= MAIN.C =============================

#include <xc.h>
//#include <pic16f1829.h>
#include "initcpu.h"
#include "main.h"
#include "fuse.h"
#include "timers.h"            // here is interrupt function
//#include "lcd.h"            // for later use in this project

void main(void)
{    init_cpu();
        //PORTB = 8;
    while(1)
    {    
    // increase Postscaler value 0<>15
    if(T2OUTPS_plus == 1)
        { __delay_ms(350); //delay for button
            T2CONbits.T2OUTPS++;
             // sum + 16 for start count from RB4
            PORTB = PORTB + 16; // indicator plus + 1
            if(T2CONbits.T2OUTPS == 0)
            { PORTB = 0;} // null indicator
        }
    
     // decrease Postscaler value 0<>15
    if(T2OUTPS_minus == 1)
        {__delay_ms(350);//delay for button
            T2CONbits.T2OUTPS--;
            PORTB--; // indicator minus - 1
            if(T2CONbits.T2OUTPS == 0)
            { PORTB = 0; } // null indicator
        }
    
    // increase Prescale value 0<>3
    if(T2CKPS_plus == 1)
        {__delay_ms(350);//delay for button
            T2CONbits.T2CKPS++;PORTA++;
            if(T2CONbits.T2CKPS == 0)
            {
            PORTA = 0;    
            }
        }
} // END WHILE


} // END MAIN

========================= TIMERS.C =============================
функцята която обработва прекъсвате е предварително дефининирана в ХС8 и трябва само да я извиката както е показано в кода по-долу. вътре във функцията нулирате флага на таймера и след това изпълнявате командите който ви трябват. колкото и софтуер да напишете в таймера честотата на който  и да използвате таймер няма да се промени. което е целта на задачата.

========================= TIMERS.C =============================

#include <xc.h>
#include "main.h"
#include "timers.h"

unsigned char flag_timerirq = 0;

void __interrupt() timer2(void)
{    PIR1bits.TMR2IF = 0;
    //======================
    // check on scope for frequency VARIANT 1
    //notused6 = 1; //PORTAbits.RA5
    //notused6 = 0; //PORTAbits.RA5
    //======================
    // check on scope for frequency VARIANT 2
    if(flag_timerirq == 0) // full period freq
            {                    // multypile by 2 for
            LATA5 = 1;        // real frequency
                flag_timerirq = 1;
            }
        else
            {    LATA5 = 0;
                flag_timerirq = 0;
            }


} // END OF INTERRUPT TIMER2

========================= INITSPU.C =============================

стартирането, инициализацията на таймера и настройката на делителите на таймера се правят във този файл. промяната на стойностите на делителите може да направите където и да е в софтуера, стига това да ви върши работа. четете внимателно пдф файловете кои регистри са само четене и кои може и да бъдат променяни ако се налага от смисъла на приложението.

========================= INITSPU.C =============================


#include <xc.h>
//#include <pic16f1829.h>
#include "main.h"

void init_cpu(void)
{
OSCCON = 0x72; // 4F - 1Mhz // 6A - 4Mhz
                // 0x72 - 8Mhz // 0x7A - 16Mhz
OPTION_REG = 0b10000000; // TIMER0 REG // pull up is DISABLE

CM1CON0 = 0b00000000;
CM1CON1 = 0b00000000;

CM2CON0 = 0b00000000;
CM2CON1 = 0b00000000;
                
ADCON0 = 0b00000000;
ADCON1 = 0b00000000;

CLKRCON = 0b00000000; // slew rate is OFF
MDCON = 0b00000000; // slew rate is OFF

ANSELA = 0b00000000;
TRISA  = 0b00001000; // /MCLR = 1 always
PORTA = 0x00;
WPUA = 0x00;

ANSELB = 0b00000000;
TRISB  = 0b00000000;
PORTB = 0x00;
WPUB = 0x00;

ANSELC = 0b00000000;
TRISC  = 0b00000111;
PORTC = 0x00;
WPUC = 0x00;

MDMSODIS = 1; // logic cell disables

GIE = 1 ; // enable general interrupts FOR ALL
PEIE = 1; // enable peripherial interrupts FOR ALL
TMR2IE = 1; // // enable TIMER2 interrupts
// set bits from pdf for timer prescaler and post scaller
T2CON = 0b00000000; // and timer2 on / off
T2CONbits.T2OUTPS = 0; //0-15 // Timerx Output Postscaler Select bits
T2CONbits.T2CKPS = 0; //0-3  // Timer2-type Clock Prescale Select bits
T2CONbits.TMR2ON = 1; // enable timer2 to start


}
========================= INITSPU.C =============================

за всякакви въпроси, запитвания и контакти може да ползвате емайла : This email address is being protected from spambots. You need JavaScript enabled to view it.
или директен телефонен номер : 0887 28 49 01 - калоян радев

   

Така, екипът на блога за уроци е стигнал до решение за публикуване на новите уроци за pic процесори в платен вариант. Заплащането на таксите за определен период става след регистрация на всеки един потребител И ОДОБРЕНИЕ НА РЕГИСТРИРАНИЯ ПРОФИЛ ОТ СТРАНА НА АДМИНИСТРАТОРИТЕ НА САЙТА !!!! сайта за уроци НЕ ЗАДЪЛЖАВА ПОД КАКВАТО И ФОРМА НИТО ЕДИН ПОСЕТИТЕЛ да се регистрира!!!! регистрацията е свободна по желание на всеки, като това става чрез попълване на формата за регистрация в линка на главното меню. След одобряване на профила на регистрирания потребител, ще му бъде изпратен емайл за потвърждение, че профилът е одобрен и може да се пристъпи към плащане на такса за определен период, който потребителят е избрал и може да прочита статии, уроци, и всяка информация в секция РЕГИСТРИРАНИ ПОТРЕБИТЕЛИ. Таксите са написани в евро, защото имаме потребители извън страната, които плащат през интернет платежни системи като paypal. За България цените са в лева, като всеки може лесно да си пресметне левовата равностойност на таксата за определен  период. Плащанията стават през системата на ЕКОНТ, като всички разходи и тарифи за паричните преводи са за сметка на екипът на сайта. Във регистрационната форма има задължителни и незадължителни полета, като цялата попълнена информация е НЕВИДИМА за посетителите на сайта, инфото е само за контакти между администраторите и регистрираните потребители на платените статии и уроци.

Посетителите които НЕ са РЕГИСТРИРАНИ НЕ ДЪЛЖАТ НИЩО НА ЕКИПЪТ НА САЙТА !! могат свободно да си четат, свалят схеми, картинки и всякаква информация която смятат за полезна.

За РЕГИСТРИРАНИТЕ потребители, които са платили за определен период от време, информацията на сайта е достъпна изцяло. Както безплатните така и платените уроци и статии в секция РЕГИСТРИРАНИ.

След изтичане на платеният период, РЕГИСТРИРАНИТЕ потребители, спират да виждат платените уроци, като остават само статиите и уроците които са БЕЗПЛАТНИ ЗА ВСИЧКИ потребители. Информацията за РЕГИСТРИРАНИТЕ ПОТРЕБИТЕЛИ и тяхните логин/пароли се запазват, като могат да заявят продължаване на платеният период чрез подаване на заявка през формата за избор на период или по емайл. След плащането на таксата за новият период, профилът ще бъде активиран и регистрираният потребител ще може отново да чете статии и уроци както и тези които е пропуснал в неплатеният период. Екипът на сайта разбира ситуацията че даден потребител може да пропусне голям период от време в който пет или шест урока да бъдат пропуснати. Когато се регистрира и предплати периода регистрираният потребител ще може да си прочете пропуснатите пет или шест урока без да доплаща за това.

КЪМ РЕГИСТРИРАНИТЕ ПОТРЕБИТЕЛИ >>>> Попълвайте точно информацията в задължителните полета, както и тази в незадължителните ЗАЩОТО >>> тази информация ще бъде необходима когато активираме вашите акунти в системата. В разписката на еконт имената и електронната поща, както и номера на телефона ще служат за информация на администраторите за да знаят точно на кой потребител да активират акаунта. ИНФОРМАЦИЯТА ОТ ФОРМАТА СЪС НЕЗАДЪЛЖИТЕЛНИТЕ ПОЛЕТА НЕ СЕ ВИЖДА НИКЪДЕ В САЙТА !!! ВИЖДА СЕ САМО В КОНТРОЛНИЯТ ПАНЕЛ НА СИСТЕМАТА и служи за ориентир при активирането на вашите платени акаунти.

СЛЕДВАТ МАЛКО ГРАФИКИ ЗА ОРИЕНТИР СЪС ОБЯСНЕНИЯ ЗА ПОТРЕБИТЕЛИТЕ КОЕ ВЪВ ФОРМАТА ЗА РЕГИСТРАЦИЯ КАКВО СЕ ПОПЪЛВА



СНИМКА ДВЕ :



СНИМКА 3 :



СНМКА 4 :



ЧЕТЕТЕ ВНИМАТЕЛНО ИНФОТО и МИСЛЕТЕ !!!! СЪС ГЛАВИТЕ !!!!