mình đang tập viết code cho AVR,nhưng gặp một số rắc rối,mong các bạn chỉ giúp.thanks trước nhé!
đây là mạch schematics của mình:
mình sử dụng vxl ATMEGA8515,IC dich 74HC595,Led green 8x8.
đây là đoạn code mình viếttự nghĩ nên còn nhiều khiếm khuyết)
#include <mega8515.h>
#include <delay.h>
unsigned int row1[]={1,1,1,1,1,1,0,1};
unsigned int row2[]={1,1,1,1,1,1,0,1};
unsigned int row3[]={1,1,1,1,1,1,0,1};
unsigned int row4[]={1,1,1,1,1,0,0,0};
unsigned int row5[]={1,1,1,1,1,0,1,0};
unsigned int row6[]={1,1,1,1,1,0,1,0};
unsigned int row7[]={1,1,1,1,1,0,1,0};
unsigned int row8[]={1,1,1,1,1,0,0,0};
unsigned int row(int n,int p)
{
switch(n)
{
case 1: return(row1[p]);break;
case 2: return(row2[p]);break;
case 3: return(row3[p]);break;
case 4: return(row4[p]);break;
case 5: return(row5[p]);break;
case 6: return(row6[p]);break;
case 7: return(row7[p]);break;
case 8: return(row8[p]);break;
};
};
void main(void)
{
unsigned int i,j,k;
unsigned char col[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
while(1)
{
for(i=0;i<8;i++) {
PORTC=col[i];/* dua dien ap vao cot */
/*quet hang*/
for(j=0;j<8;j++) {
PORTA.1=row(i+1,j);
PORTA.0=1;
PORTA.0=0;
};
PORTA.2=1;
PORTA.2=0;
};
};
}
sử dụng CodevisionAVR.
và kết quả test:
mình ko hiểu sao nó lại ra như thế,không như ý muốn,mong các bạn góp ý.thanks!
đây là mạch schematics của mình:
mình sử dụng vxl ATMEGA8515,IC dich 74HC595,Led green 8x8.
đây là đoạn code mình viếttự nghĩ nên còn nhiều khiếm khuyết)
#include <mega8515.h>
#include <delay.h>
unsigned int row1[]={1,1,1,1,1,1,0,1};
unsigned int row2[]={1,1,1,1,1,1,0,1};
unsigned int row3[]={1,1,1,1,1,1,0,1};
unsigned int row4[]={1,1,1,1,1,0,0,0};
unsigned int row5[]={1,1,1,1,1,0,1,0};
unsigned int row6[]={1,1,1,1,1,0,1,0};
unsigned int row7[]={1,1,1,1,1,0,1,0};
unsigned int row8[]={1,1,1,1,1,0,0,0};
unsigned int row(int n,int p)
{
switch(n)
{
case 1: return(row1[p]);break;
case 2: return(row2[p]);break;
case 3: return(row3[p]);break;
case 4: return(row4[p]);break;
case 5: return(row5[p]);break;
case 6: return(row6[p]);break;
case 7: return(row7[p]);break;
case 8: return(row8[p]);break;
};
};
void main(void)
{
unsigned int i,j,k;
unsigned char col[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
while(1)
{
for(i=0;i<8;i++) {
PORTC=col[i];/* dua dien ap vao cot */
/*quet hang*/
for(j=0;j<8;j++) {
PORTA.1=row(i+1,j);
PORTA.0=1;
PORTA.0=0;
};
PORTA.2=1;
PORTA.2=0;
};
};
}
sử dụng CodevisionAVR.
và kết quả test:
mình ko hiểu sao nó lại ra như thế,không như ý muốn,mong các bạn góp ý.thanks!
Comment