8051 microcontroller를 이용하여,
interrupt의 원리와 작동을 이해하고,
COMPACT 51 의 7-segment LED 를 이용하여
stop watch를 구현하였습니다.
(소숫점 아래 첫째자리 초까지..)
C언어를 이용하여 작성하였기 때문에
7-segment LED 가 있거나 연결된 board에 모두 적용 가능합니다.
(엘레베이터 층계 숫자같이 여러 LED조각으로 숫자를 만드는 LED조합)
소스 코드는 문서안에 포함되어 있으며,
리포트는 영문이지만, 한국인 대학생이 작성한 것이라 어렵지 않게 해석할 수 있습니다.
또한, 핵심적인 내용은 표로 작성하였기 때문에 한눈에 보기 쉽습니다.
최종적으로 A+ 받았습니다.
(1) Investigate the meaning of following registers by referring to the 8051 User`s Manual.
- TCON, TMOD, TH1, TH0, TL1, TL0
- IE, IP
(2) Investigate the operation characteristics of 8255 by referring to the 8255 datasheet.
(3) To display the number 0~9 to the 7-segment LED module of the experiment board, what
kind of binary values should be written to those address?
(4) When you define the variables in KEIL uVisionII compiler, you can use the keywords
such as xdata, pdata, and data. Investigate what they are and what the differences are.
1) How precise do you think the implemented stopwatch is? What are the factors that disturb
the accuracy of the stopwatch?
2) How do you think the other interrupt is occurred when the interrupt handler is already
In this experiment, we are going to design our own digital system to improve our design ability using 8051 microcontroller. We have to understand the interrupt operation of 8051 microcontroller. Though this process we are getting familiar with COMPACT51 / KEIL uVIsionII development environment for 8051 microcontroller.
2. Problem statement
Implement the stopwatch. The timer starts when INT0 button is pushed, and the timer stops when INT0 button is pushed again. The timer becomes “0.00” (cleared) when TIMER0 button is pushed. Time is represented by the three 7 segment LED modules. During the first 10 seconds, the leftmost module represents ‘second’, the middle one represents ‘1/10 second’, and the rightmost one represents ‘1/100 second’. At this time, there is a decimal point between leftmost one and right 2 logics, i.e., between 1 second and 1/10 second. After 10 seconds, 2 left modules represent the ‘second’ level and the rightmost one represents ‘1/10 second’. In other words, the position of a decimal point shifts right and the number of 1/100 second disappears. Then, the timer can represent up to 99.9 second.
During stopwatch operates, 8 LED modules present the number of 7 segment LED as binary number. 4 LED modules present multiples of 10 second, and other 4 LED modules present multiples of 1 second. For example, if number of 7 segment is 37.2, 8 LED modules should be 0011 0111. Implement 0 as turned-off LED and 1 as turned-on LED. Don’t express multiples of 0.1 second and 0.01 second, and express only multiples of 1 second and 10 second. When reset button is pushed, 8 LED modules should be turned off.