【问题标题】:atmega32 interfacing taking user input from keypadatmega32 接口从键盘获取用户输入
【发布时间】:2016-05-07 15:06:24
【问题描述】:

嗨,我是这个 AVR 编码世界的新生。

我正在开发一个 4*4 键盘来接受用户输入并在 16*2 LCD 显示屏上显示一些内容。

所以请你们作为专家,我请求你们对这些问题提出建议和解释。

我恳请您的帮助,

  1. 以下代码部分我看不懂,

    #define D5 eS_PORTD5 -
    
    DDRD = 0xFF;
    DDRB = 0x0F;
    
  2. 此代码片段是否使用了预定义的功能,如果是,那是什么,

    if(bit_is_set (PINB,6))
    

这里附上完整的代码。

感谢您花时间阅读本文,如果您知道其中之一,请帮助初学者。

【问题讨论】:

    标签: user-input atmega keypad


    【解决方案1】:

    DDRD = 0xFF 将寄存器 DDRB 的所有位设置为 1,将端口 D 设置为输出

    (1 = 输出,0 = 输入)

    DDRB = 0x0F 将 portb 的低 4 位设置为输出,高 4 位设置为输出。

    bit_is_set a #define from sfr_defs.h,在这种情况下,它检查是否从 PINB 端口设置了位 6。

    相当于(PINB & (1

    【讨论】:

    • 感谢您的评论#lostbard。你能解释一下(定义 D5 eS_PORTD5)的用法吗,我真的需要一点说明如何检测键盘的用户输入,非常感谢你的帮助!!!
    • #define D5 eS_PORTD5 没有做太多,只是说每当你写 D5 时,它都会真正使用 eS_PORTD5。
    • 在我之前看到的 lcd.h 代码上,(electrosome.com/…) 他们使用 #define 来确定在 lcd 代码中使用的端口/位 - 即:D5 = 35,然后在代码中,如果 D5= 35,则更改端口 Y 中的位 X。
    猜你喜欢
    • 2015-07-06
    • 2013-07-06
    • 2011-10-19
    • 2010-11-29
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多