MOV TMOD,#01H
SETB ET0
SETB EA
SETB TR0
MOV TH0,#00H
MOV TL0,#00H
MOV PCON,#00000001B
;;
WAKE:
;;
MOV TH0,#00H
MOV TL0,#00H
RETI
저의 의도는 타이머 인터럽트0,1모드를 이용해서 시정수시간(11.0592Mhz 이용)즉,65ms에 한번씩
인터럽트가 발생하려고 합니다.
질문1) 위 프로그램으로 슬립모드상태에서 65ms에 한번씩 깨어나는지요 ?
질문2) 현재 시정수 시간이 최대인것으로 아는데 시간을 더 늘릴수 있는 방법을 알려 주시면 감사합니다.(꼭 부탁합니다)
소스을 첨부해주시면 더욱 감사합니다.
SETB ET0
SETB EA
SETB TR0
MOV TH0,#00H
MOV TL0,#00H
MOV PCON,#00000001B
;;
WAKE:
;;
MOV TH0,#00H
MOV TL0,#00H
RETI
저의 의도는 타이머 인터럽트0,1모드를 이용해서 시정수시간(11.0592Mhz 이용)즉,65ms에 한번씩
인터럽트가 발생하려고 합니다.
질문1) 위 프로그램으로 슬립모드상태에서 65ms에 한번씩 깨어나는지요 ?
질문2) 현재 시정수 시간이 최대인것으로 아는데 시간을 더 늘릴수 있는 방법을 알려 주시면 감사합니다.(꼭 부탁합니다)
소스을 첨부해주시면 더욱 감사합니다.
어셈블러는 제가 취약해서 ...
아크마님한테 ㅎㅎ
ㅋㅋㅋ사실 이미 술로 이성을 잃었어요...ㅋㅋ
중요한건 레지스터 설정인데요...................................................................................
레지스터는 데이터쉬트를 봐야 저도 기억이 나서요.ㅋㅋ 이 기운으로는 좀 힘들어요.............
65ms가 가능한가요? 11.0592크리스탈을 사용하고 최대분주를 사용하면 얼마나 나오는지 계산은 안해봐서 모르겠네요
하지만 인터럽트는 각각 주기를 계산해서 카운팅하면 더 큰 주기를 만들수는 있어요...
만약 65ms마다인터럽트 발생한다면 2번 인트럽트가 발생하면 (jump명령을 사용해야겠지요) 130ms에 실행을 시키면 되겠지요..
MOV PCON,#00000001B
레지스터 확인은 안해봤지만 pcon이 아마 기억에 슬립모드 설정 레지스터같은데요 . 이걸 130ms마다 실행하면 되겠지요
후~~하악하악~~~
슬립모드상태에서는 외부에 입력이 있어야 깨어나야 하는걸로 알고있습니다.
질문2) 현재 시정수 시간이 최대인것으로 아는데 시간을 더 늘릴수 있는 방법을 알려 주시면 감사합니다.(꼭 부탁합니다)
소스을 첨부해주시면 더욱 감사합니다.
어셈으로 8051한지는 오래되서 정확히 소스는 첨부하기는 어렵겠네요(죄송해요ㅠ.ㅠ)
명령어가 차츰 ㅈ ㅔ머리속에서 지워진답니다//자주 안쓰다보니
하앍하앍~~ 어셈은 뭐라는지 하나두 모르겠어요 ㅠㅠ 넘 어려워요 ㅋ
ㅎ ㅏ~악;;