Sirkuit mikrokontroler

Sirkuit mikrokontroler

Jump to TINA Main Page & General Information 

TINA mendukung banyak (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) mikrokontroler; MCU baru terus ditambahkan. Anda dapat melihat, memodifikasi, dan men-debug program yang berjalan di prosesor dan, tentu saja, Anda dapat membuat kode Anda sendiri.

Ada dua cara menyediakan program untuk mikrokontroler di TINA. Anda dapat menggunakan kode biner dan file debug yang dibuat oleh kompiler standar (mis. MPLAB untuk PIC) atau Anda bisa memuat kode assembly Anda untuk menjalankan dan debug di TINA menggunakan assembler-debugger bawaannya.

Membuat rangkaian penghitung sederhana menggunakan mikrokontroler PIC dengan pemrograman bahasa rakitan

Membuat rangkaian penghitung sederhana menggunakan mikrokontroler PIC dengan pemrograman bahasa C

Debugging mikrokontroler dasar menggunakan TINA

Dalam TINA, mikrokontroler dapat disimulasikan tidak hanya sendiri tetapi juga bersama dengan analog, digital, HDL atau model lainnya.

Menjalankan dan mengedit kode MCU

Muat sirkuit PIC Flasher.TSC dari folder ExamplesMicrocontrollersPic.

Skema berikut menggunakan mikrokontroler PIC 16F73 akan muncul dengan mikrokontroler PIC 16F73:

Sirkuit mikrokontroler, gambar 1

Sirkuit ini hanya dihitung maju satu per satu. tekan tombol untuk melihat cara kerjanya.

Layar harus maju satu per satu.

Klik dua kali MCU untuk melihat kode ASM di dalamnya. (lihat detail lebih lanjut di manual Mulai Cepat).

TINA memiliki fitur hebat di mana Anda dapat mengedit dan mengubah kode sumber langsung di TINA.

Mari kita lakukan perubahan berikut pada kode:

Ubah instruksi (dipilih di atas) di baris 25 (Anda dapat melihat nomor baris di sudut kanan bawah jendela editor kode):

dari addlw 01H

untuk menambahkan 02H

Simpan kode yang diubah ke TINA dengan menekan tombol ikon dan tutup jendela MCU yang terbuka.

Jika Anda menekan tombol sekarang, kenaikannya akan menjadi 2!

Perhatikan bahwa kode yang diubah akan secara otomatis disimpan dalam file TINA .TSC.

Menggunakan debugger

Mari kita lihat aplikasi lain dengan lebih banyak interaktivitas.

Muat contoh TINA PIC16F84interrupt_rb0.TSC dari folder ExamplesMicrocontrollersPic.

Tekan tombol. Tampaknya pada awalnya tidak ada yang terjadi.

Namun, jika Anda mengklik sakelar SW-HL1., Layar akan melangkah maju dengan 1 setiap kali sakelar berubah dari Rendah ke Tinggi.

Kemampuan penanganan interupsi PIC akan memungkinkan kami mendeteksi perubahan sakelar.

Sekarang mari kita lihat operasi lebih detail menggunakan debugger ASM interaktif TINA.

Untuk mengaktifkan debugger, pilih Opsi pada menu Analisis. Kemudian setel "Aktifkan kotak centang Kode debugger MCU", seperti yang ditunjukkan di bawah ini pada kotak dialog Opsi Analisis.

Tekan tombol OK dan debugger MCU akan muncul:

Mari ikuti langkah-langkah pelaksanaan program dengan menekan tombol Lacak tombol Ke.

Setelah sekitar klik 14 kita sampai ke label PT1: di mana program tampaknya berada dalam loop tak terbatas.

PT1: INCF TEMP, F GOTO PT1

Sekarang klik pada saklar SW-HL1 dan ubah ke Tinggi. (Anda harus mengklik ketika kursor berubah menjadi panah menunjuk ke atas Î). Kembali ke Debugger dan klik Lacak tombol Ke dua kali. Program akan mengenali interupsi dan melompat ke


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

meningkatkan COUNTER dan menyalin ke PORT A, dan hasilnya akan menjadi 1. Setelah ini, program akan kembali ke "infinite loop" di PT1.

Mengedit kode di debugger

Sekarang mari kita membuat perubahan kecil dalam program untuk menunjukkan penggunaan debugger. Gandakan pernyataan INCF COUNTER, F menggunakan Salin dan Tempel seperti ini:

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

Sekarang ketika Anda menekan tombol program akan bertanya:

Tekan Ya dan tekan tombol lagi. Sekarang kenaikannya akan menjadi 2 pada setiap perubahan Rendah-Tinggi dari sakelar.

Anda juga dapat memeriksa sirkuit dalam mode Berlari terus menerus dari debugger dengan menekan tombol.

Meskipun debugger akan berjalan cepat, Anda masih dapat melihat “siklus tak terbatas 'dan kemudian lompat ke bagian Server interupsi (INT_SERV:) ketika Anda mengubah sakelar.

Membuat breakpoint

Dengan menggunakan mode langkah demi langkah, seringkali tidak mungkin mencapai titik tertentu dalam program. Bahkan jika Anda cukup sabar untuk melangkah seribu langkah, aliran program mungkin tidak memungkinkan Anda untuk melangkah ke tempat yang Anda inginkan.

Untuk berhenti di baris tertentu, Anda dapat menandai pernyataan target dengan menetapkan "breakpoint".

Jalankan program dalam mode berkelanjutan dari debugger menggunakan Jalankan perintah dan sekarang program akan berhenti pada baris yang diinginkan sebelum menjalankan perintah yang ditandai.

Untuk mendemonstrasikan ini, klik pada pernyataan kenaikan di server interupsi kami setelah label INT_SERV: dan tekan Beralih tombol istirahat.

Sekarang tekan tombol Jalankan tombol. Program mulai berjalan dalam "siklus tak terbatas".

Meskipun Anda telah menetapkan breakpoint, eksekusi kode tidak akan berhenti karena tidak pernah sampai ke breakpoint. Namun, ketika Anda mengubah sakelar dari Rendah ke Tinggi, program akan berhenti pada pernyataan yang ditandai:

   INT_SERV:
             INCF COUNTER, F

Sekarang Anda dapat melanjutkan langkah demi langkah atau dalam mode Jalankan