Lcd le kirjete saamine pidi küll olema kui lumme lasta, aga ma siin mõtlen varsti oma pea pooleks. Antud kood on ühe pici raamatu põhjal koostatud, muutsin vaid viivituste pikkusi, sest Pic Simulator IDE 6.65 andis errorit, et lcd ei jõudnud vana käsku realiseerida, kui uus juba peale anti. Sain sellest jamast lahti, aga ega palju paremaks ikka ei läinud. Antud koodi tulemusena peaks lcd esimesele tähemärgikohale ilus suur "M" täht ilmuma, ainus, mis ma saan on suur täismahus vilkuv ruut (kursor) tollel kohal. Kui too kood rauda lasta, siis ei saa niigi palju. Ma üritasin ka Nigeli õpetustes antud esimest lcd koodi - jällegi ainult ajaerrorid ja kursorite vilkumine. Nigeli koodis on hirmus palju alamprogramme ning jälgimine läks väga raskeks, et võrrelda enda koodi vea avastamiseks. RS otsaks on RA1, E on RA2 ja RW istub mättas. Teadjad mehed ehk vaavad mu leiutise üle ja kommenteerivad.
Tänulik oleksin ka mõne kindlalt töötava ja lihtsa koodi eest, et kontrollida simulaatorit ja raudvara.
Igaks petteks ka link Nigeli tutorialile: http://www.winpicprog.co.uk/pic_tutorial3.htm
Tänulik oleksin ka mõne kindlalt töötava ja lihtsa koodi eest, et kontrollida simulaatorit ja raudvara.
Kood:
LIST p=16F628 include "P16F628.inc" ERRORLEVEL 0, -302 __config 0x3D18 [COLOR=SeaGreen];Ekud[/COLOR] status equ 03h trisa equ 85h trisb equ 86h porta equ 05h portb equ 06h counta equ 20h countb equ 21h countc equ 22h [COLOR=SeaGreen];A ja B port väljunditeks[/COLOR] bsf status,5 movlw b'00000000' movwf trisa movlw b'00000000' movwf trisb bcf status,5 [COLOR=SeaGreen] ;LCD konfiguratsioon[/COLOR] movlw 03h movwf portb call clock call delay2 movlw 02h movwf portb call clock call delay2 movlw 02h movwf portb call clock call delay2 [COLOR=SeaGreen] ;4 bit inf, 2le reale, läbi b0...b3[/COLOR] movlw 08h movwf portb call clock movlw 03h movwf portb call clock [COLOR=SeaGreen];Harjutust alga[/COLOR] Start call clear clrf porta movlw 08h movwf portb call clock movlw 00h movwf portb call clock call M call delay call M call delay goto Start [COLOR=SeaGreen] ;M täht[/COLOR] M movlw 02h movwf porta movlw b'0010' movwf portb call clock movlw b'1101' movwf portb call clock retlw 0 [COLOR=SeaGreen] ;Viivitus[/COLOR] delay movlw d'255' movwf counta movlw d'8' movwf countb loopa decfsz counta,1 goto loopa return [COLOR=SeaGreen] ;Pikem viivitus[/COLOR] delay2 movlw d'255' movwf counta movlw d'8' movwf countb loopb decfsz counta,1 goto loopb decfsz countb,1 goto loopb return [COLOR=SeaGreen] ;Displei puhtaks[/COLOR] clear clrf porta movlw 00h movwf portb call clock call delay2 movlw 01h movwf portb call delay2 retlw 0 [COLOR=SeaGreen] ;Data displeisse[/COLOR] clock bsf porta,02h nop call delay2 call delay2 bcf porta,02h nop call delay2 call delay2 retlw 0 end
Comment