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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1270|回復: 0
打印 上一主題 下一主題
收起左側

LCD12864、STC15 單片機并行連接方式多文件編程

[復制鏈接]
跳轉到指定樓層
樓主
ID:369306 發表于 2019-7-21 09:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #ifndef __LCD12864_H__
  2. #define __LCD12864_H__
  3. #include<stc15.h>
  4. #define DataPort P0        //MCU P0<------> LCM
  5. sbit RS=P5^5;
  6. sbit RW=P4^2;
  7. sbit E=P4^1;
  8. sbit PSB=P1^1;
  9. sbit RES=P1^0;
  10. /*????????*/
  11. //??????λ
  12. void Check_Busy();
  13. //д???
  14. void Write_Cmd(unsigned char Cmd);
  15. //д????
  16. void Write_Data(unsigned char Data);
  17. //LCD?????????
  18. void Init_LCD12864();
  19. //???????????
  20. void CGRAM();
  21. //??????????????
  22. void DisplayCGRAM(unsigned char x,unsigned char y);
  23. //????????  x:???????????Χ0~8  y:???????????Χ1~4
  24. void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s);
  25. //????
  26. void ClrScreen();
  27. //?????
  28. void LCD_PutGraphic(unsigned char code *img);
  29. //??????????
  30. void SetGraphicMode();
  31. #endif



  32. #include"LCD12864.h"
  33. #include "delay.h"[/b]
  34. //????λ
  35. void Check_Busy()
  36. {  
  37.     RS=0;
  38.     RW=1;
  39.     E=1;
  40.     DataPort=0xff;
  41.     while((DataPort&0x80)==0x80);//?????
  42.     E=0;
  43. }

  44. //д????
  45. [b]void Write_Cmd(unsigned char Cmd)
  46. {
  47. Check_Busy();
  48. RS=0;
  49. RW=0;
  50. E=1;
  51. DataPort=Cmd;
  52. DelayUs2x(5);
  53. E=0;
  54. DelayUs2x(5);
  55. }
  56. //д????
  57. [b]void Write_Data(unsigned char Data)
  58. {
  59. Check_Busy();
  60. RS=1;
  61. RW=0;
  62. E=1;
  63. DataPort=Data;
  64. DelayUs2x(5);
  65. E=0;
  66. DelayUs2x(5);
  67. }[/b]
  68. [b]
  69. //??????????
  70. void Init_LCD12864()
  71. {  
  72.    DelayMs(40);           //????40MS?????????
  73.    PSB=1;                 //?????8BIT?????????
  74.    DelayMs(1);            //???
  75.    RES=0;                 //??λ
  76.    DelayMs(1);            //???
  77.    RES=1;                 //??λ???
  78.    DelayMs(10);
  79.    Write_Cmd(0x30);       //?????????
  80.    DelayUs2x(50);         //???????100us
  81.    Write_Cmd(0x30);       //???8bit??????
  82.    DelayUs2x(20);         //???????37us
  83.    Write_Cmd(0x0c);       //?????(???α???????)
  84.    DelayUs2x(50);         //???????100us
  85.    Write_Cmd(0x01);       //?????????????趨???????00H
  86.    DelayMs(15);           //???????10ms
  87.    Write_Cmd(0x06);       //??????????????д??????趨?α???????????????????λ?????????????1λ???
  88.    DelayUs2x(50);         //???????100us
  89. }
  90. //???????????
  91. void CGRAM()
  92. {
  93.      Write_Cmd(0x30);
  94.      Write_Cmd(0x40);
  95. }
  96. //??????????????
  97. void DisplayCGRAM(unsigned char x,unsigned char y)
  98. {
  99. switch(y)
  100.      {
  101.    case 1: Write_Cmd(0x80+x);break;
  102.    case 2: Write_Cmd(0x90+x);break;
  103.    case 3: Write_Cmd(0x88+x);break;
  104.    case 4: Write_Cmd(0x98+x);break;
  105.       default:break;
  106.   }
  107.     Write_Data(00);
  108.     Write_Data(00);[/b]
  109. }      
  110. //????????  x:???????????Χ0~8  y:???????????Χ1~4
  111. void LCD_PutString(unsigned char x,unsigned char y,unsigned char code *s)
  112. {
  113. switch(y)
  114.      {
  115.    case 1: Write_Cmd(0x80+x);break;
  116.    case 2: Write_Cmd(0x90+x);break;
  117.    case 3: Write_Cmd(0x88+x);break;
  118.    case 4: Write_Cmd(0x98+x);break;
  119.       default:break;
  120.   }
  121. while(*s>0)
  122.    {
  123.       Write_Data(*s);
  124.       s++;
  125.       DelayUs2x(50);
  126.    }
  127. }[/b]
  128. [b]//????
  129. void ClrScreen()
  130. {
  131.    Write_Cmd(0x01);
  132.    DelayMs(15);
  133. }
  134.    
  135. //?????
  136. void LCD_PutGraphic(unsigned char code *img)
  137. {
  138. int i,j;
  139.   //????????????????
  140.    for(i=0;i<32;i++)            
  141.     {
  142.       Write_Cmd(0x80 + i); //SET  ?????? VERTICAL ADD
  143.       Write_Cmd(0x80);     //SET  ????? HORIZONTAL ADD
  144.       for(j=0;j<16;j++)
  145.        {
  146.          Write_Data(*img);
  147.          img++;
  148.        }
  149.     }
  150.   //????°???????????
  151.    for(i=0;i<32;i++)            
  152.     {
  153.       Write_Cmd(0x80 + i); //SET ?????? VERTICAL ADD
  154.       Write_Cmd(0x88);     //SET ????? HORIZONTAL ADD
  155.       for(j=0;j<16;j++)
  156.        {
  157.          Write_Data(*img);
  158.          img++;
  159.        }
  160.     }  
  161.            
  162. }
  163. //??????????
  164. void SetGraphicMode()
  165. {
  166.    Write_Cmd(0x36);       //???8bit?????? ?????
  167.    DelayUs2x(20);
  168. }  
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产精品色av免费观看 | 超碰人人人人 | 永久精品| 国产精品美女久久久久aⅴ国产馆 | 99精品福利视频 | 午夜91| 日韩在线观看网站 | 在线中文字幕av | 亚洲日本一区二区 | 亚洲精品成人av久久 | 97精品超碰一区二区三区 | 色眯眯视频在线观看 | 日日久 | 久久久精品日本 | 色一情一乱一伦一区二区三区 | 国产日韩欧美精品一区二区 | 亚洲一区二区三区桃乃木香奈 | 国产福利视频 | 欧美日韩精品一区二区 | 成人亚洲视频 | 精品一区电影 | 日韩精品一区二区三区在线播放 | 第四色播日韩第一页 | 超碰免费在线 | av大片 | 婷婷五月色综合香五月 | 四虎影音| 91偷拍精品一区二区三区 | 99re国产精品| 在线色网 | 91视频大全 | 成人精品一区二区三区中文字幕 | 成人免费精品视频 | 久久久久久久久久一区二区 | 午夜国产| 大乳boobs巨大吃奶挤奶 | 欧美在线成人影院 | 欧美一级片在线播放 | 日韩中文字幕在线观看视频 | 一区二区三区在线观看免费视频 | 九九热在线视频观看这里只有精品 |