8051 어셈블러를 이용한 디지털 시계 만들기 (알람, 시간 설정, 플리커)
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

본문내용

,NotOverFlow;60이 아니면 함수를 빠져나감
movMinuite,#00;Minuite 초기화
;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
movA,Hour;Hour를 A에 저장
addA,#01;A에 1을 Plus 함
daA;A의 값을 BCD로 포맷
movHour,A;Hour에 저장
cjneA,#24H,NotOverFlow;24가 아니면 함수를 빠져나감
movHour,#00;Hour 초기화
NotOverFlowret
;#######################################################################################################
;시계의 내용을 FND에 Display하는 프로그램
;#######################################################################################################
DisplayClock1jb AlarmSet,NotOver1 ;알람 시간 설정시 시계 표시 정지
movR1,#FND ;R1에 FND값 저장
movA,Second ;Second를 A에 저장
movB,#10H ;레지스터 B에 10 저장
divAB ;10으로 나누어 목은 십 단위로 나머지는 분단위로 저장
movR0,A ;십의 단위 R0에 저장
movA,B ;A에 일의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND에 표시
incR1 ;R1 = FND+1
movA,R0 ;A에 십의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+1에 표시
;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
inc R1 ;R1 = FND+2
movA,Minuite ;Minuite를 A에 저장
movB,#10H ;레지스터 B에 10 저장
divAB ;10으로 나누어 목은 십 단위로 나머지는 분단위로 저장
movR0, A ;십의 단위 R0에 저장
movA,B ;A에 일의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+2에 표시
incR1 ;R1 = FND+3
movA,R0 ;A에 십의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+1에 표시
;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
inc R1 ;R1 = FND+4
movA,Hour ;Hour를 A에 저장.
movB,#10H ;레지스터 B에 10 저장
divAB ;10으로 나누어 목은 십 단위로 나머지는 분단위로 저장
movR0, A ;십의 단위 R0에 저장
movA,B ;A에 일의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+4에 표시
incR1 ;R1 = FND+5
movA,R0 ;A에 십의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+1에 표시
NotOver1ret
;#######################################################################################################
;알람의 내용을 FND에 Display하는 프로그램
;#######################################################################################################
DisplayClock2jnb AlarmSet,NotOver2 ;알람 설정용 시계 표시
movR1,#FND ;R1에 FND값 저장
movA,A_Second ;Second를 A에 저장
movB,#10H ;레지스터 B에 10 저장
divAB ;10으로 나누어 목은 십 단위로 나머지는 분단위로 저장
movR0,A ;십의 단위 R0에 저장
movA,B ;A에 일의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND에 표시
incR1 ;R1 = FND+1
movA,R0 ;A에 십의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+1에 표시
;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
inc R1 ;R1 = FND+2
movA,A_Minuite ;Minuite를 A에 저장
movB,#10H ;레지스터 B에 10 저장
divAB ;10으로 나누어 목은 십 단위로 나머지는 분단위로 저장
movR0, A ;십의 단위 R0에 저장
movA,B ;A에 일의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+2에 표시
incR1 ;R1 = FND+3
movA,R0 ;A에 십의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+1에 표시
;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
inc R1 ;R1 = FND+4
movA,A_Hour ;Hour를 A에 저장.
movB,#10H ;레지스터 B에 10 저장
divAB ;10으로 나누어 목은 십 단위로 나머지는 분단위로 저장
movR0, A ;십의 단위 R0에 저장
movA,B ;A에 일의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+4에 표시
incR1 ;R1 = FND+5
movA,R0 ;A에 십의 단위 저장
xchdA,@R1 ;A의 하위 4비트를 FND+1에 표시
NotOver2ret
;#######################################################################################################
;시간 지연 함수 20ms
;#######################################################################################################
Delay20m mov R5,#18
Loop1 mov R4,#0FFH
Loop2 nop
nop
djnz R4,Loop2
djnz R5,Loop1
ret
;ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
End

키워드

  • 가격2,000
  • 페이지수14페이지
  • 등록일2005.05.16
  • 저작시기2005.05
  • 파일형식한글(hwp)
  • 자료번호#297125
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니