Skip to content

qlanfr/pic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 

Repository files navigation

PIC16F877A 기반 LED μ œμ–΄ μ‹œμŠ€ν…œ

ν”„λ‘œμ νŠΈ κ°œμš”

이 ν”„λ‘œμ νŠΈλŠ” PIC16F877A 마이크둜컨트둀러λ₯Ό μ‚¬μš©ν•˜μ—¬ λ²„νŠΌ μž…λ ₯κ³Ό LCD λ””μŠ€ν”Œλ ˆμ΄λ₯Ό 톡해 LED μƒνƒœλ₯Ό μ œμ–΄ν•˜λŠ” κ°„λ‹¨ν•œ μž„λ² λ””λ“œ μ‹œμŠ€ν…œμž…λ‹ˆλ‹€. λ²„νŠΌμ„ λˆ„λ₯Ό λ•Œλ§ˆλ‹€ LED의 μƒνƒœκ°€ λ³€κ²½λ˜λ©°, LCDμ—λŠ” "LED ON" λ˜λŠ” "LED OFF"κ°€ ν‘œμ‹œλ©λ‹ˆλ‹€. 이 μ‹œμŠ€ν…œμ€ μ–΄μ…ˆλΈ”λ¦¬ μ–Έμ–΄λ‘œ μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


μ£Όμš” κΈ°λŠ₯

  • LED μ œμ–΄: λ²„νŠΌ μž…λ ₯에 따라 LED μƒνƒœλ₯Ό ON/OFF둜 μ œμ–΄.
  • LCD λ””μŠ€ν”Œλ ˆμ΄: LED μƒνƒœλ₯Ό μ‹€μ‹œκ°„μœΌλ‘œ ν‘œμ‹œ ("LED ON" λ˜λŠ” "LED OFF").
  • λ²„νŠΌ μž…λ ₯ 처리: λ²„νŠΌμ˜ λˆ„λ¦„ μƒνƒœλ₯Ό κ°μ§€ν•˜κ³  λ™μž‘ μˆ˜ν–‰.
  • μ§€μ—° ν•¨μˆ˜ μ‚¬μš©: μ•ˆμ •μ μΈ 좜λ ₯ 및 λ””μŠ€ν”Œλ ˆμ΄λ₯Ό μœ„ν•œ λ”œλ ˆμ΄ ν•¨μˆ˜ κ΅¬ν˜„.

μ‚¬μš©λœ ν•€ 및 ν•˜λ“œμ›¨μ–΄ μ—°κ²°

ν•€ 번호 μ‚¬μš© λͺ©μ  μ„€λͺ…
PORTA,3 LCD RS LCD λ ˆμ§€μŠ€ν„° 선택 ν•€
PORTA,2 LCD RW LCD 읽기/μ“°κΈ° μ œμ–΄ ν•€
PORTA,1 LCD EN LCD Enable ν•€
PORTC,0 λ²„νŠΌ (BTN) μž…λ ₯ λ²„νŠΌ
PORTD,0 LED LED 좜λ ₯
PORTB LCD 데이터 ν•€ LCD에 데이터 전솑

μ½”λ“œ μ„€λͺ…

μ£Όμš” μ–΄μ…ˆλΈ”λ¦¬ ν•¨μˆ˜

  1. INIT_LCD: LCD μ΄ˆκΈ°ν™” μ„€μ •.
  2. CLR_LCD: LCD 클리어 ν•¨μˆ˜.
  3. DSP_DATA1, DSP_DATA2: "LED ON" λ˜λŠ” "LED OFF"λ₯Ό LCD에 ν‘œμ‹œ.
  4. DELAY ν•¨μˆ˜: λ”œλ ˆμ΄λ₯Ό μΆ”κ°€ν•˜μ—¬ μ•ˆμ •μ μΈ λ™μž‘ 보μž₯.
  5. PUT_LCD: LCD에 데이터λ₯Ό μ“°λŠ” ν•¨μˆ˜.
  6. BUTTON μƒνƒœ 처리:
    • λ²„νŠΌμ΄ 눌리면 LEDλ₯Ό 켜고 "LED ON" ν‘œμ‹œ.
    • λ²„νŠΌμ΄ λˆŒλ¦¬μ§€ μ•ŠμœΌλ©΄ LEDλ₯Ό 끄고 "LED OFF" ν‘œμ‹œ.

λ™μž‘ 흐름

  1. μ‹œμŠ€ν…œμ΄ μ΄ˆκΈ°ν™”λ˜λ©΄ LCDκ°€ μ΄ˆκΈ°ν™”λ˜κ³  κΈ°λ³Έ 화면이 ν‘œμ‹œλ©λ‹ˆλ‹€.
  2. λ²„νŠΌ μž…λ ₯이 κ°μ§€λ˜λ©΄ LED μƒνƒœλ₯Ό ν† κΈ€ν•˜κ³  LCD에 ν˜„μž¬ μƒνƒœλ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.
  3. λ²„νŠΌμ΄ λˆŒλ Έμ„ λ•Œμ™€ λˆŒλ¦¬μ§€ μ•Šμ•˜μ„ λ•Œ 각각 λ‹€λ₯Έ λ©”μ‹œμ§€κ°€ LCD에 ν‘œμ‹œλ©λ‹ˆλ‹€.

