전자회로실험및설계 : 8051 MCU를 이용하여 C로 LED 제어한 결과보고서
- 최초 등록일
- 2011.12.28
- 최종 저작일
- 2010.03
- 6페이지/
MS 워드
- 가격 1,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
uVision 3을 이용하여 8051 MCU에 프로그래밍할 코드 작성
●○●○●○●○와 ○●○●○●○●로 LED가 번갈아 점등하도록 코드 작성
●○○○○○○○→○●○○○○○○→…→○○○○○○●○→○○○○○○○●→
○○○○○○●○→…→○●○○○○○○→●○○○○○○○로 점등하는 소스 코드를 작성
●○○○○○○●→○●○○○○●○→○○●○○●○○→○○○●●○○○→
○○●○○●○○→○●○○○○●○→●○○○○○○●로 점등하는 소스 코드를 작성
목차
1. 실험과정
2. 실험결과
3. 고찰
본문내용
실험 결과보고서
1. 실험과정
MCU에 프로그램을 작성하고 입력시키려면 소스 코드를 작성한 뒤 파일을 생성하고 MCU로 다운로드하면 된다. MCU에 입력시킬 프로그램을 작성하기 위해 uVision 3을 사용한다.
U Vision 3을 실행하고 Project-New Project로 LED Project라는 이름의 새 프로젝트를 생성하였다. 어떤 MCU에 대한 프로젝트인지 MCU의 종류를 묻는 창이 뜨는데 우리가 사용하는 제품명인 AT89S52로 지정하였다. 본 실험은 단순하게 LED 제어만을 위한 코드를 작성할 것이기 때문에, 기본적인 코드를 생성하지 않았다. 대신 File-New로 새 문서를 만든 뒤, 마우스 오른쪽 클릭으로 Insert를 선택하고 AT89S52용 헤더파일만 추가하여 문서로 불러들였다.
소스 코드는 C 언어로 작성하며, 따라서 소스 코드를 모두 작성한 뒤, 저장할 때 LED Test.c와 같이 c 확장자로 저장하였다. LED 보드와 MCU 보드를 Port 2를 통해 연결할 것이기 때문에 LED를 제어하려면 MCU에 Port 2에 대한 출력 값을 지정해야 한다. Port 2는 REGX51.H 헤더에 P2로 정의되어 있다. Port 2는 0에서 7까지 총 8핀으로 구성되어 있고, 따라서 P2=0xFF;와 같은 구문을 써서 Port 2의 출력 값을 지정할 수 있다.
P2의 출력 값으로 0을 지정하면 LED가 켜지고, 1로 지정하면 LED가 꺼지는데, P2의 8핀에 총 8개의 LED가 연결되어 있으므로 0과 1을 이용한 여덟 자리 2진수를 사용하면 LED들을 동시에 제어할 수 있다. 여덟 자리 2진수는 두 자리 16진수로 표현할 수 있는데, 따라서 실제로 소스 코드를 작성할 때에는 16진수를 사용하여 입력하였다. 16진수는 소스 코드의 숫자 값 앞에 0x를 쓰면 16진수로 처리된다.
LED의 점등 상태를 연속해서 변경할 때에는 P2 출력 값들 사이에 딜레이를 주지 않으면 MCU의 명령 처리 속도가 빨라서 제대로 된 결과물을 눈으로 볼 수 없다. 따라서 for 문을 이용하여 P2 출력이 너무 빨리 바뀌지 않도록 하여 LED 점등 변화가 눈으로 식별할 수 있도록 입력시켰다.
#include <REGX51.H>
void main()
{
...중략...
P2같은 명령어는 우리가 사용한 MCU인 AT89S52에 맞게 미리 작성된 헤더를 참조하도록 했기 때문에 소스 코드에 사용할 수 있는 것이다. 따라서 헤더를 불러들이지 않으면 빌드를 할 때 에러가 날 것이다.
...중략...
참고 자료
없음