找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

控制數(shù)控電位器x9313改變電位,調(diào)整液晶對比度 源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:140725 發(fā)表于 2016-10-11 19:19 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

一個(gè)用51單片機(jī)控制數(shù)控電位器x9313改變電位,來調(diào)整12864液晶對比度的例子:
控制數(shù)控電位器x9313改變電位.rar (26.14 KB, 下載次數(shù): 17)


下面是部分源碼預(yù)覽:
  1. /*******************************************************************
  2. *【文 件 名】:x9313.h                                             *
  3. *【建立日期】:7月2日                                        *
  4. *【修改日期】:7月4日                                        *
  5. *【文件作用】:液晶對比度設(shè)置,共分32級                             *
  6. *【說    明】:控制數(shù)控電位器x9313改變電位,調(diào)整對比度              *
  7. *------------------------------------------------------------------*
  8. *【作    者】:郭鑫(ben)                                           *
  9. *【版    權(quán)】:國家創(chuàng)新性實(shí)驗(yàn)項(xiàng)目,編號GCS07001                    *
  10. *******************************************************************/

  11. #ifndef _X9313_08_07_04_
  12. #define _X9313_08_07_04_

  13. /***************************頭文件部分*****************************/




  14. #include <reg52.h>
  15. #include "intrins.h"

  16. //-------------------------管腳定義--------------------------------
  17. sbit inc = P1^5;
  18. sbit ud = P1^6;
  19. sbit cs = P1^7;


  20. /***************************函數(shù)聲明*******************************/
  21. void short_delay();
  22. void down_edge(void);
  23. void un_latch(void);
  24. void x9313(void);




  25. void short_delay()
  26. {
  27.     _nop_();
  28.         _nop_();

  29. }



  30. void down_edge(void)
  31. {
  32.     inc = 1;
  33.     short_delay();
  34.     inc = 0;
  35.     short_delay();
  36. }

  37. /*******************************************************************
  38. *【函 數(shù) 名】:un_latch                                            *
  39. *【修改日期】:2008年7月3日                                        *
  40. *【文件作用】:不保存設(shè)置                                          *
  41. *------------------------------------------------------------------*
  42. *【備    注】:本意是想保存的 ,有問題                              *
  43. *******************************************************************/
  44. void un_latch(void)
  45. {
  46.         cs = 0;
  47.         short_delay();
  48.         short_delay();

  49.         cs = 1;
  50.         short_delay();
  51.         short_delay();

  52. }

  53. /*******************************************************************
  54. *【函 數(shù) 名】:x9313                                               *
  55. *【修改日期】:2008年7月3日                                        *
  56. *【文件作用】:控制x9313設(shè)置液晶對比度                             *
  57. *------------------------------------------------------------------*
  58. *【備    注】:                                                    *
  59. *******************************************************************/
  60. void x9313(void)
  61. {
  62.         cs = 0;
  63.         inc = 1;
  64.         lcd_cmd_w(0x01);
  65.     lcd_setposition(1,0);
  66.     lcd_str_w("顯示器對比度設(shè)置");
  67.     while(1)
  68.     {
  69.                 if(key_check(3) == 1)
  70.                 {
  71.                         lcd_setposition(3,0);
  72.                         lcd_str_w("KEY3: 對比度增強(qiáng)");
  73.                         ud =  1;
  74.                         short_delay();
  75.                 down_edge();
  76.                         delay(50);
  77.                         lcd_setposition(3,0);
  78.                         lcd_str_w("                ");               
  79.              }

  80.         if(key_check(2) == 1)
  81.         {
  82.                         lcd_setposition(3,0);
  83.                         lcd_str_w("KEY2: 對比度減弱");
  84.                         ud =  0;
  85.                         short_delay();
  86.             down_edge();
  87.                         delay(50);
  88.                         lcd_setposition(3,0);
  89.             lcd_str_w("                ");                                                   
  90.         }

  91.         if(key_check(0) == 1)
  92.         {
  93.                         un_latch();
  94.                         lcd_setposition(3,0);
  95.                         lcd_str_w("KEY0: 未保存");        
  96.                         delay(50);
  97.             return;
  98.         }

  99.         if(key_check(1) == 1)
  100.         {
  101.                         cs = 0;
  102.                         lcd_setposition(3,0);
  103.                         lcd_str_w("KEY1: 已保存");        
  104.                         delay(50);
  105.                         return;
  106.         }
  107.     }
  108. }

  109. #endif