μ„€μΉ˜ 및 μ‹€ν–‰ 방법

1. μ€€λΉ„λ¬Ό

  • PIC16F877A 마이크둜컨트둀러
  • LCD λ””μŠ€ν”Œλ ˆμ΄
  • λ²„νŠΌ (μŠ€μœ„μΉ˜)
  • LED
  • 컴파일러: MPLAB X IDE와 XC8 컴파일러
  • 회둜 μ—°κ²°: μœ„μ˜ ν•€ μ—°κ²°ν‘œλ₯Ό μ°Έκ³ ν•˜μ—¬ 회둜λ₯Ό κ΅¬μ„±ν•©λ‹ˆλ‹€.

2. μ½”λ“œ μ—…λ‘œλ“œ

  1. MPLAB X IDEλ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
  2. 이 μ½”λ“œλ₯Ό .asm 파일둜 μ €μž₯ν•˜κ³  ν”„λ‘œμ νŠΈμ— μΆ”κ°€ν•©λ‹ˆλ‹€.
  3. μ½”λ“œλ₯Ό λΉŒλ“œν•œ ν›„ HEX νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€.
  4. ν”„λ‘œκ·Έλž˜λ¨Έ(예: PICKIT 3)λ₯Ό μ‚¬μš©ν•˜μ—¬ HEX νŒŒμΌμ„ PIC16F877A에 μ—…λ‘œλ“œν•©λ‹ˆλ‹€.

3. μ‹€ν–‰

  1. μ‹œμŠ€ν…œμ— 전원을 μ—°κ²°ν•©λ‹ˆλ‹€.
  2. λ²„νŠΌμ„ 눌러 LED의 μƒνƒœλ₯Ό μ œμ–΄ν•˜κ³ , LCD에 ν‘œμ‹œλ˜λŠ” λ‚΄μš©μ„ ν™•μΈν•©λ‹ˆλ‹€.

λ™μ˜μƒ μ‹œμ—°

μ•„λž˜ 링크λ₯Ό 톡해 LED μ œμ–΄ μ‹œμŠ€ν…œμ˜ λ™μž‘ μ‹œμ—° μ˜μƒμ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€:
LED μ œμ–΄ μ‹œμŠ€ν…œ μ‹œμ—° μ˜μƒ


μ½”λ“œ ꡬ쑰

μ£Όμš” λ ˆμ΄λΈ”

  • MAIN: μ΄ˆκΈ°ν™” 및 메인 루프
  • BTN_PRESSED: λ²„νŠΌμ΄ λˆŒλ Έμ„ λ•Œ λ™μž‘
  • BTN_NOT_PRESSED: λ²„νŠΌμ΄ λˆŒλ¦¬μ§€ μ•Šμ•˜μ„ λ•Œ λ™μž‘
  • DSP_DATA1: "LED ON" 데이터 좜λ ₯
  • DSP_DATA2: "LED OFF" 데이터 좜λ ₯
  • DELAY: μ§€μ—° ν•¨μˆ˜

μ£Όμš” λ©”λͺ¨λ¦¬ λ ˆμ§€μŠ€ν„°

λ ˆμ§€μŠ€ν„° μš©λ„
COM_BUF LCD λͺ…λ Ήμ–΄ 버퍼
DATA_PTR 데이터 포인터
COUNT1 λ”œλ ˆμ΄ μΉ΄μš΄ν„° 1
COUNT2 λ”œλ ˆμ΄ μΉ΄μš΄ν„° 2
COUNT3 λ”œλ ˆμ΄ μΉ΄μš΄ν„° 3

ν™”λ©΄ μ˜ˆμ‹œ

LCD λ””μŠ€ν”Œλ ˆμ΄ 좜λ ₯

  • λ²„νŠΌ 눌림 μƒνƒœ: LED ON
  • λ²„νŠΌ λΉ„λˆŒλ¦Ό μƒνƒœ: LED OFF

κ°œμ„  사항

  1. 닀쀑 λ²„νŠΌ μΆ”κ°€: μΆ”κ°€ λ²„νŠΌμ„ μ‚¬μš©ν•˜μ—¬ 더 λ§Žμ€ LEDλ₯Ό μ œμ–΄ν•˜κ±°λ‚˜ μΆ”κ°€ κΈ°λŠ₯ κ΅¬ν˜„.
  2. PWM μ œμ–΄: LED 밝기λ₯Ό μ‘°μ ˆν•  수 μžˆλ„λ‘ PWM(Pulse Width Modulation) κΈ°λŠ₯ μΆ”κ°€.
  3. μœ μ—°ν•œ λ©”μ‹œμ§€ ν‘œμ‹œ: LCD에 더 λ‹€μ–‘ν•œ μƒνƒœ λ©”μ‹œμ§€λ₯Ό ν‘œμ‹œν•˜λ„λ‘ ν™•μž₯.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors