목차
1. 실험 과제
2. 회로 구성
3. 코딩
5. 실험 고찰
2. 회로 구성
3. 코딩
5. 실험 고찰
본문내용
,
i++; //소수점 2째짜리 출력 하게 된다.
}
}
void calculator(void) {
inputsum(); //배열로 입력받은 숫자들을 더하는 함수
switch(ao) { //연산부호에 맞게 계산을 한다.
case '+' : result = (float)fnr + (float)snr;
break;
case '-' : result = (float)fnr - (float)snr;
break;
case '*' : result = (float)fnr * (float)snr;
break;
case '/' : result = (float)fnr / (float)snr;
break;
}
result += 0.005;
ans=1; //결과 값이 나왔다는 것을 알리기 위해 ans 변수에 1을 저장
outputsum(); //결과값을 배열로 따로 분리 하고 출력 하는 함수
}
void inputdelay(void) {
c=0;
while(inputcomplete == 0) {
if(level==0) { //첫번째 숫자 입력을 뜻하는 level=0일때 실행
receivedata = RX1_Byte();
while(!(receivedata=='\r' || receivedata=='\n')) {
if(receivedata=='.') {
fn[c] = receivedata; //.이 찍힐 경우 그대로 저장하고,
}
else {
fn[c] = receivedata - 48; //숫자가 들어 왔을 경우 48을 빼고 저장하여, 본래의 값이 된다.
}
TX1_Byte(receivedata);
receivedata = RX1_Byte();
c++;
}
fnc=c; //입력할때 마다 첫번째 숫자 카운트인 fnc가 증가 한다.
inputcomplete = 1; //입력을 마치면 빠져나간다.
}
else if(level==1) { //연산 부호 입력을 뜻하는 level=2 실행
receivedata = RX1_Byte();
while(!((receivedata=='\r' || receivedata=='\n') && c==1)) {
switch(receivedata) {
case '+' : TX1_Byte('+');
ao='+';
c=1;
aoc++; //연산부호가 입력 되었다는 aoc값 을 증가 시킨다.
receivedata = RX1_Byte();
break;
case '-' : TX1_Byte('-');ao='-';
c=1;
aoc++;
receivedata = RX1_Byte();
break;
case '*' : TX1_Byte('*');ao='*';
c=1;
aoc++;
receivedata = RX1_Byte();
break;
case '/' : TX1_Byte('/');ao='/';
c=1;
aoc++;
receivedata = RX1_Byte();
break;
}
}
inputcomplete = 1;
}
else if(level==2) { //두번째 숫자 입력을 뜻하는 level=3일때 실행
receivedata = RX1_Byte();
while(!(receivedata=='\r' || receivedata=='\n')) {
if(receivedata=='.') {
sn[c] = receivedata;
}
else {
sn[c] = receivedata - 48;
}
TX1_Byte(receivedata);
receivedata = RX1_Byte();
c++;
}
snc=c;
inputcomplete = 1;
}
}
c=0;
inputcomplete=0;
}
void delay(int d1, int d2)
{
int i,j;
for(i=0 ; i
{
for(j=0 ; j
}
}
void USART_Init(unsigned int baud) {
UCSRA = 0x00; //USART를 11.5kbps로 실행
UCSRB = (1<
UCSRC = (1<
UBRRH = (unsigned char) 0;
UBRRL = (unsigned char) baud;
}
void Timer_Init(void) {
TCCR0 =0x01; //timer0 overflow기능을 사용 하며, 프리스케일은 없음으로 선택 한다.
TCNT0 =0x00;
TIMSK =0x01;
}
void TX1_Byte(unsigned char data) {
while(!(UCSRA & (1<
UDR = data;
}
unsigned char RX1_Byte(void) {
while(!(UCSRA & (1<
return UDR;
}
4. 실행 모습
5. 실험 고찰
- 마지막 실험인 팀 프로젝트를 끝내고 나니, 정말 이제는 마이크로 프로세서에 대해 많은 것을 배운 것 같은 기분이 들었다. 이번 프로젝트는 우리가 이제까지 배웠던 모든 부분을 다 사용하여야만 완성 할 수 있는 부분이어서, 역시 기말 고사 대신으로 하기엔 적합하였던 과제였던 것 같다. 처음에 회로를 구성하는데 있어서 어려움을 많이 겪었다. 6,8,9,12핀은 저항을 연결해 A포트에 네 개 B포트에 여덟 개를 꼽아 저항을 연결하고 나머지 여덟 개는 C포트에 연결을 하여 회로 구성을 마쳤다. 그리고 저항값이 너무 세어서 세그먼트의 불빛이 약해 저항값이 적은 것으로 중간에 교체를 하기도 하였다. 실험을 마치고 마지막 테스트를 받는 과정에서 세그먼트의 잔상과 첫 번째 숫자에 소수점을 입력 하지 않았을 때 소수점이 제대로 찍히지 않는 문제점이 발생 했다. 테스트전 실험 할 때는 항상 소수점을 넣어서 실험을 했기 때문에 문제가 있을 거라고는 생각을 못했지만 막상 테스트 할 때 소수점을 넣지 않고 계산을 하니깐 소수점 위치가 정확하게 찍히지 않았던 것이다. 실험하는 도중 잔상은 잔류 전류가 흐르기 때문에 괜찮을 거라고 생각했으나 그 불빛의 세기가 너무 세다보니 문제가 되었던 것 같다. 위의 두 가지 문제점만 아니었더라면 좀 더 완벽한 실험을 했을 텐데 하는 아쉬움을 남겼다.
한 학기 동안 수고 하셨고, 덕분에 많은 것을 배웁니다.
감사합니다.
i++; //소수점 2째짜리 출력 하게 된다.
}
}
void calculator(void) {
inputsum(); //배열로 입력받은 숫자들을 더하는 함수
switch(ao) { //연산부호에 맞게 계산을 한다.
case '+' : result = (float)fnr + (float)snr;
break;
case '-' : result = (float)fnr - (float)snr;
break;
case '*' : result = (float)fnr * (float)snr;
break;
case '/' : result = (float)fnr / (float)snr;
break;
}
result += 0.005;
ans=1; //결과 값이 나왔다는 것을 알리기 위해 ans 변수에 1을 저장
outputsum(); //결과값을 배열로 따로 분리 하고 출력 하는 함수
}
void inputdelay(void) {
c=0;
while(inputcomplete == 0) {
if(level==0) { //첫번째 숫자 입력을 뜻하는 level=0일때 실행
receivedata = RX1_Byte();
while(!(receivedata=='\r' || receivedata=='\n')) {
if(receivedata=='.') {
fn[c] = receivedata; //.이 찍힐 경우 그대로 저장하고,
}
else {
fn[c] = receivedata - 48; //숫자가 들어 왔을 경우 48을 빼고 저장하여, 본래의 값이 된다.
}
TX1_Byte(receivedata);
receivedata = RX1_Byte();
c++;
}
fnc=c; //입력할때 마다 첫번째 숫자 카운트인 fnc가 증가 한다.
inputcomplete = 1; //입력을 마치면 빠져나간다.
}
else if(level==1) { //연산 부호 입력을 뜻하는 level=2 실행
receivedata = RX1_Byte();
while(!((receivedata=='\r' || receivedata=='\n') && c==1)) {
switch(receivedata) {
case '+' : TX1_Byte('+');
ao='+';
c=1;
aoc++; //연산부호가 입력 되었다는 aoc값 을 증가 시킨다.
receivedata = RX1_Byte();
break;
case '-' : TX1_Byte('-');ao='-';
c=1;
aoc++;
receivedata = RX1_Byte();
break;
case '*' : TX1_Byte('*');ao='*';
c=1;
aoc++;
receivedata = RX1_Byte();
break;
case '/' : TX1_Byte('/');ao='/';
c=1;
aoc++;
receivedata = RX1_Byte();
break;
}
}
inputcomplete = 1;
}
else if(level==2) { //두번째 숫자 입력을 뜻하는 level=3일때 실행
receivedata = RX1_Byte();
while(!(receivedata=='\r' || receivedata=='\n')) {
if(receivedata=='.') {
sn[c] = receivedata;
}
else {
sn[c] = receivedata - 48;
}
TX1_Byte(receivedata);
receivedata = RX1_Byte();
c++;
}
snc=c;
inputcomplete = 1;
}
}
c=0;
inputcomplete=0;
}
void delay(int d1, int d2)
{
int i,j;
for(i=0 ; i
for(j=0 ; j
}
void USART_Init(unsigned int baud) {
UCSRA = 0x00; //USART를 11.5kbps로 실행
UCSRB = (1<
UBRRL = (unsigned char) baud;
}
void Timer_Init(void) {
TCCR0 =0x01; //timer0 overflow기능을 사용 하며, 프리스케일은 없음으로 선택 한다.
TCNT0 =0x00;
TIMSK =0x01;
}
void TX1_Byte(unsigned char data) {
while(!(UCSRA & (1<
}
unsigned char RX1_Byte(void) {
while(!(UCSRA & (1<
}
4. 실행 모습
5. 실험 고찰
- 마지막 실험인 팀 프로젝트를 끝내고 나니, 정말 이제는 마이크로 프로세서에 대해 많은 것을 배운 것 같은 기분이 들었다. 이번 프로젝트는 우리가 이제까지 배웠던 모든 부분을 다 사용하여야만 완성 할 수 있는 부분이어서, 역시 기말 고사 대신으로 하기엔 적합하였던 과제였던 것 같다. 처음에 회로를 구성하는데 있어서 어려움을 많이 겪었다. 6,8,9,12핀은 저항을 연결해 A포트에 네 개 B포트에 여덟 개를 꼽아 저항을 연결하고 나머지 여덟 개는 C포트에 연결을 하여 회로 구성을 마쳤다. 그리고 저항값이 너무 세어서 세그먼트의 불빛이 약해 저항값이 적은 것으로 중간에 교체를 하기도 하였다. 실험을 마치고 마지막 테스트를 받는 과정에서 세그먼트의 잔상과 첫 번째 숫자에 소수점을 입력 하지 않았을 때 소수점이 제대로 찍히지 않는 문제점이 발생 했다. 테스트전 실험 할 때는 항상 소수점을 넣어서 실험을 했기 때문에 문제가 있을 거라고는 생각을 못했지만 막상 테스트 할 때 소수점을 넣지 않고 계산을 하니깐 소수점 위치가 정확하게 찍히지 않았던 것이다. 실험하는 도중 잔상은 잔류 전류가 흐르기 때문에 괜찮을 거라고 생각했으나 그 불빛의 세기가 너무 세다보니 문제가 되었던 것 같다. 위의 두 가지 문제점만 아니었더라면 좀 더 완벽한 실험을 했을 텐데 하는 아쉬움을 남겼다.
한 학기 동안 수고 하셨고, 덕분에 많은 것을 배웁니다.
감사합니다.
추천자료
Ch15. 동기식 카운터(Synchronous Counters)<디지털회로실험//경희대학교>
디지털 논리회로 실험 텀프로젝트(디지털 주사위-아주 간단한 카운터회로 이용)
실험 #9 Diode 및 Zener diode의 특성
순서 논리 회로 플립플롭( flip-flop) 실험보고서
순서 논리 회로 플립플롭( flip-flop) 실험보고서
직렬회로의 전압전류 측정, 전압분배 및 KVL 레포트(예비+결과)
설계 보고 설계1. C 측정회로 설계
실험 1. 다이오드 특성 및 반파 정류회로 실험
전자전기설계실험_RLC Circuit
파형 정형 회로_결과(전자회로실험)
증폭기의 주파수 특성_결과(전자회로실험)
바이폴라 트랜지스터의 바이어스 해석_결과(전자회로실험)
실험 13 폐회로cl&oacute;sed l&oacute;op(루프) 전류를 이용한 회로해석
[실험레포트]일반물리학실험2 직류 회로