회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
668 마이크로프로세서 HOTAVR 교육 프로그램 질문입니다.1 sapialdun 5218 2010.11.16
667 마이크로프로세서 HOTatmega 질문 드립니다.2 sapialdun 1184 2010.11.16
666 마이크로프로세서 HOT8051 어셈블리질문좀할게요ㅠ2 바나나보트 1584 2010.11.15
마이크로프로세서 HOT8051 다운카운터 질문이요 partangel 1770 2010.11.13
664 마이크로프로세서 HOTpic용으로 짜진 어셈을 8051용으로 바꿀수 잇나요?5 고장이 1357 2010.11.09
663 마이크로프로세서 HOT음성 안내 VOICE CHIP4 광대역 1774 2010.11.09
662 마이크로프로세서 HOTCSTACK 이라는게 뭔가요?1 BARK 2479 2010.11.06
661 마이크로프로세서 HOTatmega32의 핀을 연결하는 법..1 jyuder 920 2010.11.04
660 마이크로프로세서 HOTF포트 입력 문의 입니다.1 핵교 1636 2010.11.04
659 마이크로프로세서 HOT코드비전에서의 퓨즈비트 설정법좀 가르쳐주세요1 POV매니아 2368 2010.11.04
658 마이크로프로세서 HOT예전에 작품하나한다고 생각했던거 시작중인데요7 온니무 1236 2010.11.04
657 마이크로프로세서 HOT12V에서 8V 사이를 넣어주라는 것은 그속에 이미 레귤레이터가 있는 것이 아닌가요?1 바다거북 1156 2010.11.02
656 마이크로프로세서 HOTvoliate에 대한 이야기가 있어서3 바다거북 4621 2010.11.02
655 마이크로프로세서 HOTATmega128 소스문의요1 양양양111 1387 2010.11.01
654 마이크로프로세서 HOTuart포트 사용하여 통신3 촌철살인 1531 2010.11.01
653 마이크로프로세서 HOTKEIL Example에서 STM32_Init.c 내부의 0xFFUL에서 UL은 무슨 의미인지요?1 세상탈출 3228 2010.10.31
652 마이크로프로세서 HOTAVR-ISP error enteing proming mode8 POV매니아 7496 2010.10.30
651 마이크로프로세서 HOT질문입니다ㅜ4 lju_0415 1142 2010.10.29
650 마이크로프로세서 HOTATMEG128로 SRF04를 쓰고 싶습니다.. 리타이켄 2362 2010.10.25
649 마이크로프로세서 HOTATmega128로 LED60개를 제어해보려하는데 포트확장에 관해서 문제가있어요 ㅠㅠ5 POV매니아 3419 2010.10.24
Prev 1 ... 12 13 14 15 16 17 18 19 20 21 ... 50 Next
  • 자식에게 미움받은 적이 없다면 당신은 진정한 부모가 되어 본적이 없었던 것이다.
    - 데이비스
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.