회원가입 ID/PW 찾기
AA

LED를 스위치로 제어하는 소스인데...
모르는 부분이 잇어서 도움을 청하고자 합니다..

#include <REGX51.H>

#define DELAY_SET 20

#define FIRST_BIT 0x01

#define LAST_BIT 0x80

 

void delay(unsigned int delay_set)  // delay 함수를 정의해준것 같은데 unsigned 라는 말이.... 지정되지 않은 int delay_set 에 관해서 함수를 정의를 한다는 말인가요?? 

{ int i, j;

for( i =0; i< 50000; i++)

for( j= 0; j< delay_set; j++) ;

}

void main //1 누르면 왕복, 2누르면 정지

{

int i;

P1=0x00;

while(P1_1!=1);

while(1)

{

P0=0x7f;

int i, j;

for(i=0; i<7; i++)

{

if(P1_2==1) while(1) if(P1_1==1) break;

delay(DELAY_SET);

P0 >>=1;  // 이부분이 뜻하는 명령이(>>= 이란 명령어) 정확히 어떤것인지 모르겠습니다;;

P0 |= LAST_BIT;   // 이부분은 P0 가 LAST_BIT 값이 되면 멈추라는 말인가요?? (|= 이란 명령어는... 무슨말인가요?)

}

 

for(j=0; j<7; j++)

{

if(P1_2==1) while(1) if(P1_1==1) break;

delay(DELAY_SET);

P0 <<=1;

P0 |= FIRST_BIT;

}

}


위의 소스를 돌리면 LED가 하나씩 켜지면서 왕복하다가 스위치 2를 누른 시점에서
LED가 정지하는게 맞을까요?? 프로테우스를 구해서 돌려보고 싶은데
집에있는 컴파일러로는 컴파일조차 되질 않네요 ㅠㅠ
씨언어를 제대로 배우지도 못한 상태에서 소스를 짜다보니
다른사람이 짜준 소스를 분석부터 하려는데... 분석조차 쉽지가 않네요 ㅠㅠ
많은 도움 부탁드리겠습니다
감사합니다

댓글 3
  • No Profile

    P0 >>=1;
    이것은 시프트 기능을 하는 함수인데요 P0에 들어있던 값이 0x7f이거 였잖아요 0x7f이 01111111이니까 1만큼 시프트 시키면 10111111이렇게 되서 다음 LED가 켜지게 됩니다.

    P0 |= LAST_BIT;  여기서 |= 이것은 OR 을 의미하는데요 P0의 최상위비트가1이면 그대로고 0이면 1로 바꿔서 P0에 입력시키라는 의미입니다..

    제 지식으로는 이정도네요 ㅠㅠ

  • No Profile

    unsigned 는 부호가 없다는 뜻이구요, 일반 int형은 부호가 있는(signed 는 보통 생략) 정수형으로
    값의표현범위는 -32768~32767까지고 unsigned int 는 0~65535 까지 입니다. 
    void delay() 는 리턴값이 없다는 말이죠..
    합치면...delay() 함수는 부호가 없는 정수형 값을 인자로 받고 리턴값은 없는 함수네요..;;
    main() 함수에서 delay(DELAY_SET); 위쪽에 DELAY_SET = 20으로 선언이 되어있으므로 
    delay(20)과 똑같다고 볼수있습니다.   
    main()함수 위에 위치하므로 선언이 아니고 구현을 해놓은 부분이네요
    만약 선언을 할려면
    void delay(unsigned int delay_set);  // 함수 선언
    void main()
    {
    ..............
    }
    void delay(unsigned int delay_set)  // 함수 구현
    {
    ..........................
    }
    이렇게 하면 되겠져 ;;

  • No Profile
    글쓴이 8051초입기 10.06.02 23:57 댓글 좋아요 0 싫어요 0

    두분다 감사합니다
    학기 초반에 질문 드린건데.. 그동안 대충 해결하고 여태 확인을 못했네요
    다른 방법으로 해결하긴했지만 어쨋든 해석 도와주셔서 감사합니다

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
66 펌웨어 & 코딩언어 HOT텍트로닉스(tektronix) 오실로스코프 질문드려요~~1 파괴지왕 1165 2010.06.24
65 펌웨어 & 코딩언어 HOTspice 프로그램을 만들고 싶습니다1 TreeOfDream 967 2010.06.21
64 펌웨어 & 코딩언어 HOTC언어 초보에요 ㅠㅠ 이쪽부분 간소화할려고하는데..조언좀..11 다크소마 1442 2010.06.19
63 펌웨어 & 코딩언어 HOTMFC 를 공부중입니다 API를 시작해야 하는데..3 TreeOfDream 1118 2010.06.11
62 펌웨어 & 코딩언어 HOT펌웨어 엔지니어입니다. 윈도우응용프로그램 MFC하고싶은데...6 상하이찬 1562 2010.06.02
61 펌웨어 & 코딩언어 HOT리눅스 기반 어셈블리어 작성했는데 자꾸 'command not found'라 뜨네요......2 하늘위의 성 1405 2010.05.30
60 펌웨어 & 코딩언어 HOT코드비젼 소스 설명좀 부탁드립니다 ㅠㅠ1 vsvm 2187 2010.05.24
59 펌웨어 & 코딩언어 HOT맥스포사의 mtm-cm3000 으로 리모콘 모듈이 조종 가능한가요? 철방이 875 2010.05.11
58 펌웨어 & 코딩언어 HOT코드비젼으로 컴파일해봤습니다...도움좀 주세요.4 푸후 1212 2010.05.04
57 펌웨어 & 코딩언어 HOT다시 작성합니다. MSDN 도움말 문제입니다. TreeOfDream 877 2010.04.29
56 펌웨어 & 코딩언어 HOT어셈블 도와주세요 ㅠㅠ1 마왕님 1024 2010.04.26
55 펌웨어 & 코딩언어 HOT왕초보 c언어 질문이요11 hshyo 1047 2010.04.19
54 펌웨어 & 코딩언어 HOT마이컴 제어하는 C언어 학습이 어디까지 이루어져야 할까요?8 봄날 1427 2010.04.17
53 펌웨어 & 코딩언어 HOT액세스 지정자에 대해서 궁금한 점이 있습니다. TreeOfDream 900 2010.04.17
52 펌웨어 & 코딩언어 HOT조이스틱 관련 Firmware,Driver 관련 조언 부탁드립니다.2 루키키 1086 2010.04.14
51 펌웨어 & 코딩언어 HOTc언어 배우려는 초보입니다.9 빛의속도 1021 2010.04.09
50 펌웨어 & 코딩언어 HOTzigbee 통신 프로그램 질문입니다!!5 소울 2442 2010.04.01
49 펌웨어 & 코딩언어 HOT비쥬얼 스튜디오 6.0에 관해서..3 꿇단지 1060 2010.03.24
48 펌웨어 & 코딩언어 HOTc언어 왕초보입니다. 좋은책 추천좀 해주세요10 circuit 1288 2010.03.15
47 펌웨어 & 코딩언어 HOT8051과 일반 C와 많이 차이나나요?5 개똥껄레 1093 2010.02.20
  • 전쟁에서는 오직 한 번 죽지만 정치에서는 여러번 죽는다.
    - 처칠
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.