标题: 51单片机仿真lcd12864显示 [打印本页]

作者: Arch123    时间: 2018-3-25 16:32
标题: 51单片机仿真lcd12864显示


单片机源程序如下:
  1. #include "lcd12864.h"

  2. /* LCD写指令函数 */
  3. void LCD_Write_Com(unsigned char Com)
  4. {
  5.         LCD_E  = 0;
  6.         LCD_RW = 0;
  7.         LCD_RS = 0;
  8.         LCD_E  = 1;
  9.         DB     = Com;
  10.         LCD_E  = 0;
  11. }

  12. /* LCD写数据函数 */
  13. void LCD_Write_Data(unsigned char Data)
  14. {
  15.         LCD_E  = 0;
  16.         LCD_RW = 0;
  17.         LCD_RS = 1;
  18.         LCD_E  = 1;
  19.         DB     = Data;
  20.         LCD_E  = 0;
  21. }

  22. /* LCD写数据函数 */
  23. void LCD_Clear(void)
  24. {
  25.         unsigned char i,j;
  26.        
  27.         /* 选择需要操作的半屏 */
  28.         LCD_CS1 = 0;
  29.         LCD_CS2 = 0;
  30.        
  31.         /* 设置LCD屏幕地址 */
  32.         LCD_Write_Com(First_Line);
  33.         LCD_Write_Com(First_Col);
  34.        
  35.         for(i = 0; i < 8; i++)     //LCD12864一共有8页
  36.         {
  37.                 LCD_Write_Com(First_Page + i); //控制页地址递增
  38.                 for(j = 0;j < 64; j++)
  39.                 {
  40.                         LCD_Write_Data(0x00);    //写入数据刷白屏幕
  41.                 }
  42.         }
  43. }

  44. /* LCD初始化函数 */
  45. void LCD_Init(void)
  46. {
  47.         LCD_Write_Com(Disp_On);     //开启液晶屏显示
  48.         LCD_Clear();
  49. }

  50. /* 16*16大小的中文显示函数
  51. Page:在那一页
  52. Col: 在那一列
  53. *DZK:需要显示什么
  54. Num: 需要显示字模数组中的第几个汉字
  55. */
  56. void LCD_Chinses_Disp(unsigned char Page, unsigned char Col, unsigned char *DZK, unsigned char Num)
  57. {
  58.         unsigned char i,j;
  59.        
  60.         Col = Col * 16;
  61.         Num = Num * 32;
  62.        
  63.         LCD_Write_Com(First_Page + Page);
  64.         LCD_Write_Com(First_Col + Col);
  65.        
  66.         for(i = 0; i < 2; i++)
  67.         {
  68.                 LCD_Write_Com(First_Page + Page + i);
  69.                 LCD_Write_Com(First_Col + Col);
  70.                 for(j = 0; j < 16; j++)
  71.                 {
  72.                         LCD_Write_Data( DZK[16 * i + j + Num] );
  73.                 }
  74.         }
  75. }

复制代码

所有资料51hei提供下载:
hello.rar (46.41 KB, 下载次数: 37)



作者: diedie    时间: 2018-3-29 19:35
慢慢学习
作者: haiming8685    时间: 2018-9-28 21:37
刚下载看看怎么样,慢慢学习争取能弄明白,谢谢!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1