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
/////////////////////////////////////////////////////

về C lắm ^_^)

Comment