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.
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 ini hanya dihitung maju satu per satu. tekan
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
Jika Anda menekan
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
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 Option pada menu Analysis. Kemudian setel "kotak centang Aktifkan debugger Kode 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
Setelah sekitar klik 14 kita sampai ke label PT1: di mana program tampaknya berada dalam loop tak terbatas.
PT1: INCF TEMP, F GOTO PT1
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
Tekan Ya dan tekan
Anda juga dapat memeriksa sirkuit dalam mode Berlari terus menerus dari debugger dengan menekan
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
Untuk mendemonstrasikan ini, klik pada pernyataan kenaikan di server interupsi kami setelah label INT_SERV: dan tekan
Sekarang tekan tombol
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