Presentation is loading. Please wait.

Presentation is loading. Please wait.

2701055 전자공학과 유승민 FND 과제. 1. 과제 내용 A~F 까지 십진수로 나타내기 이 진 수이 진 수 십진수 gfedcba A1110111119 b1111100124 C011110157 d100111194 E1111001121 F1110001113.

Similar presentations


Presentation on theme: "2701055 전자공학과 유승민 FND 과제. 1. 과제 내용 A~F 까지 십진수로 나타내기 이 진 수이 진 수 십진수 gfedcba A1110111119 b1111100124 C011110157 d100111194 E1111001121 F1110001113."— Presentation transcript:

1 2701055 전자공학과 유승민 FND 과제

2 1. 과제 내용

3 A~F 까지 십진수로 나타내기 이 진 수이 진 수 십진수 gfedcba A1110111119 b1111100124 C011110157 d100111194 E1111001121 F1110001113

4 #include #define EX_LCD_DATA (*(volatile unsigned char *)0x8000) #define EX_LCD_CONTROL (*(volatile unsigned char *)0x8001) #define EX_SS_DATA (*(volatile unsigned char *)0x8002) #define EX_SS_SEL (*(volatile unsigned char *)0x8003) #define EX_DM_SEL (*(volatile unsigned int *)0x8004) #define EX_DM_DATA (*(volatile unsigned int *)0x8006) #define EX_LED (*(volatile unsigned char *)0x8008) #define EX_STEPPING (*(volatile unsigned char *)0x8009) #define EX_DCMOTOR (*(volatile unsigned char *)0x800A) #define EX_SERVO (*(volatile unsigned char *)0x800B) void delay(int n); const char segment_data[16] = {63, 6,91,79,102,109,125,39,127,103,119,124,57,94,121,113}; unsigned char display_num[4]={0,0,0,0}; // Seven segment 4 자리 숫자 출력 버퍼 void port_init(void) { PORTA = 0x00; DDRA = 0xff; PORTB = 0x00; DDRB = 0x00; PORTC = 0x00; //m103 output only DDRC = 0x0f; PORTD = 0x00; DDRD = 0x00; PORTE = 0x00; DDRE = 0x00; PORTF = 0x00; DDRF = 0x00; PORTG = 0x00; DDRG = 0x03; } 2. 소스코드 (1-1) 1~F 까지 16 개의 데이터로 각각의 숫자를 a~g 까지의 이진수를 십진수의 수로 표현하여 넣는다.

5 //TIMER0 initialize - prescale:64 // WGM: Normal // desired value: 1KHz // actual value: 1.000KHz (0.0%) void timer0_init(void) { TCCR0 = 0x00; //stop ASSR = 0x00; //set async mode TCNT0 = 0x06; //set count OCR0 = 0xFA; TCCR0 = 0x04; //start timer } unsigned char digit_num=0; ISR(TIMER0_OVF_vect) { TCNT0 = 0x06; //reload counter value digit_num++; digit_num = digit_num%4; EX_SS_SEL = 0x0f; EX_SS_DATA = segment_data[display_num[digit_num]]; EX_SS_SEL = ~(0x01 << digit_num); } 2. 소스코드 (1-2)

6 //call this routine to initialize all peripherals void init_devices(void) { //stop errant interrupts until set up cli(); //disable all interrupts XDIV = 0x00; //xtal divider XMCRA = 0x00; //external memory port_init(); timer0_init(); MCUCR = 0x80; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x01; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources sei(); //re-enable interrupts //all peripherals are now initialized } int main(void) { int i=0; init_devices(); while(1){ i++; display_num[0] = (i%16000)/1600; display_num[1] = (i%1600)/160; display_num[2] = (i%160)/16; display_num[3] = (i%16); delay(1000); } return 0; } void delay(int n) { volatile int i,j; for(i=1;i<n;i++) { for(j=1;j<600;j++); } 2. 소스코드 (1-3) 1~F 까지 16 개의 데이터 이므로 Display num 을 16 진수에 대해 표현해야 한다.


Download ppt "2701055 전자공학과 유승민 FND 과제. 1. 과제 내용 A~F 까지 십진수로 나타내기 이 진 수이 진 수 십진수 gfedcba A1110111119 b1111100124 C011110157 d100111194 E1111001121 F1110001113."

Similar presentations


Ads by Google