久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 2273|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

分享一個(gè)tg12864-26b的單片機(jī)驅(qū)動(dòng)程序,老王家的屏

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
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; /*復(fù)位*/        
  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++) //讀出一個(gè)漢字的數(shù)據(jù)
  134.                                                 {
  135.                                                                 zimo[i] = codeGB_12[j].Msk[i];//將漢字?jǐn)?shù)據(jù)存入顯示緩存區(qū)
  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++) //讀出一個(gè)漢字的數(shù)據(jù)
  214.                                                 {
  215.                                                                 zimo[i] = codeGB_24[j].Msk[i];//將漢字?jǐn)?shù)據(jù)存入顯示緩存區(qū)
  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++)  //查找數(shù)字位置
  281.                 {
  282.                                 if(codeZF_12[i].Index[0] == uletter[0])
  283.                                 {
  284.                                                 for(j = 0; j < 12; j++) //讀出一個(gè)數(shù)字的數(shù)據(jù)
  285.                                                 {
  286.                                                                 zimo[j] = codeZF_12[i].Msk[j];//將數(shù)字?jǐn)?shù)據(jù)存入顯示緩存區(qū)
  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++)  //查找數(shù)字位置
  321.                 {
  322.                                 if(codeZF_16[i].Index[0] == uletter[0])
  323.                                 {
  324.                                                 for(j = 0;j < 16; j++) //讀出一個(gè)數(shù)字的數(shù)據(jù)
  325.                                                 {
  326.                                                                 zimo[j] = codeZF_16[i].Msk[j];//將數(shù)字?jǐn)?shù)據(jù)存入顯示緩存區(qū)
  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++)  //查找數(shù)字位置
  360.                 {
  361.                                 if(codeZF_24[i].Index[0] == uletter[0])
  362.                                 {
  363.                                                 for(j = 0; j < 36; j++) //讀出一個(gè)數(shù)字的數(shù)據(jù)
  364.                                                 {
  365.                                                                 zimo[j] = codeZF_24[i].Msk[j];//將數(shù)字?jǐn)?shù)據(jù)存入顯示緩存區(qū)
  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. }
復(fù)制代碼
lcd.h
  1. #ifndef __LCD_H
  2. #define __LCD_H

  3. #include "sys.h"

  4. #define RS  PBout(15) //寄存器選擇端 H:數(shù)據(jù)寄存器,L:命令寄存器
  5. #define RW  PBout(14) //讀/寫(xiě)選擇信號(hào),R/W=1:讀選通,R/W=0:寫(xiě)選通
  6. #define E   PBout(13) //讀寫(xiě)使能信號(hào),在E下降沿,數(shù)據(jù)被鎖存(寫(xiě))入,在E高電平器件,數(shù)據(jù)被讀出
  7. #define CS1 PBout(10) //前64點(diǎn)選擇,1有效
  8. #define CS2 PBout(11) //后64點(diǎn)選擇,1有效
  9. #define RST PBout(12) //復(fù)位信號(hào)

  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


復(fù)制代碼
驅(qū)動(dòng)自己改,沒(méi)什么可說(shuō)的都會(huì)。
字體都是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*/


放到數(shù)組里面要改為
  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*
復(fù)制代碼
把索引放到前邊
放個(gè)片段吧,免得你們說(shuō)虎頭蛇尾
  1. #ifndef __FONT_H_
  2. #define __FONT_H_

  3. // ------------------  漢字字模的數(shù)據(jù)結(jié)構(gòu)定義 ------------------------ //
  4. typedef struct                   // 漢字字模數(shù)據(jù)結(jié)構(gòu)
  5. {
  6.   unsigned char  Index[3];       // 漢字內(nèi)碼索引        
  7.   unsigned char   Msk[24];       // 點(diǎn)陣碼數(shù)據(jù)
  8. }typFNT_GB12;


  9. typedef struct                   // 漢字字模數(shù)據(jù)結(jié)構(gòu)
  10. {
  11.   unsigned char  Index[3];       // 漢字內(nèi)碼索引        
  12.   unsigned char   Msk[32];       // 點(diǎn)陣碼數(shù)據(jù)
  13. }typFNT_GB16;

  14. typedef struct                  // 漢字字模數(shù)據(jù)結(jié)構(gòu)
  15. {
  16.   unsigned char  Index[3];      // 漢字內(nèi)碼索引        
  17.   unsigned char   Msk[72];      // 點(diǎn)陣碼數(shù)據(jù)
  18. }typFNT_GB24;
復(fù)制代碼

  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. };
復(fù)制代碼

最后附上接線圖

tg12864接線圖.jpg (73.58 KB, 下載次數(shù): 49)

tg12864接線圖.jpg

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

板凳
ID:388135 發(fā)表于 2020-3-24 22:30 | 只看該作者
自己做了個(gè)rtc時(shí)鐘

51hei圖片20200324222947.jpg (2.82 MB, 下載次數(shù): 40)

51hei圖片20200324222947.jpg
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:388135 發(fā)表于 2020-3-24 22:28 | 只看該作者
夠良心的了,版主通過(guò)吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产高清精品一区二区三区 | 亚洲福利精品 | 九九热九九 | 91一区二区三区 | 一级黄色片网址 | 成人亚洲 | 国产成人在线一区二区 | 欧洲亚洲视频 | 麻豆a级片 | 久久99蜜桃综合影院免费观看 | 久久久久久久av麻豆果冻 | 午夜av一区二区 | 999热精品 | 国外成人在线视频 | 久久精品国内 | 国产色| 亚洲高清视频在线 | 福利片一区二区 | 久久精品一区二区 | 中文字幕视频在线观看 | 91亚洲精选 | 国产一区二区三区色淫影院 | 欧美精品a∨在线观看不卡 国产精品久久国产精品 | 99riav国产一区二区三区 | 亚洲高清成人 | 久久久久久久久久性 | 亚洲欧美一区二区三区国产精品 | 亚洲一区 中文字幕 | 亚洲综合在线播放 | 香蕉婷婷 | 91av视频 | 日韩精品一区二区三区在线 | 综合国产在线 | 日韩和的一区二区 | 天天看天天摸天天操 | 久久aⅴ乱码一区二区三区 91综合网 | 91免费版在线| 国产精品久久久久久一级毛片 | 国产成人精品一区二区三区网站观看 | 亚洲美女一区二区三区 | 色爽女 |