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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

16X32雙色點陣全亮的單片機程序

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:259403 發(fā)表于 2017-12-9 16:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式



16X32雙色點陣屏的原理圖與相關資料到這里:http://www.zg4o1577.cn/bbs/dpj-101081-1.html

單片機源程序如下:
  1. /***********************************************************
  2. 實現(xiàn)功能:紅綠全亮

  3. 可以根據(jù)下面的接口用杜邦線與點陣連接即可測試

  4. 單片機:STC89C52 或者其他型號都可以
  5. 晶振無要求

  6. *************************************************************/
  7. /*
  8. 標準08接口點陣屏管腳定義
  9. GND     A     ABCD是行掃描信號
  10. GND     B
  11. GND     C
  12. OE      D          OE是屏的使能端  低有效
  13. R1      G1          上半屏綠色
  14. R2      G2          下半屏綠色  本板由于沒有使用R2 G2,故把這兩腳改接為VCC,方便大家接線。
  15. GND            STR          鎖存信號
  16. GND     SCK         時鐘信號
  17. */
  18. /*接口說明*/
  19. //A B C D 是138行掃描信號
  20. // SCK   是595的移位信號
  21. // STR  是595的鎖存信號
  22. // OE    是屏的使能端 可以控制亮度
  23. // R     是紅色信號線
  24. // G     是綠色信號線
  25. // 本板由于沒有使用R2 G2,故把這兩腳改接為VCC,方便大家接線。   

  26. #include<stc89c51rc.h>
  27. #define uchar unsigned char
  28. #define uint unsigned int
  29. #define light 3     //定義亮度                  
  30. /*****************************接口定義********************************/
  31. sbit SHCP=P2^7;//595的移位信號         
  32. sbit STCP=P4^1;//是595的鎖存信號               /*如果用的是普通單片機 沒有P4.1口 請改為其他口*/   
  33. sbit SDA_R=P2^3;//紅數(shù)據(jù)  
  34. sbit SDA_G=P2^5;//綠數(shù)據(jù)   
  35. sbit OE=P0^4;//輸出使能

  36. sbit IA=P4^0;//行控制線A                   /*如果用的是普通單片機 沒有P4.0口 請改為其他口*/   
  37. sbit IB=P2^0;//行控制線B
  38. sbit IC=P2^1;//行控制線C
  39. sbit ID=P2^2;//行控制線D

  40. sbit Speek=P3^5;//蜂鳴器

  41. /********************************************************************/


  42. #define  scan0    {IA=0;IB=0;IC=0;ID=0;}
  43. #define  scan1    {IA=1;IB=0;IC=0;ID=0;}
  44. #define  scan2    {IA=0;IB=1;IC=0;ID=0;}
  45. #define  scan3    {IA=1;IB=1;IC=0;ID=0;}
  46. #define  scan4    {IA=0;IB=0;IC=1;ID=0;}
  47. #define  scan5    {IA=1;IB=0;IC=1;ID=0;}
  48. #define  scan6    {IA=0;IB=1;IC=1;ID=0;}
  49. #define  scan7    {IA=1;IB=1;IC=1;ID=0;}
  50. #define  scan8    {IA=0;IB=0;IC=0;ID=1;}
  51. #define  scan9    {IA=1;IB=0;IC=0;ID=1;}
  52. #define scan10    {IA=0;IB=1;IC=0;ID=1;}
  53. #define scan11    {IA=1;IB=1;IC=0;ID=1;}
  54. #define scan12    {IA=0;IB=0;IC=1;ID=1;}
  55. #define scan13    {IA=1;IB=0;IC=1;ID=1;}
  56. #define scan14    {IA=0;IB=1;IC=1;ID=1;}
  57. #define scan15    {IA=1;IB=1;IC=1;ID=1;}

  58. uchar Move,Speed,line;  //(移位 速度 行 ) 定義
  59. uint zimuo;                                   //字模計數(shù)器
  60. uint uiAllData;
  61. void   DelayMs(void);              // 延時
  62. void   in_data();                                   // 調(diào)整移動數(shù)據(jù)
  63. void   rxd_data();                                   // 發(fā)送移動數(shù)據(jù)
  64. /******************************************************/
  65. /*****不影響其他端口的掃描*************************/
  66. void scan(unsigned char Value)
  67. {switch(Value)
  68.         {case  0: scan0;break;
  69.                   case  1: scan1;break;
  70.                    case  2: scan2;break;
  71.                     case  3: scan3;break;
  72.              case  4: scan4;break;
  73.                       case  5: scan5;break;
  74.                        case  6: scan6;break;
  75.                         case  7: scan7;break;
  76.                  case  8: scan8;break;
  77.                        case  9: scan9;break;
  78.                       case 10:scan10;break;
  79.                      case 11:scan11;break;
  80.             case 12:scan12;break;
  81.                   case 13:scan13;break;
  82.                  case 14:scan14;break;
  83.             case 15:scan15;break;
  84.            default:break;
  85.         }
  86. }
  87. /***********************************************************************************
  88. 函數(shù)名:毫秒級CPU延時函數(shù)
  89. 調(diào)  用:DELAY_MS (?);
  90. 參  數(shù):1~65535(參數(shù)不可為0)
  91. 返回值:無
  92. 結(jié)  果:占用CPU方式延時與參數(shù)數(shù)值相同的毫秒時間
  93. 備  注:應用于1T單片機時i<600,應用于12T單片機時i<125
  94. /************************************************************************************/
  95. void DELAY_US(int num)  //延時函數(shù)
  96. {while(--num);
  97. }


  98. /*************************************/
  99. void Beep_key(void)         //揚聲器--按鍵音
  100. {
  101.     unsigned char a ;      //定義變量用于發(fā)聲的長度設置
  102.     for(a=150; a>0; a--)    //聲音的長度
  103.     {
  104.         Speek=0;               //取反  揚聲器
  105.         DELAY_US(350);           //音調(diào)設置延時
  106.     }            
  107.     Speek=1;        //音樂結(jié)束后揚聲器拉高關閉
  108. }
  109. /**************************延時***********************/

  110. void DelayMs(void)
  111. {
  112.   uchar TempCyc;
  113.   for(TempCyc=250;TempCyc>1;TempCyc--)
  114.      {;}
  115. }
  116. /********************************************/

  117. /*主函數(shù)*/
  118. void main()
  119. {  
  120.    P3M0=0X20;
  121.    P3M1=0X00;
  122.    Beep_key();
  123.    Speek=1;
  124.    while(1)  
  125.    {
  126.          while(Move<16)        //數(shù)據(jù)移位。
  127.        {
  128.              for(Speed=0;Speed<3;Speed++) //移動速度控制
  129.               {        
  130.                     for(line=0;line<16;line++)
  131.                           {
  132.                                 rxd_data(); //裝載移動數(shù)據(jù)
  133.                                 scan(line); //輸出行掃描      
  134.                                                                                    
  135.                                 STCP=1;//鎖存
  136.                                 STCP=0;
  137.                                 OE=0;
  138.                                 DelayMs();         //延時,等待一段時間,讓這列顯示的內(nèi)容在人眼內(nèi)產(chǎn)生“視覺暫留”現(xiàn)象。
  139.                             OE=1;
  140.                                 DelayMs();         //亮度控制在70%  以免過大電流
  141.                                  
  142.                   }
  143.                  }
  144.        Move++;                                                 //移動一步
  145.              }
  146.      Move=0;
  147.          //zimuo=zimuo+32; //換下一個字
  148.     }        
  149.   
  150. }         
  151. /***********************發(fā)送移動的數(shù)據(jù)****************************/
  152. void rxd_data(void)                            //串行發(fā)送數(shù)據(jù)
  153. {
  154.   uchar s;
  155.   uchar temp,k;   
  156.   for(s=0;s<4;s++)                   //發(fā)送4字節(jié)數(shù)據(jù)
  157.         {
  158.              for(k=0;k<8;k++)//一個字節(jié)8位 發(fā)送給595
  159.                {
  160.                        SHCP=0; //上升沿移位595                           
  161.                            SDA_R=SDA_G=0;//通過IO口送一個位給 595
  162.                        temp=temp>>1;  //字節(jié)移位 準備送下一位                           
  163.                    SHCP=1;
  164.                }
  165.    }

  166. }

復制代碼

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 无码一区二区三区视频 | 久久精品欧美电影 | 你懂的在线视频播放 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 欧美一级大片免费观看 | 久久国产香蕉 | 亚洲91| 欧美爱爱视频网站 | 亚洲在线视频 | 成人永久免费视频 | 欧美黄a| 亚洲视频一区在线 | 在线综合视频 | 亚洲精品66 | 成人欧美一区二区三区黑人孕妇 | 男人天堂国产 | 日韩一级黄色毛片 | 天天干夜夜操 | 欧美久久一级特黄毛片 | 久久精品国产一区二区电影 | 日韩精品一区二区三区免费观看 | 色综合久久天天综合网 | 成人免费黄色片 | 一区二区三区中文字幕 | 在线观看国产精品一区二区 | www亚洲一区 | 91啪亚洲精品 | 8x国产精品视频一区二区 | 女同久久另类99精品国产 | 成人精品视频在线观看 | 国产精品免费观看 | 国产欧美精品区一区二区三区 | 狠狠爱综合网 | 国产中文字幕亚洲 | 久久精品视频9 | 久久久91精品国产一区二区三区 | 天天爽综合网 | 天天干天天干 | 国产乱码精品一区二区三区忘忧草 | 视频一区二区在线观看 | 欧美日韩国产一区二区三区 |