利用开发板设计带按键调整时钟的数字钟,并在液晶显示器LCD1602上显示,显示要求:按键S1--小时加,按键S2--小时减,按键S3--分钟加,按键S4--分钟减
时间: 2023-10-17 13:08:40 浏览: 70
这个项目需要用到以下材料:
1. Arduino开发板
2. LCD1602液晶显示屏
3. 4个按键
4. 220欧姆电阻
5. 杜邦线
6. 电位器
7. 面包板
首先,将LCD1602液晶显示屏与Arduino开发板连接。连接方法如下:
LCD1602的VSS引脚连接到Arduino的GND引脚。
LCD1602的VDD引脚连接到Arduino的5V引脚。
LCD1602的V0引脚连接到电位器的中间引脚,两端引脚分别连接到GND和5V。
LCD1602的RS引脚连接到Arduino的数字引脚12。
LCD1602的RW引脚连接到Arduino的GND引脚。
LCD1602的E引脚连接到Arduino的数字引脚11。
LCD1602的D4-D7引脚分别连接到Arduino的数字引脚5-8。
然后,将4个按键连接到Arduino开发板。连接方法如下:
按键S1连接到数字引脚2。
按键S2连接到数字引脚3。
按键S3连接到数字引脚4。
按键S4连接到数字引脚9。
每个按键的另一端都连接到GND引脚,并且每个按键都需要加上一个220欧姆电阻。
最后,将所有元件连接到面包板上,按照下图的连接方式进行连接。
![image.png](attachment:image.png)
接下来,我们需要编写Arduino代码来实现时钟功能。以下是代码示例:
```
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 6, 7, 8);
int hour = 0;
int minute = 0;
void setup() {
lcd.begin(16, 2);
lcd.print("Digital Clock");
delay(2000);
lcd.clear();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Time:");
lcd.setCursor(0, 1);
lcd.print(hour);
lcd.print(":");
if (minute < 10) {
lcd.print("0");
}
lcd.print(minute);
if (digitalRead(2) == HIGH) {
hour++;
if (hour > 23) {
hour = 0;
}
delay(500);
}
if (digitalRead(3) == HIGH) {
hour--;
if (hour < 0) {
hour = 23;
}
delay(500);
}
if (digitalRead(4) == HIGH) {
minute++;
if (minute > 59) {
minute = 0;
}
delay(500);
}
if (digitalRead(9) == HIGH) {
minute--;
if (minute < 0) {
minute = 59;
}
delay(500);
}
delay(1000);
lcd.clear();
}
```
代码中定义了hour和minute变量来存储当前的小时和分钟数。setup()函数用于初始化液晶显示屏。loop()函数用于实现时钟功能。在每次循环中,程序会先清除液晶显示屏上的内容,然后将“Time:”和当前时间显示在液晶屏上。
然后,程序会检测是否有按键按下,如果检测到按键按下,则会相应地增加或减少小时或分钟数。最后,程序会等待1秒钟,然后再次循环。
这个时钟可以通过按键来调整时间。按下S1按键可以增加小时数,按下S2按键可以减少小时数,按下S3按键可以增加分钟数,按下S4按键可以减少分钟数。