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

標(biāo)題: lcd2684程序 st7920字庫(kù)液晶顯示 [打印本頁(yè)]

作者: ksf    時(shí)間: 2017-7-7 16:41
標(biāo)題: lcd2684程序 st7920字庫(kù)液晶顯示
  1. /*-----------------------------------------------
  2.   名稱:st7920字庫(kù)液晶顯示
  3.   論壇:806899919
  4.   編寫:光匯科技
  5.   日期:2012.3
  6.   修改:無(wú)
  7.   內(nèi)容:通過(guò)顯示字符、數(shù)字、漢字和圖片測(cè)試液晶基本功能
  8. ------------------------------------------------*/
  9. #include <reg52.h>
  10. #include "delay.h"

  11. sbit RS = P2^2;
  12. sbit RW = P2^1;
  13. sbit E  = P2^0;
  14. sbit RES = P2^5;
  15. sbit PSB = P2^3;

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


  17. /*
  18. unsigned char code user16x16[]={ //笑臉圖片
  19. 0x0F,0xF0,0x10,0x08,0x20,0x04,0x40,0x02,0x9C,0x39,0xBE,0x7D,0x80,0x01,0x80,0x01,
  20. 0x80,0x01,0x88,0x11,0x84,0x21,0x43,0xC2,0x20,0x04,0x10,0x08,0x0F,0xF0,0x00,0x00,
  21. };
  22.    */
  23. /*------------------------------------------------
  24.                     檢測(cè)忙位
  25. ------------------------------------------------*/
  26. void Check_Busy()
  27. {  
  28.     RS=0;
  29.     RW=1;
  30.     E=1;
  31.     DataPort=0xff;
  32.     while((DataPort&0x80)==0x80);//忙則等待
  33.     E=0;
  34. }
  35. /*------------------------------------------------
  36.                    寫命令
  37. ------------------------------------------------*/
  38. void Write_Cmd(unsigned char Cmd)
  39. {
  40.         Check_Busy();
  41.         RS=0;
  42.         RW=0;
  43.         E=1;
  44.         DataPort=Cmd;
  45.         DelayUs2x(5);
  46.         E=0;
  47.         DelayUs2x(5);
  48. }
  49. /*------------------------------------------------
  50.                     寫數(shù)據(jù)
  51. ------------------------------------------------*/
  52. void Write_Data(unsigned char Data)
  53. {
  54.         Check_Busy();
  55.         RS=1;
  56.         RW=0;
  57.         E=1;
  58.         DataPort=Data;
  59.         DelayUs2x(5);
  60.         E=0;
  61.         DelayUs2x(5);
  62. }
  63. /*------------------------------------------------
  64.                    液晶屏初始化
  65. ------------------------------------------------*/
  66. void Init_ST7920()
  67. {  
  68.    DelayMs(40);           //大于40MS的延時(shí)程序
  69.    PSB=1;                 //設(shè)置為8BIT并口工作模式
  70.    DelayMs(1);            //延時(shí)
  71.    RES=0;                 //復(fù)位
  72.    DelayMs(1);            //延時(shí)
  73.    RES=1;                 //復(fù)位置高
  74.    DelayMs(10);
  75.    Write_Cmd(0x30);       //選擇基本指令集
  76.    DelayUs2x(50);         //延時(shí)大于100us
  77.    Write_Cmd(0x30);       //選擇8bit數(shù)據(jù)流
  78.    DelayUs2x(20);         //延時(shí)大于37us
  79.    Write_Cmd(0x0c);       //開(kāi)顯示(無(wú)游標(biāo)、不反白)
  80.    DelayUs2x(50);         //延時(shí)大于100us
  81.    Write_Cmd(0x01);       //清除顯示,并且設(shè)定地址指針為00H
  82.    DelayMs(15);           //延時(shí)大于10ms
  83.    Write_Cmd(0x06);       //指定在資料的讀取及寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位,光標(biāo)從右向左加1位移動(dòng)
  84.    DelayUs2x(50);         //延時(shí)大于100us
  85. }
  86. /*------------------------------------------------
  87.                    用戶自定義字符
  88. ------------------------------------------------
  89. void CGRAM()
  90. {
  91.      int i;
  92.      Write_Cmd(0x30);
  93.      Write_Cmd(0x40);
  94.      for(i=0;i<16;i++)
  95.        {
  96.             Write_Data(user16x16[i*2]);
  97.         Write_Data(user16x16[i*2+1]);
  98.       }
  99. }                                   */
  100. /*------------------------------------------------
  101.                    顯示用戶自定義字符
  102. ------------------------------------------------
  103. void DisplayCGRAM(unsigned char x,unsigned char y)
  104. {                                                                                                                                                                                          
  105. switch(y)
  106.      {
  107.           case 1: Write_Cmd(0x80+x);break;
  108.           case 2: Write_Cmd(0x90+x);break;
  109.           case 3: Write_Cmd(0x88+x);break;
  110.           case 4: Write_Cmd(0x98+x);break;
  111.       default:break;
  112.          }
  113.     Write_Data(00);
  114.     Write_Data(00);

  115. }                                         */
  116. /*------------------------------------------------
  117.                    顯示字符串
  118. x:橫坐標(biāo)值,范圍0~8
  119. y:縱坐標(biāo)值,范圍1~4
  120. ------------------------------------------------*/
  121. void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s)
  122. {
  123. switch(y)
  124.      {
  125.           case 1: Write_Cmd(0x80+x);break;
  126.           case 2: Write_Cmd(0x90+x);break;
  127.           case 3: Write_Cmd(0x88+x);break;
  128.           case 4: Write_Cmd(0x98+x);break;
  129.       default:break;
  130.          }
  131. while(*s>0)
  132.    {
  133.       Write_Data(*s);
  134.       s++;
  135.       DelayUs2x(50);
  136.    }
  137. }
  138. /*------------------------------------------------
  139.                       清屏
  140. ------------------------------------------------*/
  141. void ClrScreen()
  142. {
  143.    Write_Cmd(0x01);
  144.    DelayMs(15);
  145. }
  146.            
  147. /*------------------------------------------------
  148.                    顯示圖片
  149. ------------------------------------------------*/
  150. void LCD_PutGraphic(unsigned char code *img)
  151. {
  152. int i,j;
  153. //顯示上半屏內(nèi)容設(shè)置
  154.    for(i=0;i<32;i++)            
  155.     {
  156.       Write_Cmd(0x80 + i); //SET  垂直地址 VERTICAL ADD
  157.       Write_Cmd(0x80);     //SET  水平地址 HORIZONTAL ADD
  158.       for(j=0;j<16;j++)
  159.        {
  160.          Write_Data(*img);
  161.          img++;
  162.        }
  163.     }
  164. //顯示下半屏內(nèi)容設(shè)置
  165.    for(i=0;i<32;i++)            
  166.     {
  167.       Write_Cmd(0x80 + i); //SET 垂直地址 VERTICAL ADD
  168.       Write_Cmd(0x88);     //SET 水平地址 HORIZONTAL ADD
  169.       for(j=0;j<16;j++)
  170.        {
  171.          Write_Data(*img);
  172.          img++;
  173.        }
  174.     }  

  175. }
  176. /*------------------------------------------------
  177.                  設(shè)置到繪圖模式
  178. ------------------------------------------------*/
  179. void SetGraphicMode()
  180. {
  181.    Write_Cmd(0x36);       //選擇8bit數(shù)據(jù)流 圖形模式
  182.    DelayUs2x(20);

  183. }
  184. void display_init()
  185. {
  186.           LCD_PutString(0,1,"智能家居控制系統(tǒng)");
  187.           LCD_PutString(0,2,"學(xué)生:鄭家波");         
  188.           LCD_PutString(0,3,"老師:李湘文");
  189.       LCD_PutString(0,4,"時(shí)間:2015/6/2");   
  190. }

  191. /*------------------------------------------------
  192.                  主程序
  193. ------------------------------------------------
  194. main()
  195. {
  196.   unsigned char i;
  197.   // CGRAM();     //寫入自定義字符


  198.     Init_ST7920();   //初始化
  199.         LCD_PutString(0,1,"智能家居控制系統(tǒng)");
  200.           LCD_PutString(0,2,"學(xué)生:鄭家波");         
  201.           LCD_PutString(0,3,"老師:李湘文");
  202.       LCD_PutString(0,4,"時(shí)間:2015/5/5");   
  203.           //延時(shí)30x200ms   
  204.       for(i=0;i<30;i++)
  205.           DelayMs(200);
  206.            ClrScreen();
  207.                     while(1)
  208.    {
  209.           LCD_PutString(0,1,"窗簾OFF 燈光OFF");
  210.           LCD_PutString(0,2,"煙霧OK  溫度OK ");
  211.           LCD_PutString(0,3,"  溫度:28°C");
  212.       LCD_PutString(0,4,"  光照度:53% ");   
  213.           //延時(shí)30x200ms   
  214.       for(i=0;i<30;i++)
  215.           DelayMs(200);
  216.                   LCD_PutString(0,1,"窗簾ON  燈光OFF");
  217.                   for(i=0;i<30;i++)
  218.           DelayMs(200);
  219.           ClrScreen();
  220.           LCD_PutString(0,2,"  短信通知中...");        //"正”字顯示不出
  221.             for(i=0;i<20;i++)
  222.           DelayMs(200);
  223.            


  224.    }
  225. }
  226.                                                   */


