Programiranje integriranog kruga (IC) je vrsta računalnog programiranja u kojem se softver stvara putem koda, a zatim se dodaje u IC. To se obično radi korištenjem računala kao mosta za IC programiranje, jer računalo može učitati softver u IC. Ovo se najčešće koristi za mikrokontrolere za upravljanje određenim uređajem, ali se također može koristiti i za samo glavno računalo. Postoje mnoge radnje koje se mogu kodirati kroz IC programiranje, a sve se svodi na ono što se kontrolira.
Kod programiranja IC-a sve počinje softverom. Netko pravi softver napravljen za upravljanje uređajem, a softver se mora dodati u kontroler. Ako se program ne prenese, tada obično nema načina da kontroler naredi uređaju da učini bilo što, jer neće imati odgovarajuće kodiranje ili postupke za vršenje kontrole. Programiranje je obično izgrađeno klasičnom logikom i obično ima mnogo izjava “ako/onda”.
Nakon što je programiranje IC-a završeno, softver se mora dodati u krug. Ponekad se može napraviti zaseban mikrokontroler kako bi se olakšao ovaj zadatak, ali to se najčešće radi putem računala. Računalo, koje se također obično koristi za kodiranje softvera, povezuje se s IC-om i prenosi programiranje. To vrijedi čak i ako je krug unutar samog računala.
Gotovo svi primjeri IC programiranja rade se za mikrokontrolere, jer su mikrokontroleri obično beskorisni bez njihovog IC-a koji ima softver i upute. Mikrokontroleri se mogu prilagoditi većini uputa, mobilni su i lako se mogu instalirati u većinu sustava, tako da to olakšava proces. U isto vrijeme, računalni sklopovi također mogu imati novo programiranje dodano svom IC-u, što poboljšava funkcije računala, ali je obično teže jer se drugo programiranje već nalazi na većini sklopova.
IC programiranje može stvoriti veliki niz naredbi i uputa, a postoji mnogo programskih jezika koji se mogu koristiti za to. Obično nema ograničenja za ono što samo programiranje može zapovijedati, ali postoji ograničenje za ono što uređaj može učiniti. Na primjer, ako je IC programiranje za koračni motor – motor koji se kreće prema programiranim koracima – tada programiranje ne može naložiti motoru da nadgleda računalne dokumente radi uređivanja korisnika, jer uređaj nije sposoban za ovu naredbu.