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

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

3天内不再提示

如何将16×2 LCD显示屏连接到PIC18F4550单片机?

科技观察员 来源:英锐恩 作者:英锐恩 2023-07-06 11:39 次阅读

在本案例中,本文将介绍如何将16×2 LCD显示屏连接到PIC18F系列的PIC18F4550单片机

PIC18F4550的特点:

(1)PIC18F4550属于PIC18F系列;PIC18F4550是一款8位单片机,采用RISC架构。PIC18F4550有40个PDIP(双列直插式封装)引脚和44个TQFP(四方扁平封装)引脚。

(2)PIC18F4550中嵌入了32KB闪存、2048字节的SRAM(同步随机存取存储器)、256字节的EEPROM(电可擦除程序只读存储器)。

(3)它有35个I/O引脚,用于与其他外围设备接口通信,13通道10位模数转换器,用于连接和通信模拟外围设备(直流电机、LDR等)。

(4)它有2个CCP和1个ECCP模块,是增强型捕获和比较模块,主要用于调制和波形生成功能。CCP模块是16位寄存器,作为16位捕捉位寄存器、16位比较位寄存器、PWM和占空比寄存器。

(5)PIC18F4550具有SPI(串行外设接口)和i2c(内部集成电路)用于主从模式。它具有用于USB流传输的SPP(流并行端口)。

(6)PIC18F4550内嵌了4个定时器模块(timer0到timer3)、2个比较器模块和3个外部中断。它具有双振荡器选项,允许单片机和USB模块以不同的时钟速度运行。它可以在2.0V至5.5V下工作。

16X2 LCD接口PIC单片机电路图:

Circuit-Diagram-of-16X2-LCD-Interfacing-PIC-Microcontroller.png

16X2 LCD接口PIC单片机-电路说明:

电阻器R1用于为LCD提供对比度。12MHz的晶振连接到Pic单片机PIC18F4550的OSC1和OSC2引脚作为系统时钟。电容C2和C3将作为晶体振荡器的滤波器。您可以使用不同的端口或引脚来连接LCD,然后再转到不同的端口,请检查数据手册中的引脚是通用引脚还是特殊功能引脚。

将16X2 LCD连接到PIC:

将LCD连接到PIC与连接到8051没有什么不同。只有用于接口的引脚、寄存器和架构会有所不同。当我们查看程序时,初始化、向LCD发送数据等功能几乎相同。

在用于初始化LCD的pic编程中,R/W引脚应为低电平以写入数据,启用引脚应为高电平,寄存器选择引脚(RS)应为高电平以写入数据。要发送命令,RS应为低电平,R/W引脚应为低电平,使能引脚应为高电平。

初始化LCD功能:

lcdcmd(0x38);//配置LCD为8位模式,2行5×7字体

lcdcmd(0x0C);//显示开启和关闭光标

lcdcmd(0x01);//清除显示屏幕

lcdcmd(0x06);//增加光标

lcdcmd(0x80);//设置光标位置为第一行第一列

向LC发送命令:

rs=0;寄存器选择引脚为低电平。

rw=0;读/写引脚也用于向LCD写入命令。

en=1;使能引脚为高电平。

向LCD发送数据:

rs=1;寄存器选择引脚为高电平。

rw=0;读/写引脚也用于向LCD写入命令。

en=1;使能引脚为高电平。

编程步骤:

在您的系统中安装MPLAB并创建一个新项目,在选择设备和系列时选择PIC18F系列并将PIC18F4550控制器添加到您的项目中。

选择您已安装的编译器并将文件添加到您的项目中。添加文件后粘贴下面给出的代码并运行它。因为它是一个预编译和测试过的程序,所以你不会发现任何错误。

在没有错误的情况下编译程序后,使用PICKIT2或PICKIT3编程器/调试器将程序转储到您的开发板上。

如果您不使用PICKIT,则只需编译代码并使HEX文件使用此HEX文件对PIC单片机进行编程。

LCD与PIC18F4550接口程序:

#define rs LATA.F0

#define rw LATA.F1

#define en LATA.F2

//LCD 数据引脚

#define lcdport LATB

void lcd_init();

void lcdcmd(unsigned char);

void lcddata(unsigned char);

unsigned char data[20]=”hello world”;

unsigned int i=0;

void main(void)

{

TRISA=0; // 将端口 A 配置为输出端口

LATA=0;

TRISB=0; // 配置端口 B 为输出端口

LATB=0;

lcd_init(); // LCD 初始化

while(data[i]!=’\\0′)

{

lcddata(data[i]); // 调用lcddata函数

i++;

Delay_ms(300);

}

}

void lcd_init()

{

lcdcmd(0x38);

lcdcmd (0x0C);

lcdcmd(0x01);

lcdcmd(0x06);

lcdcmd(0x80);

}

