Ülesanne: Koosta või katseta olemasolevat programmi, millega lülitatakse kõik digitaalväljundid sisse Käik: Kasutasime registreid PORTC, PORTD, TRISC, TRISD. Need aga paiknevad erinevates mäluakendes, seega lülitasime ümber mäluaknad registri signaalidega 5 ja 6 (RP0 EQU 5 ja RP1 EQU 6). Siis lülitatasime sisse mäluakna 1. Järgnevalt kustutasime registrid TRISC ja TRISD nulliks ja mõlemas määrasime RD0, RD1, RD2, RD, RD4, RD5, RD6 ja RD7 väljunditeks. Lõpetuseks laadisime registrisse W 8-bitilise arvu, milles kõik signaalid on ühed ninglülitasime
;Muutujate defineerimine cblock 0x20 Pause Pause_tmp temp_var endc ;Programm alates aadressist 0 org 0x00 bsf STATUS,RP0 ;Valime mäluala 1 bcf STATUS,RP1 movlw b'00000000' ;Kogu portD on väljund movwf TRISD movlw b'00000000' ;Kogu portC on väljund movwf TRISC movlw .0 movwf ADCON1 ;PORTA seadistatakse analoogsisenditeks movlw b'11111111' ;Kogu portA on sisend movwf TRISA bcf STATUS,RP0 ;Valime mäluala 0 bcf STATUS,RP1
Õppetund 9: Analog sisend Selles näites ma kasutad termistorit pakkuda analoog sisend. Tegelikult loomise ADC on üsna lihtne; K ma kasutan termistorit minu analoogseade lisasin mõned "kohevaks", et aidata visualiseerida sisend, k see ei ole tingimata vajalik. Seal on mõned väikesed asjad, mida teha lihtne, sarvedeta analoog proovi. Veenduge, et pin sa loed on p ups blokeeritud, sest see segab võtmiseks. Kirjutamine 0 pin register (PORTC = 0) või milles see väljund režiimis (DDRC = 0) Seadke ADC kella õigesti - see tuleb clocked 50kHz-200kHz. Arduino on 16MHz k jagatud 128 on väga mugav 165kHz. Seadke tugipingeks õigesti. See määrab ülempiiri mõõtmine; kasu VCC on ilmselt parim valik.USB power on tõenäoliselt väga stabiilne. Lõpuks seadistada ADC võimalda natuke ja Force One conversion - esimene konverteerimine võtab lisaaega tõttu mõned sisemised setup, on vajalik. Siin on lesson9.c .