【发布时间】:2014-07-08 06:55:15
【问题描述】:
我正在尝试将 ATmega328 与 LCD 接口我编写了以下代码
#define en 28
enable pin 是 28,如何设置和重置这个 pin?
我正在使用 atmel studio 6 和 avrispmkii USB 编程器
【问题讨论】:
-
你的芯片是哪个封装的?将 28 针分配给哪个引脚很重要。
我正在尝试将 ATmega328 与 LCD 接口我编写了以下代码
#define en 28
enable pin 是 28,如何设置和重置这个 pin?
我正在使用 atmel studio 6 和 avrispmkii USB 编程器
【问题讨论】:
请向the datasheet咨询您的设备。
假设您有 28 针 PDIP 封装,我们看到针 28 是 PC5(端口 C,位 5)。
首先,您需要使用端口 C 的数据方向寄存器 DDRC 将引脚配置为输出 (1):
DDRC = (1<<DDC5);
这里,所有其他引脚都配置为输入 (0)。
然后打开此引脚,或打开第 5 位:
PORTC |= (1<<5);
要关闭此引脚,并关闭第 5 位:
PORTC &= ~(1<<5);
另见:
【讨论】:
1写入相应PIN寄存器中的相应位:PINC |= (1<<5);
PIN regsiter 是只读的,不得写入(该站点确实如此,但声明这没有效果)。在较新的 AVR 内核上,PIN 寄存器也是可写的并切换位。读取PIN 寄存器也独立于DDR 寄存器。如果DDR 设置为输出,那么PIN 自然会读取等于PORT 位的状态。