找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2284|回复: 2
收起左侧

分享一个tg12864-26b的单片机驱动程序,老王家的屏

[复制链接]
ID:388135 发表于 2020-3-24 22:13 | 显示全部楼层 |阅读模式
lcd.c
  1. #include "lcd.h"
  2. #include "delay.h"
  3. #include "font.h"

  4. void LCD_DATA(u8 i)
  5. {
  6.                 if((i | 0xfe) == 0xfe) DB0 = 0; else DB0 = 1;
  7.                 if((i | 0xfd) == 0xfd) DB1 = 0; else DB1 = 1;
  8.                 if((i | 0xfb) == 0xfb) DB2 = 0; else DB2 = 1;
  9.                 if((i | 0xf7) == 0xf7) DB3 = 0; else DB3 = 1;
  10.                 if((i | 0xef) == 0xef) DB4 = 0; else DB4 = 1;
  11.                 if((i | 0xdf) == 0xdf) DB5 = 0; else DB5 = 1;
  12.                 if((i | 0xbf) == 0xbf) DB6 = 0; else DB6 = 1;
  13.                 if((i | 0x7f) == 0x7f) DB7 = 0; else DB7 = 1;
  14. }

  15. void LCD_Init(void)
  16. {
  17.           u8 i, j;

  18.           GPIO_InitTypeDef  GPIO_InitStructure;
  19.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB, ENABLE);
  20.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11 |GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
  21.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  22.                 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  23.                 GPIO_Init(GPIOB, &GPIO_InitStructure);

  24.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
  25.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  26.                 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  27.                 GPIO_Init(GPIOA, &GPIO_InitStructure);

  28.                 delay_us(10);
  29.                 RST = 0;
  30.                 delay_us(2);
  31.                 RST = 1; /*复位*/        
  32.           LCM_WRITE(com1, base);
  33.           LCM_WRITE(com2, base);
  34.           LCM_WRITE(com1, on);
  35.           LCM_WRITE(com2, on);
  36.                 for (j = 0; j < 8; j++) /*清屏*/
  37.                 {
  38.                                 LCM_WRITE(com1, 0xB8+j);        /*清左半屏*/
  39.                                 LCM_WRITE(com1, 0x40);
  40.                           LCM_WRITE(com2, 0xB8+j);        /*清左半屏*/
  41.                                 LCM_WRITE(com2, 0x40);
  42.                                 for(i = 0;i < 64; i++)
  43.                                 {
  44.                                                 LCM_WRITE(data1, 0x00);
  45.                                           LCM_WRITE(data2, 0x00);
  46.                                 }
  47.                 }

  48. }

  49. void LCM_WRITE(u8 cord, u8 ch)
  50. {
  51.           switch(cord)
  52.           {
  53.                                 case 0:
  54.                                 {
  55.                                                 delay_us(10);
  56.                                                 CS1=0;
  57.                                                 RS=0;
  58.                                                 RW=0;
  59.                                                 E=1;        
  60.                                                 LCD_DATA(ch);
  61.                                                 delay_us(2);
  62.                                                 E=0;
  63.                                                 delay_us(2);
  64.                                                 CS1=1;
  65.                                 }break;
  66.                                 case 1:
  67.                                 {
  68.                                     delay_us(10);
  69.                                                 CS2=0;
  70.                                                 RS=0;
  71.                                                 RW=0;
  72.                                                 E=1;        
  73.                                                 LCD_DATA(ch);
  74.                                                 delay_us(2);
  75.                                                 E=0;
  76.                                                 delay_us(2);
  77.                                                 CS2=1;
  78.                                 }break;
  79.                                 case 2:
  80.                                 {
  81.                                                 delay_us(10);
  82.                                                 CS1=0;
  83.                                                 RS=1;
  84.                                                 RW=0;        
  85.                                                 E=1;
  86.                                                 LCD_DATA(ch);
  87.                                                 delay_us(2);
  88.                                                 E=0;
  89.                                                 delay_us(2);
  90.                                                 CS1=1;
  91.                                 }break;
  92.                                 case 3:
  93.                                 {
  94.                                                 delay_us(30);
  95.                                                 CS2=0;
  96.                                                 RS=1;
  97.                                                 RW=0;        
  98.                                                 E=1;
  99.                                                 LCD_DATA(ch);
  100.                                                 delay_us(2);
  101.                                                 E=0;
  102.                                                 delay_us(2);
  103.                                                 CS2=1;
  104.                                 }break;
  105.                                 default : break;
  106.                 }
  107. }

  108. void Clr_Scr(u8 i)
  109. {
  110.                 u8 j, k;
  111.                 LCM_WRITE(com1, 0x40);
  112.           LCM_WRITE(com2, 0x40);
  113.                 for(k = 0; k < 8; k++)
  114.                 {
  115.                                 LCM_WRITE(com1, x_addr(k));
  116.         LCM_WRITE(com2, x_addr(k));
  117.                                 for(j = 0; j < 64; j++)
  118.                                 {
  119.                                                 LCM_WRITE(data1, i);
  120.                                           LCM_WRITE(data2, i);
  121.                                 }
  122.                 }
  123. }

  124. void show_hanzi1212(u8 page, u8 colum, u8 c[2])
  125. {
  126.                 u8 zimo[24];
  127.                 u8 i, j, k, l;
  128.         
  129.                 for(j = 0; j < (sizeof(codeGB_12) / sizeof(typFNT_GB12)); j++)  //查找汉字位置
  130.                 {
  131.                                 if((codeGB_12[j].Index[0] == c[0]) && (codeGB_12[j].Index[1] == c[1]))
  132.                                 {
  133.                                                 for(i = 0; i < 24; i++) //读出一个汉字的数据
  134.                                                 {
  135.                                                                 zimo[i] = codeGB_12[j].Msk[i];//将汉字数据存入显示缓存区
  136.                                                 }
  137.                                 }
  138.                 }
  139.     for(l = 0; l < 2; l++)
  140.                 {
  141.                     for(k = 0; k < 12; k++)
  142.                           {   
  143.                                           if((colum + k) < 64)
  144.                                           {
  145.                                                           LCM_WRITE(com1, y_addr(colum + k));
  146.                                   LCM_WRITE(com1, x_addr(page + l));
  147.                                                                 LCM_WRITE(data1, zimo[l * 12 + k]);
  148.                                                 }
  149.                                                 else if((colum + k) > 127)
  150.                                                 {
  151.                                                     LCM_WRITE(com1, y_addr(colum - 127 + k));
  152.                                   LCM_WRITE(com1, x_addr(page + l));
  153.                                                                 LCM_WRITE(data1, zimo[l * 12 + k]);
  154.                                                 }
  155.                                           else
  156.                                                 {
  157.                                                           LCM_WRITE(com2, y_addr(colum - 64 + k));
  158.                                   LCM_WRITE(com2, x_addr(page + l));
  159.                                                                 LCM_WRITE(data2, zimo[l * 12 + k]);
  160.                                                 }
  161.                                 }
  162.           }
  163. }

  164. void show_hanzi1616(u8 page, u8 colum, u8 c[2])
  165. {
  166.                 u8 zimo[32];
  167.                 u8 i, j, k, l;
  168.         
  169.                 for(j = 0; j < (sizeof(codeGB_16) / sizeof(typFNT_GB16)); j++)
  170.                 {
  171.                                 if((codeGB_16[j].Index[0] == c[0]) && (codeGB_16[j].Index[1] == c[1]))
  172.                                 {
  173.                                                 for(i = 0; i < 32; i++)
  174.                                                 {
  175.                                                                 zimo[i] = codeGB_16[j].Msk[i];
  176.                                                 }
  177.                                 }
  178.                 }
  179.     for(l = 0; l < 2; l++)
  180.                 {
  181.                     for(k = 0; k < 16; k++)
  182.                           {   
  183.                                           if((colum + k) < 64)
  184.                                           {
  185.                                                           LCM_WRITE(com1, y_addr(colum + k));
  186.                                   LCM_WRITE(com1, x_addr(page + l));
  187.                                                                 LCM_WRITE(data1, zimo[l * 16 + k]);
  188.                                                 }
  189.                                                 else if((colum + k) > 127)
  190.                                                 {
  191.                                                     LCM_WRITE(com1, y_addr(colum - 127 + k));
  192.                                   LCM_WRITE(com1, x_addr(page + l));
  193.                                                                 LCM_WRITE(data1, zimo[l * 16 + k]);
  194.                                                 }
  195.                                           else
  196.                                                 {
  197.                                                           LCM_WRITE(com2, y_addr(colum - 64 + k));
  198.                                   LCM_WRITE(com2, x_addr(page + l));
  199.                                                                 LCM_WRITE(data2, zimo[l * 16 + k]);
  200.                                                 }
  201.                                 }
  202.           }
  203. }

  204. void show_hanzi2424(u8 page, u8 colum, u8 c[2])
  205. {
  206.                 u8 zimo[72];
  207.                 u8 i, j, k, l;
  208.         
  209.                 for(j = 0; j < (sizeof(codeGB_24) / sizeof(typFNT_GB24)); j++)  //查找汉字位置
  210.                 {
  211.                                 if((codeGB_24[j].Index[0] == c[0]) && (codeGB_24[j].Index[1] == c[1]))
  212.                                 {
  213.                                                 for(i = 0; i < 72; i++) //读出一个汉字的数据
  214.                                                 {
  215.                                                                 zimo[i] = codeGB_24[j].Msk[i];//将汉字数据存入显示缓存区
  216.                                                 }
  217.                                 }
  218.                 }
  219.     for(l = 0; l < 3; l++)
  220.                 {
  221.                     for(k = 0; k < 24; k++)
  222.                           {   
  223.                                           if((colum + k) < 64)
  224.                                           {
  225.                                                           LCM_WRITE(com1, y_addr(colum + k));
  226.                                   LCM_WRITE(com1, x_addr(page + l));
  227.                                                                 LCM_WRITE(data1, zimo[l * 24 + k]);
  228.                                                 }
  229.                                                 else if((colum + k) > 127)
  230.                                                 {
  231.                                                     LCM_WRITE(com1, y_addr(colum - 127 + k));
  232.                                   LCM_WRITE(com1, x_addr(page + l));
  233.                                                                 LCM_WRITE(data1, zimo[l * 24 + k]);
  234.                                                 }
  235.                                           else
  236.                                                 {
  237.                                                           LCM_WRITE(com2, y_addr(colum - 64 + k));
  238.                                   LCM_WRITE(com2, x_addr(page + l));
  239.                                                                 LCM_WRITE(data2, zimo[l * 24 + k]);
  240.                                                 }
  241.                                 }
  242.           }
  243. }

  244. void display_hanzi(u8 page, u8 colum, u8 *c, u8 size)
  245. {
  246.     switch(size)
  247.                 {
  248.                                 case 12:
  249.                                               while(*c)
  250.                                                                 {
  251.                                                                                  show_hanzi1212(page,colum,c);
  252.                                                                                  colum += 12;
  253.                                                                                  c += 2;
  254.                                                                 }
  255.                                                                 break;
  256.                                 case 16:
  257.                                              while(*c)
  258.                                                                 {
  259.                                                                                  show_hanzi1616(page,colum,c);
  260.                                                                                  colum += 16;
  261.                                                                                  c += 2;
  262.                                                                 }
  263.                                                                 break;
  264.                                 case 24:
  265.                                              while(*c)
  266.                                                                 {
  267.                                                                                  show_hanzi2424(page,colum,c);
  268.                                                                                  colum += 24;
  269.                                                                                  c += 2;
  270.                                                                 }
  271.                                                                 break;
  272.                                 default:break;
  273.                 }
  274. }

  275. void show_letter_s(u8 page, u8 colum, u8 uletter[1])
  276. {
  277.     u8 zimo[12];
  278.                 u8 i, j, k, l;
  279.         
  280.                 for(i = 0; i < (sizeof(codeZF_12) / sizeof(typFNT_ZF12)); i++)  //查找数字位置
  281.                 {
  282.                                 if(codeZF_12[i].Index[0] == uletter[0])
  283.                                 {
  284.                                                 for(j = 0; j < 12; j++) //读出一个数字的数据
  285.                                                 {
  286.                                                                 zimo[j] = codeZF_12[i].Msk[j];//将数字数据存入显示缓存区
  287.                                                 }
  288.                                 }
  289.                 }
  290.     for(l = 0; l < 2; l++)
  291.                 {
  292.                     for(k = 0; k < 6; k++)
  293.                           {   
  294.                                           if((colum + k) < 64)
  295.                                           {
  296.                                                           LCM_WRITE(com1, y_addr(colum + k));
  297.                                   LCM_WRITE(com1, x_addr(page + l));
  298.                                                                 LCM_WRITE(data1, zimo[l * 6 + k]);
  299.                                                 }
  300.                                                 else if((colum + k) > 127)
  301.                                                 {
  302.                                                     LCM_WRITE(com1, y_addr(colum - 127 + k));
  303.                                   LCM_WRITE(com1, x_addr(page + l));
  304.                                                                 LCM_WRITE(data1, zimo[l * 6 + k]);
  305.                                                 }
  306.                                           else
  307.                                                 {
  308.                                                           LCM_WRITE(com2, y_addr(colum - 64 + k));
  309.                                   LCM_WRITE(com2, x_addr(page + l));
  310.                                                                 LCM_WRITE(data2, zimo[l * 6 + k]);
  311.                                                 }
  312.                                 }
  313.           }
  314. }

  315. void show_letter_m(u8 page, u8 colum, u8 uletter[1])
  316. {
  317.     u8 zimo[16];
  318.                 u8 i, j, k, l;
  319.         
  320.                 for(i = 0; i < (sizeof(codeZF_16) / sizeof(typFNT_ZF16)); i++)  //查找数字位置
  321.                 {
  322.                                 if(codeZF_16[i].Index[0] == uletter[0])
  323.                                 {
  324.                                                 for(j = 0;j < 16; j++) //读出一个数字的数据
  325.                                                 {
  326.                                                                 zimo[j] = codeZF_16[i].Msk[j];//将数字数据存入显示缓存区
  327.                                                 }
  328.                                 }
  329.                 }
  330.     for(l = 0; l < 2; l++)
  331.                 {
  332.                     for(k = 0; k < 8; k++)
  333.                           {   
  334.                                           if((colum + k) < 64)
  335.                                           {
  336.                                                           LCM_WRITE(com1, y_addr(colum + k));
  337.                                   LCM_WRITE(com1, x_addr(page + l));
  338.                                                                 LCM_WRITE(data1, zimo[l * 8 + k]);
  339.                                                 }
  340.                                                 else if((colum + k) > 127)
  341.                                                 {
  342.                                                     LCM_WRITE(com1, y_addr(colum - 127 + k));
  343.                                   LCM_WRITE(com1, x_addr(page + l));
  344.                                                                 LCM_WRITE(data1, zimo[l * 8 + k]);
  345.                                                 }
  346.                                           else
  347.                                                 {
  348.                                                           LCM_WRITE(com2, y_addr(colum - 64 + k));
  349.                                   LCM_WRITE(com2, x_addr(page + l));
  350.                                                                 LCM_WRITE(data2, zimo[l * 8 + k]);
  351.                                                 }
  352.                                 }
  353.           }
  354. }

  355. void show_letter_l(u8 page, u8 colum, u8 uletter[1])
  356. {
  357. u8 zimo[36];
  358.                 u8 i, j, k, l;

  359.                 for(i = 0; i < (sizeof(codeZF_24) / sizeof(typFNT_ZF24)); i++)  //查找数字位置
  360.                 {
  361.                                 if(codeZF_24[i].Index[0] == uletter[0])
  362.                                 {
  363.                                                 for(j = 0; j < 36; j++) //读出一个数字的数据
  364.                                                 {
  365.                                                                 zimo[j] = codeZF_24[i].Msk[j];//将数字数据存入显示缓存区
  366.                                                 }
  367.                                 }
  368.                 }
  369.     for(l = 0; l < 3; l++)
  370.                 {
  371.                     for(k = 0; k < 12; k++)
  372.                           {   
  373.                                           if((colum + k) < 64)
  374.                                           {
  375.                                                           LCM_WRITE(com1, y_addr(colum + k));
  376.                                   LCM_WRITE(com1, x_addr(page + l));
  377.                                                                 LCM_WRITE(data1, zimo[l * 12 + k]);
  378.                                                 }
  379.                                                 else if((colum + k) > 127)
  380.                                                 {
  381.                                                     LCM_WRITE(com1, y_addr(colum - 127 + k));
  382.                                   LCM_WRITE(com1, x_addr(page + l));
  383.                                                                 LCM_WRITE(data1, zimo[l * 12 + k]);
  384.                                                 }
  385.                                           else
  386.                                                 {
  387.                                                           LCM_WRITE(com2, y_addr(colum - 64 + k));
  388.                                   LCM_WRITE(com2, x_addr(page + l));
  389.                                                                 LCM_WRITE(data2, zimo[l * 12 + k]);
  390.                                                 }
  391.                                 }
  392.           }
  393. }

  394. void display_letter(u8 page, u8 colum, u8 *uletter, u8 size)
  395. {
  396.           switch(size)
  397.           {
  398.                                 case 12:
  399.                                                                 while(*uletter)
  400.                                                                 {
  401.                                                                                 show_letter_s(page, colum, uletter);
  402.                                                                                 colum += 6;
  403.                                                                                 uletter++;
  404.                                                                 }
  405.                                                                 break;
  406.                                 case 16:
  407.                                                                 while(*uletter)
  408.                                                                 {
  409.                                                                                 show_letter_m(page, colum, uletter);
  410.                                                                                 colum += 8;
  411.                                                                                 uletter++;
  412.                                                                 }
  413.                                                                 break;
  414.                                 case 24:
  415.                                                                 while(*uletter)
  416.                                                                 {
  417.                                                                                 show_letter_l(page, colum, uletter);
  418.                                                                                 colum += 12;
  419.                                                                                 uletter++;
  420.                                                                 }
  421.                                                                 break;
  422.                                 default : break;
  423.          }
  424. }

  425. void show_bitmap(u8 page, u8 colum, u8 c[1])
  426. {
  427.                 u8 zimo[32];
  428.                 u8 i, j, k, l;
  429.         
  430.                 for(j = 0; j < (sizeof(weitu) / sizeof(typFNT_ZF16)); j++)
  431.                 {
  432.                                 if((weitu[j].Index[0] == c[0]))
  433.                                 {
  434.                                                 for(i = 0; i < 32; i++)
  435.                                                 {
  436.                                                                 zimo[i] = weitu[j].Msk[i];
  437.                                                 }
  438.                                 }
  439.                 }
  440.     for(l = 0; l < 2; l++)
  441.                 {
  442.                     for(k = 0; k < 16; k++)
  443.                           {   
  444.                                           if((colum + k) < 64)
  445.                                           {
  446.                                                           LCM_WRITE(com1, y_addr(colum + k));
  447.                                   LCM_WRITE(com1, x_addr(page + l));
  448.                                                                 LCM_WRITE(data1, zimo[l * 16 + k]);
  449.                                                 }
  450.                                                 else if((colum + k) > 127)
  451.                                                 {
  452.                                                     LCM_WRITE(com1, y_addr(colum - 127 + k));
  453.                                   LCM_WRITE(com1, x_addr(page + l));
  454.                                                                 LCM_WRITE(data1, zimo[l * 16 + k]);
  455.                                                 }
  456.                                           else
  457.                                                 {
  458.                                                           LCM_WRITE(com2, y_addr(colum - 64 + k));
  459.                                   LCM_WRITE(com2, x_addr(page + l));
  460.                                                                 LCM_WRITE(data2, zimo[l * 16 + k]);
  461.                                                 }
  462.                                 }
  463.           }
  464. }
