회원가입 ID/PW 찾기
AA

8051 다운카운터를 만들려고 하는데요..

/* 7-세그먼트 상위 어드레스 */
#define     FNDH     (*(unsigned char*)(0x2fc4c))
/* 7-세그먼트 하위 어드레스 */
#define     FNDL     (*(unsigned char*)(0x2fc4d))

를 써서 할려고 합니다.

예전에 7-seg를 외부에서 연결을 하여서 0을 2개 줘서 한적은 있었는데요..
키트에 내장되어 있는 세그먼트로 30~0까지 다운카운토 할려고 했는데 잘안되더라구요..


#include    <reg51.h>
/* 포트 선택 어드레스 */
#define     SELECT     (*(unsigned char*)(0x2fc48))
/* 7-세그먼트 상위 어드레스 */
#define     FNDH     (*(unsigned char*)(0x2fc4c))
/* 7-세그먼트 하위 어드레스 */
#define     FNDL     (*(unsigned char*)(0x2fc4d))
/* 전역 변수로 선언, 인터럽트 수 카운터용,초, 분 저장하는데 사용 */


unsigned char count,sec_l,sec_h;
/* 타이머 1 인터럽트 함수 */


void TIMER1(void) interrupt 3
{                                                                                        
        count++;    /* 0,071 초 마다 증가 */ 
}


void    main( void )
{
        /* 7 세그먼트 클리어 */
        FNDH = 0;
        FNDL = 0xf030;
       /* 타이머 1, 모드 1, GATE ON */
       TMOD = 0x90;
       TH1 = 0;
       TL1 = 0;
       /* INT1 키 및 소수점 디스플레이 */
       SELECT = 0xbc;
       count = 0;
       sec_l = 10;
       sec_h = 3; 

       /* 인터럽트 인에이블 및 타이머 1 런 */

        ET1 = 1;
        TR1 = 1;
        EA = 1;


       do{
        if (count == 4){
             count = 0;

             sec_l--;     

          if(sec_l == 0){ FNDL = 0;
             sec_l = 10;

                sec_h--;

            if(sec_h < 1){
               sec_h = 3;

                 }
                }
         /* 현재 값 디스플레이 */
           FNDL = sec_l | ( sec_h << 4 );
           }
           }while(1);

}

언어를 이렇게 짯는데요..
세그먼트 초기값을 30 에서 29 28로 내려가길 원하는데..
실제로는

30, 39, 38, 37, 36, 35, 34, 33, 32, 31,  2□    <- 1자리는 아무것도 안뜹니다. 그리고 30이 아닌 2□ 로 뜨구요..
29, 28, 27, 26, 25, 24, 23, 22, 21,  1□
19, 18, 17, 16, 15, 14, 13, 12, 11,  3□
39, 38, 37, 36, 35, 34, 33, 32, 31

이런식으로 떠요.. 어디가 잘못된 걸까요..??
가르쳐주세요~~~

 

댓글 0

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

search
번호 분류 제목 글쓴이 조회 수 날짜
2364 자유주제 HOTpads2005 아트웍 도서 추천 바랍니다.5 산골 4378 2010.11.12
2363 Software & IDEs HOTcrc 계산1 푸른하늘은하수 4062 2010.11.13
마이크로프로세서 HOT8051 다운카운터 질문이요 partangel 1771 2010.11.13
2361 자유주제 HOT입문자...어떤것을2 신의영혼 4089 2010.11.13
2360 자유주제 HOT좌뇌형 우뇌형 알아보기36 신의영혼 2469 2010.11.13
2359 자유주제 HOTPads9.2 설치방법7 반야바라밀 12542 2010.11.14
2358 마이크로프로세서 HOT8051 어셈블리질문좀할게요ㅠ2 바나나보트 1590 2010.11.15
2357 Allegro & OrCAD HOTwin7 적용version?1 정상에서 1110 2010.11.15
2356 자유주제 HOT가입하였습니다...6 바이러스당 4475 2010.11.15
2355 PADS HOTpads library 문의2 하루^^하루 1590 2010.11.15
2354 Analog & Mixed-Signal 설계 HOT초보자 질문이요1 keroso 915 2010.11.15
2353 개발용역 HOT하드웨어 개발 및 Artwork 해 드립니다.2 야웅이 5636 2010.11.15
2352 자유주제 HOT오늘 가입 하였습니다. 처언재 4327 2010.11.16
2351 자유주제 HOT쪽지가 도착했습니다.(사이트 접속시 문제점)2 꿈돌이^^* 4914 2010.11.16
2350 Analog & Mixed-Signal 설계 HOTFET 기초이론인데 이해가 안가는 부분이 잇어서 종이악마 975 2010.11.16
2349 마이크로프로세서 HOTatmega 질문 드립니다.2 sapialdun 1185 2010.11.16
2348 마이크로프로세서 HOTAVR 교육 프로그램 질문입니다.1 sapialdun 5228 2010.11.16
2347 Software & IDEs HOT빠쑝님께서 올리신 api 통신함수에 대한 질문입니다.1 momozizi 1038 2010.11.17
2346 마이크로프로세서 HOTLED 잔상효과를 이용한 문자열 출력 프로그램 소스 질문 POV매니아 2999 2010.11.17
2345 드론/로봇/라인트레이서 HOT아크마 라인트레이서 동작 질문.. 천년동안 1294 2010.11.17
  • 위대한 것 치고 정열이 없이 이루어진 것은 없다.
    - 에머슨
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.