PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 20-08-2008, 01:13 AM   #1
inventor_bk
Đệ tử 1 túi
 
Tham gia ngày: Mar 2008
Bài gửi: 15
:
help me!

Em mới học Pic, nhưng lại không biết cách mở rộng cổng Pic vơi 8255. Mong các anh giúp đỡ. Cảm ơn rất nhiều.
inventor_bk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-08-2008, 01:19 AM   #2
inventor_bk
Đệ tử 1 túi
 
Tham gia ngày: Mar 2008
Bài gửi: 15
:
Em dùng pic 16f877a.
giải mã địa chỉ của 8255:
PortA=0x0000
PortB=0x0001
PortC=0x0002
CW=0x0003
chân WR, RD nối với chân của PIC
A0,A1 nối với RC0,RC1
CS nối với RD0
em chỉ làm thử giao tiếp với 8255 để nháy led ở cổng A. Nhưng không biết định nghĩa địa chỉ của 8255 trong ccs như thế nào.
Cảm ơn rất nhiều.
inventor_bk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-08-2008, 01:57 AM   #3
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi inventor_bk View Post
Em dùng pic 16f877a.
giải mã địa chỉ của 8255:
PortA=0x0000
PortB=0x0001
PortC=0x0002
CW=0x0003
chân WR, RD nối với chân của PIC
A0,A1 nối với RC0,RC1
CS nối với RD0
em chỉ làm thử giao tiếp với 8255 để nháy led ở cổng A. Nhưng không biết định nghĩa địa chỉ của 8255 trong ccs như thế nào.
Cảm ơn rất nhiều.
Bạn mô tả thiếu hoặc chưa nối đủ các chân của 8255 với PIC. Để giao tiếp PIC với 8255, bạn cần nối PIC với các chân sau của 8255: D0 .. D7 (bus dữ liệu 8-bit), WR, RD, A0, A1, Reset và CS. D0 .. D7 là các chân vào/ra, còn các chân khác chỉ là ngõ ra.

Để ghi ra port A của 8255, bạn thực hiện lần lượt: Reset = "0", đặt địa chỉ A1A0 = "00", đặt dữ liệu ra D0 .. D7, RD = "1", WR = "0", và CS = "0". Bạn chỉ cần thao tác bit và byte, không có gì đặc biệt trong CCS C cho việc này cả. Đây chỉ là một ví dụ về cách thực hiện việc ghi ra port A của 8255. Để sử dụng được 8255, bạn cần phải đặt chế độ hoạt động cho các port của nó trước bằng việc ghi vào từ điều khiển (control word) ở địa chỉ A1A0 = "11".

Bạn tìm đọc datasheet của 8255 sẽ biết cách thực hiện các thao tác khác.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 20-08-2008 lúc 02:07 AM.
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-08-2008, 10:31 PM   #4
inventor_bk
Đệ tử 1 túi
 
Tham gia ngày: Mar 2008
Bài gửi: 15
:
cam ơn trưởng lão nhiều. em đã làm được rồi ạ
inventor_bk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-08-2008, 10:23 PM   #5
picpen
Đệ tử 5 túi
 
