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

標題: lcd2684程序 st7920字庫液晶顯示 [打印本頁]

作者: ksf    時間: 2017-7-7 16:41
標題: lcd2684程序 st7920字庫液晶顯示
  1. /*-----------------------------------------------
  2.   名稱:st7920字庫液晶顯示
  3.   論壇:806899919
  4.   編寫:光匯科技
  5.   日期:2012.3
  6.   修改:無
  7.   內容:通過顯示字符、數字、漢字和圖片測試液晶基本功能
  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.                     檢測忙位
  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.                     寫數據
  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的延時程序
  69.    PSB=1;                 //設置為8BIT并口工作模式
  70.    DelayMs(1);            //延時
  71.    RES=0;                 //復位
  72.    DelayMs(1);            //延時
  73.    RES=1;                 //復位置高
  74.    DelayMs(10);
  75.    Write_Cmd(0x30);       //選擇基本指令集
  76.    DelayUs2x(50);         //延時大于100us
  77.    Write_Cmd(0x30);       //選擇8bit數據流
  78.    DelayUs2x(20);         //延時大于37us
  79.    Write_Cmd(0x0c);       //開顯示(無游標、不反白)
  80.    DelayUs2x(50);         //延時大于100us
  81.    Write_Cmd(0x01);       //清除顯示,并且設定地址指針為00H
  82.    DelayMs(15);           //延時大于10ms
  83.    Write_Cmd(0x06);       //指定在資料的讀取及寫入時,設定游標的移動方向及指定顯示的移位,光標從右向左加1位移動
  84.    DelayUs2x(50);         //延時大于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:橫坐標值,范圍0~8
  119. y:縱坐標值,范圍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. //顯示上半屏內容設置
  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. //顯示下半屏內容設置
  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.                  設置到繪圖模式
  178. ------------------------------------------------*/
  179. void SetGraphicMode()
  180. {
  181.    Write_Cmd(0x36);       //選擇8bit數據流 圖形模式
  182.    DelayUs2x(20);

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

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


  198.     Init_ST7920();   //初始化
  199.         LCD_PutString(0,1,"智能家居控制系統");
  200.           LCD_PutString(0,2,"學生:鄭家波");         
  201.           LCD_PutString(0,3,"老師:李湘文");
  202.       LCD_PutString(0,4,"時間:2015/5/5");   
  203.           //延時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.           //延時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.                                                   */


復制代碼

作者: sz_mcu    時間: 2018-1-16 19:46
有沒有試過,能亮嗎?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品99久久久久久www | 2021天天干夜夜爽 | www狠狠干 | 午夜av免费| 国产欧美精品一区 | 玩丰满女领导对白露脸hd | 欧美视频网| 全免费a级毛片免费看视频免 | 久久综合久久久 | 在线播放一区二区三区 | 久久久91精品国产一区二区精品 | 日本在线综合 | 中文字幕人成乱码在线观看 | 91一区二区 | 一区二区高清在线观看 | 美国黄色毛片 | 欧美999 | 三级av在线 | 久久久久9999亚洲精品 | 91久久婷婷 | 一级全黄少妇性色生活免费看 | 中文字幕亚洲欧美日韩在线不卡 | a在线视频观看 | 超碰导航| 欧美日韩国产传媒 | 亚洲精品高清视频在线观看 | 久久久久久久综合 | 在线观看av中文字幕 | 一级黄色大片 | 日韩小视频| 国产乱码高清区二区三区在线 | 在线观看中文字幕dvd播放 | 亚洲国产中文在线 | 成人国产精品久久久 | 日本又色又爽又黄又高潮 | 成人免费视频7777777 | 91精品中文字幕一区二区三区 | 先锋资源吧 | 国产日韩av一区二区 | 久久99蜜桃综合影院免费观看 | 一区二区久久电影 |