|
|
Publicēts 25.11.2014 22:12:09
|
|
|

[mw_shl_code=c,true]#include<pic.h> // Izmantojiet 12M kristāla oscilatoru #include"12864.h" #define uint unsigned int #define uchar neparakstīts char __CONFIG(FOSC_HS&WDTE_OFF&LVP_OFF); uchar temp_valueH,hum_valueH,hum_valueL,temp_valueL,čeks; uint delay_time; Void timer0_init()
{ TMR0=0; Pirmā vērtība T0CS=0; Izvēlieties pulksteņa avotu, kas ir 1/4 no kristāla oscilatora; T0SE=1; Pulksteņa avota malu atlases biti PSA = 0; Predalītāju sadalījuma biti PS0=0; PS1=0; PS2=0; Pirmsdivīzijas atlases biti TMR0IF=0; Taimera karodziņš ir skaidrs 0 GIE = 1; Globālā pārtraukuma atvēršana TMR0IE=0; Iespējots taimeris 0 TMR0=236; Dzejoļa pirmā vērtība
} Tukšuma pārtraukuma taimeris0()
{ if(TMR0IF) { TMR0IF=0; TMR0=235; delay_time--; }
} void timer0_delay(uint delay_value)
{ delay_time=delay_value; TMR0IE=1; kamēr (delay_time); TMR0IE=0;
} Uchar Read_byte()
{ uchar i, temp, hum; for(i=0; I<8; i++) { kamēr (! RC1); timer0_delay 2. punkts; Aizkavēšanās 20us temp=0; if(RC1){temp=1; kamēr (RC1); } else{temp=0; } hum<<=1; hum|=temp; } atgriešanās (hum);
} Spēkā neesošs Read_data()
{ Uchar ckeck_value; RC1=0; timer0_delay(2500); Autobusu nolaiž vismaz 18 MS RC1=1; timer0_delay 2. punkts; Autobusu velk uz augšu ar pull-up rezistoru, un saimnieka aizkavēšanās ir 20us TRISC1=1; Resursdators ir iestatīts ievadei, lai spriestu par vergu reakcijas signālu RC1=1; Ja (! RC1) { kamēr ((! RC1)) // Nosakiet, vai vergs izstaro 80us zemas reakcijas signālu vai nē { NOP (); } kamēr (RC1) // Nosakiet, vai vergs izstaro augstu līmeni 80us, un, ja tā, tas nonāk datu saņemšanas stāvoklī { NOP (); } temp_valueH=Read_byte(); temp_valueL=Read_byte(); hum_valueH=Read_byte(); hum_valueL=Read_byte(); check=Read_byte(); ckeck_value=hum_valueL+hum_valueH+temp_valueL+temp_valueH; if(check==ckeck_value) { Proce_num(0x84,temp_valueH); Proce_num(0x94,hum_valueH); } } TRISC1=0; RC1=1;
} void main()
{ TRISB = 0X00; lcdinit(); timer0_init (); kamēr (1) { Read_data (); } }[/mw_shl_code]
|
Iepriekšējo:Doma un kailā programmēšana [seriāls]Nākamo:Labklājības pabalsti, C valodas nosaukšanas noteikumi, ļoti praktiskas lietas
|