復(fù)制代碼

  1. /*******************************************************************
  2. *【文 件 名】:keys.h                                              *
  3. *【建立日期】7月3日                                        *
  4. *【修改日期】7月4日                                        *
  5. *【文件作用】:液晶12864驅(qū)動(dòng)程序,包括所有關(guān)于液晶得函數(shù)           *
  6. *【說    明】:操作按鍵提供直接調(diào)用函數(shù),內(nèi)部包括按鍵去抖          *
  7. *------------------------------------------------------------------*
  8. *【作    者】:郭鑫(ben)                                           *
  9. *【版    權(quán)】:國家創(chuàng)新性實(shí)驗(yàn)項(xiàng)目,編號GCS07001                    *
  10. *******************************************************************/

  11. #ifndef _KEYS_08_07_04_
  12. #define _KEYS_08_07_04_

  13. /***************************頭文件部分*****************************/




  14. #include <reg52.h>

  15. sbit key5 = P0^5;
  16. sbit key4 = P0^4;
  17. sbit key3 = P0^3;
  18. sbit key2 = P0^2;
  19. sbit key1 = P0^1;
  20. sbit key0 = P0^0;

  21. /***************************函數(shù)聲明*******************************/
  22. uchar key_check(uchar num);



  23. /*******************************************************************
  24. *【函 數(shù) 名】:key_check                                           *
  25. *【修改日期】:2008年7月3日                                        *
  26. *【函數(shù)作用】:檢測按鍵情況, 1:有相應(yīng)按鍵按下 0:反之               *
  27. *------------------------------------------------------------------*
  28. *【備    注】:                                                    *
  29. *******************************************************************/
  30. uchar key_check(uchar num)
  31. {
  32.     uchar sta;
  33.         switch(num)
  34.         {
  35.                 case 0:
  36.                         if(~key0)
  37.                         {
  38.                                 delay(10);
  39.                                 if(~key0)
  40.                                 {
  41.                                         while(~key0);
  42.                                         sta = 1;
  43.                                 }                  
  44.                         }
  45.                         else
  46.                                 sta = 0;
  47.                         break;

  48.                 case 1:
  49.                         if(~key1)
  50.                         {
  51.                                 delay(10);
  52.                                 if(~key1)
  53.                                 {
  54.                                         while(~key1);
  55.                                         sta = 1;
  56.                                 }                  
  57.                         }
  58.                         else
  59.                                 sta = 0;
  60.                         break;
  61.                         
  62.                 case 2:
  63.                         if(~key2)
  64.                         {
  65.                                 delay(10);
  66.                                 if(~key2)
  67.                                 {
  68.                                         while(~key2);
  69.                                         sta = 1;
  70.                                 }                  
  71.                         }
  72.                         else
  73.                                 sta = 0;
  74.                         break;
  75.                         
  76.                 case 3:
  77.                         if(~key3)
  78.                         {
  79.                                 delay(10);
  80.                                 if(~key3)
  81.                                 {
  82.                                         while(~key3);
  83.                                         sta = 1;
  84.                                 }                  
  85.                         }
  86.                         else
  87.                                 sta = 0;
  88.                         break;
  89.                         
  90.                 case 4:
  91.                         if(~key4)
  92.                         {
  93.                                 delay(10);
  94.                                 if(~key4)
  95.                                 {
  96.                                         while(~key4);
  97.                                         sta = 1;
  98.                                 }                  
  99.                         }
  100.                         else
  101.                                 sta = 0;
  102.                         break;
  103.                         
  104.                 case 5:
  105.                         if(~key5)
  106.                         {
  107.                                 delay(10);
  108.                                 if(~key5)
  109.                                 {
  110.                                         while(~key5);
  111.                                         sta = 1;
  112.                                 }                  
  113.                         }
  114.                         else
  115.                                 sta = 0;
  116.                         break;
  117.         }
  118.         return sta;
  119. }

  120. #endif
復(fù)制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表