PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Chương trình dịch & các công cụ mô phỏng

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

Chương trình dịch & các công cụ mô phỏng Khu vực này chỉ có thành viên diễn đàn mới được vào

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 13-05-2009, 12:29 AM   #1
thanhl0nglee
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 4
:
Cách mô phỏng led matrix

Em đang học về led metrix.Muốn thực hành xíu,mà cái mạch nạp JDM nó bị lỗi j j ko biết.Nên phải dùng Proteus để mô phỏng.Mà sao mô phỏng cái chữ A mà ko đc.Hjc hjc
Nhờ các bác chị hộ.Bác nào có tài liệu về mô phỏng Proteus thì cho em với.
Đây là đoạn code em viết
Code:
#include <16F877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#device 16F877*=16 ADC=8
#use delay(clock=4000000)
#use fast_io(a)
#byte porta=0x05
#use fast_io(b)
#byte portb=0x06
#use fast_io(c)
#byte portc=0x07
#use fast_io(d)
#byte portd=0x08
#use fast_io(e)
#byte porte=0x09
int data[] = {0x00,0xf8,0x24,0x22,0x24,0xf8,0x00,0x00};
int quet[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int i;
void main(void)
{
   set_tris_b(0x00);
   set_tris_d(0x00);
   while(1)
      {
         for(i=0;i<8;i++)
            {
               portb = data[i];
               portd = quet[i];
               delay_ms(100);
               portb = 0x00;
            }
      }
}
Hình Kèm Theo
File Type: jpg 1.JPG (238.3 KB, 213 lần tải)
thanhl0nglee vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-05-2009, 12:42 AM   #2
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
Mình không tìm hiểu led Ma trận dùng PIC nên không giúp bạn dc.
Có file hướng dẫn Proteus này hy vọng giúp ích cho bạn
http://rapidshare.com/files/23216040...s_7.1.rar.html
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-05-2009, 01:18 AM   #3
staythesame
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 6
:
Để giả lập Led matrix trong Proteus bạn cần chú ý về chân quy đinh của nó. Led matrix xanh và đỏ là khác nhau. Đối với Led matrix xanh : 8 chân phía trên là hàng , 8 chân phía dưới là cột. Led matrix đỏ thì ngược lại ; 8 chân trên là cột, 8 chân dưới là hàng. Để led sáng : chân hàng 0, chân cột 1.

Bạn xem lại trong code để bố trí chân cho phù hợp: xuất data ở port B, quét theo port D
staythesame vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-05-2009, 11:47 PM   #4
thanhl0nglee
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 4
:
Trích:
Nguyên văn bởi staythesame View Post
Để giả lập Led matrix trong Proteus bạn cần chú ý về chân quy đinh của nó. Led matrix xanh và đỏ là khác nhau. Đối với Led matrix xanh : 8 chân phía trên là hàng , 8 chân phía dưới là cột. Led matrix đỏ thì ngược lại ; 8 chân trên là cột, 8 chân dưới là hàng. Để led sáng : chân hàng 0, chân cột 1.

Bạn xem lại trong code để bố trí chân cho phù hợp: xuất data ở port B, quét theo port D
Em cũng xuất data ở porb và quet ở port d mà
Bác có thể chỉ cụ thể giùm em cái đc ko.
thanhl0nglee vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-05-2009, 12:11 AM   #5
staythesame
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 6
:
Mình đã thử làm lại bài này cho bạn. Về giả lập ko có vấn đề gi`. Vấn đề là do code của ban.
Phần delay bạn để
delay_ms(100);
thì quá nhiều những 0,1s. Bạn chuyển sang delay_us(50) thì sẽ ok.
Chúc bạn thành công !

thay đổi nội dung bởi: staythesame, 16-05-2009 lúc 11:44 PM.
staythesame vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-05-2009, 01:36 AM   #6
thanhl0nglee
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 4
:
Bạn có thể nói rõ hơn cách xác định chân,cách mắc đc ko.Mình đã sửa lại chỗ delay,nhưng mà khi mô phỏng nó vẫn ko ra hình thù j cả.Thực ra đây là bài tập thực hành hiển thị chữ A bằng led matrix nhưng do mình ko biết cách mô phỏng nên mới ra thế này.Bạn làm ơn chỉ rõ hơn giùm mình cái nhé.
Bạn chỉ cách xác định chân,các mắc rồi cho mình cái hình của bạn nhé
thanhl0nglee vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-05-2009, 12:04 AM   #7
staythesame
Nhập môn đệ tử
 
Tham gia ngày: Feb 2009
Bài gửi: 6
:
OK! Minh mắc mạch theo sơ đồ của bạn. Ở đây bạn quét theo cột(do nối portD vào 8 chân cột phía dưới của Ledmatrix xanh), do chân cột của của Led matrix xanh là chân anot =>đối với mỗi cột được chọn sáng khi xuất dữ liệu cho cột thì bit 0 làm đèn led trên cột đó sáng, bít 1 thì tắt. Trong trường hợp bạn muốn xuất ra chữ A thì trong code phần data () bạn phải đảo ngược 1->0 , 0->1 . Vd: từ 0x00 ->0xff .
Đây là code mình đã sửa lại cho bạn để xuất chữ A
Code:
#include <16F877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#device 16F877*=16 ADC=8
#use delay(clock=4000000)
#use fast_io(a)
#byte porta=0x05
#use fast_io(b)
#byte portb=0x06
#use fast_io(c)
#byte portc=0x07
#use fast_io(d)
#byte portd=0x08
#use fast_io(e)
#byte porte=0x09
int data[] = {224,219,187,123,187,219,224,255}; //đa chinh lai cho nay doi bit 1->0, 0->1
int quet[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; 
int i;

void main(void)
{
   set_tris_b(0x00);
   set_tris_d(0x00);
   while(1)
      {
         for(i=0;i<8;i++)
            {
               portb = data[i];               
               portd = quet[i];
               delay_us(50);
               output_d(0);output_b(0);
            }
      }
}
File Kèm Theo
File Type: rar Ledmatrixsample.rar (5.7 KB, 328 lần tải)

thay đổi nội dung bởi: staythesame, 20-05-2009 lúc 02:08 AM.
staythesame vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-05-2009, 12:19 AM   #8
thaithien
Đệ tử 7 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 213
:
Gửi cả file proteus lên luôn để dễ xử lý đi,và cũng để người khác tham khảo nữa.Đơ mất thời gian vẽ mạch trở lại.
thaithien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-05-2009, 01:01 AM   #9
nguyenyeu11
Nhập môn đệ tử
 
Tham gia ngày: May 2009
Bài gửi: 1
:
co bac nao co so do nguyen ly mach ko cho em voi
nguyenyeu11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-05-2009, 03:04 PM   #10
nguyenductu2310
Đệ tử 1 túi
 
Tham gia ngày: Feb 2008
Bài gửi: 16
:
Mô phỏng hiển thị chữ lưu ý chân linh kiện thui, nếu ko rõ thì test thử với mạch đơn giản ấy.
Mình viết tạm chương trình hiển thị chữ A. bạn coi thử nhé!
Code:

#include <16f877a.h>
#fuses NOWDT,HS,PUT,NOPROTECT
#device 16f877a*=16 adc=8
#use delay(clock=20000000)
int8 Cot[]= {0b00011000, 0b00111100, 0b01100110, 0b11000011, 0b11111111, 0b11111111, 0b11000011, 0b11000011};
int8 Hang[]={0b11111110, 0b11111101, 0b11111011, 0b11110111, 0b11101111, 0b11011111, 0b10111111, 0b01111111};
int8 i;

void main()
{
set_tris_b(0x00);
set_tris_d(0x00);
while(1)
{
for (i=0; i<8; i++)
{
output_b(Hang[i]);
output_d(Cot[i]);
delay_ms(5);
}
}
}
Hình Kèm Theo
File Type: jpg 8x8sample.JPG (285.9 KB, 51 lần tải)
File Kèm Theo
File Type: rar 8x8sample.rar (12.6 KB, 272 lần tải)
nguyenductu2310 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-05-2009, 03:06 PM   #11
nguyenductu2310
Đệ tử 1 túi
 
Tham gia ngày: Feb 2008
Bài gửi: 16
:
Quên mất! chương trình mình viết dùng CCS thuần, không phải định nghĩa thêm Port, có thế rút gọn hơn đó. Với chương trình nhỏ dùng ntn minh thấy tiện hơn.
nguyenductu2310 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-06-2009, 04:42 PM   #12
loanmapdit
Đệ tử 1 túi
 
Tham gia ngày: Jun 2009
Bài gửi: 13
:
đọc không hiểu gì hết. mình còn gà lắm.mong các bạn giúp đỡ
loanmapdit vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-06-2009, 11:33 PM   #13
Huynh Thanh San
Nhập môn đệ tử
 
Huynh Thanh San's Avatar
 
Tham gia ngày: Oct 2008
Bài gửi: 8
:
Thumbs down Khong có zỳ là hay het

Trích:
Nguyên văn bởi thanhl0nglee View Post
Em đang học về led metrix.Muốn thực hành xíu,mà cái mạch nạp JDM nó bị lỗi j j ko biết.Nên phải dùng Proteus để mô phỏng.Mà sao mô phỏng cái chữ A mà ko đc.Hjc hjc
Nhờ các bác chị hộ.Bác nào có tài liệu về mô phỏng Proteus thì cho em với.
Đây là đoạn code em viết
Code:
#include <16F877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP
#device 16F877*=16 ADC=8
#use delay(clock=4000000)
#use fast_io(a)
#byte porta=0x05
#use fast_io(b)
#byte portb=0x06
#use fast_io(c)
#byte portc=0x07
#use fast_io(d)
#byte portd=0x08
#use fast_io(e)
#byte porte=0x09
int data[] = {0x00,0xf8,0x24,0x22,0x24,0xf8,0x00,0x00};
int quet[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
int i;
void main(void)
{
   set_tris_b(0x00);
   set_tris_d(0x00);
   while(1)
      {
         for(i=0;i<8;i++)
            {
               portb = data[i];
               portd = quet[i];
               delay_ms(100);
               portb = 0x00;
            }
      }
}
================================================== =============
NGUOI READ : Bạn chỉ có thể mo phong duoc 1 led matrix thoi hả . Khong the mo phong với 16 led matrix ah cùi thế
__________________
THS
Huynh Thanh San vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-06-2009, 11:34 PM   #14
Huynh Thanh San
Nhập môn đệ tử
 
Huynh Thanh San's Avatar
 
Tham gia ngày: Oct 2008
Bài gửi: 8
:
Có muon Hoc hoi kg hả.
__________________
THS
Huynh Thanh San vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-06-2009, 07:16 AM   #15
0903579509
Đệ tử 4 túi
 
Tham gia ngày: Mar 2007
Nơi Cư Ngụ: Da Nang
Bài gửi: 69
:
Trích:
Nguyên văn bởi Huynh Thanh San View Post
Có muon Hoc hoi kg hả.
Show hàng cho anh em mở rộng tầm mắt đi! Dấu làm gì cho nặng bụng.
0903579509 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:48 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