void lcdcmd(unsigned char cmdout)

{

lcdport=cmdout;

rs=0;

rw=0;

en=1;

Delay_ms(10);

en=0;

}

void lcddata(unsigned char dataout)

{

lcdport=dataout;

rs=1;

rw=0;

en=1;

Delay_ms(10);

en=0;

}

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

    关注

    6001

    文章

    43973

    浏览量

    620836
  • LCD显示屏
    +关注

    关注

    0

    文章

    88

    浏览量

    13048
  • PIC18F4550
    +关注

    关注

    0

    文章

    5

    浏览量

    6391
收藏 人收藏

    评论

    相关推荐

    PIC18F4550/PIC18F2455/PIC18F2550/PIC18F4455中文资料 谁有下载啊

    PIC18F4550/PIC18F2455/PIC18F2550/PIC18F4455 中文资料 谁有下载啊 ,帮忙共享一下啊[此贴子已经被admin于2008-7-15 13:43:
    发表于 06-05 09:34

    PIC18F4550开发USB,C语言

    PIC18F4550开发USB,C语言例程
    发表于 07-15 09:16

    PIC18F4550有保留记忆吗

    memory in the PIC18F4550? I want to hold the value after power turned off and on for awhile. Thanks and RegardsSunil
    发表于 08-24 15:58

    PIC18F4550异常处理程序怎么添加

    来自于百度翻译 以下为原文 Hi, I am using PIC18F4550 controller in my application.I want to add exception handling
    发表于 12-21 15:39

    可以使用PIC18F4550流式传输音乐?

    嗨,PIC18F45 50USB可以用于流音乐/音频耳机或从电脑接收音乐吗? 以上来自于百度翻译 以下为原文 hi, can PIC18F4550 USB be used
    发表于 03-28 13:26

    哪里可以找到PIC18F4550的I2C库?

    some questions about I2C library's.Where can I find a library for I2C for my PIC18F4550?Or where can I
    发表于 04-29 13:23

    请问pic18F4550 USB接口示例吗?

    你好,我正在试着了解如何用PIC18F4550制作u***接口,但是互联网上的信息还不够。我发现了一些网站,上面解释了关于PIC连接模式的一般信息,但是关于编程方面的信息不多。事先谢谢您,如果有人给我举个例子。从这个问题开始。
    发表于 10-17 10:49

    LM35与PIC18F4550的接口无法得到正确的值该怎么办?

    请帮帮我。无法在LCD上得到正确的值。我正在连接LM35温度传感器和PIC18F4550,频率为20Mhz。我尝试了很多。但是,没有得到正确的输出。下面是我的代码:
    发表于 11-01 09:43

    PIC18F4550作为SPI从器件

    嗨,我有两个控制器PIC18F4550。它们通过SPI相互通信。我必须为主程序和从程序编写代码。我已经成功地编写过几次SPI主程序代码。现在我必须使用SPI从程序。当SPI从程序代码准备好时,我如何测试它?有个人电脑应用吗?问候,Akshay。
    发表于 03-12 10:11

    PIC18F4550振荡器Proteus错误

    和用于LED闪烁的项目:https://goo.gl/nPKKj2我写这个主题有两个原因:-为了分享发现的问题。-问你是否知道与PIC18F4550外部振荡器相关的Proteus问题,以及你是否可以再次检查并确认/反驳我的发现。
    发表于 04-10 07:51

    如何使用PIC18F4550的USB组件和PC作为设备来制作数字示波器

    你好!我是一名微程序员,我使用PIC18F4550的USB组件和PC作为设备来制作数字示波器。问题是当我把采样率提高到接近1m s时,有些样品会丢失。我需要了解PIC18f4550的USB组件
    发表于 04-28 14:11

    求一种带全速USB接口的单片机PIC18F4550的应用设计方法

    本文以光栅位移传感器检测系统的设计为背景,详细介绍了带全速USB接口的单片机PIC18F4550的应用设计方法。
    发表于 04-26 06:52

    PIC18F4550的资料分享

    描述PIC18F4550的PCB服务,方便学习单片机的此板,包含LED,显示器,传感器,LCD学习如何使用单片机的数字模拟输入输出和PWM。
    发表于 07-06 07:35

    Pinguino PIC18F4550的资料分享

    描述Pinguino PIC18F4550主要特征:开源可编程的中值 el Pinguino IDEUsa el mismo lenguaje de programación del
    发表于 08-25 06:58

    基于单片机PIC18F4550的基本开发板

    电子发烧友网站提供《基于单片机PIC18F4550的基本开发板.zip》资料免费下载
    发表于 07-08 09:31 5次下载
    基于<b class='flag-5'>单片机</b><b class='flag-5'>PIC18F4550</b>的基本开发板