復(fù)制代碼

作者: sz_mcu    時(shí)間: 2018-1-16 19:46
有沒(méi)有試過(guò),能亮嗎?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人做爰9片免费看网站 | 91视视频在线观看入口直接观看 | 国产欧美在线观看 | 日韩高清在线观看 | 91久久电影| 久久夜色精品国产 | 欧美日韩在线一区二区 | 国产一区在线视频 | www.亚洲一区二区三区 | 91网站在线观看视频 | 国产精品久久久久久婷婷天堂 | 欧美日韩电影一区二区 | 精品久久一区 | 国产精品大片 | 性精品| 91精品国产手机 | 羞羞视频在线网站观看 | 中文字幕视频在线观看 | 中文字幕在线看 | 国产免费观看一区 | 色视频在线免费观看 | av国产精品 | 国产精品资源在线观看 | 国产精品久久久久久亚洲调教 | 欧美成人一区二区三区 | 国产成人麻豆免费观看 | 欧美精 | 日本色婷婷 | 国产精品18久久久久久白浆动漫 | 成人免费在线视频 | 国产免费福利在线 | 日韩三级| 免费观看毛片 | 欧美激情亚洲激情 | 国产精品久久国产精品 | 亚洲欧美日韩精品久久亚洲区 | 日韩1区 | 99久久精品免费看国产免费软件 | 亚洲视频在线播放 | 亚洲精品一区二区三区蜜桃久 | 亚洲欧美综合 |