素地址并写像素,相关的组件函数为:
(1)Display_LCM12864_Component_Initialize:初始化
(2)Display_LCM12864_Component_Read_Busy_Flag_Memory_Address:返回忙标志
(3)Display_LCM12864_Component_Control_Display_On_Off:打开显示
(4)Display_LCM12864_Component_Set_Function:选择指令集
(5)Display_LCM12864_Component_Set_Display_Data_Memory_Address:设置地址
(6)Display_LCM12864_Component_Write_Memory_Data:写数据
(7)Display_LCM12864_Component_Clear_Display:清除显示
(8)Display_LCM12864_Component_Set_Extended_Function:设置图形模式
(9)Display_LCM12864_Component_Set_Graphic_Memory_Vertical_Address:设置垂 直地址
(10)Display_LCM12864_Component_Set_Graphic_Memory_Horizontal_Address:设置 水平地址
组件 Display_LCM12864_Component.c 依赖 Display_LCM12864_Library.c,这个库完成 实际操作,为组件提供硬件抽象层接口。
2.4.4 实验效果
(1)构建应用,注意 Build Output 窗口中的信息,代码长度超出单片机 ROM 容量限制。
(2)在工程管理中删除 STC_STC89C52RC_GPIO_Library.c,实验中不需要 GPIO 库。
(3)在工程列表的 Context 组中,双击打开 STC_STC89C52RC_Context.c,定位到第 201 行。
(4)Handle_UART_Interrupt_Context 函数用于处理 UART 中断环境,实验中不需要使用 UART,所以将这个函数的实现转为注释态,这样可以降低代码大小。
(5)重新构建应用,注意 Build Output 窗口中的信息,没有错误和警告。
(6)关闭开发板电源开关,插上 LCM12864 液晶模块,确认跳线 JP2 处于连接状态,JP1 和 JP3 处于断开状态。
(7)在 STC-ISP 中打开 Nebula_Discover8051_V1.hex,点击“下载/编程”按钮。
(8)打开开发板电源开关,STC-ISP 显示检测信息并开始烧写单片机 ROM。
(9)烧写完毕,单片机自动开始运行。
(10)LCM12864 液晶模块开始循环显示信息,首先进入字符模式并显示汉字,随后进入图 形模式并写像素。
(11)将初始化函数的参数设置为 0,表示使用串行模式,重复上述过程,检查运行效果。
清理工程输出文件,删除添加的三个文件,恢复 STC_STC89C52RC_GPIO_Library.c,将 STC_STC89C52RC_Context.c 中修改的内容恢复原状,在主应用中将第 223 行恢复原状,为 后续实验做好准备.