Elektroniska säkerhetssystem med RTC och användaren definiera pin-kod (5 / 7 steg)
Steg 5: Programmering RTC IC PCF8583
Detta är okej en lite knepig sak men eftersom koden är det inte så knepigt. Jag inte gav hex filen för programmering RTC IC eftersom du har att generera den för att ställa dig krävs tid, också året är satt till 2015 måste du inte ange det.
Öppna mikroC Pro fro PIC och välj PIC18F4550, kopiera och klistra in koden nedan:
LCD modul anslutningar
sbit LCD_RS på RB2_bit;
sbit LCD_EN på RB3_bit;
sbit LCD_D4 på RB4_bit;
sbit LCD_D5 på RB5_bit;
sbit LCD_D6 på RB6_bit;
sbit LCD_D7 på RB7_bit;
sbit LCD_RS_Direction på TRISB2_bit;
sbit LCD_EN_Direction på TRISB3_bit;
sbit LCD_D4_Direction på TRISB4_bit;
sbit LCD_D5_Direction på TRISB5_bit;
sbit LCD_D6_Direction på TRISB6_bit;
sbit LCD_D7_Direction på TRISB7_bit;
Slutet LCD modul anslutningar
void main () {
ADCON1 = 0X0F;
CMCON | = 7. Inaktivera kontrollapparater
OSCCON = 0b01111111; Med hjälp av interna Oscilator @ 8MHz
TRISB = 0X00; PORTB för utdata (LCD)
LATB = 0XFF; PORTC för indata
LATC = 0XFF; PORTD för indata
TRISA. RA2 = 0; RA2 för utdata
TRISA. RA3 = 0; RA3 för utdata
UCON. USBEN = 0; Inaktivera usb UCFG. UTRDIS = 1;
TRISD = 0XF9; PORTD utgång
Lcd_Init(); Initiera LCD
Lcd_Cmd(_LCD_CLEAR); Tydlig display
Lcd_Cmd(_LCD_CURSOR_OFF); Markören bort
Lcd_Out (1,1, "Inställningen tid...");
Delay_ms(1000);
I2C1_Init(100000); initiera full master-läge
I2C1_Start(); frågan startsignalen
I2C1_Wr(0xA0); Adress PCF8583
I2C1_Wr(0); starta från ordet på adress 0 (konfiguration ord)
I2C1_Wr(0x80); Skriv $80 till config. (paus counter...)
I2C1_Wr(0); Skriv 0 till cent word
I2C1_Wr(0); Skriv 0 till sekunder word
I2C1_Wr(0x10); ÄNDRA denna 10 till oavsett minuter du vill ställa in
I2C1_Wr(0x17); ÄNDRA här 17 till oavsett timme du vill ställa in
I2C1_Wr(0x23); ÄNDRA den här 23-oavsett datum du vill ange
I2C1_Wr(0x2); DENNA förändring 2 till vilken månad du vill ställa in
I2C1_Stop(); frågan stoppsignal
I2C1_Start(); frågan startsignalen
I2C1_Wr(0xA0); Adress PCF8530
I2C1_Wr(0); starta från ordet på adress 0
I2C1_Wr(0); Skriv 0 till config word (aktivera räkna)
I2C1_Stop(); frågan stoppsignal
Lcd_Cmd(_LCD_CLEAR);
Lcd_Out (1,1, "Time Set.!");
Delay_ms(500);
}
_________________END CODE_________________
Generera en hex-fil från Mikroc Pro för PIC efter sammanställningen ovan kod då bränna den till pic mikrokontroller PIC18F4550
Placera den på pcb lödda med alla komponenter, slå på den. LCD-skärmen ska Visa "Inställningen tid..." sedan när det visar "Time Set!" stänga makt. Ta bort PIC mikrokontroller från dopp din framgångsrikt har programmerat PCF8583 RTC IC. :)