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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)+LCD12864一級菜單顯示源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:341098 發(fā)表于 2020-4-22 18:35 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  1. #include <reg52.h>
  2. #include<stdio.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. uchar   lcd_x,lcd_y,data_byte=0,count;
  6. uint TH_data,TL_data,RH_data,RL_data,CK_data;
  7. uint TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;
  8. uchar num,ldata=0,lold=1;


  9. sbit RS = P2^0;//并行指令,數(shù)據(jù)選擇信號
  10. sbit RW = P2^1;//讀寫信號
  11. sbit EN = P2^2;//并行使能信號
  12. sbit PSB = P2^3;//并串口選擇信號
  13. sbit RST = P2^5;//復(fù)位信號
  14. sbit key1 = P2^6;        //定義按鍵1
  15. sbit key2 = P2^7;        //定義按鍵2


  16. void delay(uint a);//延時函數(shù)
  17. void delay0(unsigned int time);//延時函數(shù)
  18. void LCD_init();//LCD初始化程序
  19. void write_cmd(uchar cmd);//寫指令
  20. void write_data(uchar dat);//寫數(shù)據(jù)
  21. bit check_busy();//檢測LCD忙信號
  22. void delay1();//10us延時
  23. void lcd_dis_code(uint cmd_addr,uchar num,uchar dis[]);//顯示函數(shù)
  24. uchar code lcd0[]={"  科協(xié)菜單"};
  25. uchar code lcd1[]={"1:攝像頭"};
  26. uchar code lcd2[]={"2:傳感器"};
  27. uchar code lcd3[]={"3:液晶顯示"};
  28. uchar code lcd4[]={"4:單片機(jī)"};
  29. uchar code lcd5[]={"5:紅外傳感器"};
  30. uchar code lcd6[]={"6:MAX232"};
  31. uchar code lcd7[]={"7:晶振"};
  32. uchar code lcd8[]={"8:單片機(jī)"};
  33. uchar code lcd9[]={"9:紅外傳感器"};
  34. uchar code lcd10[]={"10:MAX232"};
  35. uchar code lcd11[]={"11:晶振"};

  36. void main()
  37.   {        
  38.         LCD_init();
  39.         while(1)
  40.         {                                //循環(huán)掃描按鍵及顯示
  41.                 if(key1==0)
  42.                             {                //按鍵1按下
  43.                                                  delay(5);
  44.                              if(key1==0)
  45.                                        {                //是否是剛按下,是執(zhí)行,否則不執(zhí)行
  46.                                                          ldata=ldata+1;        //顯示數(shù)據(jù)加1
  47.                                                          //lold=0;                //處理完,將按鍵視為按下
  48.                                                }
  49.                             }
  50.                 else if(key2==0)
  51.                              {        //按鍵2按下
  52.                                                           delay(5);
  53.                                     if(key2==0){                //是否是剛按下,是執(zhí)行,否則不執(zhí)行
  54.                                                                         ldata--;        //顯示數(shù)據(jù)減1
  55.                                                                 //        lold=0;                ////處理完,將按鍵視為按下
  56.                                              }
  57.                                           }
  58.                             switch(ldata)
  59.                                      {
  60.                  
  61.                                        case 0:{
  62.                                                                                lcd_dis_code(0x80,10,lcd0);        
  63.                                                                                lcd_dis_code(0x90,8,lcd1);
  64.                                                                                            lcd_dis_code(0x88,8,lcd2);
  65.                                                                                lcd_dis_code(0x98,12,lcd3);
  66.                                                                                            break;
  67.                                                    }
  68.                                                                     case 1:{
  69.                                                                                lcd_dis_code(0x80,8,lcd4);        
  70.                                                                                lcd_dis_code(0x90,12,lcd5);
  71.                                                                                            lcd_dis_code(0x88,8,lcd6);
  72.                                                                                lcd_dis_code(0x98,5,lcd7);
  73.                                                                                            break;
  74.                                                    }
  75.                                                                    case 2:{
  76.                                                                                lcd_dis_code(0x80,8,lcd8);        
  77.                                                                                lcd_dis_code(0x90,12,lcd9);
  78.                                                                                            lcd_dis_code(0x88,9,lcd10);
  79.                                                                                lcd_dis_code(0x98,12,lcd11);
  80.                                                                                            break;
  81.                                                    }
  82.                                                          }
  83.                                        

  84.                      
  85.        }
  86.   }
  87. void delay1()//延時10us
  88. {
  89.         unsigned char i;
  90.         for(i=0; i<3; i++);
  91. }

  92. /**********************12864模塊程序**********************/
  93.   
  94. void lcd_dis_code(uint cmd_addr,uchar num,uchar dis[])
  95. {
  96.         uint i;
  97.         write_cmd(cmd_addr);
  98.         for(i=0; i<num; i++)
  99.                 write_data(dis[i]);
  100. }

  101. void LCD_init()
  102. {
  103.         PSB = 1;
  104.         RST = 0;
  105.         delay(5);
  106.         RST = 1;
  107.           //write_cmd(0x34);//擴(kuò)充指令
  108.         delay(5);
  109.     write_cmd(0x30);//基本指令
  110.         //delay(5);
  111.         //write_cmd(0x0f);//顯示開關(guān)光標(biāo)
  112.         delay(5);
  113.         write_cmd(0x0c);
  114.     delay(10);
  115.         write_cmd(0x01);//清屏
  116.         delay(5);
  117.         write_cmd(0x06);
  118.         delay(20);

  119. }

  120. bit check_busy()
  121. {
  122.         bit temp;
  123.         RS = 0;
  124.         RW = 1;
  125.         EN = 1;
  126.         delay(5);
  127.         temp = (bit)(P0&0x80); //按位與操作
  128.         EN = 0;
  129.         return (temp);
  130. }

  131. void write_cmd(uchar cmd)
  132. {
  133.         while(check_busy());
  134.         RS = 0;
  135.         RW = 0;
  136.         EN = 0;
  137.         delay(5);
  138.         P0 = cmd;
  139.         delay(5);
  140.         EN = 1;
  141.         delay(5);
  142.         EN = 0;        
  143. }

  144. void write_data(uchar dat)
  145. {
  146.         while(check_busy());
  147.         RS = 1;
  148.         RW = 0;
  149.         EN = 0;
  150.         P0 = dat;
  151.         delay(5);
  152.         EN = 1;
  153.         delay(5);
  154.         EN = 0;        
  155. }

  156. void delay(uint a)
  157. {
  158.         uchar i;
  159.         while(a--)
  160.         {
  161.                 for(i=0; i<113; i++);
  162.         }
  163. }
  164. void delay0(unsigned int time)
  165. {
  166.         while(time--);
  167. }
