输入改成输出的时候,原来DDRC = 0X0F;PORTC = 0XF0;,取到SCAN.
之后反转DDRC = 0XF0;PORTC = 0X0F;这时候要注意在反转后要加一个空指令NOP();AVR单片机并不是马上会执行,隔一个周期,PORTC才会真正输出要求的.
一般写2~3条输出指令,如: PORTC = 0X0F; PORTC = 0X0F; 之后再读取端口状态才会读回正确的电平状态。
单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器(Timer/Counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。
DDRC是控制端口方向的,为1时是输出口反之为输入口。当设置为输入口时,PORTC用来控制内部上拉允许的,为1时允许内部上拉。端口值读取用PINC。