picpen's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 112
:
Bác Nam cho em hỏi thêm tí nha !! Bên trong của IC 8255 còn có một thanh nghi điều khiển ,dùng để thiết lập các chế độ vào ra khác nhau cho 3 cổng Pa,Pb và Pc đó là các chế độ 1,chế độ 2,3 và chế độ BSR( trong datasheet nói rõ ).để có thể thiết lập thanh nghi điều khiển thì A0=1,A1=1 . Với cách kết nối phần cứng mà bác hướng dẫn thì làm thế nào để thiết lập được thanh nghi điều khiển...?????????????
__________________
** xin hãy cho tôi là tượng đá
** Để muôn đời không nhớ thương ai ..!!
picpen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-08-2008, 11:36 PM   #6
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi picpen View Post
Bác Nam cho em hỏi thêm tí nha !! Bên trong của IC 8255 còn có một thanh nghi điều khiển ,dùng để thiết lập các chế độ vào ra khác nhau cho 3 cổng Pa,Pb và Pc đó là các chế độ 1,chế độ 2,3 và chế độ BSR( trong datasheet nói rõ ).để có thể thiết lập thanh nghi điều khiển thì A0=1,A1=1 . Với cách kết nối phần cứng mà bác hướng dẫn thì làm thế nào để thiết lập được thanh nghi điều khiển...?????????????
Bạn có 2 chân của PIC nối với A1 và A0, do đó bạn có thể xuất các giá trị địa chỉ khác nhau đến 8255. Do đó, bạn chỉ đặt dữ liệu cần ghi vào từ điều khiển, đặt địa chỉ A1A0 = "11", những phần còn lại giống như ví dụ ghi ra port A.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-08-2008, 09:08 AM   #7
picpen
Đệ tử 5 túi
 
picpen's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 112
:
Nhưng bác ơi làm thế nào để xác định được địa chỉ của từ điều khiển và nghi dữ liệu vào đó.
Phải chăng khi ta cho 2 bit A0A1 = 11 , thì byte dữ liều đầu tiên ta gửi đến cổng vào của 8255 sẽ được nghi vào thanh nghi điều khiển ???? em vẫn mơ hồ ở vấn đề này ?
__________________
** xin hãy cho tôi là tượng đá
** Để muôn đời không nhớ thương ai ..!!
picpen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-08-2008, 06:41 PM   #8
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi picpen View Post
Nhưng bác ơi làm thế nào để xác định được địa chỉ của từ điều khiển và nghi dữ liệu vào đó.
Phải chăng khi ta cho 2 bit A0A1 = 11 , thì byte dữ liều đầu tiên ta gửi đến cổng vào của 8255 sẽ được nghi vào thanh nghi điều khiển ???? em vẫn mơ hồ ở vấn đề này ?
Đúng vậy. Nhà sản xuất quy định rằng nếu các chân A1 và A0 của 8255 được đặt trạng thái '1' thì dữ liệu đặt vào các chân D7 .. D0 sẽ được ghi vào thanh ghi/từ điều khiển. Thanh ghi/từ điều khiển cũng chỉ là một thanh ghi như các thanh ghi cho các port A, B, và C.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-09-2008, 09:05 PM   #9
tallht
Đệ tử 5 túi
 
tallht's Avatar
 
Tham gia ngày: Mar 2008
Nơi Cư Ngụ: Bình Thạnh, TPHCM
Bài gửi: 98
:
!!!

Trích:
Nguyên văn bởi namqn View Post
đúng vậy. Nhà sản xuất quy định rằng nếu các chân a1 và a0 của 8255 được đặt trạng thái '1' thì dữ liệu đặt vào các chân d7 .. D0 sẽ được ghi vào thanh ghi/từ điều khiển. Thanh ghi/từ điều khiển cũng chỉ là một thanh ghi như các thanh ghi cho các port a, b, và c.

Thân,
như vậy ta chỉ cần chọn a1a0=00 và đưa dữ liệu muốn xuất thì sẽ xuất được ra porta hả pác? Sao em thấy bên 8051 lại phải dùng lệnh movx là sao ạ?
Thanks bác nhá!
__________________
-------------------------------------------------------------------
Cung cấp bo mạch thực hành Arduino và các mạch sáng tạo.
Mời tham quan: https://www.facebook.com/eshop1109

Cung cấp dịch vụ order hàng từ Aliexpress
Liên hệ: https://www.facebook.com/Mua-h%E1%BB...5265931515571/
tallht vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-09-2008, 09:15 AM   #10
picpen
Đệ tử 5 túi
 
picpen's Avatar
 
Tham gia ngày: Jun 2008
Bài gửi: 112
:
Cool Thắc mắc 8255????

