0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用中断将消息写入LCD屏幕

454398 来源:wv 2019-10-14 09:41 次阅读

步骤1:连接LCD屏幕

如何使用中断将消息写入LCD屏幕

首先,我们将连接LCD显示。

LCD屏幕使用Arduino上的6个引脚板。首先,将LCD显示屏的两个外部引脚以及引脚5都接地。接下来,将引脚2和倒数第二个引脚连接到5V。

下一步,使用以下映射连接这些引脚:

LCD 4 =》 Arduino 7

LCD 6 =》 Arduino 8

LCD 11 =》 Arduino 9

LCD 12 =》 Arduino 10

LCD 13 =》 Arduino 11

LCD 14 =》 Arduino 12

就是LCD显示器了!

步骤2:连接电位计

下一步使用基本电位器。电位器的中间引脚连接到LCD显示屏上的引脚3。电位器的左侧引脚为5V,而右侧引脚接地。

在此之后,又有一块硬件,然后我们继续进行代码操作。

第3步:添加按钮

现在已经连接了带有电位计的LCD显示屏,我们需要一个按钮来引起硬件中断。将Arduino上的引脚2连接到按钮的一侧,使另一侧的电路继续接地。在与地面相同的一侧,将另一个引脚连接到5V。

这完成了硬件设置。

步骤4:实现代码

我已经上载了用于该项目的代码,因此您可以根据需要为您的电路板或您要执行的操作对其进行修改。

关于在Arduino Uno上实现硬件中断的注意事项是您必须使用引脚2或3,因为这是唯一可用于中断的引脚。除此之外,如果需要,可以更改其他大多数引脚。

另一个警告是,为了使这种类型的设置正常工作,您需要使用millis()方法来实现延迟,因为它在后台工作,所以不同于delay()方法,该方法暂停CPU并实际上使用CPU周期,即使它看起来处于静止状态也是如此。 millis()使用Arduino的内置硬件计时器之一完成工作,因此它在后台运行,并且在主循环期间不会停止CPU。

下面是代码:

#include

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

const int buttonPin = 2; // Button pin

volatile bool buttonPressed = false; // Gauge if the button is pressed

int wait = 500; // ms to wait between messages

int messageWait = 3000; // ms to display an interrupt message

unsigned long current = 0; // Holds current timestamp

void setup()

{

Serial.begin(9600); // For debugging, remove if you want

pinMode( buttonPin, INPUT_PULLUP ); // Setup for hardware interrupt

// [interrupt, method used, when to call]

attachInterrupt( digitalPinToInterrupt( buttonPin ), showMessage, RISING );

lcd.begin(16, 2); // set up the LCD‘s number of columns and rows:

lcd.print(“Timer:”); // Print on the top line

current = millis(); // Set up the current time

} // setup

void loop()

{

if( buttonPressed )

{

delay( 3000 ); // Put this in the main loop to stop

// the message from being erased

buttonPressed = false; // After the delay, continue the loop

lcd.setCursor(0, 1); // Set the cursor to char 0 on line 1

lcd.print( “ ” ); // Clear the display

}

else if( millis() 》 current + wait )

{

// set the cursor to column 0, line 1

// (note: line 1 is the second row, since counting begins with 0):

lcd.setCursor(0, 1); // Set the cursor to char 0 on line 1

lcd.print( (String) ( millis() / (float) 1000 ) ); // Output sec passed

current = millis(); // Set current time

} // if.。.else if

} // loop

void showMessage()

{

String message = “Intrpt: ” + (String) millis();

lcd.setCursor(0, 1); // Set the cursor to char 0 on line 1

lcd.print( “Intrpt: ” + (String) ( millis() / (float) 1000 ) ); // Output interrupt

buttonPressed = true; // Indicate button was pressed.

// Handle the button press in

// the main loop.

Serial.println(“=================================”); // debug

Serial.println( message ); // debug

} // showMessage

现在您可以使用中断了,做点很酷的事情!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4426

    浏览量

    167510
  • 中断
    +关注

    关注

    5

    文章

    898

    浏览量

    41502
