数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1830|回复: 26

[C51] 老王家液晶屏点亮记2:FPC印字YF1512832CS6;主控UC1701e;128X32

[复制链接]
发表于 2025-9-24 15:31:23 | 显示全部楼层 |阅读模式
本帖最后由 zj97czb 于 2025-9-24 15:41 编辑

这个屏,能玩转的不多,评论区说主控是UC1701e。这个 UC1701e就是一个定制货,和UC1701C、UC1701x 的指令不一样,也就和常用的ST7567不一样。


常用芯片初始化中,写的都是命令,但UC1701e,命令后面带的是数据。还好是通用的SPI通信




初始化,注意有两条是数据
  1. void lcd12864_uc1701e_init(void)//
  2. {
  3.         write_cmd(0xe2);//软复位
  4.         delay_nms(15);
  5.         write_cmd(0x24);//温度补偿P11
  6.         write_cmd(0x2d);// 升压控制P12
  7.         write_cmd(0xa6);// LCD屏设置(行、列方向和时钟频率)P12
  8.         write_cmd(0xea);//regulation ratio=5.0屏工作电压(升压电压)P13
  9.         
  10.         write_cmd(0x81);//设置对比度P12
  11.         write_dat(70);//对比度0-127
  12.         
  13.         write_cmd(0xc9);//开关机P12
  14.         write_dat(0xaf);//开机
  15. }
复制代码


由于屏只接了奇数行,我用的是硬件SPI,所以要 驱动它就要按64行来写,字库可以与ST7657通用,上贴中的取模软件的取模方式为://垂直扫描,从左到右,从上到下,低位在前

  1. unsigned char xdata uc1701e_ziti32x16[64];
  2. unsigned char xdata uc1701e_ziti32x08[32];
复制代码
将16个字模数据转换成32个
  1. void uc1701e_16to32(unsigned char weihao)//将16个数据转换成32个
  2. {
  3.         unsigned char        i,j,temp;
  4.         unsigned int temp1;
  5.         for(i=0;i<16;i++)
  6.         {
  7.                 temp=uc1701e_ziti1608[weihao][i];
  8.                 for(j=0;j<8;j++)
  9.                 {
  10.                         temp1>>=2;        //
  11.                          if(temp&0x01)
  12.                                 {
  13.                                         temp1+=0x4000;//
  14.                                 }
  15.                                 temp>>=1;
  16.                 }
  17.                 if(i<8)
  18.                 {
  19.                         uc1701e_ziti32x08[i]=temp1%256;
  20.                         uc1701e_ziti32x08[i+8]=temp1/256;
  21.                 }
  22.                 else
  23.                 {
  24.                         uc1701e_ziti32x08[i+8]=temp1%256;
  25.                         uc1701e_ziti32x08[i+16]=temp1/256;
  26.                 }
  27.                
  28.          }
  29. }        

复制代码


写一个字符
  1. void        disp_uc1701e_hanzi16x8(unsigned char lie,unsigned char hang,unsigned char weihao)   //写字符
  2. {
  3.         unsigned char        i,j;
  4.         
  5.         uc1701e_16to32(weihao);
  6.         for(i=0;i<4;i++)
  7.         {
  8.           write_cmd(0xb0+hang+i);//行地址
  9.           write_cmd(0x04);//设置列地址
  10.                 write_dat(lie);//列地址数据
  11.                 write_cmd(0x01);//写数据
  12.                 for(j=0;j<8;j++)
  13.          {
  14.                  write_dat(uc1701e_ziti32x08[i*8+j]);
  15.           }
  16.         }
  17. }
复制代码


将32个字模数据转换成64个
  1. void uc1701e_32to64(unsigned char weihao)//将32个数据转换成64个
  2. {
  3.         unsigned char        i,j,temp;
  4.         unsigned int temp1;
  5.         for(i=0;i<32;i++)
  6.         {
  7.                 temp=uc1701e_ziti1616[weihao][i];
  8.                 for(j=0;j<8;j++)
  9.                 {
  10.                         temp1>>=2;        //
  11.                          if(temp&0x01)
  12.                                 {
  13.                                         temp1+=0x4000;//
  14.                                 }
  15.                                 temp>>=1;
  16.                 }
  17.                 if(i<16)
  18.                 {
  19.                         uc1701e_ziti32x16[i]=temp1%256;
  20.                         uc1701e_ziti32x16[i+16]=temp1/256;
  21.                 }
  22.                 else
  23.                 {
  24.                         uc1701e_ziti32x16[i+16]=temp1%256;
  25.                         uc1701e_ziti32x16[i+32]=temp1/256;
  26.                 }
  27.                
  28.          }
  29. }        
复制代码
写一个16X16i汉字
  1. void        disp_uc1701e_hanzi16x16(unsigned char lie,unsigned char hang,unsigned char weihao)   //写汉字
  2. {
  3.         unsigned char        i,j;
  4.         
  5.         uc1701e_32to64(weihao);
  6.         for(i=0;i<4;i++)
  7.         {
  8.           write_cmd(0xb0+hang+i);//行地址
  9.           write_cmd(0x04);//设置列地址
  10.                 write_dat(lie);//列地址数据
  11.                 write_cmd(0x01);//写数据
  12.                 for(j=0;j<16;j++)
  13.          {
  14.                  write_dat(uc1701e_ziti32x16[i*16+j]);
  15.           }
  16.         }
  17. }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 5家元 +240 收起 理由
慕名而来 + 30 原創內容
海上生明月丶 + 30 謝謝分享
jf201006 + 30 謝謝分享
飞向狙沙 + 30 謝謝分享
家睦 + 120

查看全部打赏

发表于 2025-9-24 16:21:54 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 1 反对 0

使用道具 举报

发表于 2025-9-24 18:18:19 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-24 18:28:07 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-24 23:33:19 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 07:39:18 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 07:56:53 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-25 09:33:44 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 10:13:26 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 11:39:34 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 11:48:20 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-25 12:10:41 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 13:37:01 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 15:17:16 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 15:49:52 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 17:12:29 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-25 18:50:44 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2025-9-25 21:41:03 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-9-26 10:09:08 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 1 反对 0

使用道具 举报

发表于 2025-9-28 07:15:43 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2026-2-24 13:32 , Processed in 0.499201 second(s), 19 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2026 MyDigit.Net

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