Giả sử em muốn cấu hình cho 8255 như sau: Pa là đầu vào ,Pb là đầu ra ,Pcl ( 4 biet thấp của Pc) là đầu vào _PCh (4 bit cao của Pc ) là đầu ra .vậy thì em phải cho A0A1 = 11 để nghi giá trị thiết lập vào thanh nghi điều khiển ,với yêu cầu trên thì cần phải nạp giá trị vào thanh nghi điều khiển là : 0b10010000 ( 90h )
sau khi thiết lập được như trên rồi em muốn xuất tín hiệu ra cổng Pb và đọc dữ liệu từ cổng PCl thì phải làm thế nào và khi đó 2 bit A0,A1 sẽ ở trạng thái như thế nào?
cổng dữ liệu chỉ có 1 ,làm thế nào để pic có thể hiểu được là em cần đọc giá trị tại PCl ....
trong 8051 khi giao tiếp với 8255 thì mỗi cổng PA,Pb,Pc và các chế độ khác nhau đều có một địa chỉ riêng để gửi và nhận dữ liệu lên rất rễ ràng sử dụng
Như bac Nam hướng dẫn thì em vẫn mơ hồ quá .
Mong bác và mọi người trên diễn đàn hiể u về vấn đề này chỉ bảo

************** Thanks....................
__________________
** xin hãy cho tôi là tượng đá
** Để muôn đời không nhớ thương ai ..!!
picpen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-09-2008, 06:19 PM   #11
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi picpen View Post
Giả sử em muốn cấu hình cho 8255 như sau: Pa là đầu vào ,Pb là đầu ra ,Pcl ( 4 biet thấp của Pc) là đầu vào _PCh (4 bit cao của Pc ) là đầu ra .vậy thì em phải cho A0A1 = 11 để nghi giá trị thiết lập vào thanh nghi điều khiển ,với yêu cầu trên thì cần phải nạp giá trị vào thanh nghi điều khiển là : 0b10010000 ( 90h )
sau khi thiết lập được như trên rồi em muốn xuất tín hiệu ra cổng Pb và đọc dữ liệu từ cổng PCl thì phải làm thế nào và khi đó 2 bit A0,A1 sẽ ở trạng thái như thế nào?
cổng dữ liệu chỉ có 1 ,làm thế nào để pic có thể hiểu được là em cần đọc giá trị tại PCl ....
trong 8051 khi giao tiếp với 8255 thì mỗi cổng PA,Pb,Pc và các chế độ khác nhau đều có một địa chỉ riêng để gửi và nhận dữ liệu lên rất rễ ràng sử dụng
Như bac Nam hướng dẫn thì em vẫn mơ hồ quá .
Mong bác và mọi người trên diễn đàn hiể u về vấn đề này chỉ bảo

************** Thanks....................
Bạn sẽ tuần tự thực hiện các thao tác xuất ra PB và đọc về từ PCL.

- Xuất ra PB: A1 = '0', A0 = '1', RD = '0', WR = '1', CS = '0', ghi dữ liệu ra data bus (các chân PIC nối với data bus phải được thiết lập như ngõ ra, TRISx = 0x00)

- Đọc về từ PCL: A1 = '1', A0 = '0', RD = '1', WR = '0', CS = '0', đọc dữ liệu từ data bus (các chân PIC nối với data bus phải được thiết lập như ngõ vào, TRISx = 0xFF).

Như bạn có thể thấy, mỗi port vẫn có địa chỉ riêng (quy định bởi A1A0), và vẫn có thể đọc/ghi từ data bus (cần chú ý thiết lập các bit TRISx thích hợp).

Thông tin về cách làm việc của 8255 được nêu rõ ràng trong datasheet của 8255, đề nghị bạn xem lại kỹ hơn.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-09-2013, 12:47 AM   #12
napoleon2140
Nhập môn đệ tử
 
Tham gia ngày: Jan 2013
Bài gửi: 4
:
bạn inventor_bk ơi, mình có thề xin code và file mô phỏng proteus của bạn dc ko. mình làm mà nó không chạy
mail mình là hoainam170392@gmai.com
thank bạn
napoleon2140 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à 03:23 PM.


Đượ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