현재 위치 - 회사기업대전 - 중국 기업 정보 - 이 전자시계의 절차에 대해 자세히 설명해 주세요.

이 전자시계의 절차에 대해 자세히 설명해 주세요.

ms50 data 31h; 50ms 카운트 메모리 주소 secdata 32h; 초 카운트 메모리 주소 min data 33h; 점수 계산 메모리 주소 hourdata 34h; 시간 카운트 메모리 주소 buffer data 35h; 10 진수 메모리 시작 주소 extrn code (display 8) 를 표시합니다. 외부 디스플레이 하위 프로그램 (하드웨어 설계와 관련이 있으며 원문에는 나열되지 않음) ORG 0000H Ljmp star; 이전 마스터 프로그램 org 000bh; Ljmpint _ timer0; 50ms 타이머 인터럽트 처리기 ORG 0100H 로 이동 스타: mov sp, # 60h; 마스터 프로그램 MOV ms50, a; 50ms 카운터가 0 MOV hour 로 초기화됩니다. # 12; 시간은 12 MOV min, # 59 로 초기화됩니다. 분은 59 MOV sec, # 50 으로 초기화됩니다. 초는 50 MOV TH0, # 60 으로 초기화됩니다. 초기화 타이머 T0 이 50ms 인 데이터 (클럭 주파수 및 타이머 패턴과 관련) MOV TL0, # 176; MOV TMOD, # 1; 초기화 타이머 모드 MOV IE, # 82h; 인터럽트 설정 setbtr0; 타이머 0st a R1: lcall display; 디스플레이 변환기 호출 (16 진수를 BCD 코드로 변환한 후 표시) JNB F0, $; 인터럽트 처리가 완료 될 때까지 기다리는 플래그 clr F0; 인터럽트 처리 완료 플래그 재설정

sjmpstar1; 순환 표시 인터럽트 서비스 프로시저 int _ timer0:

movtl0, # 176-5; 50ms 타이머 카운터 초기 값 재로드 (-5 는 미세 조정, 응답 중단시 사용) MOV TH0, # 60; 푸시 01h; 스택 MOV R1, # ms50 에 밀어 넣습니다. 50ms 카운트 메모리 주소 수 31h Inc @ R1 로드 50ms 카운트 메모리 더하기 1

cjne @ R1, #2

0, exit int; 1 초 미만, MOV @R1 종료, # 0; 50ms 카운트 메모리 재설정 0 (31h)

incr1; 초 메모리 주소 (32h)

Inc @ R1; 초 수 메모리에 1 CJNE @R1, #60, exit int1; 60 초 미만, MOV @R1, # 0 종료; 60 초, 초 수가 0 Inc R1 로 재설정됩니다. 점수 계산 메모리 주소 (33h)

Inc @ R1; 점수 메모리에 1 CJNE @R1, #60, exit int1; 60 점 미만, MOV @R1, # 0 종료; 60 점, 0 Inc R1 로 리셋됩니다. 변환 시 메모리 주소 (34h) Inc @ R1; 시간수 메모리에 1 CJNE @R1, #24, exit int1; 24 가 부족하면 MOV @R1, # 0 을 종료합니다. 시간 수 메모리 재설정 0 exit int1:

setbf0; 위치 인터럽트 처리 완료 플래그 exit int:

pop01h; 현장 reti 복구 종료 인터럽트

hextobcd:; 16 진수 변환 BCD 코드

movb, # 10; Divab; MOV @R0, b; 잔여 물 (10 진수 비트) Inc r0; 부상 주소 MOV @R0, a; 부상 (10 진수 10 자리) Inc r0; 다음 나머지 주소 ret 로 이동하십시오.

디스플레이:; 디스플레이 변환 및 호출 디스플레이 프로그램

movr0, # buffer; 10 진수 BCD 초 표시 캐시 주소 (35H) MOV A, SEC; ACAL

L hextobcd; 십진수 초 변환 후 존재 (35H), (36h) mov @ r0, # 10h; (37H)=#10H, 초와 분 사이의 간격, 실제적인 의미가 없거나 dispaly8 과 관련된

incr0; 10 진수 BCD 분 표시 캐시 주소 (38h)

mov a, min; A call hextobcd; 십진수 변환 후 존재 (38H), (39h)

mov @ r0, # 10h; (3AH)=#10H, 분과 시간 사이의 간격, 실제적인 의미가 없거나 dispaly8 과 관련된

incr0; 10 진수 BCD 에서 캐시 주소 표시 (3bh)

mov a, hour; A call hextobcd; 십진 변환 후 존재 (3CH), (3dh)

movr0, # buffer; 디스플레이 캐시 주소 (35 시간) 를 복원하고 디스플레이 8 에 대한 초기 디스플레이 주소 lcall display 8 을 설정합니다. 실제 디스플레이 프로그램 ret 호출 END

copyright 2024회사기업대전