회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
154 PADS HOTpads에서 가이드선 단축키!!!2 리아군 1554 2010.12.07
153 Allegro & OrCAD HOT파일저장시...1 어느날 1853 2010.12.06
152 Allegro & OrCAD HOTORCAD Layout을 PADS로 변환 하는방법좀...5 Crystal 3372 2010.12.03
151 PADS HOTWin XP에서 PADS9.2 설치 돼나요??2 잔다르크 2686 2010.12.02
150 PADS HOT64비트 윈도우7에 PADS 설치문제.1 주작 3447 2010.11.30
149 Allegro & OrCAD HOT설치 질문좀..1 쨍용 1940 2010.11.29
148 Allegro & OrCAD HOT[무조건 따라하기]OrCAD Capture Techniques for Research Engineer8 줄리20 1376 2010.11.27
147 ECAD 아무거나 HOTPCB 완전 초보에서 지금까지...#28 내공수련중 5639 2010.11.22
146 PADS HOTpads 부품 배치 질문!5 윤건 3149 2010.11.19
145 PADS HOTpads library 문의2 하루^^하루 1591 2010.11.15
144 Allegro & OrCAD HOTwin7 적용version?1 정상에서 1112 2010.11.15
143 Allegro & OrCAD HOTpcb설계 초보 질문??1 정상에서 1035 2010.11.12
142 PADS HOT버젼 질문요2 등나무 1321 2010.11.11
141 PADS HOTpads 2007 관련 서적 추천요^^2 하루^^하루 1246 2010.11.10
140 PADS HOTpads 사용자입니다. 하루^^하루 1246 2010.11.10
139 PADS HOTCAM350 V9.0 설치방법 아시는분?2 윰8969 7859 2010.11.08
138 Allegro & OrCAD HOTorcad libraries 질문 입니다.2 아카 1285 2010.11.06
137 ECAD 아무거나 HOTAVR 128 사용할때 어떤 컴파일러 사용하세요???10 12몽키 2403 2010.11.03
136 ECAD 아무거나 HOT그림의 떡이란 말이 정확한듯1 바다거북 4829 2010.11.02
135 ECAD 아무거나 HOT50옴이라는 것은 특성임피던스로 알고 있는데 바다거북 4821 2010.11.02
Prev 1 ... 20 21 22 23 24 25 26 27 28 29 ... 32 Next
  • 삶은 순간들의 연속이다. 한순간, 한순간을 사는 것이 성공하는 것이다.
    - 켄트
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.