PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 05-06-2012, 03:21 PM   #1
daklak
Nhập môn đệ tử
 
Tham gia ngày: Mar 2012
Bài gửi: 2
:
Question dong ho so hien thi gio phut giay len lcd

mình đang làm đề tài môn vi điều khiển dùng pic 18f4620 thiết kế đồng hồ số hiển thị trên lcd dùng ma trận phím 4*4 mình làm xong phần hiển thị số rùi nhưng con phần hẹn giờ dùng ma trận phím mình không biết lập trình thế nào bạn nào có thể chỉ giúp mình hướng lập trình với.

#include <p18f4620.h>
#include <delays.h>
#define rs LATEbits.LATE0
#define rw LATEbits.LATE1
#define en LATEbits.LATE2
#define hang1 PORTDbits.RD0
#define hang2 PORTDbits.RD1
#define hang3 PORTDbits.RD2
#define hang4 PORTDbits.RD3
#define cot1 PORTDbits.RD4
#define cot2 PORTDbits.RD5
#define cot3 PORTDbits.RD6
#define cot4 PORTDbits.RD7

char x,y,tt,ch_gio,dv_gio,ch_phut,dv_phut,ch_giay,dv_gi ay,time=0;
long s;
unsigned char i,li,lj;
unsigned char so[]={'0','1','2','3','4','5','6','7','8','9'};
unsigned int gio=0,phut=0,giay=0;
void delay (unsigned char time )
{
for ( li=0 ; li<80; li++ )
{ for ( lj=0 ; lj<time; lj++)
{;}
}
}


void lenh_LCD (unsigned char s)
{
LATC=s;
rs=0;
rw=0;
en=1;
delay(10);
en=0;
delay(10);
}

void data_LCD (unsigned char s)
{
LATC=s;
rs=1;
rw=0;
en=1;
delay(10);
en=0;
delay(10);
}

void hienthi(void)
{
ch_gio=gio/10;
dv_gio=gio%10;
ch_phut=phut/10;
dv_phut=phut%10;
ch_giay=giay/10;
dv_giay=giay%10;

}
void quetphim(void)
{

//====================0123=====================
PORTD=0xfe;
if(PORTDbits.RD0==0&&tt==0)
{x=0;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD0==0&&tt==1)
{y=0;tt=0;
PORTC=so[y];
delay(3000);
}
else if(PORTDbits.RD1==0&&tt==0)
{x=1;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD1==0&&tt==1)
{y=1;tt=0;
PORTC=so[y];
delay(3000);
}
else if(PORTDbits.RD2==0&&tt==0)
{x=2;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD2==0&&tt==1)
{y=2;tt=0;
PORTC=so[y];
delay(3000);
}
else if(PORTDbits.RD3==0&&tt==0)
{x=3;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD3==0&&tt==1)
{y=3;tt=0;
PORTC=so[y];
delay(3000);
}
//====================4567=====================
PORTD=0xfd;
if(PORTDbits.RD0==0&&tt==0)
{x=4;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD0==0&&tt==1)
{y=4;tt=0;
PORTC=so[y];
delay(3000);
}
else if(PORTCbits.RC1==0&&tt==0)
{x=5;tt=1;
PORTB=so[x];
}
else if(PORTDbits.RD1==0&&tt==1)
{y=5;tt=0;
PORTC=so[y];
delay(3000);
}
else if(PORTDbits.RD2==0&&tt==0)
{x=6;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD2==0&&tt==1)
{y=6;tt=0;
PORTC=so[y];
delay(3000);
}
else if(PORTDbits.RD3==0&&tt==0)
{x=7;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD3==0&&tt==1)
{y=7;tt=0;
PORTC=so[y];
delay(3000);
}
//====================89+-=====================
PORTD=0xfc;
if(PORTDbits.RD0==0&&tt==0)
{x=8;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD0==0&&tt==1)
{y=8;tt=0;
PORTC=so[y];
delay(3000);
}
else if(PORTDbits.RD1==0&&tt==0)
{x=9;tt=1;
PORTC=so[x];
}
else if(PORTDbits.RD1==0&&tt==1)
{y=9;tt=0;
PORTC=so[y];
delay(3000);
}
}



void initCOUNTER0(void)
{
T0CON=0;
T0CONbits.T0SE=1;
T0CONbits.T0CS=1;
T0CONbits.PSA=1;

}


void interrupt_COUNTER0(void)
{
INTCONbits.GIE=0;
INTCONbits.TMR0IE=0;
INTCONbits.TMR0IF=0;
T0CONbits.TMR0ON=1;
}

void main(void)
{


TRISD=0xff;
TRISC=0x00;
TRISE=0x00;

lenh_LCD(0x38);
lenh_LCD(0x0E);
lenh_LCD(0x01);

initCOUNTER0();



while (1)

{
giay++;
if (giay==60)giay=0,phut++;
if (phut==60)phut=0,gio++;
if (gio ==24)gio=phut=giay=0;

hienthi();
lenh_LCD(0x80);
data_LCD(so[ch_gio]);
delay(50);
lenh_LCD(0x81);
data_LCD(so[dv_gio]);
delay(50);
lenh_LCD(0x82);
data_LCD(':');
lenh_LCD(0x83);
data_LCD(so[ch_phut]);
delay(50);
lenh_LCD(0x84);
data_LCD(so[dv_phut]);
delay(50);
lenh_LCD(0x85);
data_LCD(':') ;
lenh_LCD(0x86);
data_LCD(so[ch_giay]);
delay(50);
lenh_LCD(0x87);
data_LCD(so[dv_giay]);
delay(50);



}

}
daklak vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 01:27 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam