Integrinių grandynų (IC) programavimas yra kompiuterio programavimo tipas, kai programinė įranga sukuriama naudojant kodą ir pridedama prie IC. Paprastai tai daroma naudojant kompiuterį kaip tiltą IC programavimui, nes kompiuteris gali įkelti programinę įrangą į IC. Tai dažniausiai naudojama mikrovaldikliams tam tikram įrenginiui valdyti, tačiau jis taip pat gali būti naudojamas pačiam pagrindiniam kompiuteriui. Yra daug veiksmų, kuriuos galima užkoduoti naudojant IC programavimą, ir tai priklauso nuo to, kas yra valdoma.
Su IC programavimu viskas prasideda nuo programinės įrangos. Kažkas sukuria programinę įrangą, skirtą įrenginiui valdyti, o programinė įranga turi būti pridėta prie valdiklio. Jei programa neperkeliama, tada paprastai valdiklis negali įsakyti įrenginiui ką nors daryti, nes jis neturės tinkamo kodavimo ar procedūrų valdyti. Programavimas paprastai yra sukurtas naudojant klasikinę logiką ir paprastai būna daug „jei/tada“ teiginių.
Baigus IC programavimą, programinė įranga turi būti įtraukta į grandinę. Šiai užduočiai palengvinti kartais galima pagaminti atskirą mikrovaldiklį, tačiau dažniausiai tai atliekama per kompiuterį. Kompiuteris, kuris taip pat dažniausiai naudojamas programinei įrangai koduoti, susieja su IC ir įkelia programavimą. Tai tiesa, net jei grandinė yra pačiame kompiuteryje.
Beveik visi IC programavimo atvejai atliekami mikrovaldikliams, nes mikrovaldikliai paprastai yra nenaudingi, jei jų IC neturi programinės įrangos ir instrukcijų. Mikrovaldikliai gali atitikti daugumą instrukcijų, yra mobilūs ir gali būti lengvai montuojami daugumoje sistemų, todėl tai paprastai palengvina procesą. Tuo pačiu metu kompiuterių grandinėse prie jų IC gali būti pridėtas naujas programavimas, kuris pagerina kompiuterio funkcijas, bet paprastai yra sunkesnis, nes daugumoje grandinių jau yra kitoks programavimas.
IC programavimas gali sukurti daugybę komandų ir instrukcijų, o tam galima naudoti daugybę programavimo kalbų. Paprastai nėra jokių apribojimų, ką gali valdyti pats programavimas, tačiau yra apribojimų, ką įrenginys gali padaryti. Pavyzdžiui, jei IC programavimas skirtas žingsniniam varikliui – varikliui, kuris juda pagal užprogramuotus žingsnius, tada programavimas negali įsakyti varikliui stebėti kompiuterio dokumentus, kad vartotojas redaguotų, nes įrenginys negali atlikti šios komandos.