|
马老师 您好 最近一直在看你的书 对我学习非常有帮助 不过遇到一些问题。。。
/*********************************************
File name : demo_6_7.c
Chip type : ATmega16
Program type : Application
Clock frequency : 4.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*********************************************/
#include <mega16.h>
#include <delay.h>
flash unsigned char char_7[8]={0x10,0x38,0x7C,0xFE,0x38,0x38,0x38,0x38};
void display(unsigned char row)
{
unsigned char i;
for (i=0;i<=7;i++)
{
if (row <= 7)
PORTA = char_7[row];
else
PORTA = 0;
PORTC = ~(1<<i);
delay_ms(2);
PORTC = 0xFF;
if (++row >= 12 ) row = 0;
}
}
void main(void)
{
unsigned char time_counter,i = 0;
PORTA=0x00;
DDRA=0xFF;
PORTC=0xFF;
DDRC=0xFF;
while (1)
{
display(i);
delay_ms(9);
if (++time_counter >= 4)
{
time_counter = 0;
if(++i >= 12) i=0;
}
};
}
关于上面这个程序 if (++row >= 12 ) row = 0; 这句话是什么意思 为什么要>=12呢而不是>=7
还有这个本来是向上的箭头 但是根据图6-18 8X8点阵模块 看起来就像是向左的箭头了 是吧? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|