PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 13-10-2010, 05:00 PM   #1
trinhdieuhvktqs
Đệ tử 1 túi
 
Tham gia ngày: Sep 2009
Bài gửi: 13
:
hỏi về dspic

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
File Kèm Theo
File Type: doc machLCD.doc (41.0 KB, 12 lần tải)
File Type: txt phiman.TXT (6.3 KB, 11 lần tải)
trinhdieuhvktqs vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-10-2010, 09:19 AM   #2
hang1988
Đệ tử 1 túi
 
Tham gia ngày: May 2008
Bài gửi: 21
:
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
hang1988 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 02:24 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