电子说
上个月,我回顾了Amicus18开发板,它是具有PIC微控制器的Arduino风格的平台。 Amicus18板与Arduino屏蔽板物理兼容。但是,板上的默认PIC处理器为3.3 V类型,在连接一些严格在+ 5V电压下运行的屏蔽时可能会出现问题。作为对Amicus18开发板用户的支持,来自荷兰的Gevo Electronics设计了一种特殊的防护罩,名为 AmiPIC18 LCD 。虽然名称说它是LCD屏蔽,但实际上它提供了许多功能,我们将在本文中进行探讨。
Gevo的AmiPIC18 LCD屏蔽电子产品
下图显示了AmiPIC18 LCD防护罩。除LCD显示屏外,该防护罩还提供了四个轻触开关,一个温度开关。传感器(TC74),串行EEPROM(24LC256)和带有备用电池(CR1220)支架的实时时钟IC(DS1307Z),使其成为在Amicus18板上进行实验的理想选择。利用板上提供的所有这些功能,您可以轻松地将此屏蔽层变成温度数据记录器项目。
AmiPIC18 LCD屏蔽PCB
屏蔽层共有24个母头插针,用于接收LCD显示屏。您可能想知道为什么它有这么多用于LCD连接的引脚。这是因为用于此屏蔽的LCD显示器是Electronic Assembly DOG系列LCD模块中的一种,该模块使用ST7036控制器/驱动器芯片。这是我对此盾牌最喜欢的功能之一。 ST7036的指令集与HD44780兼容。此外,它还提供了基于HD44780的LCD所没有的许多其他功能。例如,可以将其配置为通过与微控制器的串行(SPI)接口驱动点矩阵LCD。同样,ST7036驱动程序提供LCD命令以调整显示对比度。这不是很酷的功能吗?有关ST7036显示驱动器的更多详细信息,请参见数据表。
带有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屏蔽已插入进入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增强显示对比度。显示质量真的很棒。
从TC74传感器读取的温度(全对比度)
通过固件进行LCD对比度调整
责任编辑:wv
全部0条评论
快来发表一下你的评论吧 !