📄 io.c
字号:
// 用途:理解AVR的端口操作,学习在AVR studio里面观查IO口状态
// 连接:电源跳线,PB0接一个按键,PA口0~7接7段数码管的a~dp,7段数码管的ABCD接VCC
// 注意:直接全速运行本程序,没有现实意义,请通过JTAG在线仿真,看各个IO口的状态,并且看数码管上的显示。
#include <iom16v.h>
void main(void)
{
PORTA=0xff;
DDRA=0xff; //输出 模式 ,IO口上,1为输出,0为输入。
while(1)
{
PORTA = 0xf0; //等于 结果是:1111 0000
PORTA &=~ 0xf0; //清零 结果是:0000 0000
PORTA |= 0x77; //置一 结果是:0111 0111
PORTA ^= 0x70; //翻转 结果是:0000 0111
PORTA = 0x00; //全部清零
//下面理解下移位算法
PORTA |=(1<<PA7); //PA7置1,结果是 1000 0000
PORTA = ((1<<PA4)|(1<<PA5)|(1<<PA6)); // PA4 5 6置一,结果为 0011 1000
PORTA &=~((1<<PA4)|(1<<PA5)); //PA 4 5 清零, 结果为 0010 0000
PORTA ^= ((1<<PA5)|(1<<PA6)); //PA5 PA6 取反,结果为 0001 0000
//下面理解下输入
DDRB=0x01; //PB0 接个按键
if((PINB&0x01)==0x01)
{ //PB0为高,没有键盘按下
PORTA =0x00;
}
else
{ //PB0为低,按键按下
PORTA =0xFF;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -