AmiPIC18 LCD防护罩的介绍

电子说

1.3w人已加入

描述

上个月,我回顾了Amicus18开发板,它是具有PIC微控制器的Arduino风格的平台。 Amicus18板与Arduino屏蔽板物理兼容。但是,板上的默认PIC处理器为3.3 V类型,在连接一些严格在+ 5V电压下运行的屏蔽时可能会出现问题。作为对Amicus18开发板用户的支持,来自荷兰的Gevo Electronics设计了一种特殊的防护罩,名为 AmiPIC18 LCD 。虽然名称说它是LCD屏蔽,但实际上它提供了许多功能,我们将在本文中进行探讨。

lcd

Gevo的AmiPIC18 LCD屏蔽电子产品

下图显示了AmiPIC18 LCD防护罩。除LCD显示屏外,该防护罩还提供了四个轻触开关,一个温度开关。传感器(TC74),串行EEPROM(24LC256)和带有备用电池(CR1220)支架的实时时钟IC(DS1307Z),使其成为在Amicus18板上进行实验的理想选择。利用板上提供的所有这些功能,您可以轻松地将此屏蔽层变成温度数据记录器项目。

lcd

AmiPIC18 LCD屏蔽PCB

屏蔽层共有24个母头插针,用于接收LCD显示屏。您可能想知道为什么它有这么多用于LCD连接的引脚。这是因为用于此屏蔽的LCD显示器是Electronic Assembly DOG系列LCD模块中的一种,该模块使用ST7036控制器/驱动器芯片。这是我对此盾牌最喜欢的功能之一。 ST7036的指令集与HD44780兼容。此外,它还提供了基于HD44780的LCD所没有的许多其他功能。例如,可以将其配置为通过与微控制器的串行(SPI)接口驱动点矩阵LCD。同样,ST7036驱动程序提供LCD命令以调整显示对比度。这不是很酷的功能吗?有关ST7036显示驱动器的更多详细信息,请参见数据表。

lcd

带有16x2字符LCD的AmiPIC18 LCD防护板

板上的连接

下图显示了堆叠在Amicus18板上的AmiPIC18 LCD屏蔽层。屏蔽层上的LCD引脚经过硬接线,以4位模式工作。数据引脚(D4-D7)连接到RB4-RB7端口引脚,而控制信号RS(寄存器选择)和E(使能)分别由PIC18F25k20微控制器的RB2和RB3引脚驱动。屏蔽板上的TC74、24LC256和DS1307Z器件均兼容I2C,并连接到I2C端口引脚RC3(SCL)和RC4(SDA)。四个轻触开关转到PORTA引脚(RA0-RA3)。 RB1引脚用于控制LCD背光。 RB1的逻辑高电平打开背光,逻辑低电平将其关闭。可以通过在RB1端口引脚上生成PWM(脉冲宽度调制)信号来改变背光强度。

lcd

LCD屏蔽已插入进入Amicus18开发板

如果您在Amicus18板上使用5.0 V器件(PIC18F25K22),则仍可以使用此LCD屏蔽,因为它还提供了板上跳线(JP1 ),以选择3.3 V和5.0 V之间的电源。

软件

在这里,我已经在 Proton BASIC中编写了一些演示程序 strong》测试ST7036显示驱动器的LCD对比度设置命令。程序从TC74传感器读取环境温度并将其显示在LCD上。连接到RA0和RA1引脚的两个轻触开关将允许您增加或减小LCD显示屏的对比度。

‘ Program for testing LCD contrast adjustment through firmware

’ using AmiPIC18 LCD Shield

Contrast var Byte

ContrastSet var Byte

Symbol Backlight = PORTB.1 ‘ Backlight ON/OFF switch

Symbol Sw_1 = PORTA.0 ’ DOWN contrast

Symbol Sw_2 = PORTA.1 ‘ UP Contrast

Symbol SDA = PORTC.4 ’ I2C Data line

Symbol SCL = PORTC.3 ‘ I2C Clk line

Symbol TC74_Address = %10011000 ’ Address for TC74A4

Dim Temperature As Byte

LCD_DTPin = PORTB.4 ‘ LCD’s Data lines (D4 to D7)

LCD_ENPin = PORTB.3 ‘ LCD’s EN line

LCD_RSPin = PORTB.2 ‘ LCD’s RS line

LCD_Interface = 4 ‘ 4-bit interface to LCD

LCD_Lines = 2 ’ LCD contains 2 lines

LCD_Type = Alphanumeric ‘ LCD type is alphanumeric

DelayMS 500

’ ST7036 controller has slightly different initialization

Print $FE, $29 ‘ 4-bit mode,

Print $FE, $14 ’ Bias set

Print $FE, $55 ‘ Power/ICON/Control

Print $FE, $6D ’ Follower Control

Print $FE, $78 ‘ Contrast set : C3,C2,C1,C0 bits of contrast

Contrast = 5

ContrastSet = $70 + Contrast

Print $FE, ContrastSet

High Backlight

Cls ’ Clear the LCD‘s screen

Print At 1, 1, “Ami18 LCD Shield”

Start:

I2cIn SDA, SCL, TC74_Address, [Temperature]

Print At 2, 1, “T = ”, Dec Temperature,“ ”, %11011111, “C”

If Sw_1 = 0 Then

If Contrast 》 0 Then Contrast = Contrast - 1;

ContrastSet = $70 + Contrast

Print $FE, ContrastSet

EndIf

If Sw_2 = 0 Then

If Contrast 《 10 Then Contrast = Contrast + 1;

ContrastSet = $70 + Contrast

Print $FE, ContrastSet

EndIf

DelayMS 300

GoTo Start

编译以上程序,并使用Amicus18将其加载到Amicus18 MCU中IDE。重置后,您将在屏幕上看到温度读数,如下所示。按S1减小,按S2增强显示对比度。显示质量真的很棒。

lcd

从TC74传感器读取的温度(全对比度)

lcd

通过固件进行LCD对比度调整

责任编辑:wv

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分