找回密码
 立即注册
查看: 443|回复: 5

求液晶屏12232B程序,求14432B-5液晶屏程序

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-05-25 19:58:37

11

主题

14

回帖

163

积分

注册会员

积分
163
发表于 2024-5-20 11:34:05 | 显示全部楼层 |阅读模式
找不到12232B液晶屏程序,无锡市斯迈诺科技有限公司厂家给的例程没用,不知道问题出在哪里。生产厂家也没有懂51编程的技术人员,求哪位好心人给个例程。

上面一个是12232B,下面是14432B-5

上面一个是12232B,下面是14432B-5
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:417
  • 最近打卡:2025-04-30 21:39:09
已绑定手机

34

主题

2096

回帖

2206

积分

荣誉版主

积分
2206
发表于 2024-5-22 20:26:50 | 显示全部楼层
不管是12232B还是14432B,都需要通过厂家咨询显示模块的主控芯片型号以及模块的接口定义,一般来说官方给的例程一定是可用的,即使不能直接用通过简单移植也就没问题了。
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2024-5-22 21:55:30 | 显示全部楼层
感觉和1602差不多一样的控制方式
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-05-02 00:29:54

10

主题

1159

回帖

5121

积分

论坛元老

积分
5121
发表于 2024-5-23 10:37:55 | 显示全部楼层
给你一个官方给的例程

  1. /*
  2. CH14432B-ST7920 并口源程序
  3. */
  4. /*$$$$$$$$$$$$$$$$$
  5. Module      :   CH12864B/D               
  6. InterfaCS   :   6800  8 BIT Bus
  7. soft        :   KeilC51 Ver7.0
  8. Control IC  :   ST7920  
  9. ------------------------------------------------------------------
  10. Note:
  11. 1.Parallel bus drive programme.
  12. 2.Default Crystal 12.000Mhz.
  13. 3.This is a new program.
  14. &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&*/
  15. #include <reg52.h>
  16. #include <intrins.h>
  17. #include "int/tupian.c"
  18. #define uchar unsigned char
  19. #define uint  unsigned int
  20. sbit RS  =P2^3;
  21. sbit RW  =P2^4;
  22. sbit E   =P2^5;
  23. sbit REST =P0^1;
  24. sbit LED = P0^6;
  25. #define lcd_data P1
  26. //================================================================
  27. void DELAY_CLS(void);
  28. void delay_ms(uint ms_value);
  29. void delay_us(uchar us_value);
  30. void wr_data(uchar wdata);
  31. void wr_cmd(uchar cmd);      
  32. void LCD_CLS(void);
  33. void wr_cmd_data( uchar cmd,uchar dat1,uchar dat2);
  34. void gotoxy(uint row, uint col);
  35. void SendStr(uchar code *ptString);
  36. void SendStr1(uchar code *ptString);
  37. void init_lcd(void);
  38. void disp_Graphic();
  39. void disp_fangkuang(void );
  40. void  testshow(uchar fst, uchar snd);
  41. void CallBuiltinChar(void);
  42. //----------------------------------------------------------------
  43. void delay_us(uchar us_value)        //delay about 1 us
  44. {
  45.     while(us_value--)
  46.     {
  47.             _nop_();
  48.             _nop_();
  49.     }
  50. }
  51. //----------------------------------------------------------------
  52. void delay_ms(uint ms_value)        //delay about 1 ms
  53. {
  54.     uint k;
  55.     for(k=0;k<ms_value;k++)
  56.     {
  57.             delay_us(200);
  58.     }
  59. }
  60. //----------------------------------------------------------------
  61. void wr_cmd(uchar cmd)
  62. {
  63.    
  64.     lcd_data = 0xff;        // Set the port as Output      
  65.     RS = 0;               
  66.     RW = 0;
  67.     E = 1;
  68.     lcd_data = cmd;
  69.     delay_us(10);    //此处必需延时
  70.     E = 0;
  71.     RW = 1;
  72.     delay_us(10);   //此处必需延时
  73.     //        lcd_data = 0xFF;
  74. }
  75. //----------------------------------------------------------------
  76. void wr_data(uchar wdata)
  77. {
  78.     lcd_data = 0xFF;        // Set the port as Output
  79.    
  80.     RS = 1;               
  81.     RW = 0;
  82.     E = 1;
  83.     lcd_data = wdata;
  84.     delay_us(10);     //此处必需延时
  85.     E = 0;
  86.     RW = 1;
  87.     delay_us(10);     //此处必需延时
  88.     //        lcd_data = 0xFF;
  89. }
  90. //----------------------------------------------------------------
  91. void DELAY_CLS()
  92. {
  93.     delay_ms(100);
  94.     LCD_CLS();
  95. }
  96. //----------------------------------------------------------------
  97. void LCD_CLS()
  98. {
  99.         wr_cmd(0x30);    // 8-bit interface, Extended instruction
  100.         wr_cmd(0x01);
  101.         delay_ms(5);
  102. }
  103. //----------------------------------------------------------------
  104. void SendStr(uchar code *ptString)
  105. {
  106.         while((*ptString)!='\0')
  107.         {
  108.                 wr_data(*ptString++);
  109.         }
  110. }
  111. //----------------------------------------------------------------
  112. void SendStr1(uchar code *ptString)
  113. {
  114.         while((*ptString)!='\0')
  115.         {
  116.                 wr_data( *ptString++);
  117.         delay_ms(30);
  118.         }
  119. }
  120. //----------------------------------------------------------------
  121. void init_lcd(void)
  122. {
  123.     //delay_ms(40);
  124.         wr_cmd(0x30);           //设定为8位控制,基本指令起动
  125.     wr_cmd(0x34);            //设定为8位控制,扩充指令起动
  126.       
  127.         wr_cmd(0x0c);            // 显示打开
  128.         LCD_CLS();                //清屏
  129.          
  130.         wr_cmd(0x06);                  // 设定AC加1           
  131. }
  132. //----------------------------------------------------------------
  133. void gotoxy(uint row, uint col)
  134. {
  135.     switch(row)
  136.     {
  137.         case 1: wr_cmd(0x80+col);break;
  138.         case 2: wr_cmd(0x90+col);break;
  139.         case 3: wr_cmd(0x88+col);break;
  140.         case 4: wr_cmd(0x98+col);break;
  141.     }
  142. }
  143. //----------------------------------------------------------------
  144. //----------------------------------------------------------------
  145. void  testshow(uchar fst, uchar snd)
  146. {
  147.   uchar x,y,i,k;
  148.    
  149.    for(i=0;i<10;i+=8)            //当i=0时显示上面128×32,当i=8时显示下面12*3
  150.       for(y=0;y<32;y++)
  151.       {     if((y%2)==1)
  152.                k=fst;
  153.             else
  154.                k=snd;
  155.             for(x=0;x<10;x++)
  156.             {
  157.                wr_cmd(0x36);     //扩充指令 绘图显示
  158.                wr_cmd(y+0x80);    //行地址
  159.                wr_cmd(x+0x80+i);    //列地址            
  160.                wr_data(k);
  161.                wr_data(k);
  162.       wr_cmd(0x30);               //扩充指令 绘图关闭  
  163.             }
  164.        }   
  165. }  
  166. /////////////---------------显示方框-----------------------
  167. void disp_kuang()
  168. {
  169.   uchar i,j;
  170.   wr_cmd(0x36);     //扩充指令打开
  171.     for(i=0;i<1;i++)
  172.    {
  173.     wr_cmd(0x80);    //行地址
  174.     wr_cmd(0x80+i);    //列地址            
  175.     wr_data(0xff);
  176.     wr_data(0xff);
  177.    }
  178.       for(j=1;j<16;j++)
  179.    {
  180.      for(i=0;i<9;i++)
  181.       {
  182.        wr_cmd(0x80+j);    //行地址
  183.        wr_cmd(0x80+i);    //列地址
  184.            if(i==0) {wr_data(0x80);wr_data(0x00); }         
  185.               if(i==8) {wr_data(0x00);wr_data(0x01); }
  186.            else  {wr_data(0x00);wr_data(0x00); }
  187.        }
  188.    }   //第一排完
  189.         for(j=0;j<15;j++)
  190.    {
  191.      for(i=0;i<9;i++)
  192.       {
  193.        wr_cmd(0x90+j);    //行地址
  194.        wr_cmd(0x90+i);    //列地址
  195.            if(i==0) {wr_data(0x80);wr_data(0x00); }         
  196.               if(i==8) {wr_data(0x00);wr_data(0x01); }
  197.            else  {wr_data(0x00);wr_data(0x00); }
  198.        }
  199.    }   
  200.          for(i=0;i<1;i++)
  201.    {
  202.     wr_cmd(0x9f);    //行地址
  203.     wr_cmd(0x90+i);    //列地址            
  204.     wr_data(0xff);
  205.     wr_data(0xff);
  206.    }         //第二排完
  207.         wr_cmd(0x30);               //扩充指令 绘图关闭  
  208. }
  209. //-------------------------------------------------
  210. // ^_^      功 能 说 明: 显示128*64取模图片     ^_^ 数据扫描方向:水平扫描
  211. //-------------------------------------------------
  212. void display_pic(uchar *pic)
  213. {
  214.   uchar x,y,i,j=0;
  215.    
  216.    for(i=0;i<9;i+=8)   
  217.       for(y=0;y<32;y++)
  218.       {   
  219.             for(x=0;x<8;x++)
  220.             {
  221.                wr_cmd(0x36);     //扩充指令 绘图显示打开
  222.                wr_cmd(y+0x80);    //行地址
  223.                wr_cmd(x+0x80+i);    //列地址           
  224.                wr_data(*pic++);
  225.                wr_data(*pic++);   
  226.             }
  227.        }   
  228. }
  229. // Call built-in Charactors
  230. void CallBuiltinChar(void)
  231. {
  232.     uint i,j;
  233.     // 0xA140 ~ 0xA15F
  234.     gotoxy(2,0);
  235.     for (i = 0; i < 32; i++)
  236.     {
  237.             wr_data(0xA1);
  238.             wr_data(0x40 + i);
  239.     }
  240.     gotoxy(3,0);
  241.     for (j = 0; j < 16; j++)
  242.     {
  243.             wr_data(0xA2);
  244.             wr_data(0x45 + j);
  245.     }
  246. }
  247. //================================================================
  248. void main()
  249. {
  250.     uint i;
  251.     delay_ms(100);
  252.     REST=0;
  253.     delay_ms(200);
  254.     REST=1;
  255.    
  256.     init_lcd();
  257.     while(1)
  258.         {
  259.            LED = 0;
  260.            delay_ms(500);
  261.            LED = 1;
  262.            delay_ms(500);
  263.                 LED = 0;
  264.                  DELAY_CLS();
  265.                           
  266.                          display_pic(b);
  267.                   delay_ms(3500);
  268.            DELAY_CLS();
  269.            testshow(0xaa,0x55);   //雪花
  270.            delay_ms(3500);
  271.            DELAY_CLS();
  272.         //
  273.         testshow(0xff,0xff);   //全显
  274.         delay_ms(2000);
  275.            DELAY_CLS();
  276.         //testshow(0x00,0x00);   //空白
  277.         // delay_ms(4500);
  278.         // DELAY_CLS();
  279.         //testshow(0xff,0x00);   //横显
  280.         // delay_ms(2500);
  281.         //   DELAY_CLS();
  282.         //testshow(0x00,0xff);  //横显
  283.         // delay_ms(2500);
  284.         //   DELAY_CLS();
  285.         //testshow(0x55,0x55);   //竖显
  286.         // delay_ms(2500);
  287.         //   DELAY_CLS();
  288.         //testshow(0xAA,0xAA);   //竖显
  289.         // delay_ms(2500);
  290.         //   DELAY_CLS();
  291.         //testshow(0xaa,0x55);   //雪花
  292.         // delay_ms(2500);
  293.         //DELAY_CLS();
  294.                         gotoxy(1,0);
  295.                 SendStr("航航航航航航航航航");
  296.                         gotoxy(2,0);
  297.                 SendStr("显显显显显显显显显");
  298.            delay_ms(4500);
  299.                 DELAY_CLS();  
  300.                 disp_kuang();
  301.                         delay_ms(4500);
  302.                 DELAY_CLS();
  303.                         gotoxy(1,0);
  304.                         wr_data(0xd2);
  305.                 wr_data(0xbc);/*壹D2BC*/
  306.                                 wr_data(0xd2);
  307.                 wr_data(0xbc);/*壹D2BC*/
  308.                                         wr_data(0xd2);
  309.                 wr_data(0xbc);/*壹D2BC*/
  310.                                         wr_data(0xd2);
  311.                 wr_data(0xbc);/*壹D2BC*/
  312.                                 wr_data(0xd2);
  313.                 wr_data(0xbc);/*壹D2BC*/
  314.                                         wr_data(0xd2);
  315.                 wr_data(0xbc);/*壹D2BC*/
  316.                                         wr_data(0xd2);
  317.                 wr_data(0xbc);/*壹D2BC*/
  318.                                                         wr_data(0xd2);
  319.                 wr_data(0xbc);/*壹D2BC*/
  320.                                                                         wr_data(0xd2);
  321.                 wr_data(0xbc);/*壹D2BC*/
  322.                         gotoxy(2,0);
  323.                                         wr_data(0xd2);
  324.                 wr_data(0xbc);/*壹D2BC*/
  325.                                 wr_data(0xd2);
  326.                 wr_data(0xbc);/*壹D2BC*/
  327.                                         wr_data(0xd2);
  328.                 wr_data(0xbc);/*壹D2BC*/
  329.                                         wr_data(0xd2);
  330.                 wr_data(0xbc);/*壹D2BC*/
  331.                                 wr_data(0xd2);
  332.                 wr_data(0xbc);/*壹D2BC*/
  333.                                         wr_data(0xd2);
  334.                 wr_data(0xbc);/*壹D2BC*/
  335.                                         wr_data(0xd2);
  336.                 wr_data(0xbc);/*壹D2BC*/
  337.                                                         wr_data(0xd2);
  338.                 wr_data(0xbc);/*壹D2BC*/
  339.                                                                         wr_data(0xd2);
  340.                 wr_data(0xbc);/*壹D2BC*/
  341.                         delay_ms(4500);
  342.                 DELAY_CLS();
  343.                   
  344.                         gotoxy(1,0);
  345.                         for(i=0;i<18;i++)
  346.                         {  
  347.                 wr_data(0x30+i);
  348.                         }
  349.                         gotoxy(2,0);
  350.                         for(i=0;i<18;i++)
  351.                         {  
  352.                 wr_data(0x41+i);
  353.                         }
  354.                         delay_ms(4500);
  355.                 DELAY_CLS();
  356.         }
  357. }
复制代码


回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:365
  • 最近打卡:2025-05-02 00:20:03

6

主题

319

回帖

2206

积分

金牌会员

积分
2206
发表于 2024-5-23 12:10:25 | 显示全部楼层
ST7920驱动芯片的驱动例程网上大把,只要管脚连接争取,初始化参数按照厂家给的值配置,很容易点亮的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-05-25 19:58:37

11

主题

14

回帖

163

积分

注册会员

积分
163
发表于 2024-5-29 15:35:15 | 显示全部楼层
收到,谢谢,原因找到,是不同单片机型号IO速度有区别,太快了,液晶屏反应不过来,需要在液晶屏的使能端加足够的延时。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 20:40 , Processed in 0.208968 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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