마이크로프로세서 및 실습 레포트3
- 최초 등록일
- 2015.01.19
- 최종 저작일
- 2014.09
- 7페이지/ 한컴오피스
- 가격 1,000원
목차
1.착안
2.def.h 소스코드
3.lcd.c 소스코드
4.메인창 소스코드
5.고찰
본문내용
마이크로 프로세서 및 실습
2011161072 서성민
과제내용 - 문자 LCD를 이용한 시계제작
AM/PM 표기로 12시간 출력
1초 주기로 시간이 올라가야함. <착안>
delay와 포인터를 이용해서, 1초마다 포인터를 ++ 시키려고 했으나 그렇게 하면 지정해주어야 하는 배열도 많고 아직 배열, 포인터에 대한 프로그래밍도 익숙하지 않아서 시간이 많이 걸려서, 아스키 코드를 이용하는 방법을 선택했습니다.
while 문을 한번 도는데 1초가 delay 되고 그때 초단위의 아스키코드를 돌려주고, 순차적으로 분, 시간 단위까지 돌려 시계 알고리즘을 만들었습니다. 또 13시가 될 때 AM에서 PM으로 바뀌게 아스키 코드와 if를 이용했습니다.
AM에서 PM으로 바뀌는 것을 확인하기 위해 시간 delay를 1m 로 하고 점검했습니다.
#include
#define F_CPU 16000000UL // CPU 클럭주파수정의
#include // delay.h헤더파일포함
#include "lcd.c" //lcd.c 파일의 내용을 포함
// 시간경과함수를정의한다.
void Delay_ms(unsigned int MilliSeconds) {
unsigned int i;
for(i=0;i
#defineLCD_DATA_PORTPORTD //D포트를 데이터 포트로 사용
#defineLCD_DATA_PORT_DDRDDRD //D의 입출력 설정
#defineLCD_CONTROL_PORTPORTB //B포트를 컨트롤 포트로 사용
#defineLCD_CONTROL_PORT_DDRDDRB //B의 입출력 설정
#defineLCD_BL4
#defineLCD_RS5 // RS 단자 현재 PB5 핀에 연결되어 있음
#defineLCD_RW6 // RW 단자는 현재 PB6 핀에 연결되어 있음
#defineLCD_EN7 // E 단자는 현재 PB7 핀에 연결되어 있음
void EnablePulse(void) {
LCD_CONTROL_PORT &= ~(1<4.1 mS) 대기
LCD_DATA_PO
참고 자료
없음