PIC ๊ฐœ๋ฐœ(PIC16F19155์˜ L์ž)

5124 ๋‹จ์–ด MPLAB-SNAPxc8MPLAB-X-IDEpic
PIC์˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์€ ์ง€์†์ ์œผ๋กœ ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค.์ œ์กฐ์‚ฌ๋กœ์„œ์˜ ๋งˆ์ดํฌ๋กœ์นฉ์ด ๊ณต๊ธ‰ํ•˜๋Š” ๋„๊ตฌ์™€ ํ”„๋กœ๊ทธ๋žจ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์งˆ๋„ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์–ด ์˜ˆ์ „๊ณผ ์™„์ „ํžˆ ๋‹ค๋ฅด๊ฒŒ C ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.๋˜ PIC๋Š” ์•„๋‘๋…ธ ๋“ฑ์— ๋น„ํ•ด ๊ฐ€๊ฒฉ๊ณผ ์ „๋ ฅ ์†Œ๋ชจ ๋“ฑ ์žฅ์ ๋„ ๋งŽ๋‹ค.์ด ๊ธ€์€ ๋งˆ์ดํฌ๋กœ์ปดํ“จํ„ฐ์—์„œ MPLAB X IDE, MPLAB SNAP, C ์–ธ์–ด(xc8)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค.๋จผ์ € LED๋ฅผ ๋ฐ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
์ž…์ˆ˜ ๋ฐฉ๋ฒ•
๋‚˜๋Š” ๋‹ค์Œ ์‚ฌ์ดํŠธ์—์„œ ์–ป์—ˆ๋‹ค.
ํƒ€์ž…
ํ’ˆ๋ช…
์†์— ๋„ฃ์€ ๊ณณ
URL
๋งˆ์ดํฌ๋กœ ์ปดํ“จํ„ฐ
PIC16F19155
์ถ”์›”์ „์ž
https://akizukidenshi.com/catalog/g/gI-13504/
์“ฐ๊ธฐ ๋„๊ตฌ
MPLAB SNAP
์ถ”์›”์ „์ž
https://akizukidenshi.com/catalog/g/gM-13854/
IDE
MPLAB X IDE
microchip
https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-x-ide
C ์–ธ์–ด
xc8
microchip
https://www.microchip.com/en-us/development-tools-tools-and-software/mplab-xc-compilers
์ด์™ธ์—๋„ ์ €ํ•ญํŒ, LED, ์ฝ˜๋ด์„œ, ๋น„ํŠธ์Šค์œ„์น˜, ICํด๋ฆฝ ๋“ฑ๋„ ์ถ”์›”์ „์ž์—์„œ ๊ตฌ๋งคํ•œ๋‹ค.
ํšŒ๋กœ๋„
์‹ค์ œ๋กœ RC1์— ์—ฐ๊ฒฐ๋œ ํ•˜๋‚˜์˜ LED๋งŒ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ๋‘ ๊ฐœ์˜ LED์™€ ํ•œ ๊ฐœ์˜ SW1๊ณผ PIC๋กœ ๊ตฌ์„ฑ๋œ ํšŒ๋กœ๋„๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.MLABO SNAP์— ์—ฐ๊ฒฐํ•˜๋Š” J1์— ๋Œ€ํ•ด์„œ๋„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.ํฌ๋ฆฌ์Šคํƒˆ ๋ฐœ์ง„๊ธฐ ๋“ฑ์ด ์—†์–ด ๊ฐ„๋‹จํ•˜๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜
xc8โ†’MPLAB X IDE ์ˆœ์œผ๋กœ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.MPLAB X IDE๋ฅผ ์„ค์น˜ํ•œ ํ›„ MPLAB X IDE์˜ ๋ฉ”๋‰ด Tools โ†’ plagin์—์„œ MPLAB Code Configurator๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.MPLAB Code Configuurator(MCC)๋Š” ๊ฒฌ๋ณธ ์†Œ์Šค๊ฐ€ ํ•„์š” ์—†์„ ์ •๋„๋กœ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
MPLAB SNAP(์“ฐ๊ธฐ ๋„๊ตฌ)
MPLAB SNAP๋Š” ์“ฐ๊ธฐ ์™ธ์—๋„ ๋‹จ๊ณ„ ์‹คํ–‰ ๋˜๋Š” ๋ณ€์ˆ˜Watch ๋“ฑ์˜ ๋””๋ฒ„๊น…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋“œ์›จ์–ด์ž…๋‹ˆ๋‹ค.์ปดํ“จํ„ฐ์™€๋Š” ๋งˆ์ดํฌ๋กœUSB ๋‹จ์ž๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  PIC์™€๋Š” ์ ํผ ๋“ฑ์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.ํ•˜๋„ค์Šค๋ฅผ ๋‹ค์Œ ํ…Œ์ด๋ธ”๋กœ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.์ฝ˜๋ด์„œ์™€ ์ €ํ•ญ์„ ๋ผ์šฐ์ง€ ์•Š๊ณ  ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๋‹ค.์ „์›์€ ๋งˆ์ดํฌ๋กœ์ปดํ“จํ„ฐ ์ธก์„ ๋Š์€ ํ›„ MPAB SNAP๋ฅผ ๋Š๋Š”๋‹ค.PICKET4์™€ ๋‹ฌ๋ฆฌ MPALB SNAP์—์„œ ์ „๋ ฅ์„ ๊ณต๊ธ‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
MPLAB SNAP
PIC16F19155
์‹œํ—˜์„ ์ค€๋น„ํ•˜๋‹ค
1 MCLR
1 MCLR
๋ณดํ†ต ์‹คํ–‰ํ•  ๋•Œ ๋œฏ์ง€ ์•Š์œผ๋ฉด ์›€์ง์ด์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.
2 Vcc
20 Vcc
MPLAB SNAP์—์„œ ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋ณ„๋„์˜ ์ „์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
3 GND
19 GND
4 PGD
28 ICSPDAT
5 PGC
27 ICSPCLK
6NC
-
์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ
7 -
-
์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ
8 -
-
์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Œ
ํ”„๋กœ์ ํŠธ ์ž‘์„ฑ
MPLAB X IDE๊ฐ€ Fileโ†’ New Project์— ํ‘œ์‹œํ•œ ๋Œ€ํ™”์ƒ์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
1.Standalone Project
2. Device&PIC16F19155 ์„ ํƒ
Tool>Snap-XXXX(XXXX๋Š” ์ผ๋ จ ๋ฒˆํ˜ธ?)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด MPLAB SNAP์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
3. XC8 ์„ ํƒ(v2.32)
4. Project Name> ๋ช…๋ช…๋œ ํ•ญ๋ชฉ์—ฌ๊ธฐ์„œ ๋ฆฌ์นด๋ฅผ ๊ณจ๋ž์–ด์š”.
๋งˆ์ง€๋ง‰์œผ๋กœ Finish ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ๋ชฉ์„ ๋‚ด๋ณด๋ƒ…๋‹ˆ๋‹ค.
PIC ์„ค์ •
์ด์–ด์„œ MCC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PIC๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.MCC ์•„์ด์ฝ˜์ด ์—†์„ ๊ฒฝ์šฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์ •์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
์ž‘์—… ๋นˆ๋„ ์„ค์ •
์ด๋ฒˆ์— ๋‚ด์žฅ ์‹œ๊ณ„๋ฅผ 32MHz ์ฃผํŒŒ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์‹œ์Šคํ…œ Clock์„ ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ 32MHz(2xPLL)๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ ์„ค์ • ๊ฐ€์ ธ์˜ค๊ธฐ
ํšŒ๋กœ๋„์™€ ๊ฐ™์ด MCC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ RC0RC1 ์ถœ๋ ฅ์„ RC4 ์ž…๋ ฅ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

