PIC의 개념과 이를 이용한 LED포트 설계 및 인터럽트 구성
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

PIC의 개념과 이를 이용한 LED포트 설계 및 인터럽트 구성에 대한 보고서 자료입니다.

목차

PIC 시리즈의 개요<br>
<PIC 원칩 마이크로 컴퓨터>
1. PIC 시리즈의 개요 ..
2. PIC 컨트롤러의 사양 ..
3. PIC 패밀리의 일람 ..
4. PIC 시리즈의 종류 일람 ..

<PIC16C84/PIC16F84의 해설>
1. 특징 ..
2. 칩 단자표 ..

<PIC의 사용법(하드웨어편)>
1. 사용상의 유의점 ..
(1) 발진소자에 대하여 ..
(2) 전원에 대하여 ..
(3) 입출력 핀의 허용전류에 대하여 ..

<PIC의 메모리 구조>
..

<PIC의 프로그램 메모리 구조>
[프로그램 메모리란] ..

<PIC의 데이터 메모리 구조>
[데이터 메모리란?] ..
(1) Special Function Register (SFR) ..
(2) General Purpose Register (GPR) ..
[데이터 메모리의 구조] ..

<PIC의 스택 메모리 구조>
[스택 메모리란?] ..
[스택 메모리의 구조와 동작] ..

<프로그램>
I/O 포트의 프로그래밍 방법 ..
인터럽트의 사용법 ..
1. 인터럽트란?
(1) PIC의 인터럽트 요인의 종류 ..
(2) 인터럽트시의 세부적인 동작 ..
RB0/INT 인터럽트의 사용법 ..
PIC의 사용법(실습편) ..

본문내용

); // Global 인터럽트 Enable
// 인터럽트 발생허가 함 이 명령 이후부터 인터럽트 발생
//disable_interrupts(int_ext);
//disable_interrupts(global);
porta = 0x00^0x0f; // PORTA 모두 초기화
led = 0x01;
do{
delay_ms(500);
porta = led^0x0f;
if(led != 0x08) led <<= 1;
else led = 0x01;
}while(1);
}
#include <16F84A.h>
#BYTE porta = 0x05
#BYTE portb = 0x06
#BYTE trisa = 0x85
#BYTE trisb = 0x86
#use delay(clock=1000000)
int int_para;
#int_ext // 외부 인터럽트
ext_isr()
{
int i;
for( i=0; i< 10; i++){
porta = int_para^ 0x0f;
delay_ms(500);
}
}
void main(void)
{
int led;
set_tris_a(0x00); // 출력
set_tris_b(0xff); // 입력
ext_int_edge(0,H_TO_L); // Falling Edge 선택
enable_interrupts(int_ext); // 외부 인터럽트 사용
enable_interrupts(global); // Global 인터럽트 Enable
// 인터럽트 발생허가 함 이 명령 이후 부터 인터럽트 발생
//disable_interrupts(int_ext);
//disable_interrupts(global);
porta = 0x00^0x0f; // PORTA 모두 초기화
led = 0x01;
int_para = 0x0a;
do{
delay_ms(500);
porta = led^0x0f;
if(led != 0x08) led <<= 1;
else led = 0x01;
}while(1);
}
/****************************************************************************
serial_parallel.c
*****************************************************************************/
#include <16F73.h>
#include
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT
//#device pic16f874 *=8 adc=10
#use delay(clock=4000000)//,RESTART_WDT)
// H/W RS232C 사용
#use RS232(baud=19200, parity=N, xmit=PIN_C6, rcv=PIN_C7)
//#priority rda, tbe
//---------------------------------------------------------
// A7,A6,A5,A4,A3,A2,A1,A0 + B7,B6,B5,B4,B3,B2,B1,B0
// x x x x x x M5 M5 M4 M4 M3 M3 M2 M2 M1 M1
//---------------------------------------------------------
// 모터 제어을 위한 코드
//M1
#define Right_command 'R'
#define Right_code1 0xff
#define Right_code2 0xfd
//M1
#define Left_command 'L'
#define Left_code1 0xff
#define Left_code2 0xfe
//M3
#define Up_command 'U'
#define Up_code1 0xff
#define Up_code2 0xdf
//M3
#define Down_command 'D'
#define Down_code1 0xff
#define Down_code2 0xef
//M5
#define Open_command 'O'
#define Open_code1 0xfd
#define Open_code2 0xff
//M5
#define Close_command 'C'
#define Close_code1 0xfe
#define Close_code2 0xff
#define Stop_command 'S'
#define Stop_code1 0xff
#define Stop_code2 0xff
//-----------------------------------------------------------------
// main
//-----------------------------------------------------------------
void main(void)
{
unsigned char serial_data;
set_tris_a(0x00);
set_tris_b(0x00);
output_a(Stop_code1);
output_b(Stop_code2);
while(1) {
// start 코드 0x0a, 검출을 위한 루틴
serial_data = getc();
switch ( serial_data) {
case Right_command : output_a(Right_code1);
output_b(Right_code2);
break;
case Left_command : output_a(Left_code1);
output_b(Left_code2);
break;
case Up_command : output_a(Up_code1);
output_b(Up_code2);
break;
case Down_command :output_a(Down_code1);
output_b(Down_code2);
break;
case Open_command : output_a(Open_code1);
output_b(Open_code2);
break;
case Close_command : output_a(Close_code1);
output_b(Close_code2);
break;
default: output_a(Stop_code1);
output_b(Stop_code2);
}
}
}
  • 가격1,000
  • 페이지수14페이지
  • 등록일2005.07.19
  • 저작시기2005.07
  • 파일형식한글(hwp)
  • 자료번호#307881
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니