본문 바로가기

PIC

[XC8]18F452에서 IR 리모콘 구현 일단은 테스트할수 있는 티비가 삼성것 뿐이라 삼성 코드만 입력해놨습니다.최대한 주석 단다고 해놨는데 초보자 분들도 이해 하실지 모르겠습니다. 지금은 시리얼로 버튼 번호를 넘겨주면 그 코드들 실행시키는 프로그램입니다. 원래는 메인 파일에 이렇게 많이 적는거 싫어 하는데 초보자분들이 ctl+c, ctl+v 하실 수 있도록 메인 파일에 모든 소스를 넣었습니다. 다른 부분은 리모콘 포멧 관련되서 조금이라도 자료 찾아보신 분들은 이해 하실 수 있으실겁니다. 혹시 전혀 이해 되지 않는다면 리모콘 포멧 쪽을 찾아보시고 다시 방문해 주세요.(나중에 시간되면 리모콘 포멧 관련 자료도 업로드 하겠습니다.) 큐 부분은 원형 큐가 뭔지 모르시면 이해가 안되실텐데 그냥 데이터 손실 방지하려고 만든겁니다.9600으로 통신하면서 ..
[XC8]18F452에서 PWM 사용하기 18F452 에서 XC8 컴파일러를 이용하여 CCP1에서 38kHz의 듀티비 50%의 신호를 출력하는 소스입니다. Colored By Color Scripter™1234567891011121314151617181920212223242526272829303132333435363738394041424344454647/* * File: main.c * Author: JangSeongJin * * Created on 2014년 1월 2일 (목), 오후 5:49 */ #include //XC 기본으로 추가#include #pragma config OSCS = OFF#pragma config OSC = HS#pragma config WDT = OFF#pragma config LVP = ON typedef unsig..
[PIC]CCP Module PIC에 보면 CCP 모듈이라는것이 있습니다.3가지 기능을 하는 모듈로 1. Capture(캡처)2. Compare(컴페어)3. PWM앞 글자를 따서 CCP 라고 부릅니다. 1. Capture(캡처)외부에서 신호가 들어올때 신호의 엣지에서 엣지사이의 시간을 알아내는 기능2. Compare(컴페어)정확하지는 않지만타이머 카운트의 값을 비교하여 특정 값이되면 인터럽트를 발생시키는 기능인것 같습니다. PWM에서 원하는 주기를 만드는 방법이 이 기능을 이용한 것입니다.3. PWM원하는 Duty Cycle(듀티 싸이클)과 원하는 주기로 신호를 출력하는 기능
[XC8]18F452 UART 시리얼 통신 18F452에서 XC8 컴파일러를 사용하여 UART를 구현했습니다.통신 프로그램에서 받은 값을 그대로 다시 출력하는 프로그램입니다. Colored By Color Scripter™12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667/* * File: main.c * Author: JangSeongJin * * Created on 2014년 1월 2일 (목), 오후 5:49 */ #include //XC 기본으로 추가#include #pragma config OSCS = OFF#pragma config OSC = HS#pragma con..
[XC8]18F452 PORT Control Colored By Color Scripter™12345678910111213141516171819202122232425262728293031/* * File: main.c * Author: JangSeongJin * * Created on 2014년 1월 2일 (목), 오후 5:49 */ #include //XC 기본으로 추가#include #define _XTAL_FREQ 20000000 //크리스탈 클럭 #pragma config OSCS = OFF, OSC = HS, WDT = OFF //fuse 설정 void main(void) { int i; TRISD = 0x00; //PORTD 전부 OUTPUT으로 설정 PORTD = 0x00; //PORTD 전부 0 출력 while (1) { PORTD ..
적외선 센서를 이용한 심박수 카운트 소스코드 상업적 이용을 금지 합니다.ADC 값 3개를 을 받아서 가운데 값이 가장 클(작을)때를 최대(최소)피크점으로 잡고피크를 잡으면 일정 값 이하(이상)으로 올라가야 다음 최소(최대)피크점으로 잡는다. 나머지는 소스 분석해 보세요 #include #fuses NOWDT,HS#device *=16, ADC=10#use delay(clock=20000000)#use RS232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7) #define ENABLE_PIN D0#define RS_PIN D1#define RW_PIN D2#define Data4 D4#define Data5 D5#define Data6 D6#define Data7 D7#include "lcd.c" #byte TRI..
[CCS-C]4Line LCD 4Line LCD DDRAM1Line 0x002Line 0x403Line 0x144Line 0x54 위 말이 무슨 말인지 모르면 그냥 아래 파일 include 해서 사용하면 된다.