復(fù)制代碼


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:629438 發(fā)表于 2020-5-16 16:13 | 只看該作者
不錯,謝謝分享
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一区二区三区在线视频 | 不用播放器看的av | 久久精品国产一区二区电影 | 无码日韩精品一区二区免费 | 国产精品1区 | 精品久久久久国产免费第一页 | 日韩成人一区二区 | 亚洲一区 | 青草视频在线 | 国产在线视频一区 | 午夜在线精品偷拍 | 日韩成人| 青青草华人在线视频 | 久久亚洲一区 | 国产一区二区三区四区区 | 欧美日韩国产在线 | aaaa网站| 黄色一级毛片免费看 | 激情六月丁香婷婷 | 成人欧美一区二区三区黑人孕妇 | 国产日韩免费观看 | 久久综合一区 | 毛片的网址 | 一级毛片在线播放 | 亚洲视频免费一区 | 欧美a区| tube国产 | 亚洲欧美日韩精品久久亚洲区 | 日韩一级 | 亚洲欧美激情精品一区二区 | 日韩毛片免费视频 | 日韩一二三区视频 | 日韩成人一区 | 国产一区| 亚洲网站免费看 | 波多野结衣一区二区三区在线观看 | 亚洲一级黄色 | 日日操日日干 | 欧美精品久久久久 | 久久久久久黄 | 亚欧洲精品在线视频免费观看 |