Mạch vi điều khiển
Mạch vi điều khiển
Jump to TINA Main Page & General Information
TINA hỗ trợ rất nhiều (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) bộ vi điều khiển; MCU mới liên tục được thêm vào. Bạn có thể xem, sửa đổi và gỡ lỗi chương trình đang chạy trong bộ xử lý và tất nhiên, bạn có thể tạo mã của riêng mình.
Có hai cách cung cấp chương trình cho vi điều khiển ở TINA. Bạn có thể sử dụng mã nhị phân và tệp gỡ lỗi được tạo bởi trình biên dịch chuẩn (ví dụ MPLAB cho PIC) hoặc bạn chỉ có thể tải mã lắp ráp của mình để chạy và gỡ lỗi trong TINA bằng trình gỡ lỗi trình biên dịch tích hợp sẵn.
Trong vi điều khiển TINA có thể được mô phỏng không chỉ một mình mà còn cùng với các mô hình tương tự, kỹ thuật số, HDL hoặc các mô hình khác.
Chạy và chỉnh sửa mã MCU
Tải mạch PIC Flasher.TSC từ thư mục exampleMicrocontrollersPic.
Sơ đồ sau sử dụng bộ vi điều khiển PIC 16F73 sẽ xuất hiện cùng với bộ vi điều khiển PIC 16F73:
Mạch này chỉ đơn giản là đếm từng bước một. Nhấn nút
Màn hình nên bước từng bước một.
Bấm đúp vào MCU để xem mã ASM trong đó. (xem thêm chi tiết trong hướng dẫn bắt đầu nhanh).
TINA có một tính năng tuyệt vời, theo đó bạn có thể chỉnh sửa và thay đổi mã nguồn trực tiếp trong TINA.
Hãy thực hiện thay đổi sau trong mã:
Thay đổi hướng dẫn (đã chọn ở trên) trong dòng 25 (bạn có thể thấy số dòng ở góc dưới bên phải của cửa sổ trình chỉnh sửa mã):
từ addlw 01H
để thêm 02H
Lưu mã đã thay đổi vào TINA bằng cách nhấn
Nếu bạn nhấn
Lưu ý rằng mã đã thay đổi sẽ được lưu tự động trong tệp TINA .TSC.
Sử dụng trình gỡ lỗi
Chúng ta hãy xem một ứng dụng khác có nhiều tương tác hơn.
Tải ví dụ PIC16F84interrupt_rb0.TSC của TINA từ thư mục exampleMicrocontrollersPic.
Nhấn
Tuy nhiên, nếu bạn nhấp vào công tắc SW-HL1., Màn hình sẽ chuyển tiếp bằng 1 mỗi khi công tắc thay đổi từ Thấp thành Cao.
Khả năng xử lý ngắt của PIC sẽ cho phép chúng tôi phát hiện các thay đổi chuyển đổi.
Bây giờ chúng ta hãy xem hoạt động chi tiết hơn bằng cách sử dụng trình gỡ lỗi ASM tương tác của TINA.
Để kích hoạt trình gỡ lỗi, hãy chọn Tùy chọn trên menu Phân tích. Sau đó, đặt hộp kiểm “Bật trình gỡ lỗi mã MCU”, như được hiển thị bên dưới trên hộp thoại Tùy chọn phân tích.
Nhấn nút OK và trình gỡ lỗi MCU sẽ xuất hiện:
Chúng ta hãy theo dõi từng bước thực hiện chương trình bằng cách nhấn
Sau khoảng lần nhấp 14, chúng tôi nhận được nhãn PT1: nơi chương trình dường như nằm trong một vòng lặp vô hạn.
PT1: TEMF INCF, F GOTO PT1
NT_SERV: label.
INT_SERV: INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORT
tăng COUNTER và sao chép vào PORT A, và đầu ra sẽ là 1. Sau đó, chương trình sẽ quay trở lại vòng lặp vô hạn của Google tại PT1.
Chỉnh sửa mã trong trình gỡ lỗi
Bây giờ, hãy thực hiện một thay đổi nhỏ trong chương trình để chứng minh việc sử dụng trình gỡ lỗi. Sao y câu lệnh INCF COUNTER, F bằng cách sử dụng Sao chép và Dán như thế này:
INT_SERV: INCF COUNTER, F INCF COUNTER, F MOVF COUNTER, 0 MOVWF PORTA
Bây giờ khi bạn nhấn
Nhấn Yes và nhấn
Bạn cũng có thể kiểm tra mạch trong chế độ Chạy liên tục của trình gỡ lỗi bằng cách nhấn nút
Mặc dù trình gỡ lỗi sẽ chạy nhanh, bạn vẫn có thể thấy chu kỳ vô hạn của 'và sau đó nhảy đến phần máy chủ Ngắt (INT_SERV :) khi bạn thay đổi công tắc.
Tạo một điểm dừng
Sử dụng chế độ từng bước, thường không thể đến một điểm cụ thể trong chương trình. Ngay cả khi bạn đủ kiên nhẫn để bước một ngàn bước, luồng của chương trình có thể không cho phép bạn bước đến nơi bạn muốn.
Để dừng tại một dòng cụ thể, bạn có thể đánh dấu câu lệnh đích bằng cách đặt điểm dừng của điểm số.
Chạy chương trình trong chế độ liên tục của trình gỡ lỗi bằng cách sử dụng
Để chứng minh điều này, hãy nhấp vào câu lệnh tăng trong máy chủ ngắt của chúng tôi sau nhãn INT_SERV: và nhấn
Bây giờ nhấn phím
Mặc dù bạn đã đặt điểm dừng, việc thực thi mã sẽ không dừng lại vì nó không bao giờ đến điểm dừng. Tuy nhiên, khi bạn thay đổi công tắc từ Thấp thành Cao, chương trình sẽ dừng ở câu lệnh được đánh dấu:
INT_SERV: INCF COUNTER, F
Bây giờ bạn có thể tiếp tục từng bước một