PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   hỏi về dspic (http://www.picvietnam.com/forum/showthread.php?t=7164)

trinhdieuhvktqs 13-10-2010 05:00 PM

hỏi về dspic
 
2 Attachment(s)
các bạn ơi...giúp mình về lập trình cho dspic30f4011 với
cụ thể bài toán của mình là:
ấn 1 phím để hiển thị 1 kí tự bất kì nào đó lên lcd (16x2) ở chế độ xuất 4 bít.
với bài của mình thì mình đặt là :khi ấn phím thì phím hiển thị là A,còn khi k ấn thì lcd sẽ hiển thị là B.
mình đã viết code dựa vào code quét bàn phím của anh Nam nhưng k hiểu sao code của mình khi nạp vào và cấp nguồn thì lại k hoạt động như mình mong muốn.khi cấp nguồn thì lcd hiển thị "B" nhưng khi ấn phím thì k có 1 phản ứng gì cả..tóm lại là switch chưa có tác động j đến chip cả.
mình up code và sơ đồ mạch của mình lên rồi đó.mong các bạn dành chút thời gian test code guíp mình với nhé....cảm ơn rât nhiều

hang1988 19-10-2010 09:19 AM

Thứ nhất bạn phải có 1 điện trở treo ở nút nhấn lên VCC
Thứ 2 code của bạn có vấn đề : Không biêt bạn khai báo biến sw_old và temp thuộc loại biến gì?
Code:

SW=sw_old & 0x0010;
Delay_ms(500); //Vong lap chinh
temp=SW;
while (1) {
        if(temp & 0x0010)       
    {
                Delay_ms(1);   
            LCD_dat4 ('A');
        Delay_ms(1);
    }
    else {
        LCD_dat4 ('B');
        Delay_ms(1);
    }       
        while (sw_old == SW);        //Kiem tra cho den khi co su thay doi trang
                sw_old = SW;                        //thai cua cac switch thi doc trang thai moi

        }
}

Code trên không biết có bắt sườn xung ko? Nhìn code trên có thể thấy thì lúc nào cũng hiện thị chữ B. Bạn cần xem lại code của mình!
SW=sw_old & 0x0010;
Delay_ms(500); //Vong lap chinh
temp=SW
nó không nằm trong vòng lặp liên tục nên các giá trị của các bién luôn bằng 0


Múi giờ GMT. Hiện tại là 03:24 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam