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

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

QQ登錄

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

搜索
查看: 3289|回復(fù): 1
收起左側(cè)

LCD320240顯示屏資料和驅(qū)動(dòng)程序

[復(fù)制鏈接]
ID:682488 發(fā)表于 2020-10-14 11:08 | 顯示全部樓層 |閱讀模式
  1. #include "LCD.h"
  2. unchar code tab1[]={
  3. "成都市飛宇達(dá)中文字庫(kù)液晶模塊"
  4. "支持文字與繪圖兩種混和顯示模式          "
  5. "支持2 Page 顯示模式(And, Or, Nor, Xor)  "
  6. "內(nèi)建兩個(gè)顯示 RAM,可做成4 灰階的顯示效果"
  7. "內(nèi)建中文字庫(kù)儲(chǔ)存7602個(gè)標(biāo)準(zhǔn)GB碼的簡(jiǎn)體中文"
  8. "提供全角(16x16)與半角(8x16) 文字顯示模式"
  9. "內(nèi)建8x8 鍵盤(pán)掃瞄界面(Key Scan)          "
  10. "光標(biāo)、反白、閃爍功能,光標(biāo)高度與寬度可調(diào)"
  11. "支持屏幕水平卷動(dòng)及垂直卷動(dòng)功能          "
  12. "內(nèi)建512Byte SRAM 可自行造字             "
  13. "提供中/英文文字對(duì)齊功能                 "
  14. "顯示字型可放大到32x32、48x48 或64x64    "
  15. "支持可將字型由ROM 直接讀出使用          "
  16. "內(nèi)建粗體字形與行距設(shè)定                  "
  17. "內(nèi)建10-Bit ADC 支持觸控屏幕應(yīng)用         "
  18. };
  19. unchar d,h,m,s,n;
  20. unchar xHzTable1[64];
  21. //定義中文字庫(kù)
  22. unchar code HZTable1[32]={
  23. 0x02,0x00,0x02,0x00,0x02,0x04,0x7F,0xFE,0x04,0x40,0x04,0x40,0x04,0x4C,0x0C,0x70,
  24. 0x0A,0x40,0x0A,0xA0,0x10,0xA0,0x11,0x10,0x22,0x18,0x24,0x0E,0x48,0x04,0x00,0x00,
  25. };//灰
  26. unchar code HZTable2[32]={
  27. 0x01,0x00,0x00,0x80,0x3F,0xFE,0x22,0x20,0x22,0x20,0x2F,0xFC,0x22,0x20,0x23,0xE0,
  28. 0x20,0x00,0x27,0xF8,0x22,0x10,0x21,0x20,0x20,0xC0,0x41,0x30,0x46,0x0E,0x98,0x04,
  29. };//度
  30. unchar code HZTable3[32]={
  31. 0x00,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x04,0x40,0x04,0x40,
  32. 0x44,0x48,0x24,0x48,0x14,0x50,0x14,0x60,0x04,0x40,0xFF,0xFE,0x00,0x00,0x00,0x00,
  33. };//顯
  34. unchar code HZTable4[32]={
  35. 0x00,0x00,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x01,0x00,0x01,0x00,
  36. 0x11,0x20,0x11,0x10,0x21,0x08,0x41,0x0C,0x81,0x04,0x01,0x00,0x05,0x00,0x02,0x00,  
  37. }; //示

  38. //$$$$$$$$$$$$
  39. unchar LCD_CmdRead(unchar Addr)
  40. {  
  41. unchar Data;  

  42. cs1=0;
  43. rs=1;
  44. rd=1;
  45. BUS=Addr;
  46. wr=0;
  47. wr=1;

  48. BUS=0XFF;
  49. rs=0;
  50. wr=1;
  51. rd=1;
  52. rd=0;
  53. Data=BUS;

  54. return Data;
  55. }
  56. //$$$$$$$$$$$$
  57. void LCD_CmdWrite(unchar cmdaddr)//8080
  58. {                cs1=0;
  59.                 rd=1;
  60.                 rs=1;
  61.                 BUS=cmdaddr;
  62.                 wr=0;
  63.                 wr=1;
  64.                 cs1=1;
  65. }

  66. //$$$$$$$$$$$$

  67. void LCD_DataWrite(unchar wrdata)
  68. {     
  69.       while(busy==0);
  70.                 cs1=0;
  71.                 rd=1;
  72.                 rs=0;
  73.                 BUS=wrdata;
  74.                 wr=0;
  75.                 wr=1;
  76.                 cs1=1;
  77. }
  78. ///////////////////////////////////////////
  79. void No_Snow_Mode(void)
  80. {
  81.   unchar temp;
  82.   temp=LCD_CmdRead(MISC);
  83.   temp&=0x7f;
  84.   LCD_CmdWrite(MISC);
  85.   LCD_DataWrite(temp);
  86. }
  87. ///////////////////////////////////////////
  88. void Snow_Mode(void)
  89. {
  90.   unchar temp;
  91.   temp=LCD_CmdRead(MISC);
  92.   temp|=0x80;
  93.   LCD_CmdWrite(MISC);
  94.   LCD_DataWrite(temp);
  95. }
  96. //******************X,Y坐標(biāo)定位******************
  97. void LCD_GotoXY(unchar xx,unchar yy)
  98. {   LCD_CmdWrite(CURX);
  99.     LCD_DataWrite(xx);
  100.     LCD_CmdWrite(CURY);  
  101.     LCD_DataWrite(yy);
  102. }
  103. //***********存取DDRAM2*******************************
  104. void Access_Page2(void)
  105. {
  106.     unchar temp;       
  107.     temp=LCD_CmdRead(MAMR);
  108.     temp &=0xfe;
  109.     temp |=0x02;
  110.     LCD_CmdWrite(MAMR);
  111.     LCD_DataWrite(temp);
  112. }

  113. //$$$$$$$$$$$$
  114. void displays(unchar *m)
  115. {

  116.         unint iiii=0,pppp=0,c=0,eeee=0;
  117.         Snow_Mode();
  118.         LCD_CmdWrite(WLCR);
  119.         LCD_DataWrite(0x04);
  120.         LCD_CmdWrite(CURX);
  121.         LCD_DataWrite(0x00);
  122.         LCD_CmdWrite(CURY);  
  123.         LCD_DataWrite(0x00);
  124.         LCD_CmdWrite(MWCR);
  125.     for(eeee=0;eeee<3;eeee++)
  126.           {
  127.            c=0;
  128.            for(iiii=0;iiii<80;iiii++)
  129.            {
  130.                 for(pppp=0;pppp<40;pppp++)
  131.             {
  132.                   LCD_DataWrite(m[c++]);
  133.             }   
  134.             }
  135.           }

  136. }
  137. //$$$$$$$$$$$$
  138. void lcd_grayscale_mode()
  139. {
  140.       unchar temp;
  141.       temp=LCD_CmdRead(MAMR);
  142.       temp&=0x8f;
  143.       temp|=0x03;
  144.       LCD_CmdWrite(MAMR);
  145.       LCD_DataWrite(temp);
  146. }
  147. //$$$$$$$$$$$$
  148. void display_gray(unchar x,unsigned char y,unchar *m)
  149. {
  150.   unchar temp_x,temp_y;
  151.   unint iiii=0,jjjj=0,c=0;
  152.   temp_x=x;temp_y=y;
  153.   Snow_Mode();
  154.   LCD_CmdWrite(WLCR);
  155.   LCD_DataWrite(0x04);
  156.   lcd_grayscale_mode();
  157.   for(iiii=0;iiii<128;iiii++)
  158.   {
  159.       LCD_GotoXY(temp_x,temp_y+iiii);
  160.       LCD_CmdWrite(0xb0);
  161.       for(jjjj=0;jjjj<40;jjjj++)
  162.       {
  163.         LCD_DataWrite(m[c++]);
  164.       }
  165.      }
  166. }
  167. ///////////////////////////////////////////
  168. void HzConvert(unchar *Hztable0,unchar *Hztable,unint number)
  169. //Hztable0為待轉(zhuǎn)換的數(shù)據(jù)地址,Hztable為轉(zhuǎn)換過(guò)后的數(shù)據(jù)地址,number為轉(zhuǎn)換數(shù)據(jù)字節(jié)數(shù)
  170. {
  171.   unchar i=0,j=0,tem;
  172.   unint temp=0x0;
  173.   for(j=0;j<number;j++)
  174.   {
  175.    tem=0x80;
  176.    temp=0;
  177.    for(i=8;i>0;i--)
  178.     {
  179.      if(Hztable0[j]&tem)
  180.      {
  181.       temp|=0x03<<(i*2-2);
  182.      }
  183.      tem=tem>>1;
  184.     }
  185.     Hztable[j*2]=(temp>>8)&0xff;
  186.     Hztable[j*2+1]=temp&0xff;
  187.    }
  188. }
  189. //$$$$$$$$$$$$灰度模式下顯示一個(gè)漢字
  190. //x:0~39; y:0~239
  191. void HzDisplayOne(unchar x,unchar y,unchar *m)
  192. {
  193. unchar temp_x,temp_y;
  194. unint iiii=0,jjjj=0,c=0;
  195. temp_x=x;temp_y=y;
  196. Snow_Mode();
  197. LCD_CmdWrite(WLCR);
  198. LCD_DataWrite(0x04);
  199. lcd_grayscale_mode();
  200. for(iiii=0;iiii<16;iiii++)
  201.   {
  202.       LCD_GotoXY(temp_x,temp_y+iiii);
  203.       LCD_CmdWrite(0xb0);
  204.       for(jjjj=0;jjjj<4;jjjj++)
  205.       {
  206.         LCD_DataWrite(m[c++]);
  207.       }
  208.      }
  209. }  
  210. ///////////////////////////////////////////一行顯示4個(gè)漢字(在灰度模式下)
  211. //start_x:0~39;start_y:0~239;
  212. void writelinhz(unchar start_x,unchar start_y)
  213. {
  214.   HzConvert(HZTable1,xHzTable1,32);
  215.   HzDisplayOne(start_x,start_y,xHzTable1);
  216.         start_x+=2;
  217.         if(start_x>39)
  218.         {
  219.          start_y+=40;
  220.          start_x=0;
  221.          }
  222.   HzConvert(HZTable2,xHzTable1,32);
  223.   HzDisplayOne(start_x,start_y,xHzTable1);
  224.         start_x+=2;
  225.         if(start_x>39)
  226.         {
  227.          start_y+=40;
  228.          start_x=0;
  229.          }       
  230.   HzConvert(HZTable3,xHzTable1,32);
  231.   HzDisplayOne(start_x,start_y,xHzTable1);
  232.         start_x+=2;
  233.         if(start_x>39)
  234.         {
  235.          start_y+=40;
  236.          start_x=0;
  237.          }
  238.   HzConvert(HZTable4,xHzTable1,32);
  239.   HzDisplayOne(start_x,start_y,xHzTable1);
  240.         start_x+=2;
  241.         if(start_x>39)
  242.         {
  243.          start_y+=40;
  244.          start_x=0;
  245.          }
  246. }



  247. ///////////////////////////////////////////
  248. void lcd_inital()
  249. {
  250.         LCD_CmdWrite(WLCR);                //[00H] , Default --> 0x00
  251.         LCD_DataWrite(0x04);    //屏幕顯示開(kāi)啟  disp_off輸出high       

  252.         LCD_CmdWrite(MISC);                //[01H] , Default --> 0x00
  253.         LCD_DataWrite(0x08);

  254.         LCD_CmdWrite(ADSR);                //[03H] , Default --> 0x00
  255.         LCD_DataWrite(0x00);

  256.         LCD_CmdWrite(INTR);                //[0FH] , Default --> 0x00
  257.         LCD_DataWrite(0x00);

  258.         LCD_CmdWrite(WCCR);                //[10H] , Default --> 0x00
  259.         LCD_DataWrite(0x00);

  260.         LCD_CmdWrite(CHWI);                //[11H] , Default --> 0x00
  261.         LCD_DataWrite(0x00);

  262.         LCD_CmdWrite(MAMR);                //[12H] , Default --> 0x11
  263.         LCD_DataWrite(0x11);

  264.         LCD_CmdWrite(AWRR);                //[20H] , Default --> 0x27
  265.         LCD_DataWrite(39);

  266.         LCD_CmdWrite(DWWR);                //[21H] , Default --> 0x27
  267.         LCD_DataWrite(39);

  268.         LCD_CmdWrite(AWBR);                //[30H] , Default --> 0xEF       
  269.         LCD_DataWrite(239);

  270.         LCD_CmdWrite(DWHR);                //[31H] , Default --> 0xEF
  271.         LCD_DataWrite(239);

  272.         LCD_CmdWrite(AWLR);                //[40H] , Default --> 0x00
  273.         LCD_DataWrite(0x00);

  274.         LCD_CmdWrite(AWTR);                //[50H] , Default --> 0x00
  275.         LCD_DataWrite(0x00);

  276.         LCD_CmdWrite(CURX);                //[60H] , Default --> 0x00
  277.         LCD_DataWrite(0x00);

  278.         LCD_CmdWrite(BGSG);                //[61H] , Default --> 0x00
  279.         LCD_DataWrite(0x00);

  280.         LCD_CmdWrite(EDSG);                //[62H] , Default --> 0x00
  281.         LCD_DataWrite(0x00);

  282.         LCD_CmdWrite(CURY);                //[70H] , Default --> 0x00
  283.         LCD_DataWrite(0x00);

  284.         LCD_CmdWrite(BGCM);                //[71H] , Default --> 0x00
  285.         LCD_DataWrite(0x00);

  286.         LCD_CmdWrite(EDCM);                //[72H] , Default --> 0x00
  287.         LCD_DataWrite(0x00);

  288.         LCD_CmdWrite(BTMR);                //[80H] , Default --> 0x00
  289.         LCD_DataWrite(0x00);

  290.         LCD_CmdWrite(ITCR);                //[90H] , Default --> 0x00    需要調(diào)整
  291.         LCD_DataWrite(0x80);

  292.         LCD_CmdWrite(PNTR);                //[E0H] , Default --> 0x00
  293.         LCD_DataWrite(0x00);

  294.         LCD_CmdWrite(FNCR);                //[F0H] , Default --> 0x00
  295.         LCD_DataWrite(0x00);

  296.         LCD_CmdWrite(FVHT);                //[F1H] , Default --> 0x00
  297.         LCD_DataWrite(0x00);
  298. }

  299. /////////////////清屏子程序//////////////////////////
  300. void clear(void)
  301. {
  302.   No_Snow_Mode();
  303.   LCD_CmdWrite(WLCR);
  304.   LCD_DataWrite(0x04);     //選擇繪圖模式     
  305.   LCD_CmdWrite(PNTR);
  306.   LCD_DataWrite(0x00);
  307.   LCD_CmdWrite(FNCR);
  308.   LCD_DataWrite(0xa8);
  309.   Snow_Mode();
  310.   }
  311. //////////////全部顯示子程序///////////////////////
  312. void display_all()
  313. {
  314.     No_Snow_Mode();
  315.     LCD_CmdWrite(WLCR);
  316.     LCD_DataWrite(0x04);     //選擇繪圖模式
  317.     LCD_CmdWrite(PNTR);
  318.     LCD_DataWrite(0xff);     //全部填0xff
  319.     LCD_CmdWrite(FNCR);
  320.     LCD_DataWrite(0xa8);
  321.     Snow_Mode();
  322. }
  323. //////////////裝配測(cè)試用///////////////////////////
  324. void display_snows(unchar dat1,unchar dat2)
  325. {

  326.     unsigned int iiii=0,pppp=0;
  327.     Snow_Mode();
  328.     LCD_CmdWrite(WLCR);
  329.     LCD_DataWrite(0x04);   //選擇繪圖模式
  330.     LCD_CmdWrite(CURX);
  331.     LCD_DataWrite(0x00);   //設(shè)定X坐標(biāo)位置
  332.     LCD_CmdWrite(CURY);  
  333.     LCD_DataWrite(0x00);    //設(shè)定Y坐標(biāo)位置
  334.     LCD_CmdWrite(MWCR);
  335.            for(iiii=0;iiii<120;iiii++)
  336.            {
  337.                 for(pppp=0;pppp<40;pppp++)
  338.             {
  339.                   LCD_DataWrite(dat1);  
  340.             }   
  341.                         for(pppp=0;pppp<40;pppp++)
  342.             {
  343.                   LCD_DataWrite(dat2);  
  344.             }  
  345.            }


  346. }
  347. /////////////顯示一行邊框//////////////////////////////////

  348. void display_kuang(void)
  349. {

  350.         unsigned int n0,n1;
  351.         Snow_Mode();
  352.         LCD_CmdWrite(WLCR);
  353.         LCD_DataWrite(0x04);
  354.         LCD_CmdWrite(CURX);
  355.         LCD_DataWrite(0x00);
  356.         LCD_CmdWrite(CURY);  
  357.         LCD_DataWrite(0x00);
  358.         LCD_CmdWrite(MWCR);
  359.         for(n0=0;n0<40;n0++)
  360.                         LCD_DataWrite(0xff);

  361.         for(n0=0;n0<(238);n0++)               
  362.     {
  363.                 for(n1=0;n1<40;n1++)
  364.                 {
  365.                     if (n1==0)          LCD_DataWrite(0x80);
  366.                          else if (n1==39) LCD_DataWrite(0x01);
  367.                            else                LCD_DataWrite(0x00);
  368.         }
  369.         }

  370.         for(n0=0;n0<40;n0++)
  371.                         LCD_DataWrite(0xff);
  372. }

  373. /////////////顯示中文字庫(kù)和字符////////////////////
  374. void display_word(unchar code *cha, unint count )
  375. {
  376.         unint iiii=0;
  377.         No_Snow_Mode();
  378.         LCD_CmdWrite(WLCR);
  379.         LCD_DataWrite(0x0c);
  380.         LCD_CmdWrite(CURX);
  381.         LCD_DataWrite(0x00);
  382.         LCD_CmdWrite(CURY);  
  383.         LCD_DataWrite(0x00);
  384.         LCD_CmdWrite(MWCR);
  385.            for(iiii=0;iiii<count;iiii++)
  386.            {
  387.                LCD_DataWrite(*cha);  
  388.                ++cha;       
  389.             }   
  390. }
  391. /////////////在指定的坐標(biāo)處顯示字符串////////////////////
  392. void LCD_ShowStr(unchar xx,unchar yy,unchar *text)
  393. {
  394.         No_Snow_Mode();
  395. ……………………

  396. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


51hei.png

lcd320240資料和程序.7z

1.5 MB, 下載次數(shù): 38, 下載積分: 黑幣 -5

包含資料,程序

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:682488 發(fā)表于 2020-10-14 11:11 | 顯示全部樓層
程序復(fù)制出來(lái)有亂碼,源程序用keil5打開(kāi)可以正常顯示注釋
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产成人精品久久久国产成人一区 | 中国大陆高清aⅴ毛片 | 欧美一区二区三区免费在线观看 | 国产成人99久久亚洲综合精品 | 97精品视频在线 | 日韩无 | 国产一区二区在线播放视频 | 天天看逼| 国产999精品久久久影片官网 | 国产乱码精品一区二区三区忘忧草 | 中文字幕国产 | 少妇久久久 | 91精品国产综合久久久久久漫画 | 久久88 | 精品国产久 | 欧美久久综合 | 成人午夜免费福利视频 | 国产乱码一二三区精品 | 日韩二三区 | www.色婷婷 | 久久国产欧美日韩精品 | 成年人免费在线视频 | 在线观看日韩av | 国产色网| 激情婷婷| 国产情侣久久 | 欧美黄在线观看 | 高清黄色毛片 | 精品日韩一区二区三区 | 成人免费激情视频 | 亚洲日本一区二区 | 欧美精品一区二区三区在线四季 | 无码日韩精品一区二区免费 | 欧美日韩三级视频 | 欧美二级 | 一级a爱片久久毛片 | 波多野吉衣在线播放 | 欧美极品一区二区 | 亚洲h在线观看 | 在线看片福利 | 欧美一级在线观看 |