[에리카A+] 마이크로프로세서응용 Lab3 Seven Segment Display
- 최초 등록일
- 2020.04.02
- 최종 저작일
- 2018.01
- 8페이지/ MS 워드
- 가격 1,500원
목차
Chapter 1. 구현 방법
Chapter 2. 결과
Chapter 3. 결론 및 Discussion
본문내용
Chapter 1. 구현 방법
우선 우리 팀은 해당 프로그램을 성공적으로 구현하였다. 하지만 프로그래밍 하던 도중에 예상치 못한 오류도 발생하였었다. 하지만 이는 count 값을 출력하는 함수의 위치를 바꿈으로써 해결되었다.
(displaySeg 가 if 문 밖에 위치할 경우 잡음이 끼는 것 같다.)
< 구현 방법 >
프로그램 구현을 위해 여러 함수를 만들어 사용하였다.
1. 사용할 레지스터를 초기화 해주는 함수. (메인문의 가독성을 위해 함수화 하였다.)
=> setRegister
2. count의 값을 디스플레이를 통해 출력시켜 주는 함수.
(10 의 자리의 경우 PORTE = count%10
1 의 자리의 경우 PORTE = (count – count%10)/10; )
=> displaySeg
3. 버튼을 눌렀다 뗐을 경우, 버튼이 눌렸을 경우를 판단하여 countFlag 를 변경시키는 함수.
(이 함수는 지난번에 토글 스위치를 구현했을 때 사용한 함수를 조금 수정하여 사용하였다.)
=> extractButton
4. countFlag에 따라 count의 값을 증가, 유지 시켜주는 함수. 그리고 출력까지(함수 호출)
=> displayCount
주로 이렇게 네가지 함수를 따로 만들어서 사용하였다.
자세한 구현 방법은 아래의 알고리즘 순서도에 표기하였다.
Chapter 2. 결과
이와 같은 함수들을 이용하여 프로그램을 정상 작동 시켰다. 카운트가 00~99 까지 정상 작동하고 다시 00~99 까지 순서대로 출력되었다. 그리고 버튼을 누를 때 값이 증가하기 시작하고, 다시 누를 때 값이 증가하는 것을 멈추는 동작도 정상적으로 작동하였다. 하지만 처음에 코드를 구성했을 때에는 버튼을 누르는 순간 count 값은 유지되지만, 값이 정지될 때 출력되는 값이 무작위로 쓰레기 값이 나오는 것을 확인할 수 있었다. (하지만 이 문제는 이 후 해결하였다. 해결과정은 아래에 기록하였다.)
참고 자료
없음