📄 led8.c
字号:
#include<avr/io.h>
#include<stdio.h>
/*1.2行预编译语句,它们告诉编译器一些重要信息。如单片机的寄存器名称对应的向量等等DDRB、PORTB就在io.h内定
/*义的(其实它在本例中是在iom16.h中定义的,io.h是所有AVR单片机)公共定义它 从 makefile中提取单片机类型,
/*来从include\avr下取出对应的实际 io*.h文件)*/
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k;
for(i=20;i>0;i--)
for(j=20;j>0;j--)
for(k=248;k>0;k--);
}
int main(void) //avr-gcc的主函数类型必须为int类型。否则warning:return type of 'main' is not 'int'.
{
unsigned char i,j,k;
DDRB=0xFF; //让PORTB全部为输出口
PORTB=0xFF; //在端口PORTB中输出高电平
for(;;)
{
for(k=0;k<8;k++)
{
PORTB=~(1<<k);
delay02s(); //两个FOR循环构成的延时部分,它可以使LED移动的速度放慢
delay02s();
PORTB=0xFF;
} //9-21是一个循环。目的是将端口PORTB的某一位置低,让LED点亮
} //无限循环语句
}
/*向端口的某一位(由变量K指定),其中十分重要的是~(1<<K)部分,前面的~是取反,其中的1<<K在C语言中的意思
是将1左移变量K指定的位数*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -