dgw123 发表于 2013-8-1 16:45:21

arduino模拟输入端口A0改成数字输出

使用ARDUINO时候,可能会用到数字端口不够用,模拟输入端口用不上的情况,可以在程序里直接写AVR 指令,把模拟输入改成数字输入输出,就是在编程的时候不能用到 ARDUINO 函数。例如以下程序,就是控制A0~A5端口上的灯闪烁。
int led = 13;
void setup() {                  
pinMode(led, OUTPUT);
DDRC=0xff;//端口C设置为输出
PORTC=0x00;//端口C初始值设置为0
Serial.begin(9600);
}

void loop() {
digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
PORTC=0xff;//点亮二极管
Serial.println(PORTC);
delay(1000);               // wait for a second
digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
PORTC=0x00;//熄灭二极管
Serial.println(PORTC);
delay(1000);               // wait for a second
}

弘毅 发表于 2013-8-1 22:37:13

其实。。。模拟口可以很方便的直接当数字口用。。。A0=14 A1=15 A2=16以此类推。。。使用方法和使用数字端口一样

tanbocandy 发表于 2013-8-1 22:32:19

恩 我还真没单独玩过AVR

疯子。 发表于 2013-8-1 23:28:39

楼上的方法比较简单

春泥蛋炒饭 发表于 2013-8-2 01:54:48

这段程序完全不必要,模拟输入口可以直接当数字输入和输出口来用,引脚号可以直接用A0到A5,或者14-19都行。

zhaokbk 发表于 2014-2-8 16:22:04

弘毅 发表于 2013-8-1 22:37 static/image/common/back.gif
其实。。。模拟口可以很方便的直接当数字口用。。。A0=14 A1=15 A2=16以此类推。。。使用方法和使用数字端口 ...

。。感动的哭了。。

ali2008 发表于 2014-10-7 09:31:15

太好了,非常感谢,就在为这个问题发愁呢!

liuhaoai 发表于 2015-7-6 23:11:56

正在为数字io不够用发愁呢!呵呵,看到这条消息又多了几个!哈哈!!

ccccc8 发表于 2016-1-9 08:53:11

正好用到,谢谢

vvvvv 发表于 2018-8-8 23:57:50

弘毅 发表于 2013-8-1 22:37
其实。。。模拟口可以很方便的直接当数字口用。。。A0=14 A1=15 A2=16以此类推。。。使用方法和使用数字端 ...

大佬 我遇到的问题里几乎都有你的解答,你的解答每次都能解决我的问题 菜鸟之友:lol

dar_cj 发表于 2019-11-9 10:36:20

:lol我的nano一下多了8个数字端口

skyrusher 发表于 2019-11-20 11:18:29

这个不错,正好在找。
页: [1]
查看完整版本: arduino模拟输入端口A0改成数字输出