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

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

QQ登錄

只需一步,快速開始

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

這個(gè)單片機(jī)st7920液晶程序里面Write_Data(00);的作用?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:721008 發(fā)表于 2020-9-16 17:24 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
此程序是一個(gè)開發(fā)板(51單片機(jī)的12684顯示)的教程程序,void DisplayCGRAM(unsigned char x,unsigned char y)這個(gè)函數(shù)是如何對(duì)void CGRAM()函數(shù)進(jìn)行顯示的,Display是一個(gè)關(guān)鍵字嗎?還有Write_Data(00);這條語句的作用是什么?如何去理解?
求大神解答,謝謝。
  1. /*-----------------------------------------------
  2.   名稱:st7920字庫(kù)液晶顯示
  3.   修改:無
  4.   內(nèi)容:通過顯示字符、數(shù)字、漢字和圖片測(cè)試液晶基本功能
  5. ------------------------------------------------*/
  6. #include <reg52.h>
  7. #include <intrins.h>
  8. #include "delay.h"

  9. sbit RS = P2^4;
  10. sbit RW = P2^5;
  11. sbit E  = P2^6;
  12. sbit RES = P2^3;
  13. sbit PSB = P2^1;
  14. sbit PAUSE = P3^0;

  15. #define DataPort P0        //MCU P0<------> LCM



  16. unsigned char code user16x16[]={ //笑臉圖片
  17. 0x0F,0xF0,0x10,0x08,0x20,0x04,0x40,0x02,0x9C,0x39,0xBE,0x7D,0x80,0x01,0x80,0x01,
  18. 0x80,0x01,0x88,0x11,0x84,0x21,0x43,0xC2,0x20,0x04,0x10,0x08,0x0F,0xF0,0x00,0x00,
  19. };
  20. unsigned char code pic1[]=      // 圖片代碼
  21. {
  22. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  23. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  24. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  25. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  26. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  27. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  28. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  29. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  30. 0xC0,0x1F,0xFF,0x81,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  31. 0xC0,0x1F,0xFF,0x81,0xFF,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  32. 0xC0,0x18,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x00,0x00,0x03,
  33. 0xC0,0x1F,0xFF,0x80,0x00,0x00,0x04,0x07,0x81,0xE0,0x10,0x10,0x03,0xC0,0x30,0x03,
  34. 0xC0,0x1F,0xFF,0x80,0x00,0x00,0x0C,0x0C,0xC3,0x30,0x08,0x20,0x0C,0xE0,0x70,0x03,
  35. 0xC0,0x18,0x01,0x87,0xFF,0xFE,0x3C,0x18,0x66,0x18,0x04,0x40,0x0C,0x60,0x70,0x03,
  36. 0xC0,0x1F,0xFF,0x87,0xFF,0xFE,0x0C,0x18,0x66,0x18,0x02,0x80,0x18,0x00,0xB0,0x03,
  37. 0xC0,0x1F,0xFF,0x80,0x06,0x00,0x0C,0x18,0x66,0x18,0x01,0x00,0x1B,0x81,0x30,0x03,
  38. 0xC0,0x01,0x98,0x00,0x06,0x00,0x0C,0x00,0xE3,0x30,0x02,0x80,0x1C,0xC1,0x30,0x03,
  39. 0xC0,0x19,0x99,0x80,0x66,0x60,0x0C,0x00,0xC1,0xE0,0x04,0x40,0x18,0x62,0x30,0x03,
  40. 0xC0,0x19,0x99,0x80,0x66,0x30,0x0C,0x01,0x83,0x30,0x08,0x20,0x18,0x66,0x30,0x03,
  41. 0xC0,0x0D,0x9B,0x00,0xC6,0x38,0x0C,0x03,0x06,0x18,0x10,0x10,0x18,0x67,0xFC,0x03,
  42. 0xC0,0x0D,0x9B,0x01,0xC6,0x1C,0x0C,0x06,0x06,0x18,0x20,0x08,0x18,0x60,0x30,0x03,
  43. 0xC0,0x01,0x98,0x03,0x86,0x0C,0x0C,0x0C,0x06,0x18,0x00,0x00,0x08,0x60,0x30,0x03,
  44. 0xC0,0x7F,0xFF,0xE3,0x06,0x00,0x0C,0x18,0x03,0x30,0x00,0x00,0x0C,0xC0,0x30,0x03,
  45. 0xC0,0x7F,0xFF,0xE0,0x1E,0x00,0x0C,0x1F,0xE1,0xE0,0x00,0x00,0x07,0x80,0x30,0x03,
  46. 0xC0,0x00,0x00,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  47. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  48. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  49. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  50. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  51. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  52. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  53. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  54. 0xC0,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x18,0x00,0x00,0x00,0x06,0x0C,0x03,
  55. 0xC3,0xFF,0xFC,0x3F,0xF0,0x80,0x0C,0x00,0x3F,0x18,0x01,0xFF,0xFE,0x06,0x0C,0x03,
  56. 0xC3,0xFF,0xFC,0x3F,0xF1,0x80,0x0F,0xFC,0x3F,0x18,0x01,0xFF,0xFE,0x06,0x0C,0x03,
  57. 0xC3,0x0C,0x0C,0x0C,0xC3,0x00,0x0F,0xFC,0x33,0x7F,0xE1,0x86,0x06,0x06,0x0C,0x03,
  58. 0xC3,0x1F,0xCC,0x0C,0xC6,0x00,0x0C,0x00,0x33,0x7F,0xE1,0x8F,0xE6,0x06,0x0C,0x03,
  59. 0xC3,0x3F,0xCC,0x0C,0xCC,0x00,0x0C,0x00,0x36,0x30,0x01,0x9F,0xE6,0x07,0xFF,0xE3,
  60. 0xC3,0x79,0x8C,0x0C,0xC8,0x00,0xFF,0xF0,0x36,0x36,0x01,0xBC,0xC6,0x07,0xFF,0xE3,
  61. 0xC3,0x6F,0x0C,0x7F,0xF0,0xC0,0xFF,0xF0,0x36,0x66,0x01,0xB7,0x86,0x06,0x00,0x03,
  62. 0xC3,0x0F,0x0C,0x7F,0xF1,0x80,0xC0,0x30,0x36,0x7F,0xC1,0x87,0x86,0x06,0x00,0x03,
  63. 0xC3,0x79,0xEC,0x0C,0xC3,0x00,0xC0,0x30,0x33,0x7F,0xC1,0xBC,0xF6,0x06,0x00,0x03,
  64. 0xC3,0x76,0xEC,0x0C,0xC6,0x00,0xC0,0x30,0x33,0x06,0x01,0xBB,0x76,0x07,0xFF,0x03,
  65. 0xC3,0x07,0x0C,0x0C,0xCC,0x20,0xFF,0xF0,0x33,0x06,0x01,0x83,0x86,0x07,0xFF,0x03,
  66. 0xC3,0x03,0x0C,0x18,0xC8,0x60,0xFF,0xF0,0x3F,0x06,0x01,0x81,0x86,0x06,0x03,0x03,
  67. 0xC3,0x1C,0x0C,0x18,0xC0,0xC0,0x00,0x00,0x3E,0xFF,0xE1,0x8E,0x06,0x06,0x03,0x03,
  68. 0xC3,0x1F,0x0C,0x18,0xC1,0x81,0xB1,0x8C,0x30,0xFF,0xE1,0x8F,0x86,0x06,0x03,0x03,
  69. 0xC3,0x03,0x0C,0x30,0xC7,0x01,0xB1,0x8C,0x30,0x06,0x01,0x81,0x86,0x0C,0x03,0x03,
  70. 0xC3,0xFF,0xFC,0x70,0xDE,0x03,0x18,0xC6,0x30,0x06,0x01,0xFF,0xFE,0x0C,0x03,0x03,
  71. 0xC3,0xFF,0xFC,0x20,0x18,0x03,0x18,0xC6,0x30,0x06,0x01,0xFF,0xFE,0x18,0x03,0x03,
  72. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  73. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  74. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  75. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  76. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  77. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  78. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  79. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  80. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  81. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  82. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  83. 0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
  84. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  85. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

  86. };

  87. /*------------------------------------------------
  88.                     檢測(cè)忙位
  89. ------------------------------------------------*/
  90. void Check_Busy()
  91. {  
  92.     RS=0;
  93.     RW=1;
  94.     E=1;
  95.     DataPort=0xff;
  96.     while((DataPort&0x80)==0x80);//忙則等待
  97.     E=0;
  98. }
  99. /*------------------------------------------------
  100.                    寫命令
  101. ------------------------------------------------*/
  102. void Write_Cmd(unsigned char Cmd)
  103. {
  104.         Check_Busy();
  105.         RS=0;
  106.         RW=0;
  107.         E=1;
  108.         DataPort=Cmd;
  109.         DelayUs2x(5);
  110.         E=0;
  111.         DelayUs2x(5);
  112. }
  113. /*------------------------------------------------
  114.                     寫數(shù)據(jù)
  115. ------------------------------------------------*/
  116. void Write_Data(unsigned char Data)
  117. {
  118.         Check_Busy();
  119.         RS=1;
  120.         RW=0;
  121.         E=1;
  122.         DataPort=Data;
  123.         DelayUs2x(5);
  124.         E=0;
  125.         DelayUs2x(5);
  126. }
  127. /*------------------------------------------------
  128.                    液晶屏初始化
  129. ------------------------------------------------*/
  130. void Init_ST7920()
  131. {  
  132.    DelayMs(40);           //大于40MS的延時(shí)程序
  133.    PSB=1;                 //設(shè)置為8BIT并口工作模式
  134.    DelayMs(1);            //延時(shí)
  135.    RES=0;                 //復(fù)位
  136.    DelayMs(1);            //延時(shí)
  137.    RES=1;                 //復(fù)位置高
  138.    DelayMs(10);
  139.    Write_Cmd(0x30);       //選擇基本指令集
  140.    DelayUs2x(50);         //延時(shí)大于100us
  141.    Write_Cmd(0x30);       //選擇8bit數(shù)據(jù)流
  142.    DelayUs2x(20);         //延時(shí)大于37us
  143.    Write_Cmd(0x0c);       //開顯示(無游標(biāo)、不反白)
  144.    DelayUs2x(50);         //延時(shí)大于100us
  145.    Write_Cmd(0x01);       //清除顯示,并且設(shè)定地址指針為00H
  146.    DelayMs(15);           //延時(shí)大于10ms
  147.    Write_Cmd(0x06);       //指定在資料的讀取及寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位,光標(biāo)從右向左加1位移動(dòng)
  148.    DelayUs2x(50);         //延時(shí)大于100us
  149. }
  150. /*------------------------------------------------
  151.                    用戶自定義字符
  152. ------------------------------------------------*/
  153. void CGRAM()
  154. {
  155.      int i;
  156.      Write_Cmd(0x30);
  157.      Write_Cmd(0x40);
  158.      for(i=0;i<16;i++)
  159.        {
  160.             Write_Data(user16x16[i*2]);
  161.         Write_Data(user16x16[i*2+1]);
  162.       }
  163. }   
  164. /*------------------------------------------------
  165.                    顯示用戶自定義字符
  166. ------------------------------------------------*/
  167. void DisplayCGRAM(unsigned char x,unsigned char y)
  168. {
  169. switch(y)
  170.      {
  171.           case 1: Write_Cmd(0x80+x);break;
  172.           case 2: Write_Cmd(0x90+x);break;
  173.           case 3: Write_Cmd(0x88+x);break;
  174.           case 4: Write_Cmd(0x98+x);break;
  175.       default:break;
  176.          }
  177.     Write_Data(00);
  178.     Write_Data(00);

  179. }         
  180. /*------------------------------------------------
  181.                    顯示字符串
  182. x:橫坐標(biāo)值,范圍0~8
  183. y:縱坐標(biāo)值,范圍1~4
  184. ------------------------------------------------*/
  185. void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s)
  186. {
  187. switch(y)
  188.      {
  189.           case 1: Write_Cmd(0x80+x);break;
  190.           case 2: Write_Cmd(0x90+x);break;
  191.           case 3: Write_Cmd(0x88+x);break;
  192.           case 4: Write_Cmd(0x98+x);break;
  193.       default:break;
  194.          }
  195. while(*s>0)
  196.    {
  197.       Write_Data(*s);
  198.       s++;
  199.       DelayUs2x(50);
  200.    }
  201. }
  202. /*------------------------------------------------
  203.                       清屏
  204. ------------------------------------------------*/
  205. void ClrScreen()
  206. {
  207.    Write_Cmd(0x01);
  208.    DelayMs(15);
  209. }
  210.          
  211. /*------------------------------------------------
  212.                    顯示圖片
  213. ------------------------------------------------*/
  214. void LCD_PutGraphic(unsigned char code *img)
  215. {
  216. int i,j;
  217. //顯示上半屏內(nèi)容設(shè)置
  218.    for(i=0;i<32;i++)            
  219.     {
  220.       Write_Cmd(0x80 + i); //SET  垂直地址 VERTICAL ADD
  221.       Write_Cmd(0x80);     //SET  水平地址 HORIZONTAL ADD
  222.       for(j=0;j<16;j++)
  223.        {
  224.          Write_Data(*img);
  225.          img++;
  226.        }
  227.     }
  228. //顯示下半屏內(nèi)容設(shè)置
  229.    for(i=0;i<32;i++)            
  230.     {
  231.       Write_Cmd(0x80 + i); //SET 垂直地址 VERTICAL ADD
  232.       Write_Cmd(0x88);     //SET 水平地址 HORIZONTAL ADD
  233.       for(j=0;j<16;j++)
  234.        {
  235.          Write_Data(*img);
  236.          img++;
  237.        }
  238.     }  

  239. }
  240. /*------------------------------------------------
  241.                  設(shè)置到繪圖模式
  242. ------------------------------------------------*/
  243. void SetGraphicMode()
  244. {
  245.    Write_Cmd(0x36);       //選擇8bit數(shù)據(jù)流 圖形模式
  246.    DelayUs2x(20);

  247. }
  248. /*------------------------------------------------
  249.                  主程序
  250. ------------------------------------------------*/
  251. main()
  252. {
  253.   unsigned char i;
  254.    CGRAM();     //寫入自定義字符
  255.    while(1)
  256.    {

  257.       Init_ST7920();   //初始化
  258.       LCD_PutString(0,1,"  單片機(jī)  ");
  259.           LCD_PutString(0,2,"技術(shù)論壇");
  260.           LCD_PutString(0,3,"LCD12864點(diǎn)陣液晶");
  261.       LCD_PutString(0,4,"ST7920  測(cè)試程序");   
  262.           DisplayCGRAM(7,1); //在第一行第一個(gè)位置和
  263.           DisplayCGRAM(0,1);//最后一個(gè)位置寫入自定義圖片笑臉
  264.           //延時(shí)30x200ms   
  265.       for(i=0;i<30;i++)
  266.           DelayMs(200);

  267.           LCD_PutString(0,1,"  專用技術(shù)論壇  ");
  268.           LCD_PutString(0,2," wwwxxxx.net ");
  269.           LCD_PutString(0,3," wwwxxxxxcom ");
  270.       LCD_PutString(0,4,"  專業(yè)成就卓越! ");   
  271.           DisplayCGRAM(0,1); //寫入自定義圖片笑臉
  272.           DisplayCGRAM(0,4);
  273.           //延時(shí)30x200ms   
  274.       for(i=0;i<30;i++)
  275.           DelayMs(200);

  276.           ClrScreen();          //清屏
  277.           SetGraphicMode();     //設(shè)置成繪圖模式
  278.       LCD_PutGraphic(pic1); //調(diào)入一幅圖畫
  279.       //延時(shí)20x200ms
  280.       for(i=0;i<20;i++)
  281.           DelayMs(200);

  282.           ClrScreen();
  283.          


  284.    }
  285. }