复制代码
lcd.h
  1. #ifndef __LCD_H
  2. #define __LCD_H

  3. #include "sys.h"

  4. #define RS  PBout(15) //寄存器选择端 H:数据寄存器,L:命令寄存器
  5. #define RW  PBout(14) //读/写选择信号,R/W=1:读选通,R/W=0:写选通
  6. #define E   PBout(13) //读写使能信号,在E下降沿,数据被锁存(写)入,在E高电平器件,数据被读出
  7. #define CS1 PBout(10) //前64点选择,1有效
  8. #define CS2 PBout(11) //后64点选择,1有效
  9. #define RST PBout(12) //复位信号

  10. #define DB0 PAout(0)
  11. #define DB1 PAout(1)
  12. #define DB2 PAout(2)
  13. #define DB3 PAout(3)
  14. #define DB4 PAout(4)
  15. #define DB5 PAout(5)
  16. #define DB6 PAout(6)
  17. #define DB7 PAout(7)

  18. #define com            0x00
  19. #define data           0x01

  20. #define com1           0x00
  21. #define com2           0x01
  22. #define data1          0x02
  23. #define data2          0x03

  24. #define on             0x3f
  25. #define off            0x3e
  26. #define base           0xc0
  27. #define x_addr(x)      0xb8+x
  28. #define y_addr(y)      0x40+y

  29. void LCD_DATA(u8 i);
  30. void LCD_Init(void);
  31. void LCM_WRITE(u8 cord, u8 ch);
  32. void Clr_Scr(u8 i);

  33. void show_hanzi1212(u8 page, u8 colum, u8 c[2]);
  34. void show_hanzi1616(u8 page, u8 colum, u8 c[2]);
  35. void show_hanzi2424(u8 page, u8 colum, u8 c[2]);
  36. void display_hanzi(u8 page, u8 colum, u8 *c, u8 size);

  37. void show_letter_s(u8 page, u8 colum, u8 uletter[1]);
  38. void show_letter_m(u8 page, u8 colum, u8 uletter[1]);
  39. void show_letter_l(u8 page, u8 colum, u8 uletter[1]);
  40. void display_letter(u8 page, u8 colum, u8 *uletter, u8 size);

  41. void show_bitmap(u8 page, u8 colum, u8 c[2]);

  42. #endif


