![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| 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 |
|
|
|
|
#1 | |
|
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
{ portb=1; portb=2; portb=4; portb=8; hienthi(); } bạn viết thế này thì phím không nhấn nó cũng hiển thị ra lcd.
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
|
|
|
|
|
#2 |
|
Đệ tử 2 túi
Tham gia ngày: Jan 2010
Bài gửi: 26
: |
VẬY viết lại SAO?bạn chỉnh lại dùm mình đi!
__________________
Càng học càng thấy ngu ra.(~.~)............... |
|
|
|
|
|
#3 |
|
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
code:
Code:
//*****************************************************************************
// Author : nhh
// Date : 03/04/06
// Hardware: PIC16F877A
//*****************************************************************************
#include <16F877A.h>
#include <defs_16F877A.h>
#include <lcd_lib.c>
#fuses NOWDT,PUT,XT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(b)
#use fast_io(d)
void hienthi(void);
int a,i;
const unsigned char dig[]={"0123456789abcdef"};
// ma hoa digital duoi dang mang
// Chuong trinh ngat
#int_RB
void ngat_RB()
{
if((RBIF)&&(RBIE))
{
{
if(RB4&&RB0)
a=dig[0];
}
{
if(RB4&&RB1)
a=dig[4];
}
{
if(RB4&&RB2)
a=dig[8];
}
{
if(RB4&&RB3)
a=dig[12];
}
//.......
{
if(RB5&&RB0)
a=dig[1];
}
{
if(RB5&&RB1)
a=dig[5];
}
{
if(RB5&&RB2)
a=dig[9];
}
{
if(RB5&&RB3)
a=dig[13];
}
//........
{
if(RB6&&RB0)
a=dig[2];
}
{
if(RB6&&RB1)
a=dig[6];
}
{
if(RB6&&RB2)
a=dig[10];
}
{
if(RB6&&RB3)
a=dig[14];
}
//........
{
if(RB7&&RB0)
a=dig[3];
}
{
if(RB7&&RB1)
a=dig[7];
}
{
if(RB7&&RB2)
a=dig[11];
}
{
if(RB7&&RB3)
a=dig[15];
}
RBIF=0; //Xoa co ngat RB
}
hienthi();
while(bit_test(PORTB,4))
{
}
while(bit_test(PORTB,5))
{
}
while(bit_test(PORTB,6))
{
}
while(bit_test(PORTB,7))
{
}
delay_ms(1);//chong nay phim
}
// Chuong trinh chinh
main()
{
set_tris_b(0b11110000);
set_tris_d(0);
set_tris_e(0);
enable_interrupts(global);
enable_interrupts(int_RB);
ext_int_edge(H_to_L);
portb=0;
portc=0;
lcd_init();
lcd_putcmd(0x01);
printf(lcd_putchar,"gia tri phim:");
lcd_putcmd(0xc0);
while(true)
{
portb=1;
portb=2;
portb=4;
portb=8;
}
}
void hienthi()
{
lcd_putcmd(0xc0);
printf(lcd_putchar," ");
lcd_putcmd(0xc0);
lcd_putchar(a);// doc gia tri nut nhan lên man hinh LCD
}
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
|
|
|
|
#4 |
|
Đệ tử 2 túi
Tham gia ngày: Jan 2010
Bài gửi: 26
: |
cảm ơn TDM nha ! có chổ chống nảy phím hơi khó hiểu!
__________________
Càng học càng thấy ngu ra.(~.~)............... |
|
|
|
|
|
#5 |
|
Đệ tử 2 túi
Tham gia ngày: Jan 2010
Bài gửi: 26
: |
void hienthi()
{ lcd_putcmd(0xc0); //xóa printf(lcd_putchar," "); //xóa lcd_putcmd(0xc0); //xóa lcd_putchar(a);// doc gia tri nut nhan lên man hinh LCD } Em vừa xóa thử 3 dòng trong hienthi của tdm, thì LCD hiển thị nút nhấn nhanh hơn, nên ko bit2 3 dòng có tác dụng gì? (biết là có 1 lệnh ép con trỏ về đầu dòng) Em sửa lại code hiển thị để LCD hiển thị 11 số, void hienthi() { lcd_putchar(a);// doc gia tri nut nhan lên man hinh LCD i=i+1; if (i>12) { i=0; lcd_putcmd(0x01); printf(lcd_putchar,"gia tri phim:"); lcd_putcmd(0xc0); } } nhưng ko hiểu sao: 1/ số đầu tiên lại ko hiển thị ngay ô đầu dòng, mà hiển thị ô kế bên (khi nhập lần 2 mới đc đầu dỏng) 2/ phím nhấn có lúc lại hiển thị số double( khi nhấn 1 lần nhưng lại hiển thị liên tục 2 số, thỉnh thoảng bị )
__________________
Càng học càng thấy ngu ra.(~.~)............... |
|
|
|
|
|
#6 | |
|
Đệ tử 7 túi
Tham gia ngày: May 2005
Bài gửi: 258
: |
Trích:
lỗi (2): viết lại như sau: while(bit_test(PORTB,4)) { } delay_ms(10);//chong nay phim while(bit_test(PORTB,5)) { } delay_ms(10);//chong nay phim while(bit_test(PORTB,6)) { } delay_ms(10);//chong nay phim while(bit_test(PORTB,7)) { } delay_ms(10);//chong nay phim chèn thêm lệnh delay_ms(10) sau mỗi lần thoát khỏi while
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề. |
|
|
|
|
|
|
#7 | |
|
Đệ tử 2 túi
Tham gia ngày: Jan 2010
Bài gửi: 26
: |
Trích:
__________________
Càng học càng thấy ngu ra.(~.~)............... |
|
|
|
|
![]() |
|
|