![]() |
|
Tài trợ cho PIC Vietnam |
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 |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#7 |
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); } } } thay đổi nội dung bởi: staythesame, 20-05-2009 lúc 02:08 AM. |
![]() |
![]() |
|
|