chào các bác!
em có một chương trình nhỏ này mong được các bác giúp đỡ. đó là chương trình cho hiển thị chữ "A" trên led matrrix 8*8.phần cứng em làm như thế này:
- VDK atmega16
- PORTC để xuất dữ liệu ra cột thông qua 74hc595
- PORTB nối với 74hc154 để quét hàng
sơ đồ:
còn đây là chương trình em viết ma van chưa được mong các bác giúp:
code_chu_A:
em có một chương trình nhỏ này mong được các bác giúp đỡ. đó là chương trình cho hiển thị chữ "A" trên led matrrix 8*8.phần cứng em làm như thế này:
- VDK atmega16
- PORTC để xuất dữ liệu ra cột thông qua 74hc595
- PORTB nối với 74hc154 để quét hàng
sơ đồ:
còn đây là chương trình em viết ma van chưa được mong các bác giúp:
code_chu_A:
Code:
#include <mega16.h> #include <delay.h> // dinh nghia cac chan cuar 595 #define Data PORTC.0 #define Clk PORTC.1 #define Latch PORTC.2 // Dinh nghia chan don kenh quet Matran #define Rowth PORTB unsigned int Buff[8][1]; char const Font[5]= /*0 A */ {248,36,34,36,248}; void Delay(unsigned int i) { while(--i){}; } //Check bit5 cua mot bien unsigned int CheckBit5(unsigned int x) { return (x>>5); } // Gui du lieu ra 595. void Send_1_595(unsigned int a1) { unsigned char i; unsigned int Temp; Clk=0; Temp=a1; for (i=0;i<=5;i++) { if (CheckBit5(Temp)==1) Data=1; else Data=0; Temp<<=1; Clk=1; Clk=0; //delay_ms(10); } Latch=1;//day du lieu ra Latch=0;//suon len chot du lieu ra } // chuong trinh con hien thi du lieu trong bo nho dem void Display(void) { unsigned char i,j; for (i=1;i<=60;i++) { for (j=0;j<=7;j++) { Send_1_595(Buff[j][0]);// Day du lieu ra Rowth=0; // Tat toan bo hien thi Delay(150); Latch=1;// day du lieu ra Latch=0; //suon len chot du lieu ra Rowth=0; Delay(100); Rowth=0b1<<j; Delay(1); } } } ////////////////////////////////////////////////////////////////////////////// //main program ////////////////////////////////////////////////////////////////////////////// void main(void) { DDRC=0xFF; PORTC=0xFF; DDRB=0xff; PORTB=0xff; //Clk=0; //Data=0; //Latch=0; while(1) { unsigned char Rowth,col; for(Rowth=0;Rowth<8;Rowth<<=1) for(col=0;col<8;col++) { PORTC=Font[col]; PORTC=1<<col; PORTB=Rowth++; delay_ms(1); } }; } ///////////////////////////////////////////////////// // end of main program /////////////////////////////////////////////////////
Comment