PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Cơ bản về PIC? (http://www.picvietnam.com/forum/showthread.php?t=1878)

lungtung 06-01-2008 09:08 AM

Cơ bản về PIC?
 
Trước nay tôi lập trình với 8051. Bây giờ muốn chuyển qua PIC nhưng không biết bắt đầu từ đâu. Các bác xin cho hỏi các điểm giống và khác nhau PIC_8051.
Với vốn kiến thức từ 8051 có giúp ích cho tôi khi học Pic không?
Tôi có xem 1 số Ví dụ về PIc nhưng không có bài nào nói về bộ nhớ ngoài của PIC.
Vi dụ: Tôi có 1000 thiết bị và 1000 nút nhấn. Các thiết bị và nút nhấn có địa chỉ riêng. Vậy để đọc được trạng thái nút nhấn và điều khiển thiết bị thì phần cứng như thế nào và chương trình viết làm sao? (tôi quen dùng assembly).

tiendungkct 07-01-2008 06:12 PM

nếu bạn đã học qua 8051 thì lập trình cho pic cũng đơn giản hơn ,assem thị bạn viết bắng mplab nha , tập lệnh bạn có thể tìm trên diễn đàn này

namqn 07-01-2008 06:39 PM

Trích:

Nguyên văn bởi lungtung (Post 13704)
Trước nay tôi lập trình với 8051. Bây giờ muốn chuyển qua PIC nhưng không biết bắt đầu từ đâu. Các bác xin cho hỏi các điểm giống và khác nhau PIC_8051.
Với vốn kiến thức từ 8051 có giúp ích cho tôi khi học Pic không?
Tôi có xem 1 số Ví dụ về PIc nhưng không có bài nào nói về bộ nhớ ngoài của PIC.
Vi dụ: Tôi có 1000 thiết bị và 1000 nút nhấn. Các thiết bị và nút nhấn có địa chỉ riêng. Vậy để đọc được trạng thái nút nhấn và điều khiển thiết bị thì phần cứng như thế nào và chương trình viết làm sao? (tôi quen dùng assembly).

8051 và PIC đều là vi điều khiển, do đó các kiến thức chung về vi điều khiển (xung clock, chu kỳ máy, tập lệnh, các chế độ định vị, module ngoại vi, ...) là giống nhau. Điều quan trọng là PIC dùng kiến trúc RISC, còn 8051 dùng kiến trúc CISC, PIC dùng kiến trúc bộ nhớ kiểu Harvard, còn 8051 dùng kiến trúc bộ nhớ kiểu Von Neumann. PIC không cần bộ nhớ ngoài.

Với bài toán 1000 thiết bị và 1000 nút nhấn, bạn giải quyết bằng 8051 ra sao? Cách thức giải quyết bài toán đó bằng PIC cũng không khác bao nhiêu.

Thân,

lungtung 09-01-2008 09:45 AM

Cơ bản về PIC?
 
Trích:

Nguyên văn bởi namqn (Post 13729)
8051 và PIC đều là vi điều khiển, do đó các kiến thức chung về vi điều khiển (xung clock, chu kỳ máy, tập lệnh, các chế độ định vị, module ngoại vi, ...) là giống nhau. Điều quan trọng là PIC dùng kiến trúc RISC, còn 8051 dùng kiến trúc CISC, PIC dùng kiến trúc bộ nhớ kiểu Harvard, còn 8051 dùng kiến trúc bộ nhớ kiểu Von Neumann. PIC không cần bộ nhớ ngoài.

Với bài toán 1000 thiết bị và 1000 nút nhấn, bạn giải quyết bằng 8051 ra sao? Cách thức giải quyết bài toán đó bằng PIC cũng không khác bao nhiêu.

Thân,

Lúc trước dùng 8051 thì có mạch giải mã địa chỉ tương đối giống với giao ram, rom.
Ví dụ với 8 thiết bị tôi có 1 địa chỉ và điều khiển 8 thiết bị đó bằng 8 bit dữ liệu thông qua địa chỉ đó.
Còn với Pic tôi xem sơ đồ chân thì không có cái này....?

namqn 09-01-2008 08:13 PM

Trích:

Nguyên văn bởi lungtung (Post 13764)
Lúc trước dùng 8051 thì có mạch giải mã địa chỉ tương đối giống với giao ram, rom.
Ví dụ với 8 thiết bị tôi có 1 địa chỉ và điều khiển 8 thiết bị đó bằng 8 bit dữ liệu thông qua địa chỉ đó.
Còn với Pic tôi xem sơ đồ chân thì không có cái này....?

Như tôi đã nói ở trên, PIC thường không cần bộ nhớ ngoài (flash chương trình, RAM và EEPROM dữ liệu đều có sẵn trên chip), do đó PIC không có các chân để thực hiện giao tiếp với bộ nhớ ngoài.

Với ví dụ 8 thiết bị được truy xuất bằng 1 địa chỉ byte, bạn hoàn toàn có thể tự hiện thực bằng PIC. Người ta đã điều khiển bảng quang báo bằng PIC với kích thước đến hàng trăm cột, hàng chục hàng, tức là đã điều khiển độc lập hàng ngàn đầu ra (LED). Bạn có thể áp dụng cách tương tự để điều khiển 1000 thiết bị (bạn sẽ cần 10-bit địa chỉ để định vị 1000 thiết bị).

Thân,

lungtung 16-01-2008 07:54 AM

Với 8051 thì ta có các lệnh:
MOV DPTR,#địa chỉ ;con tro 16 bit tro toi dia chi 16 bit
MOV A,#dữ liệu ;du lieu 8 bit
MOVX @DPTR,A ;ghi du lieu 8 bit vao dia chi tro boi DPTR
MOVX A,@DPTR ;doc du lieu tu dia chi tro boi DPTR ve thanh ghi A
Vậy với PIC thì ta làm thế nào? Phần cứng? Chương trình?
Thank...

0515475 16-01-2008 11:29 AM

cho em hỏi ICSP trong các mạch nạp là để làm gì? theo em biết thì nó được dùng để mở rộng , nhưng mà để mở rộng cái gì.và tại sao trong các mạch nạp PIC đều phải có cổng ICSP. không có thì có ảnh hưởng gì đến mạch nạp không các anh

namqn 16-01-2008 04:46 PM

Trích:

Nguyên văn bởi 0515475 (Post 13919)
cho em hỏi ICSP trong các mạch nạp là để làm gì? theo em biết thì nó được dùng để mở rộng , nhưng mà để mở rộng cái gì.và tại sao trong các mạch nạp PIC đều phải có cổng ICSP. không có thì có ảnh hưởng gì đến mạch nạp không các anh

Bạn đọc luồng sau nhé:

http://www.picvietnam.com/forum/showthread.php?t=429

Thân,

0515475 19-01-2008 10:49 AM

các anh ơi hôm qua em đi nhật tảo mua 1 mạch nạp pIC bằng cồng Com (loạiJMD)
nhưng khi về lắp vào test thì phát hiện máy tính của em không đưa cổng com ra ngoài chì có cổng LPT .Có cách nao giúp em không

em xài máy tinh có mainboard là P4s61 cua ASROCK

namqn 19-01-2008 09:29 PM

Trích:

Nguyên văn bởi 0515475 (Post 13964)
các anh ơi hôm qua em đi nhật tảo mua 1 mạch nạp pIC bằng cồng Com (loạiJMD)
nhưng khi về lắp vào test thì phát hiện máy tính của em không đưa cổng com ra ngoài chì có cổng LPT .Có cách nao giúp em không

em xài máy tinh có mainboard là P4s61 cua ASROCK

Tôi tin là mainboard của bạn có đầu nối cho cổng COM, chẳng qua người ráp máy đã không nối cổng đó ra phía sau máy tính của bạn. Chỉ cần một cáp dẹp 10 dây và một đầu nối DB-9 đực nằm trên một nắp che của khe mở rộng phía sau máy tính thôi. Bạn nên hỏi lại người bán/ráp máy cho bạn.

Thân,

lungtung 12-06-2008 08:29 PM

Xin các trưởng lão trả lời giùm đoạn này:
Với 8051 thì ta có các lệnh:
MOV DPTR,#địa chỉ ;con tro 16 bit tro toi dia chi 16 bit
MOV A,#dữ liệu ;du lieu 8 bit
MOVX @DPTR,A ;ghi du lieu 8 bit vao dia chi tro boi DPTR
MOVX A,@DPTR ;doc du lieu tu dia chi tro boi DPTR ve thanh ghi A
Vậy với PIC thì ta làm thế nào? Phần cứng? Chương trình?
Thank...

namqn 13-06-2008 02:05 AM

Trích:

Nguyên văn bởi lungtung (Post 16780)
Xin các trưởng lão trả lời giùm đoạn này:
Với 8051 thì ta có các lệnh:
MOV DPTR,#địa chỉ ;con tro 16 bit tro toi dia chi 16 bit
MOV A,#dữ liệu ;du lieu 8 bit
MOVX @DPTR,A ;ghi du lieu 8 bit vao dia chi tro boi DPTR
MOVX A,@DPTR ;doc du lieu tu dia chi tro boi DPTR ve thanh ghi A
Vậy với PIC thì ta làm thế nào? Phần cứng? Chương trình?
Thank...

Các PIC lõi 14-bit (đa số PIC16) hỗ trợ định vị gián tiếp 8-bit, còn các PIC18 thì hỗ trợ định vị gián tiếp 16-bit. Ngoại trừ một vài chip đặc biệt, các PIC 8-bit (không phải lõi 8-bit nhé) không hỗ trợ giao tiếp với bộ nhớ ngoài.

Bạn tìm đọc phần "Indirect addressing" trong các datasheet của PIC đang dùng, các ví dụ hợp ngữ thường có trong datasheet.

Thân,


Múi giờ GMT. Hiện tại là 02:55 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