复制代码
驱动自己改,没什么可说的都会。
字体都是pctolcd2002扣的,
扣好的字
0x10,0x10,0x10,0xFF,0x10,0x90,0x00,0xFC,0x04,0x04,0x04,0x04,0x04,0xFC,0x00,0x00,
0x04,0x44,0x82,0x7F,0x01,0x00,0x00,0x7F,0x20,0x20,0x20,0x20,0x20,0x7F,0x00,0x00,/*"扣",0*/


放到数组里面要改为
  1. "扣",0x10,0x10,0x10,0xFF,0x10,0x90,0x00,0xFC,0x04,0x04,0x04,0x04,0x04,0xFC,0x00,0x00,0x04,0x44,0x82,0x7F,0x01,0x00,0x00,0x7F,0x20,0x20,0x20,0x20,0x20,0x7F,0x00,0x00,/*0*
复制代码
把索引放到前边
放个片段吧,免得你们说虎头蛇尾
  1. #ifndef __FONT_H_
  2. #define __FONT_H_

  3. // ------------------  汉字字模的数据结构定义 ------------------------ //
  4. typedef struct                   // 汉字字模数据结构
  5. {
  6.   unsigned char  Index[3];       // 汉字内码索引        
  7.   unsigned char   Msk[24];       // 点阵码数据
  8. }typFNT_GB12;


  9. typedef struct                   // 汉字字模数据结构
  10. {
  11.   unsigned char  Index[3];       // 汉字内码索引        
  12.   unsigned char   Msk[32];       // 点阵码数据
  13. }typFNT_GB16;

  14. typedef struct                  // 汉字字模数据结构
  15. {
  16.   unsigned char  Index[3];      // 汉字内码索引        
  17.   unsigned char   Msk[72];      // 点阵码数据
  18. }typFNT_GB24;
复制代码

  1. const  typFNT_GB16 codeGB_16[] =
  2. {
  3. "扣",0x10,0x10,0x10,0xFF,0x10,0x90,0x00,0xFC,0x04,0x04,0x04,0x04,0x04,0xFC,0x00,0x00,0x04,0x44,0x82,0x7F,0x01,0x00,0x00,0x7F,0x20,0x20,0x20,0x20,0x20,0x7F,0x00,0x00,/*0*
  4. };
复制代码

最后附上接线图

tg12864接线图.jpg

评分

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

查看全部评分

回复

使用道具 举报

ID:388135 发表于 2020-3-24 22:30 | 显示全部楼层
自己做了个rtc时钟
51hei图片20200324222947.jpg
回复

使用道具 举报

ID:388135 发表于 2020-3-24 22:28 | 显示全部楼层
够良心的了,版主通过吧
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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