找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5754|回复: 7
打印 上一主题 下一主题
收起左侧

T6963C控制的PG12864仿真程序,显示中英文加汉字

  [复制链接]
跳转到指定楼层
楼主
收了几块T6963C控制的点阵液晶屏,研究了两天,终于弄了点小眉目,现在将程序及仿真放上来,供参考



单片机源程序如下:

  1. #include<stdio.h> //NULL 的引用
  2. #include<intrins.h>
  3. #include<ABSACC.H> //XBYTE[]的引用

  4. #define uchar unsigned char
  5. #define uint unsigned int
  6.        
  7. #define lcmcom XBYTE[0x3fff] /*T6963C 写命令口地址,读数据口地址*/
  8. #define lcmdata XBYTE[0x3eff] /*T6963C 写数据口地址*/

  9. uchar code table[]=
  10. {
  11. /*---转换字符 *姓名*/
  12. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  13. 0x00,0x00,0x00,0x00,0x00,0xC6,0x6C,0x38,0x38,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00,         // -x-
  14. /*---转换字符 * 姓名*/
  15. 0x00,0x00,0x00,0x00,0x00,0xFE,0xCC,0x18,0x30,0x60,0xC6,0xFE,0x00,0x00,0x00,0x00,          // -z-
  16. 0x00,0x00,0x38,0x6C,0x64,0x60,0xF0,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,0x00,0x00,         // -f-
  17. /*---转换字符 制 ---*/
  18. 0x04,0x24,0x25,0x3F,0x24,0x44,0xFF,0x04,0x3F,0x24,0x24,0x24,0x26,0x25,0x04,0x04,
  19. 0x04,0x04,0x04,0xA4,0x24,0xA4,0xE4,0x24,0xA4,0xA4,0xA4,0x84,0x84,0x04,0x14,0x08,
  20. /*---转换字符 作 ---*/
  21. 0x09,0x09,0x09,0x11,0x12,0x32,0x54,0x98,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
  22. 0x00,0x00,0x04,0xFE,0x80,0x80,0x90,0xF8,0x80,0x80,0x88,0xFC,0x80,0x80,0x80,0x80
  23. };


  24. void busy_lcm(uchar flag)
  25. {
  26.         uchar i;
  27.         i=flag;
  28.         while(i==lcmcom&flag);
  29. }

  30. void write_lcm(uchar count,uchar com,uchar data1,uchar data2)
  31. {
  32.         switch(count)
  33.         {
  34.                 case 1: busy_lcm(0x3); lcmcom=com;
  35.                 break;
  36.                 case 2: busy_lcm(0x3); lcmdata=data1; busy_lcm(0x3); lcmcom=com;
  37.                 break;
  38.                 case 3: busy_lcm(0x3); lcmdata=data1; busy_lcm(0x3); lcmdata=data2; busy_lcm(0x3);
  39.                 lcmcom=com;
  40.                 break;
  41.                 default:break;
  42.         }
  43. }


  44. void clear_lcm()
  45. {
  46.         uint i;
  47.         write_lcm(3,0x24,0x00,0x00); /*设置显示RAM 首地址*/
  48.         write_lcm(1,0xb0,NULL,NULL); /*设置自动写方式*/
  49.         for (i=0;i<3840;i++)                         /*最大显示点阵为:240*128/8=3840;128×64/8=1024*/
  50.         {
  51.                 busy_lcm(0x0c);
  52.                 lcmdata=0x0;         /*写00H 清屏*/
  53.         }                           
  54.         busy_lcm(0x0c);
  55.         lcmcom=0xb2; /*设置自动写结束*/
  56. }
  57. void init_lcm()
  58. {
  59.         write_lcm(1,0xa1,NULL,NULL); //设置光标形状为8(列)×1(行)               
  60.         write_lcm(3,0x21,0x00,0x00); //设置光标指针
  61.         write_lcm(3,0x40,0x00,0x00); //设置文本显示区域首址
  62.         write_lcm(3,0x41,0x01,0x00); // 设置文本区宽度
  63.         write_lcm(3,0x42,32,0x00); //设置图形显示区域首址为32
  64.         write_lcm(3,0x24,32,0x00);  // 设置地址指针位置为32
  65.         write_lcm(3,0x43,30,0x0); //设置图形显示区域宽度为30 字节
  66.         write_lcm(1,0x80,NULL,NULL); //设置显示为逻辑“或”方式
  67.         write_lcm(1,0x9c,NULL,NULL); //设置显示开关,图形/文本显示均开启
  68. }


  69. /********************************************************************
  70.                                         显示一个汉字
  71. *********************************************************************/
  72. void display_1c(uchar caddr,uchar x,uchar y)                         //控制汉字
  73. {
  74.         uchar i,j,*p;uint w;
  75.         p=table+caddr*32;
  76.         x=x<<1;                                  //可灵活调节循环左移
  77.         for(i=0;i<=1;i++)
  78.         {
  79.                 x=x+i;
  80.                 for(j=0;j<16;j++)
  81.                 {
  82.                         w=y*16*30+x+32+j*30;
  83.                         write_lcm(3,        0x24,        w%256,        w>>8);
  84.                         write_lcm(2,        0xc2,        *p,                NULL);
  85.                         p++;
  86.                 }
  87.         }
  88. }
复制代码

所有资料51hei提供下载:

T6963C控制的PG12864,显示中英文加汉字.rar (69.96 KB, 下载次数: 140)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:526030 发表于 2019-5-2 16:53 | 只看该作者
多谢分享 小白被这T6963C搞死了快哈哈
回复

使用道具 举报

板凳
ID:60026 发表于 2019-6-27 16:55 | 只看该作者
正折腾呢!谢谢!
回复

使用道具 举报

地板
ID:507540 发表于 2019-7-29 10:45 | 只看该作者
不错,下来学习下
回复

使用道具 举报

5#
ID:387410 发表于 2019-9-28 13:04 来自手机 | 只看该作者
不错~看一下~顶上去
回复

使用道具 举报

6#
ID:710016 发表于 2020-3-17 11:55 | 只看该作者
新手来学习一下
回复

使用道具 举报

7#
ID:795427 发表于 2022-6-23 13:55 | 只看该作者
谢谢分享,可以驱动显示,不过启动后要等待10多秒后才能刷出画面来。
回复

使用道具 举报

8#
ID:543845 发表于 2022-7-2 18:34 | 只看该作者
为什么启动这么慢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表