![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
|
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
*point(x,y)//cho phép sáng 1 điểm có tọa độ là (x,y)trên màn hình led
*line(x1,y1,x2,y2)// cho phép sáng 1 đoan thẳng có tọa độ điểm đầu là (x1,y1) và tọa độ điểm cuối (x2,y2). *area(x1,y1,x2,y2)//cho phep sang 1 vung. Bạn longtu à , cho mình hỏi là hình như trong CCS mình không tìm thấy mấy câu lệnh trên . |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 6 túi
|
Trích:
Ban xem them luong này nhé #41. Thân,
__________________
-------------------------------------------------------------------------------------- Phùng Minh Tuân Email: tuan.phmt@gmail.com "Cuộc đời sóng gió nuôi ta lớn Bao lần thất bại dạy ta khôn". |
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
#define BITMAP_HEIGHT_BYTE] 2
#define BITMAP_WIDTH_BIT 16 unsigned char buff_mh[BITMAP_HEIGHT_BYTE][BITMAP_WIDTH_BIT] Bạn có thể giải thích rõ số 2 và số 16 là gì vậy bạn và bạn giải thích sơ qua về mấy dòng lệnh trên |
![]() |
![]() |
![]() |
#4 | |
Đệ tử 6 túi
|
Trích:
Thân,
__________________
-------------------------------------------------------------------------------------- Phùng Minh Tuân Email: tuan.phmt@gmail.com "Cuộc đời sóng gió nuôi ta lớn Bao lần thất bại dạy ta khôn". |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
Code:
#include "C:\Program Files\PICC\Examples\lenhmoi.h" #define BITMAP_HEIGHT_BIT 2 #define BITMAP_WIDTH_BIT 16 unsigned char buff_mh[BITMAP_HEIGHT_BIT][BITMAP_WIDTH_BIT ]; void point(int8 x,int8 y) { unsigned char *pt; int8 mask=0b00000001; int16 j; mask = mask << (y%8); pt=&buff_mh[0][0]; j=(y/8*16+x);//xác dinh vi tri x pt+=j; *pt|= mask; } void main() { while(1) { point(0,0); delay_ms(500); point(1,1); delay_ms(500); } } thay đổi nội dung bởi: namqn, 24-01-2009 lúc 09:17 PM. |
![]() |
![]() |
![]() |
#6 | |
Đệ tử 6 túi
|
Trích:
Thân,
__________________
-------------------------------------------------------------------------------------- Phùng Minh Tuân Email: tuan.phmt@gmail.com "Cuộc đời sóng gió nuôi ta lớn Bao lần thất bại dạy ta khôn". |
|
![]() |
![]() |
![]() |
#7 |
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
hình đây bạn
|
![]() |
![]() |
![]() |
#8 |
Đệ tử 6 túi
|
![]() Mình đã xem hình của bạn, ma trận led của bạn là 8cot x 8 hàng, bạn bắt đầu làm như sau nhé:
Mình giả sử bạn 8 cột bạn nối với PortB, 8 hàng bạn nối với portD. bạn khai báo Buff_mh như sau: #define BITMAP_HEIGHT_BYTE] 1//chiêu cao của buff_mh tính theo byte; 1 byte= 8bit-->8hàng #define BITMAP_WIDTH_BIT 8//chiều rộng buff_mh tính theo bit; 8bit-->8cột unsigned char buff_mh[BITMAP_HEIGHT_BYTE][BITMAP_WIDTH_BIT] ; Bạn viết 1 chương trình lần lượt cấp điện cho từng cột(phương pháp ở dây là quét cột:cấp diện cho cột thứ 1, sau đó ngắt điện cột thứ 1 và cấp điện cho cột thứ 2...). Tương ứng với mỗi làn cấp điện cho từng cột, bạn lấy nội dung của 1 phần từ tương ứng của buff_mh, ví dụ như: bạn muốn cột thứ nhất sáng, dâu tiên bạn phải cấp diên cho cột thứ nhất(portB=0b00000001), sau dó bạn cho PortD=buff_mh[0][0]...portB=0b00000010và portD=buff_mh[0][1], portB=0b00000100và portD=buff_mh[0][2]...Bạn nên dùng Timer de viet doan chuong trinh này, lý do là dể cho viec này thuc hien 1 cách tư dong...(mai mình viet tiep nhé, het gio làm viec o cong ty mat roi)
__________________
-------------------------------------------------------------------------------------- Phùng Minh Tuân Email: tuan.phmt@gmail.com "Cuộc đời sóng gió nuôi ta lớn Bao lần thất bại dạy ta khôn". |
![]() |
![]() |
![]() |
#9 |
Đệ tử 6 túi
|
Buff_mh: là noi chứa dựng nhưng thông tin bạn càn hiển thị trên matran, muốn thay đổi hiển thị bạn chỉ cần thay doi nội dung của buff_mh(lưu ý là công việc quet led và lấy dữ liệu bạn nên làm 1 cách tự động như trên--> công việc còn lại là thay dổi dữ liệu trong buff_mh-->thay đổi nội dung hiển thị)
Khi bạn làm được những gì như tôi đã nói, lúc đó bạn có thể sử dụng các hàm point(x,y)...bât cứ ở dâu trong chuong trình của bạn vì mục dích của nó là làm thay đổi nội dung của buff_mh(việc quet led và lấy dữ liệu hiển thị đã diễn ra tự động) từ đó làm thay dổi nội dung hiển thị. Nhìn vào hàm point(x,y): void point(int8 x,int8 y) { unsigned char *pt; int8 mask=0b00000001; int16 j; mask = mask << (y%8); pt=&buff_mh[0][0]; j=(y/8*16+x);//xác dinh vi tri x pt+=j; *pt|= mask; } Hiểu rõ đoạn chương trình này, bạn sẽ thấy nó thực chất là các lệnh xoay dữ liệu làm thay đổi 1 bit nào đó ở vị trì tương ứng trong buff_mh. Trở lại đoạn chương trình bạn đã viết ở #53, chắc bạn cũng nhận ra rằng bạn thiếu mất đoạn chương trình quét và lấy dữ liệu, bạn chỉ thay đổi được nội dung trong buff_mh nhưng những thay đổi đó dâu có được hiển thị. Bạn làm thử và post lên cho mọi người biết kết quả của bạn nhé. Thân,
__________________
-------------------------------------------------------------------------------------- Phùng Minh Tuân Email: tuan.phmt@gmail.com "Cuộc đời sóng gió nuôi ta lớn Bao lần thất bại dạy ta khôn". |
![]() |
![]() |
![]() |
#10 |
Đệ tử 3 túi
Tham gia ngày: Dec 2008
Bài gửi: 50
: |
gửi bạn nha
|
![]() |
![]() |
![]() |
#11 |
Đệ tử 1 túi
Tham gia ngày: Nov 2007
Bài gửi: 20
: |
Cám ơn bạn nhiều nhiều
|
![]() |
![]() |
![]() |
#12 |
Đệ tử 3 túi
Tham gia ngày: Dec 2008
Bài gửi: 50
: |
có sư huynh nào có tài liệu về giao tiếp cho Pic bằng VB6 thì post cho minh với nha
|
![]() |
![]() |
![]() |
#13 |
Đệ tử 1 túi
Tham gia ngày: Nov 2007
Bài gửi: 20
: |
quét hàng
Em muốn hỏi các anh quét hàng và quét cột khác nhau như thế nào, và người ta thường dùng IC gì để quét hàng
|
![]() |
![]() |
![]() |
#14 | |
Đệ tử 3 túi
Tham gia ngày: Dec 2008
Bài gửi: 50
: |
Trích:
Chúc bạn thành công |
|
![]() |
![]() |
![]() |
#15 |
Đệ tử 6 túi
Tham gia ngày: Feb 2009
Bài gửi: 127
: |
bác tungtot_vl ơi cho em hỏi . em mới cho chạy được có vài kí tự mà pic6f877a đã báo đầy Ram rồi . giờ em muốn sử dụng Ram & Rom ngoài thì làm thế nào hả bác . Cám ơn bác trước nhé
thay đổi nội dung bởi: hoc_picpicpic, 06-03-2009 lúc 11:29 AM. |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|