라디오 전자 및 전기 공학의 백과사전 마이크로 컨트롤러의 타이머. 무선전자공학 및 전기공학 백과사전 무선 전자 및 전기 공학 백과사전 / 시계, 타이머, 릴레이, 부하 스위치 문제의 타이머에는 1분에서 999분 사이 또는 동일한 초 단위의 시간 간격에 대한 두 가지 카운트다운 모드가 있습니다. 장치의 다이어그램이 그림에 나와 있습니다. SA1 스위치를 사용하여 카운트를 유지할 단위, 분 또는 초, 제어 버튼 SB1-SB3, 1자리 LED 표시기 HG3(백 자리) - HG2(단위 자릿수)을 선택할 수 있습니다. 타이머의 전원이 켜진 후 RC 회로 R3C1은 DD90 마이크로컨트롤러(AT2313S10-XNUMXPI)를 초기 상태로 설정하는 펄스를 생성합니다. 생성된 셔터 속도의 지속 시간을 설정할 때 SB1(L) 버튼을 누를 때마다 표시기 판독값이 3씩 증가합니다. 이 버튼을 5초 이상 누르고 있으면 표시기의 값이 2초마다 1단위(분 또는 초)씩 증가합니다. SB999(V) 버튼은 SB0 버튼과 유사하게 작동하지만 표시기의 값은 증가하지 않고 감소합니다. XNUMX 또는 XNUMX 값에 도달하면 해당 방향의 판독값 변경이 자동으로 차단됩니다. SA1 스위치를 선택하면 시간이 분 또는 초로 계산되고 SB1 및 SB2 버튼으로 필요한 노출 시간을 설정하고 SB3(C) 버튼을 눌러야 합니다. 이 순간부터 타이머가 시작됩니다. 마이크로 컨트롤러의 출력 PD6의 높은 레벨이 낮은 레벨로 대체되고 전압이 커넥터 X2에 연결된 액추에이터에 적용되며 네온 램프 HL1(내장 안정기 저항), 설정 시간의 카운트 다운이 시작됩니다. 표시기에 표시된 숫자는 1분 또는 XNUMX초마다 XNUMX씩 감소합니다. 단위 자릿수의 소수점이 XNUMX초 주기로 깜박입니다. 표시기가 6에 도달하자마자 PD4 출력의 로우 레벨이 다시 높아져 액츄에이터가 꺼집니다. 또한 분 계산 모드에서 이 순간 PD60 출력에서 XNUMX초 지속 시간의 펄스 시퀀스가 생성되며 가청 신호가 울립니다. 그러면 장치가 원래 상태로 돌아갑니다. 미리 셔터 속도를 종료하려면 SB3 버튼을 다시 누르십시오. 액추에이터가 꺼집니다. 새로운 셔터 속도를 생성하려면 지속 시간을 다시 설정해야 합니다. 액추에이터 제어 장치는 반도체 릴레이 U1에 조립되며, 그 방출 다이오드는 마이크로 컨트롤러의 출력 PD6에 연결됩니다. 덕분에 220V 네트워크에 연결된 릴레이 회로는 나머지 타이머 회로와 격리됩니다. 노출 종료에 대한 사운드 신호를 제공하는 압전 방출기 HA1은 출력 PD4에 연결됩니다. 포트 B의 출력에서 DD1 마이크로 컨트롤러는 전류 제한 저항 R4-R11을 통해 LED 표시기 HG1-HG3 요소의 음극으로 들어오는 신호와 버튼 SB1-의 상태를 결정하는 데 사용되는 신호를 생성합니다. SB3. 모든 버튼의 두 번째 핀은 함께 연결되고 마이크로 컨트롤러의 PD3 입력에 연결됩니다. 다이오드 VD1-VD3은 여러 버튼을 동시에 눌렀을 때 포트 B의 라인 사이의 단락을 방지합니다. PDO-PD1 출력의 신호로 제어되는 트랜지스터 VT3-VT2은 HG1-HG3 표시기의 공통 양극을 전원에 교대로 연결하며 이는 동적 표시를 구성하는 데 필요한 전원입니다. 마이크로 컨트롤러 DD1의 클록 주파수는 1MHz와 동일한 수정 공진기 ZQ10에 의해 설정됩니다. 타이머 마이크로컨트롤러에 로드된 프로그램은 소스 코드가 기사 부록에 나와 있으며 초기화 모듈(INIT 레이블), 메인 무한 루프(SE1 레이블) 및 T/C1 타이머의 세 가지 주요 부분으로 구성됩니다. 인터럽트 핸들러(TIM0 레이블). 레지스터, 카운터, 스택, T/C1 타이머, 워치독 타이머, I/O 포트를 초기화하여 작업을 시작합니다. 초기화가 완료되면 표시기에 숫자 001이 표시되고 모든 소수점이 꺼지고 PD6 출력이 하이 레벨로 설정되어 액추에이터의 회로가 개방됩니다. 카운트다운이 중지되었습니다. 지속 시간이 1초인 정확한 시간 간격을 형성하는 작업은 타이머 T/C1의 인터럽트를 사용하여 해결되며 요청은 3,9ms(1/256초)마다 뒤따릅니다. 레지스터 r25의 카운터에 의해 계산됩니다. 레지스터 r21에 구성된 카운터를 사용하여 1분 간격이 형성됩니다. 인터럽트를 처리하는 과정에서 인디케이터에 표시되는 비트도 변경되고 이 비트에서 출력되는 숫자의 바이너리 값은 "XNUMX-세그먼트" 코드로 변환됩니다. 또한 버튼의 상태가 폴링되고 광전자 릴레이 및 가청 신호 장치에 대한 제어 신호가 생성됩니다. $060에서 $062까지의 마이크로 컨트롤러의 데이터 메모리에는 노출이 끝날 때까지 남은 시간 간격 값을 저장하는 버퍼가 구성됩니다. 인터럽트 핸들러가 인디케이터에 대한 동적 출력을 위한 숫자를 취하는 것은 그것으로부터입니다. SB1 버튼을 누르면 버퍼에 저장된 값이 1씩 증가합니다. 동시에 레지스터 r3의 초 카운터가 시작됩니다. 버튼을 1초 이상 누르고 있으면 버퍼의 값이 1초에 XNUMX번씩 증가하기 시작합니다. 이 증가가 발생하는 시간 간격의 카운트는 rg 레지스터에 구성됩니다. SBXNUMX 버튼을 놓으면 레지스터 rXNUMX 및 rO의 카운터가 XNUMX으로 재설정됩니다. 버퍼의 수를 줄이는 SB2 버튼을 누르는 처리는 완전히 유사한 방식으로 구성됩니다. 이 버튼의 시간 카운터는 레지스터 r2 및 rXNUMX에 있습니다. 지정된 셔터 속도를 계산하는 과정에서 버퍼의 숫자는 SA1 스위치의 위치에 따라 XNUMX분 또는 XNUMX초마다 감소합니다(XNUMX씩 감소). 지정된 지연이 끝나기 전에 다른 위치로 이동하면 그에 따라 감소 기간이 변경됩니다. 레지스터 r22는 표시기의 현재 활성화된 비트에 해당하는 비트 단위로 이진 코드를 저장합니다. 초기화 중에는 00000001이 기록되고(HG3 표시기가 켜짐) 버퍼의 시작 주소($060)가 Y 레지스터에 기록됩니다. 인터럽트 핸들러가 호출될 때마다 r22 레지스터의 내용은 왼쪽으로 22비트 이동하고 Y 레지스터는 증가합니다. r22 레지스터의 단위가 세 번째 자리로 이동되자마자(모든 표시기가 통과됨) rXNUMX 및 Y 레지스터를 다시 로드하여 원래 값을 복원해야 합니다. 버튼 SB1-SB3의 상태를 폴링할 때 모든 표시등이 꺼지고 마이크로 컨트롤러의 출력 PB0-РВ2에서 "영점 실행" 코드가 생성됩니다. 입력 PD3에서 로우 레벨을 감지하고 어떤 출력 PB0-PB2가 현재 로우인지 알고 있는 인터럽트 루틴은 어떤 버튼을 눌렀는지 결정합니다. 전체 프로그램은 약 670바이트의 마이크로컨트롤러 프로그램 메모리를 차지합니다. 타이머는 전면 패널에 표시기 HG1-HG3, 버튼 SB1-SB3, 스위치 SA1 및 네온 램프 HL1이 표시되는 플라스틱 케이스에 넣은 브레드보드에 조립됩니다. 5V의 전압원에서 소비되는 전류는 100mA를 초과하지 않습니다.
마이크로컨트롤러 프로그램을 다운로드할 수 있습니다. 따라서. 저자: S. Shishkin, Sarov, Nizhny Novgorod 지역; 출판: radioradar.net 다른 기사 보기 섹션 시계, 타이머, 릴레이, 부하 스위치. 읽고 쓰기 유용한 이 기사에 대한 의견. 과학 기술의 최신 뉴스, 새로운 전자 제품: 터치 에뮬레이션을 위한 인조 가죽
15.04.2024 펫구구 글로벌 고양이 모래
15.04.2024 배려심 많은 남자의 매력
14.04.2024
다른 흥미로운 소식: ▪ 셧다운 기능 및 워치독 타이머가 있는 새로운 LDO 컨트롤러 ▪ 이중화 모듈은 DRDN20/40 및 ERDN20/40을 의미합니다.
무료 기술 라이브러리의 흥미로운 자료: ▪ 기사 프랑스어와 Nizhny Novgorod의 혼합. 대중적인 표현 ▪ 기사 최초의 13명의 지도자 중 15명이 벨로루시의 어느 당국에서 총살당했습니까? 자세한 답변 ▪ 기사 가정용, 가족용 서브우퍼. 몇 가지 트릭. 무선 전자 및 전기 공학 백과사전 이 페이지의 모든 언어 홈페이지 | 도서관 | 조항 | 사이트 맵 | 사이트 리뷰 www.diagram.com.ua |