|
#include<avr/io.h>
#include<avr/delay.h>
flash char char_7[8]={0x10,0x38,0x7C,0xFE,0x38,0x38,0x38,0x38};
void display(char row)
{
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)
{
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;
}
};
}
这段程序实现是一个向上箭头的动态显示,PA口控制col+,PC口控制ROW-,看来看去感觉是错误的。比如,执行display(i)时,i=0, PORTA=0X10,而PORTC=~(1<<i)后变成了0b1111 1110,无法实现图像啊
本人菜鸟,请高手指教,尤其是PORTC=~(1<<i) 是什么意思? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|