收藏 人收藏

    评论

    相关推荐

    【RA-Eco-RA4E2-64PIN-V1.0开发板试用】06、PWM输出实验+给LCD屏幕PWM调光

    0 前言 本次实验要实现使用瑞萨 R7FA4E2B93CFM 进行PWM输出,并对之前TFT-LCD屏幕实验中的屏幕进行亮度调节测试。 1 硬件部分 之前是TFT
    发表于 12-19 20:27

    tft屏幕属于lcd屏幕的一种吗

    TFT屏幕确实属于LCD(液晶显示器)屏幕的一种。LCD屏幕是一种广泛使用的显示技术,它通过液晶分子的排列变化来控制光线的通过,从而实现图像
    的头像 发表于 10-12 10:31 830次阅读

    苹果iPhone全面拥抱OLED屏幕,夏普与JDI出局

    苹果公司宣布了一项重大变革,自2025年起,其全系iPhone全面升级至OLED屏幕,这一决定标志着LCD屏幕时代的终结,也预示着智能手机显示技术的又一次飞跃。此次转型不仅覆盖了旗舰
    的头像 发表于 09-04 15:46 380次阅读

    如何在i2c中将hello world发送到LCD屏幕

    有谁知道如何在 i2c 中告诉这个以 hello world 发送到 LCD 屏幕?当我查找我的 4BIT 引脚时,我可以很好地做到这一点,但是当使用 i2c 时,我似乎在任何地方都找不到协议的任何细节,每个人都只想谈论天哪的
    发表于 07-11 06:10

    智能设备中的语音是如何写入语音芯片的

    语音写入语音芯片需经语音文件准备、格式转换、烧录过程、烧录方式选择和调试测试。虽非直接通过电脑写入,但电脑在其中扮演重要角色。
    的头像 发表于 07-10 11:45 685次阅读

    TC367_5V_TFT LCD屏幕显示不全怎么解决?

    好好, LCD 屏幕显示不全,只显示最下面菜单行,断点调试发现,在执行 while (IfxQspi_SpiMaster_getStatus
    发表于 07-04 07:53

    PSOC6闪存写入会禁用中断数毫秒 ,为什么?

    我们使用的是 PSOC63。 我们观察到,在向闪存写入数据时,即使在非阻塞模式下,所有中断也会被禁用几毫秒! 在调查闪存驱动程序的源代码后,我们发现在阻塞模式和非阻塞模式下都会出现这种情况
    发表于 07-04 07:22

    在STM32F429使用内部TFT控制器进行LCD显示,是否可以存在锁住屏幕的操作?

    在STM32F429使用内部TFT控制器进行LCD显示,是否可以存在锁住屏幕 的操作。即不读SDRAM,LCD显示的内容可以不变。 有这种控制吗?
    发表于 05-17 08:08

    LCD液晶显示屏的分类 lcd屏幕和led屏幕区别

    LCD屏幕的构造大致有:背光层——第一道偏光片——TFT薄膜基板——液晶层——TFT薄膜基板——C/F玻璃(彩色滤光片)——第二道偏光片。
    的头像 发表于 04-01 16:44 5022次阅读
    <b class='flag-5'>LCD</b>液晶显示屏的分类 <b class='flag-5'>lcd</b><b class='flag-5'>屏幕</b>和led<b class='flag-5'>屏幕</b>区别

    STM32F030F4使用HAL_SPI_Transmit发送函数,执行到数据写入DR时就进硬件错误中断怎么解决?

    使用的HAL_SPI_Transmit发送函数,发现执行到数据写入DR时就进硬件错误中断了 stm32f03xx_hal_spi.c中,,执行到下面就硬件错误了. 使用IO模拟是没有问题的,整的我一时摸不着头脑了,网上找了一圈也没有具体方法,请教下大家怎么搞.
    发表于 03-28 07:11

    用STM32L4R9驱动480*800的LCD屏幕,结果屏幕刷新看起来是逐行进行,刷新速度较慢,是否正常?

    请问一下,用STM32L4R9驱动480*800的LCD屏幕(采用一个数据通道),结果屏幕刷新看起来是逐行进行,刷新速度较慢,是否正常,如果有问题可能会是哪里?例程和资料都可以看出整屏同时刷新才对。谢谢
    发表于 03-22 07:04

    告别LCD,新款iPhone SE搭载OLED屏幕

    电子发烧友网报道(文/吴子鹏)日前,有多家媒体报道称,苹果可能会在2025年推出新款iPhone SE系列,配备OLED显示屏。当前款式的iPhone SE则是目前唯一使用LCD屏幕的iPhone
    的头像 发表于 02-21 00:18 3126次阅读

    lcd屏和oled屏的优缺点 lcd屏和oled屏的区别

    LCD(Liquid Crystal Display,液晶显示器)和OLED(Organic Light Emitting Diode,有机发光二极管)屏幕是目前最为常见的显示技术,它们在电视、手机
    的头像 发表于 02-20 11:14 6160次阅读

    lcd和led屏幕的区别哪个好

    LCD和LED屏幕是目前市场上最常见的两种显示技术,它们在原理、亮度、色彩、能耗等方面都有一定的区别。在这篇文章中将详细讨论这两种屏幕的差异。 首先,我们来了解一下LCD和LED
    的头像 发表于 01-19 10:04 9163次阅读

    单片机芯片怎么写入程序

    单片机芯片的程序写入是通过程序代码写入单片机芯片的非易失性存储器(如Flash)中实现的。 在计算机科学和电子工程领域,单片机是一种集成电路,它集成了处理器核心、内存、输入/输出接口等组件。为了使
    的头像 发表于 01-05 14:06 8348次阅读