마이크로 컨트롤러 회로

마이크로 컨트롤러 회로

Jump to TINA Main Page & General Information 

TINA는 (PIC, AVR, Arduino, 8051, HCS, STM, ARM, TI-Tiva, TI-Sitara, Infineon-XMC) 마이크로 컨트롤러; 새로운 MCU가 지속적으로 추가되고 있습니다. 프로세서에서 실행중인 프로그램을보고 수정하고 디버그 할 수 있으며 물론 자신 만의 코드를 만들 수 있습니다.

TINA에서 마이크로 컨트롤러를위한 프로그램을 제공하는 두 가지 방법이 있습니다. 표준 컴파일러 (예 : PIC 용 MPLAB)로 만든 바이너리 코드 및 디버그 파일을 사용하거나 빌트인 어셈블러 디버거를 사용하여 TINA에서 실행 및 디버깅하도록 어셈블리 코드를로드 할 수 있습니다.

어셈블리 언어 프로그래밍을 사용하는 PIC 마이크로 컨트롤러를 사용하여 간단한 카운터 회로 만들기

C 언어 프로그래밍으로 PIC 마이크로 컨트롤러를 사용하여 간단한 카운터 회로 만들기

TINA를 이용한 기본 마이크로 컨트롤러 디버깅

TINA에서 마이크로 컨트롤러는 아날로그, 디지털, HDL 또는 다른 모델과 함께 시뮬레이션 할 수 있습니다.

MCU 코드 실행 및 편집

ExamplesMicrocontrollersPic 폴더에서 PIC Flasher.TSC 회로를로드하십시오.

16F73 PIC 마이크로 컨트롤러를 사용하는 다음 회로도는 16F73 PIC 마이크로 컨트롤러와 함께 나타납니다.

마이크로 컨트롤러 회로, 이미지 1

이 회로는 단순히 하나씩 앞으로 계산합니다. 눌러 버튼을 눌러 작동 방식을 확인하십시오.

디스플레이가 하나씩 앞으로 이동해야합니다.

MCU를 두 번 클릭하여 ASM 코드를 봅니다. (빠른 시작 설명서에서 자세한 내용 참조).

TINA에는 TINA에서 직접 소스 코드를 편집하고 변경할 수있는 훌륭한 기능이 있습니다.

코드에서 다음과 같이 변경합니다.

25 줄의 명령 (위에서 선택)을 변경하십시오 (코드 편집기 창의 오른쪽 하단 모서리에 줄 번호가 표시됨).

에서 추가 01H

02H 추가하려면

변경된 코드를 TINA에 저장하려면 아이콘을 열고 열려있는 MCU 창을 닫으십시오.

를 누르면 버튼을 누르면 증분은 2가됩니다!

변경된 코드는 자동으로 TINA .TSC 파일에 저장됩니다.

디버거 사용

더 많은 상호 작용이 가능한 다른 애플리케이션을 살펴 보겠습니다.

ExamplesMicrocontrollersPic 폴더에서 TINA의 PIC16F84interrupt_rb0.TSC 예제를로드하십시오.

를 누르십시오 단추. 처음에는 아무것도 일어나지 않는 것 같습니다.

그러나 SW-HL1 스위치를 클릭하면 스위치가 Low에서 High로 바뀔 때마다 디스플레이가 1에 의해 앞으로 이동합니다.

PIC의 인터럽트 처리 기능을 통해 스위치 변경 사항을 감지 할 수 있습니다.

이제 TINA의 대화 형 ASM 디버거를 사용하여 작업을 자세히 살펴 보겠습니다.

디버거를 활성화하려면 분석 메뉴에서 옵션을 선택하십시오. 그런 다음 분석 옵션 대화 상자에서 아래와 같이 "MCU 코드 디버거 활성화 확인란"을 설정하십시오.

OK 버튼을 누르면 MCU 디버거가 나타납니다 :

프로그램 실행을 단계별로 따라가 보도록하겠습니다. 추적 단추.

14 클릭이 끝나면 프로그램이 무한 루프에있는 것처럼 보이는 PT1 : 레이블로 이동합니다.

PT1 : INCF TEMP, F GOTO PT1

이제 SW-HL1 스위치를 클릭하고 High로 변경하십시오. 커서가 위로 향하는 화살표 Î로 바뀌면 클릭해야합니다. 디버거로 돌아가서 추적 버튼을 두 번 누릅니다. 프로그램은 인터럽트를 인식하고


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

COUNTER를 증가시키고 PORT A로 복사하면 출력은 1가됩니다. 이 후 프로그램은 PT1의 "무한 루프"로 되돌아갑니다.

디버거에서 코드 편집하기

이제 디버거 사용법을 보여주기 위해 프로그램을 약간 변경해 보겠습니다. 다음과 같이 복사 및 붙여 넣기를 사용하여 INCF COUNTER, F 문을 복제하십시오.

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

이제 당신이 프로그램에서 묻습니다.

예를 누르고 버튼을 다시 누릅니다. 이제 스위치의 Low-High 변경시 2가 증가합니다.

디버거의 연속 실행 모드에서 회로를 확인하려면 버튼을 클릭합니다.

디버거가 빠르게 실행 되더라도 스위치를 변경하면 "무한 사이클"이 표시되고 중단 서버 부분 (INT_SERV :)으로 이동할 수 있습니다.

중단 점 만들기

단계별 모드를 사용하면 프로그램의 특정 지점에 도달하는 것이 불가능할 수 있습니다. 수천 걸음 씩 걸을 수있을 정도로 환자가 있다고하더라도 프로그램의 흐름에 따라 원하는 곳으로 이동할 수 없게 될 수도 있습니다.

특정 행에서 중지하려면 "중단 점"을 설정하여 대상 명령문을 표시 할 수 있습니다.

디버거의 연속 모드에서 프로그램을 실행하십시오. 명령을 실행하면 표시된 명령을 실행하기 전에 원하는 행에서 프로그램이 중지됩니다.

이것을 설명하기 위해 인터럽트 서버에서 INT_SERV : 레이블 다음에있는 increment 문을 클릭하고 중단 단추를 토글합니다.

이제 실행 버튼. 프로그램이 "무한 사이클"에서 실행되기 시작합니다.

중단 점을 설정 했더라도 코드 실행은 중단 점에 도달하지 않으므로 중단되지 않습니다. 그러나 스위치를 낮음에서 높음으로 변경하면 프로그램은 다음과 같이 표시된 문에서 중지됩니다.

   INT_SERV:
             INCF COUNTER, F

이제 단계별로 계속 진행할 수 있습니다. 또는 실행 모드에서