復(fù)制代碼



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

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2020-9-16 21:10 | 只看該作者
這個(gè)是往st7920寄存器里面寫數(shù)據(jù),要弄懂這個(gè)必須得先精通液晶的寄存器才行
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩久久精品 | 日韩欧美在线观看 | 中文字幕一区二区三区精彩视频 | 一级a性色生活片久久毛片波多野 | 精品真实国产乱文在线 | 午夜精品久久久久久久99黑人 | 亚洲一区免费 | 超碰日本 | 欧美成人一级 | 成人欧美一区二区 | 日本a∨视频| 欧美视频1区 | 秋霞a级毛片在线看 | 国产激情一区二区三区 | 国产精品毛片一区二区三区 | 国产精品中文字幕一区二区三区 | 亚洲精品在 | 久久黄视频 | 99视频精品 | 亚洲精品乱码久久久久久按摩观 | 午夜免费网站 | 黄色在线免费观看视频 | 日韩av一区二区在线观看 | 精品国产乱码久久久久久蜜退臀 | 久久在线视频 | 成人免费视频一区 | 久久久91精品国产一区二区三区 | 国产在线一区二区三区 | 国产精品久久99 | 黄色大片免费网站 | 一级亚洲| 无人区国产成人久久三区 | 久久91精品久久久久久9鸭 | 精品久久久久一区二区国产 | 久久伊人在 | 91在线免费视频 | 岛国av免费观看 | 欧美在线二区 | www.久久久久久久久久久久 | 国产激情免费视频 | 精品久久久一区 |