마이크로프로세서 및 실습 레포트6
- 최초 등록일
- 2015.01.19
- 최종 저작일
- 2014.09
- 6페이지/
한컴오피스
- 가격 1,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
목차
1착안
2.플로우 차트
3.소스코드
4.고찰
본문내용
마이크로 프로세서 및 실습
2011161072 서성민
실습과제7: 타이머인터럽트를 이용한 7 Segment LED Dynamic Drive
규칙적으로 발생되어 MCU의 프로그램 수행을 가로채는 인터럽트기능을 이용하면 어떤 환경에서도 어른거림이 없이 아주 안정적으로 LED를 동적구동 할 수 있음
5장의예제 5-3을 수정하여 SW1 키를 감소, SW3 키를 증가 스위치로 사용하여 가변수치를 7 세그먼트에 디스플레이 한다.
단 이 때는 타이머 인터럽트에 의한 동적구동이기 때문에 스위치 누름에 의해 발생되던 디스플레이 깜박임이 없이 항상 안정된 디스플레이가 되어야 한다.
<착안>
5-3에서 했었던 예제의 동적구동을 타이머 인터럽트로 아주 짧은 시간에 세그먼트로 출력을 해주면 디스플레이 깜빡임이 없이 수치가 변화 할 것이라고 생각 했습니다.
따라서 인터럽트 안에 동적구동 시스템을 넣었습니다. 인터럽트를 1초로 늘리면 동적구동이 어떻게 이루어지는지 세그먼트를 육안으로 확인 할 수 있습니다. <플로우 차트>
<소스코드>
#include "def.h"//앞에서 썼던 데피니션 헤더 파일을 사용함
#include //인터럽트를 헤더를 포함함
#define KEY_INPUT (PINA&0xA0)// 스위치 입력 및 마스크 오프
#define NO_KEY 0xA0// 스위치 입력 없음 코드
#define SW1_KEY 0x80// SW1 스위치 코드
#define SW3_KEY 0x20// SW3 스위치 코드
const unsigned char NumericPattern[10] =//세그먼트에 0부터 9까지 나타내는 디지트
{ 0x3F,0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x27, 0x7F, 0x6F };
const unsigned char DigitDrivingData[4] = {0x02, 0x04, 0x08, 0x10};
참고 자료
없음