googlepay.kr System On Chip 설계 및 응용 - 시계 + 스탑워치 + 시간설정 + 알람설정 구현 > googlepay12 | googlepay.kr report

System On Chip 설계 및 응용 - 시계 + 스탑워치 + 시간설정 + 알람설정 구현 > googlepay12

본문 바로가기

googlepay12


[[ 이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다. ]


System On Chip 설계 및 응용 - 시계 + 스탑워치 + 시간설정 + 알람설정 구현

페이지 정보

작성일 23-04-01 13:18

본문




Download : System On Chip 설계 및.hwp




알람동작은 알람 <시:분:초>와 같거나 클 경우 그리고 <시:분+1:초>보다 작을 경우 buzzer값에 0을 넣어서 dot_matrix를 작동 시킨다. 그리고 0에서 한 단계 뒤는 그 변수의 최고치이므로 세그먼트 출력부 중 others값은 최고치에 맞춰 주어야한다. 또한 스탑워치의 모든 카운터 값을 ‘0’으로 초기화시킬 수 있었다. 똑같은 방식으로 새로운 파일을 만들어 알람시간을 정하고 그 값이 저장된 변수들을 시계로 보내서 현재 시간과 비교해서 같을 경우 부저신호를 내보내면 되는 것 이였다. 여기서 약간의 문제가 있었다. 앞에서도 말했듯이 카운터값은 현재시각의 한단계 높은 값을 가지고 있기 때문에 1을 빼줘야 하는데 무작정 빼면 0에서 음수가 되어버리기 때문에 그 부분을 고려하여 if문으로 0일 경우는 빼지 않고 최고치로 넘어갈 수 있도록 하여 임시변수에 넣은 뒤 십의 자리에는 10을 곱한 후 일의자리와 더해서 하나의 10진수를 만들었다. 시계에서 시간 부분을 제거한 후 1/100초 부분을 추가해줬다.
use ieee.std_logic_arith.all;



순서

use ieee.std_logic_unsigned.all;
처음 스탑워치 구현은 전자회로 test(실험) 시간에도 자주해 본 알고리즘이고 시계소스도 이미 만들어져 있기 때문에 큰 어려움없이 구현 할 수 있었다. 그리고 카운터가 1/100초를 셀수 있도록 125,000번 클럭(25Mhz)이 발생하면 Clk_out을 반전되도록 하였다. 시계의 경우는 12,500,000번이다.두 번째로 시간을 설정하는 부분에서 많은 시행착오를 겪다가 시계소스 안에서 스위치 라이징엣지를 clk_in라이징엣지와 중복해서 사용하는 건 부적절한 듯싶어서 새롭게 파일을 만들었다. 원래는 0으로 설정되어있다. 알람을 어느 정도 동작되고 꺼야 했는데 이 프로젝트에서는 알람시각으로부터 1분간 작동되고 알람이 꺼지도록 했다. 스탑워치 제어는 put변수를 만들어 각각의 스위치 눌러지면 미리 정해놓은 값이 들어가 다른 버튼이 눌러지기 전까지 그 값을 유지하게 하였다. 시계와 소스는 대부분 같지만 클럭으로 시분초가 올라가는게 아니라 각각의 스위치 라이징엣지에 反應(반응)하여 시분초가 올라가도록 만들고 그 값들을 설정모드 일 경우에만 시계의 시분초 카운터들과 연결시켜서 시간설정을 구현 할 수 있었다.
port (



use ieee.std_logic_1164.all;
library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity easy_clock is port ( clk_in: in std_logic; resetn: in std_logic;

Download : System On Chip 설계 및.hwp( 57 )




System On Chip 설계 및 응용,시계,스탑워치,시간설정, 알람설정 구현

설명
System On Chip 설계 및-4422_01.jpg System On Chip 설계 및-4422_02_.jpg System On Chip 설계 및-4422_03_.jpg System On Chip 설계 및-4422_04_.jpg System On Chip 설계 및-4422_05_.jpg


resetn: in std_logic;

dotmatrix에는 한글로 “알람”을 표시하도록 코딩하였다. 그러기 위해서는 십의자리와 일의자리로 나누어진 초의 변수들을 하나의 십진수로 만들어서 현재시각과 비교가 필요했다. if문을 안쓰고 rem을 써보려했지만 카운터 자료(資料)형이 unsigned형이 아니라 명령어를 쓸 수 없었다. 여기서 전달되는 카운터 값은 세그먼트에 표시된 값보다 한 단계 증가해서 전해지기 때문에 시계에서 세그먼트로 갱신 될 때 한 단계만큼 감소시켜 출력시켜야 정상적으로 출력되었다. 이렇게 만들고 나니 의도하지는 않았지만 알람설정도 자연스럽게 되었다. 그 다음 put변수값을 비교하여 카운터를 증가시키거나 유지할 수 있었다.
clk_in: in std_logic;

레포트 > 공학,기술계열


entity easy_clock is

System On Chip 설계 및 응용 - 시계 + 스탑워치 + 시간설정 + 알람설정 구현
library ieee;
다.
Total 18,251건 793 페이지

검색

REPORT 11(sv76)



해당자료의 저작권은 각 업로더에게 있습니다.

googlepay.kr 은 통신판매중개자이며 통신판매의 당사자가 아닙니다.
따라서 상품·거래정보 및 거래에 대하여 책임을 지지 않습니다.
[[ 이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다 ]]

[저작권이나 명예훼손 또는 권리를 침해했다면 이메일 admin@hong.kr 로 연락주시면 확인후 바로 처리해 드리겠습니다.]
If you have violated copyright, defamation, of rights, please contact us by email at [ admin@hong.kr ] and we will take care of it immediately after confirmation.
Copyright © googlepay.kr All rights reserved.