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)
-   -   dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD (http://www.picvietnam.com/forum/showthread.php?t=553)

namqn 03-08-2006 11:05 PM

dsPIC Tutorial 3-Đọc ngõ vào và giao tiếp LCD
 
Đây là tutorial tiếp theo cho dsPIC, viết trong ASM30. Vài ngày tới tôi sẽ post các source code viết bằng C30 cho các tutorial đã viết. Các bạn theo dõi trong các luồng tương ứng của các tutorial đã post.

Trong tutorial 3 cho dsPIC, thông qua một ví dụ về đọc trạng thái các công tắc nối vào dsPIC và hiển thị trạng thái trên LCD, tôi minh hoạ cách đọc ngõ vào số của dsPIC, và cách giao tiếp dsPIC với LCD. Tôi cũng đã giới thiệu cách viết macro và cách định thời bằng ngắt với thời gian xử lý ngắt tối thiểu.

Link để download tutorial:
http://picvietnam.com/download/uploa...QNT.180706.pdf

Các tập tin nguồn và hex được đặt trong tập tin nén sau:
http://picvietnam.com/download/upload/namqn/Vidu3.zip

Chúc các bạn thành công!

Thân,

namqn 08-08-2006 08:02 PM

Mã nguồn viết trong C30 (và các tập tin .hex) cho các ví dụ trong tutorial này có thể download ở đây:
http://picvietnam.com/download/uploa...n/Vidu3C30.zip

Chúc thành công!

Thân,

ITpro 12-10-2006 10:59 PM

Anh ơi,sao em ko down được anh ah.Anh xem lại link giúp em cái.
Thanks

ITpro 12-10-2006 11:01 PM

Em mới nghiên cứu về DSpic.Trước em có làm về con 16F877A.Vào đây thấy hay quá,nhưng em vào mấy cái link của anh thì toàn báo lỗi.

namqn 13-10-2006 12:07 AM

3 Attachment(s)
Trích:

Nguyên văn bởi ITpro (Post 5423)
Em mới nghiên cứu về DSpic.Trước em có làm về con 16F877A.Vào đây thấy hay quá,nhưng em vào mấy cái link của anh thì toàn báo lỗi.

Host lưu trữ được chuyển sang tailieuvietnam.net rồi, các bạn tải bằng các tập tin gửi kèm ở đây nhé.

Thân,

typhn 04-12-2006 10:50 PM

Anh cho em hỏi dòng config : PWMxL_ACT_HI & PWMxH_ACT_HI
có nghĩa là gì hả anh?

namqn 04-12-2006 11:22 PM

Trích:

Nguyên văn bởi typhn (Post 6241)
Anh cho em hỏi dòng config : PWMxL_ACT_HI & PWMxH_ACT_HI
có nghĩa là gì hả anh

Có nghĩa là các chân PWMxL và các chân PWMxH tích cực ở mức cao (tuy nhiên các chức năng của module PWM không được sử dụng trong tutorial này, do đó tích cực cao hay thấp không ảnh hưởng đến kết quả chạy chương trình).

Thân,

longho559 01-03-2007 11:16 AM

dspic for lcd
 
Anh Nam cho em hỏi :
Code:

const unsigned char __attribute__ ((space(psv), address (0x0400)))
        //Chuoi ky tu se xuat ra LCD
        Chuoi1[]=" Hello World ";            //Chuoi ky tu se duoc xuat ra LCD
        _PSV=1;
        PSVPAG = __builtin_psvpage(Chuoi1);

đoạn source trên dùng để làm gì, nếu muốn xuất thêm Chuồi 2 vào dòng thứ 2 của LCD thì làm sao? Anh có thể cho em biết trang web nào hướng dẫn lập trình C cho dspic ko? Thank a lot!

namqn 01-03-2007 06:02 PM

Dòng lệnh thứ nhất khai báo vùng nhớ (hằng) có thể truy xuất thông qua PSV ở địa chỉ 0x0400. Dòng lệnh thứ hai khai báo một chuỗi hằng trong không gian đó. Dòng lệnh thứ ba bật chế độ truy xuất thông qua PSV. Dòng thứ tư thiết lập thanh ghi trang trước khi truy xuất bằng PSV. Không gian địa chỉ flash của dsPIC là 24-bit, trong khi các thanh ghi chỉ số dùng để truy xuất dữ liệu là 16-bit, do đó cần có một thanh ghi trang chứa 8 bit cao hơn của địa chỉ.

Để xuất một chuỗi khác vào dòng thứ hai của LCD thì bạn chỉ cần khai báo chuỗi mới đó, truy xuất chuỗi đó thay vì chuỗi thứ nhất trong vòng lặp xuất ra dòng thứ hai của LCD.

Hiện thời chỉ có một vài quyển sách về lập trình dsPIC bằng ngôn ngữ cấp cao được bán, tôi chưa tìm được trang web nào hướng dẫn việc này. Đó cũng là 1 lý do khiến tôi viết những tutorial này, dù rằng tôi phải vừa học vừa viết.

Thân,

vtt 20-03-2007 04:32 PM

Chào các anh!
Em cung dang tim hieu ve dsPic và có tham khảo qua một số Tutorial của anh Nam. Em co làm thử một ví dụ là đọc trạng thái của Switch và hiện thị kết quả đọc đó ra Led đơn. Nhưng không hiểu sao em nó không chạy xin các anh chi giùm. Em có upload cả phần cứng lẫn phần mềm lên mong các anh bớt chút thời gian và cho lời giải thích!
Thank!
Không hiểu sao em không upload được
Em mô tả qua phần cứng vậy:
Các led đơn (7Led) được nối với PortF của dsPic30f4013, chân kia của Led đơn nối với trở 100 và được nối xuống đất.
8 chân của switch thì được nối với chân RB0-RB7
và chương trình chính như sau:

Code:

void main()
{
 int temp;
 while(1) {
 temp = PORTB;
 temp = temp & 0x00FF;
 LATE = temp; 
 }
}


namqn 20-03-2007 06:09 PM

Trích:

Nguyên văn bởi vtt (Post 7857)
Chào các anh!
Em cung dang tim hieu ve dsPic và có tham khảo qua một số Tutorial của anh Nam. Em co làm thử một ví dụ là đọc trạng thái của Switch và hiện thị kết quả đọc đó ra Led đơn. Nhưng không hiểu sao em nó không chạy xin các anh chi giùm. Em có upload cả phần cứng lẫn phần mềm lên mong các anh bớt chút thời gian và cho lời giải thích!
Thank!
Không hiểu sao em không upload được
Em mô tả qua phần cứng vậy:
Các led đơn (7Led) được nối với PortF của dsPic30f4013, chân kia của Led đơn nối với trở 100 và được nối xuống đất.
8 chân của switch thì được nối với chân RB0-RB7
và chương trình chính như sau:

void main()
{
int temp;
while(1) {
temp = PORTB;
temp = temp & 0x00FF;
LATE = temp;
}
}

- Bạn mô tả cách nối của switch vẫn chưa đủ, switch nối từ RBx xuống GND, và từ RBx có trở kéo lên Vdd? hay là nối kiểu khác?
- Với PIC và dsPIC thì nhất định phải cấu hình đầy đủ rồi mới viết chương trình, có nhiều bạn gặp nhiều lỗi khó hiểu, và đó là do cấu hình chip chưa đúng.
- Bạn nối LED vào port F nhưng chương trình lại xuất ra port E!

Thân,

nguyen.geo 20-06-2007 04:50 PM

Trích:

Nguyên văn bởi namqn (Post 7862)
- Bạn mô tả cách nối của switch vẫn chưa đủ, switch nối từ RBx xuống GND, và từ RBx có trở kéo lên Vdd? hay là nối kiểu khác?
- Với PIC và dsPIC thì nhất định phải cấu hình đầy đủ rồi mới viết chương trình, có nhiều bạn gặp nhiều lỗi khó hiểu, và đó là do cấu hình chip chưa đúng.
- Bạn nối LED vào port F nhưng chương trình lại xuất ra port E!

Thân,

Bác Nam Ơi! Bác có thể trả lời em câu hỏi ở chổ này với :
http://www.picvietnam.com/forum/show...?t=1139&page=2

và Bác cho em hỏi Bác dùng Protues bản bao nhiêu thế Bác và có thể Download ở chỗ nào hả bác. Em đang dùng Protues 6.7 nhưng em tìm không thấy con DSPIC30F4011 mà trong bài hướng dẫn em thấy Bác vẽ.

namqn 20-06-2007 06:04 PM

Trích:

Nguyên văn bởi nguyen.geo (Post 9469)
Bác Nam Ơi! Bác có thể trả lời em câu hỏi ở chổ này với :
http://www.picvietnam.com/forum/show...?t=1139&page=2

và Bác cho em hỏi Bác dùng Protues bản bao nhiêu thế Bác và có thể Download ở chỗ nào hả bác. Em đang dùng Protues 6.7 nhưng em tìm không thấy con DSPIC30F4011 mà trong bài hướng dẫn em thấy Bác vẽ.

Phần câu hỏi bên luồng kia tôi đã trả lời rồi, bạn nên xem tutorial 1 trong box này.

Tôi dùng Proteus 6.9 SP1, phiên bản licensed của trường (Sheffield University). Symbol của dsPIC30F4012 đó là tôi tự vẽ ra, không có sẵn trong thư viện của Proteus đâu.

Thân,

footballer 17-03-2008 06:05 PM

Anh Nam cho em hỏi: trong code vidu3_1.s có dòng config như sau:
config __FOSC, CSW_FSCM_OFF & FRC_PLL4 ;Clock = 32 MHz
Em đọc trong tài liệu dsPIC30F Family Reference Manual thì thấy với chế độ FRC_PLL4 thì clock chỉ bằng 7.37*4 MHz thôi, sao lại có clock=32MHz.

namqn 17-03-2008 06:45 PM

Trích:

Nguyên văn bởi footballer (Post 14963)
Anh Nam cho em hỏi: trong code vidu3_1.s có dòng config như sau:
config __FOSC, CSW_FSCM_OFF & FRC_PLL4 ;Clock = 32 MHz
Em đọc trong tài liệu dsPIC30F Family Reference Manual thì thấy với chế độ FRC_PLL4 thì clock chỉ bằng 7.37*4 MHz thôi, sao lại có clock=32MHz.

dsPIC30F4012 sample mà tôi đã dùng cho tutorial (SX năm 2004) có tần số danh định của FRC là 8 MHz, các phiên bản silicon sau này mới điều chỉnh lại thành 7.37 MHz (được phản ánh trong datasheet phiên bản DS70135D trở đi).

Tutorial được post vào tháng 08/2006 mà bạn.

Thân,


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

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