Mikro nəzarətçi sxemləri

Mikro nəzarətçi sxemləri

Jump to TINA Main Page & General Information 

TINA bir çox (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrokreditlər; yeni MCU'lar daim əlavə olunur. Siz prosessorda çalışan proqramı görə bilərik, dəyişdirə bilərsiniz və əlbəttə, öz kodunuzu yarada bilərsiniz.

TINA'daki mikroişlemciler üçün proqram təminatının iki yolu var. Standart kompilyator (məsələn, PIC üçün MPLAB) tərəfindən hazırlanmış ikili kod və diskussiya faylını istifadə edə bilərsiniz və ya montaj kodunu bərpa etmək və bərpa etmək üçün Tina-da bərpa etmək üçün yükləyə bilərsiniz.

Birləşmə dili proqramlaşdırma ilə PIC mikrokontrolör istifadə edərək, sadə bir counter devresi yaratmaq

C dili proqramlaşdırma ilə PIC mikrokontrolöründən istifadə edərək, sadə bir counter devresi yaratmaq

TINA istifadə edərək əsas mikrokontrolörün çıxarılması

TINA mikroişlemcilerinde yalnız tək deyil, eyni zamanda analog, rəqəmsal, HDL və ya digər modellər ilə birlikdə simulyasiya edilə bilər.

MCU kodunu işlətmək və redaktə etmək

PIC Flasher.TSC düyməsi ExamplesMicrocontrollersPic qovluğundan yükləyin.

16F73 PIC mikrokontrolöründən istifadə edərək şematik aşağıdakı 16F73 PIC mikrokontrolör ilə görünür:

Mikro nəzarətçi sxemləri, şəkil 1

Bu dövr birbaşa irəliləyir. Basın necə işlədiyini görmək üçün düyməni basın.

Ekran bir-birinə addım atmalıdır.

ASM kodunu görmək üçün MCU-yə cüt vurun. (Tez Başlanğıc kitabçasında ətraflı məlumat bax).

TINA, doğrudan TINA'daki kaynak kodunu düzenleyip değiştirebileceğiniz harika bir özelliğe malikdir.

Kodda aşağıdakı dəyişiklikləri edək:

25 satırında (yuxarıda seçilmiş) təlimatı dəyişdirin (kod redaktoru penceresinin sağ alt kökündə satır nömrəsini görə bilərsiniz):

addlw 01H dən

02H əlavə etmək

Değiştirilen kodu TINA'ya basaraq qeyd edin simgesini açın və açıq MCU pəncərələrini bağlayın.

Siz basın varsa düyməsini indi, artım 2 olacaq!

Değiştirilen kodu avtomatik olaraq TINA. TSC faylında qeyd ediləcəyini unutmayın.

Hata ayıklayıcısını istifadə

Daha interaktivliyi olan bir proqram görək.

ExamplesMicrocontrollersPic qovluğundan PIC16F84interrupt_rb0.TSC TINA nümunəsini yükləyin.

Basın düyməsini basın. Əvvəlcə görünür ki, heç bir şey baş vermir.

Lakin, SW-HL1 anahtara tıkladığınız zaman, keçid aşağıdan Yüksəyə dəyişdikdə ekran 1 tərəfindən irəliləyir.

PIC-lərin ara vermə qabiliyyəti bizə keçid dəyişikliklərini aşkar etməyə imkan verir.

İndi TINA'nın interaktiv ASM hata ayıklayıcısını istifadə edərək əməliyyatı daha ətraflı görək.

Hata ayıklayıcısını aktivləşdirmək üçün Analiz menyusunda Seçim seçin. Sonra "Analiz Seçimləri Seçimləri" informasiya qutusunda aşağıda göstərildiyi kimi, "MCU Kodu hata ayıklayıcısını onay kutusunu etkinleştir" seçin.

OK düyməsini basın və MCU debugger görünür:

Proqramın icrasını addım-addımla basaraq izləyin Düyməni İzləyin.

14 tıklamalarından sonra PT1: proqramı sonsuz bir loopda olduğu yerdəyik.

PT1: INCF TEMP, F GOTO PT1

İndi SW-HL1 anahtara basın və onu Yüksək olaraq dəyişin. (Kursorun yuxarıya işarə edən bir oka çevrildiyi zaman vurmalısınız). Hata ayıklayıcısına geri qayıdın və basın Düyməni iki dəfə izləyin. Proqram kəsilməni və içəriyə atlayacağını tanıyacaq


NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT

COUNTER və surətini PORT A-a artırın və çıxış 1 olacaq. Bundan sonra proqram PT1-da "sonsuz dövrəyə" dönəcəkdir.

Kodun hata ayıklayıcısında redaktə edilməsi

İndi proqramda kiçik bir dəyişiklik edək ki, hata ayıklayıcısını istifadə edin. INCF SAYININ Duplicate, Copy and Paste istifadə edərək F ifadəsi belədir:

        INT_SERV:
        INCF COUNTER, F 
        INCF COUNTER, F 
        MOVF COUNTER, 0
        MOVWF PORTA    

İndi basın proqram soruşacaq:

Bəli düyməsini basın və basın yenidən düyməni basın. Artıq keçid 2 hər keçid alt-yüksək dəyişməsində olacaq.

Davamın düyməsini basaraq hata ayıklayıcısının Davamlı Çalışma rejimində da kontrol edə bilərsiniz düyməsini basın.

Hata ayıklayıcısı sürətli çalışacaq olsa da, keçid dəyişdirərkən "sonsuz dövr" və sonra Interrupt server qisminə atlama (INT_SERV:) görünə bilər.

Bir kəsmə nöqtəsi etmək

Addım-addım rejimi istifadə edərək, proqramda müəyyən bir nöqtəyə gəlmək çox vaxt mümkün deyil. Min addımlar atmaq üçün kifayət qədər səliqəli olsanız belə, proqramın hərəkəti istədiyiniz yerdə addım atmağa imkan vermir.

Müəyyən bir xətt üçün dayandırmaq üçün hədəf bəyanatını "dayandırma nöqtəsi" qoyaraq qeyd edə bilərsiniz.

Proqramı, istifadə edərək, hata ayıklayıcısının davamlı rejimində işləyin Komandanı çalıştırın və indi qeyd olunan əmri yerinə yetirmədən proqram istənilən xəttdə dayandıra bilər.

Bunu nümayiş etdirmək üçün, INT_SERV: etiketindən sonra kəsilmə serverimizdə artım ifadəsini basın və basın Break düyməsini Toggle.

İndi basın Düyməni işləyin. Proqram "sonsuz dövr" işləməyə başlayır.

Bir kəsmə nöqtəsi qurduğunuza baxmayaraq kodun icrası dayandıra bilməz, çünki heç kəs bu nöqtəyə getməz. Ancaq keçidi aşağıdan yuxarıya dəyişdikdə proqram göstərilən ifadədə dayandıra bilər:

   INT_SERV:
             INCF COUNTER, F

İndi addım-addım davam edə bilərsiniz və ya Run rejimində