实例12中,我用OOP编写了 LCD1602 驱动,测试时发现不能正确显示,研究很久也没有解决,另外发现OOP代码比非OOP代码长了400多字节,在单片机中有点多了,还是用回非OOP吧。电路图同上例,代码如下:
// TestLCD1602NotOOP
{
// 51单片机 pascal 语言 示例
// LCD1602 写字符
// 使用 Turbo51 编译器
}
Program TestLCD1602NotOOP;
uses
LCD1602NotOOP;
begin
LCD1602_Init;
LCD1602_Clear;
LCD1602_Print1(2,'Hello First') ;
LCD1602_Print2(3,'Good Two');
end.
// LCD1602PortDef.inc
var
LCD1602_RS: boolean absolute P0.4 ;
LCD1602_RW: boolean absolute P0.3 ;
LCD1602_EN: boolean absolute p0.2 ;
LCD1602_Data:Byte absolute P2 ;
// LCD1602NotOOP.PAS
{
// 51单片机 pascal 语言 示例
// LCD1602 写字符
// 使用 Turbo51 编译器
}
Unit LCD1602NotOOP;
interface
type
STR16=String[16];
LCD1602_X=0..15 ;
procedure LCD1602_Init;
procedure LCD1602_Clear;
// 在第1行输出
procedure LCD1602_Print1(X:LCD1602_X;AStr:STR16