pulup ์„ค์ •
RC4 ๋‚ด๋ถ€ pull up์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.๋‚ด๋ถ€ pull up์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ WPU์—์„œ ์ด ์˜ต์…˜์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.WPU๋Š” weak pull up์˜ ์ƒ๋žต์ž…๋‹ˆ๋‹ค.

์ฝ”๋“œ ์ƒ์„ฑ๊ธฐ
๊ทธ๋Ÿฐ ๋‹ค์Œ Generate ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ง€๊ธˆ๊นŒ์ง€ PIC ์„ค์ •์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด
๊ทธ๋Ÿฐ ๋‹ค์Œ LED๋ฅผ ๊นœ๋ฐ•์ด๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.ํด๋ฆญํ•˜๋‹ค

main ํ•จ์ˆ˜์˜while ์ƒ์ž์— LED๋ฅผ ๋น›๋‚˜๊ฒŒ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์“ฐ์‹ญ์‹œ์˜ค.
    while (1)
    {
        // Add your application code
        IO_RC1_SetHigh()  ; 
        __delay_ms(500);      
        IO_RC1_SetLow()  ; 
        __delay_ms(500);        
    }
์ด ์ฝ”๋“œ๋Š” RC1์˜ LED๋ฅผ 500ms(=0.5์ดˆ)๋งˆ๋‹ค ๊นœ๋ฐ•์ž…๋‹ˆ๋‹ค.IO_RC1_SetHigh() ๋ฐ ์ž…์ถœ๋ ฅRC1_SetHigh () ๋Š” RC1์˜ ๋””์ง€ํ„ธ ์ถœ๋ ฅ์„ ์œ„ํ•œ ๋งคํฌ๋กœ๋กœ MCC์—์„œ ์ƒ์„ฑํ•œpinmanger.h์—์„œ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.์ด ํŒŒ์ผ์— IO๋„ ์žˆ์–ด์š”.RC3_Toggle() ๋“ฑ๋„ ์ •์˜๋˜์–ด ์žˆ์–ด ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.delay_ms๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ms ๊ฐ„์— ์ •์ง€๋œ ๋งคํฌ๋กœ์ž…๋‹ˆ๋‹ค.pic.h์—์„œ ์ •์˜ํ•˜๊ณ  xc์— ๋ณ‘ํ•ฉdelay ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
์‹คํ–‰
ํ™”๋ฉด์˜ ์œ„์ชฝ ๊ฐ€์šด๋ฐ ์‚ผ๊ฐ ๋ฒ„ํŠผ์˜ ์žฌ์ƒ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ๋’ค PIC๋กœ ์ „์†กํ•ด ์‹คํ–‰ํ•œ๋‹ค.

์‹คํ–‰ ์ค‘์ธ ํ™”๋ฉด

๋‹ค์Œ ๊ณ„ํš
๋‹ค์Œ์€ ๋ฐ•์ž ์Šค์œ„์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