Page 333 - MDP2020-3
P. 333
················································································ 명장양성프로젝트 【MDP】 과제발표회 자료집 Ⅲ | 327
- DC모터의 정회전, 역회전 제어 실습 소스코드를 응용하는 방법도 구상
// 초기상태와 SW OFF: 모터 정지, FND ‘0’표시
// SW0 ON: 모터 정회전, FND ‘F’표시
//SW1 ON: 모터 역회전, FND ‘r’표시
#include <mega128a.h>
#include <delay.h>
unsigned char fnd[3] = {0xc0,0x8e,0xaf}; // 0,F,r FND 표시 배열
void main(void)
{
DDRA=0xff; //핀A를 FND TR로 사용
DDRC=0xff; //핀C를 FND a~dp까지 사용
DDRB=0x00; //핀B를 SW로 사용
DDRF=0xff; //핀F를 모터로 사용
while (1)
{
if (PINB.0==0){//sw0이 눌리면
PORTA=0xfe; //F1 켜기
PORTC=fnd[1]; //F표시
PORTF=0x01; //(=0b00000001)정회전으로
delay_ms(500);
}
else if (PINB.1==0) //sw1이 눌리면
{
PORTA=0xfe; //F1 켜기
PORTC=fnd[2]; //r표시
PORTF=0x02; //(=0b00000010)역회전으로
delay_ms(500);
}
else
{ //초기 설정(아무것도 안할때)
PORTA=0xfe; //F1 켜기
PORTC=fnd[0];//0표시
PORTF=0x00; //모터 정지
delay_ms(2);
}
}
}