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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9630|回復: 1
收起左側

51單片機基礎實驗程序:LCD9648液晶

[復制鏈接]
ID:888792 發表于 2021-3-5 19:59 | 顯示全部樓層 |閱讀模式
LCD9648液晶刷屏、顯示圖片、顯示文字程序
51hei.png
單片機源程序如下:
  1. #include<reg51.h>

  2. sbit CS0  = P0^0;                //片選
  3. sbit RST  = P0^1;                //復位
  4. sbit RS   = P2^7;                 //數據命令選擇端
  5. sbit SCL  = P2^6;                //SPI時鐘端
  6. sbit SDA  = P2^5;                //SPI數據端

  7. void Delay10ms(unsigned int c)   //誤差 0us
  8. {
  9.     unsigned char a,b;
  10.     for(;c>0;c--)
  11.         for(b=38;b>0;b--)
  12.             for(a=130;a>0;a--);
  13. }


  14. void  SendDataSPI(unsigned char dat)
  15. {  
  16.    unsigned char i;
  17.    
  18.    for(i=0; i<8; i++)                       
  19.    {  
  20.       if( (dat&0x80)!=0 ) SDA = 1;
  21.         else SDA = 0;

  22.       dat <<= 1;

  23.           SCL = 0;
  24.     SCL = 1;                       
  25.    }
  26. }

  27. void WriteComm(unsigned int i)
  28. {

  29.     CS0 = 0;
  30.         RS  = 0;

  31.         SendDataSPI(i);

  32.         CS0 = 1;

  33. }
  34. void WriteData(unsigned int i)
  35. {
  36.     CS0 = 0;
  37.         RS  = 1;

  38.         SendDataSPI(i);

  39.         CS0 = 1;
  40. }

  41. void LCD_Init(void)
  42. {
  43.         unsigned int i;
  44.         RST=1;  
  45.         for(i = 0; i < 1000; i++);
  46.        
  47.         RST=0;
  48.         for(i = 0; i < 1000; i++);

  49.         RST=1;
  50.         for(i = 0; i < 1000; i++);

  51.   WriteComm(0xe2);                  //軟件復位
  52.         WriteComm(0xc8);                  //0xA0段方向選擇正常方向(0xA1為反方向
  53.         WriteComm(0xa0);                  //0xC8普通方向選擇選擇反向,0xC0為正常方向
  54.         WriteComm(0x2f);
  55.         WriteComm(0x26);
  56.         WriteComm(0x81);                  //背景光對比度
  57.         WriteComm(0x10);                  //0x10設置列高地址
  58.         WriteComm(0xaf);                  //開啟顯示
  59.         //WriteComm(0xa4);




  60. }

  61. void Clear()
  62. {
  63.         unsigned char i,j;
  64.        
  65.   WriteComm(0x40);
  66.         for(i=0; i < 9; i++)//一共九頁
  67.         {
  68.                 WriteComm(0xb0+i);//頁地址
  69.                 WriteComm(0x10);//列地址
  70.                 WriteComm(0x00);//列地址
  71.                
  72.                 for(j = 0; j < 96; j++)
  73.                 {
  74.                         WriteData(0x00);       
  75.                 }
  76.         }               
  77. }

  78. void Displine(void)                          //行掃屏
  79.   {
  80.    unsigned int i,k;

  81.         for(i = 0 ; i <6; i++)
  82.         {
  83.             WriteComm(0x40);  //set scroll line         設置滾動一行
  84.             WriteComm(0xb0+i);//set page address                設置頁地址
  85.             WriteComm(0x10); //column  msb                列最高位
  86.             WriteComm(0x00); //column  lsb                列最低位
  87.             for(k=0;k<96;k++)
  88.             {
  89.                      WriteData(0XF0);
  90.                          Delay10ms(1);
  91.              }
  92.     }
  93.         Clear();
  94. }

  95. void Clear_Lcd()
  96. {
  97.         unsigned char i,j;

  98.         for(i = 0; i < 6; i++)
  99.         {
  100.                 WriteComm(0x40);
  101.                 WriteComm(0XB0+i);
  102.                 WriteComm(0x10);
  103.                 WriteComm(0x00);
  104.                 for(j = 0; j < 96; j++)
  105.                 {
  106.                         WriteData(0xff);
  107.                         Delay10ms(1);                                                               
  108.                 }       
  109.         }

  110.         for(i = 0; i < 7; i++)
  111.         {
  112.                 WriteComm(0XB0+i);
  113.                 WriteComm(0x10);
  114.                 WriteComm(0x00);
  115.                 for(j = 0; j < 96; j++)
  116.                 {
  117.                         WriteData(0x00);
  118.                         Delay10ms(1);                                                               
  119.                 }       
  120.         }

  121. }


  122. void main()
  123. {
  124.         LCD_Init();
  125.         Clear();
  126.         while(1)
  127.         {
  128.                 //Displine();
  129.                 Clear_Lcd();
  130.         }       
  131. }
復制代碼

所有資料51hei提供下載:
實驗30:LCD9648液晶.7z (596.06 KB, 下載次數: 105)
回復

使用道具 舉報

ID:883423 發表于 2021-3-18 11:20 | 顯示全部樓層
好,非常好,verygood
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 高清国产午夜精品久久久久久 | 亚洲男女激情 | 99国产精品99久久久久久 | 男女免费观看在线爽爽爽视频 | 成人欧美一区二区三区色青冈 | 久久亚洲一区二区三区四区 | 国产精品成人一区二区三区 | 精品一区二区电影 | 欧美自拍视频 | 污片在线免费观看 | 久久久精品一区 | 五月婷婷亚洲 | 欧美一级在线观看 | 欧美日韩高清在线一区 | 欧美成人a | 久久99精品久久久久久狂牛 | 成人午夜激情 | 综合成人在线 | 亚洲精品久久久一区二区三区 | 永久免费视频 | 亚洲91精品| 99热精品在线观看 | 91精品在线看 | 中文字幕一区二区在线观看 | 欧美三区在线观看 | 国产一区二区三区在线 | 国产午夜精品一区二区三区四区 | 成人一区二区在线 | 国产91亚洲精品一区二区三区 | 久久精品久久久 | 怡红院免费的全部视频 | 黄网站在线播放 | 久久天堂| 国产精品二区三区在线观看 | 美女天堂 | 99re热精品视频 | 日韩在线免费视频 | 999国产视频 | 日韩综合在线 | 日韩一区二区在线视频 | 日韩一区二区三区视频在线播放 |