Em đang học timer của con này, viết thử đoạn code quét LED ma trận 8x8 cho nó sáng LED hình trái tim
sau khoảng thời gian chiu khó đọc tài liệu trên đây của các pro, e cũng viết được 1 đoạn code với CCS. có vẻ khá ổn
nhưng khi mô phỏng thì ôi thôi, sao lại thế. cái trái tim của em nó đâu mất rồi, thành cái cục kỳ quái gì thế này.
Đây là code của em, mong mọi người xem và góp ý giúp em.
e cảm ơn rất nhiều
e dùng HC595 và HC138 quét cột và hàng, dùng timer1 quét LED và truyền SPI ra HC595
Không biết sai chỗ nào nữa...
còn đây là file mô phỏng:
https://www.dropbox.com/s/yzxcgko2rmm0ghm/manMatrix.rar
không up được lên diễn đàn, chắc tại bắt wifi chùa
giúp e với nhé!
thêm cái ảnh lỗi cho nó dễ nhìn:
https://www.dropbox.com/s/1a5juli51682wud/traitim.png
sau khoảng thời gian chiu khó đọc tài liệu trên đây của các pro, e cũng viết được 1 đoạn code với CCS. có vẻ khá ổn
nhưng khi mô phỏng thì ôi thôi, sao lại thế. cái trái tim của em nó đâu mất rồi, thành cái cục kỳ quái gì thế này.
Đây là code của em, mong mọi người xem và góp ý giúp em.
e cảm ơn rất nhiều
e dùng HC595 và HC138 quét cột và hàng, dùng timer1 quét LED và truyền SPI ra HC595
Không biết sai chỗ nào nữa...
Code:
#include <16f877a.h> #fuses HS,NOWDT,NOPROTECT #use fast_io(D) #use delay(clock=2000000) #define SCK PIN_C3 #define DATA PIN_C5 #define SCL PIN_C4 #define A PIN_D0 #define B PIN_D1 #define C PIN_D2 #define OE PIN_D3 unsigned char text[]={24,24,96,6,36,36,32,4,66,66,16,8,129,129,8,16,1,128,4,32,1,128,2,64,1,128,1,128,2,64,0,0}; unsigned char Dao[32]; unsigned char i=0; unsigned char j; void LatchData() { output_low(SCL); output_high(SCL); } #int_timer1 void ngat_timet1() { set_timer1(64535); spi_write(text[i*4+3]); spi_write(text[i*4+2]); spi_write(text[i*4+1]); spi_write(text[i*4]); LatchData(); output_D(i+8); i++; if(i==8) i=0; } void main() { output_high(SCK); output_high(SCL); setup_timer_1 ( T1_DISABLED ); setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_4 ); setup_timer_1 ( T1_INTERNAL | T1_DIV_BY_8 ); setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_16); enable_interrupts(INT_SSP); enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); set_tris_D(0x00); set_tris_C(0x00); for(j=0;j<=31;j++) Dao[j]=~text[j]; while (true) { } }
https://www.dropbox.com/s/yzxcgko2rmm0ghm/manMatrix.rar
không up được lên diễn đàn, chắc tại bắt wifi chùa
giúp e với nhé!
thêm cái ảnh lỗi cho nó dễ nhìn:
https://www.dropbox.com/s/1a5juli51682wud/traitim.png
Comment