📄 main.c
字号:
/* Gestione di un Display LCD HD**** con la DemoBoard V1
/* 歌林电子实验室: www.nbglin.com
/* 电话: 0574-88464538
Le funzioni in lcd.c sono state adattate alla DemoBoard.
Author : Antonio Bruno 0803
PIN I/O PIC DEMOBOARD V1
RB0 pulsante nero
RB1 pulsante blu
RB2
RB3 EN display
RB4 DB4 display
RB5 DB5 display
RB6 DB6 display
RB7 DB7 display
RA0 SCL pin I2C
RA1 SDA pin I2C
RA2 TX seriale o libero (vedi jumper)
RA3 RX seriale o libero (vedi jumper)
RA4 RS display
*/
#define XTAL_FREQ 4MHZ /* Crystal frequency in MHz */
#include <pic.h>
#include "lcd.h"
#include "delay.h"
#include "stdio.h"
#include "ds1307.h"
#include "convers.h"
__CONFIG (XT&WDTDIS);
#define PORTBIT(adr,bit) ((unsigned)(&adr)*8+(bit))
static bit BUTTON @ PORTBIT(PORTB,0);
static bit SDA @ PORTBIT(PORTA,1);
main()
{
unsigned char str[5];
int i;
TRISB = 3; /* portb.0 e portb.1 = ingressi */
TRISA = 0b00000010; /* porta tutte uscite */
PORTB=0;
PORTA=0;
while(1)
{
lcd_init();
TRISA=0b00000010;
DelayMs(250);
rtc_write(0,0); //reg secondi + start clock
rtc_write(1,dec_bcd(25)); //reg minuti
rtc_write(2,dec_bcd(19)); //reg ore
rtc_write(4,dec_bcd(11)); //reg day
rtc_write(5,dec_bcd(11)); //reg month
rtc_write(6,dec_bcd(3)); //reg year
while(1)
{
if(BUTTON)
rtc_write(1,rtc_read(1)+1);
lcd_clear();
i=rtc_read(2); //ore
i=bcd_dec(i);
itoa((char)i,str);
lcd_puts(str);
lcd_puts(":");
i=rtc_read(1); //minuti
i=bcd_dec(i);
itoa((char)i,str);
lcd_puts(str);
lcd_puts(":");
i=rtc_read(0); //secondi
i=bcd_dec(i);
itoa((char)i,str);
lcd_puts(str);
lcd_goto(0x40);
i=rtc_read(4); //date day
i=bcd_dec(i);
itoa((char)i,str);
lcd_puts(str);
lcd_puts("/");
i=rtc_read(5); //date month
i=bcd_dec(i);
itoa((char)i,str);
lcd_puts(str);
lcd_puts("/");
i=rtc_read(6); //date year
i=bcd_dec(i);
itoa((char)i,str);
lcd_puts(str);
DelayMs(250);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -