Kul med PIC församling - Episode 1 (2 / 2 steg)
Steg 2: programvara
En av anledningarna till att jag gillar assembler för mikrokontroller är eftersom jag gillar att prata direkt med maskinvaran. När du förstår att kontrollera maskinvaran mest bara läsa och skriva till minnesplatser (kallas
register), instruktionerna börjar vettigt. Instruktionsuppsättningen är också ganska liten så det inte tar mycket tid att sortera igenom dem. Svåra, om du är van vid högre nivå språk, är att det tar lite tid att vänja att enkla konstruktioner som IF-THEN-ELSE måste byggas från flera monteringsanvisningar. Och matematik kan vara en mardröm så enkla logik-baserade projekt är oftast bäst. Men hey, är inte utmana alltid del av roligt?
Programvaran länk nedan. Medan det är måltavlan för 12F683, är det lätt portas till större versioner av bilden. Personligen har jag använt det med både 16F688 och 16F627. Det kräver oftast ändra namn som TRISIO till TRISA och GPIO att PORTA. Du måste också ändra raden som identifierar den PIC versionen (lista =) och INCLUDE-filen men de är intuitivt förändringar. Den __CONFIG linjen kan också behöva tweaking bara för att en eller två av de etiketter som används är stavat fel i några av inkluderade filer.
Rutinen LCD_Init följer ganska mycket angivna initiering sekvensen för 1602 chip. De två Test_Code rutinerna utgång frasen "Hej" på rad en av LCD och "CAROL" på rad två av LCD-skärmen. Det
Ursprungligen sa var "HELLO WORLD" men min fru inte imponerad så jag ändrade det för att använda hennes namn. Hon var fortfarande inte imponerad men jag fick poäng för att försöka. Programvara tricket jag nämnde tidigare är i rutinen Send_Byte. Jag använder det faktum att skiftet registrerar klockor på en låg till hög kant och att klocka linjen har lämnats i hög tillstånd efter den sista biten var klockat in. En minnesplats Reg_Select har tidigare angetts till 0 eller 1 beroende på huruvida de byte som skickas är ett kommando eller data. Om det är ett kommando, sedan ligger klockan linjen lågt innan du aktiverar LCD. En kort puls på LCD-aktivera raden stämplar SKIFT register byte till LCD-skärmen.
Tja, är det det för episod 1 av "Kul med PIC församlingen". Håll ögonen öppna för ytterligare episoder som jag komma runt att sätta mina olika projektanteckningar i ett enhetligt format.