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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機漸亮漸暗 跑馬燈的實現

[復制鏈接]
跳轉到指定樓層
樓主
ID:341815 發表于 2018-5-30 22:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1.     #include <reg52.h>  
  2.     #include <intrins.h>  
  3.     #include <string.h>  
  4.       
  5.     void liushui();  
  6.     void rjl();    //漸亮  
  7.     void rja();    //漸暗  
  8.     void huaxin();  
  9.     void huaxin2();  
  10.     void huaxin3();  
  11.     void zkb(unsigned char d);  
  12.     void ys1ms(unsigned int s);  //延時聲明,修改s的數值,就可以改變時間  
  13.       
  14.     unsigned char code table[11]={0xff,0xff ,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};  
  15.     unsigned char code table6[11]={0xff,0xff ,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff};  
  16.     unsigned char code table2[8]={0x7f,0x3f ,0x1f,0x0f,0x07,0x03,0x01,0x00};  
  17.     unsigned char code table3[8]={0xfe,0xfc ,0xf8,0xf0,0xe0,0xc0,0x80,0x00};  
  18.     unsigned char code table4[9]={0x00,0x01 ,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};  
  19.     unsigned char code table5[9]={0x00,0x80 ,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};  
  20.       
  21.     unsigned char i;   
  22.     unsigned char j;   
  23.     unsigned char k;  
  24.     unsigned char m;  
  25.       
  26.     int main()  
  27.     {  
  28.         EA=1;//打開中斷,使用中斷方便調試查看模式  
  29.         EX0=1; //允許外部中斷0中斷  
  30.         EX1=1; //允許外部中斷1中斷  
  31.         PX0=1; // 外部中斷0位高優先級  
  32.         while(1)  //無限循環  
  33.         {     
  34.             liushui();   ////////////////////  
  35.             ys1ms(50);   
  36.             huaxin2();     
  37.             ys1ms(50);  
  38.             rja();  
  39.             ys1ms(100);  
  40.       
  41.             huaxin();    ////////////////////  
  42.             rjl();  
  43.             rja();  
  44.             ys1ms(100);  
  45.       
  46.             huaxin3();   ////////////////////  
  47.             rja();  
  48.             ys1ms(100);  
  49.       
  50.         }  
  51.          return 0;  
  52.     }  
  53.       
  54.     void liushui()  
  55.     {  
  56.          
  57.             for(i = 9; i > 0; i--)  
  58.             {  
  59.                 P1 = table[ i];  
  60.     [ i]            ys1ms(50);  
  61.     [ i]        }  
  62.     [ i]        for(i = 2; i <= 10; i++)  
  63.     [ i]        {  
  64.     [ i]            P0 = table[ i];  
  65.     [ i][ i]             ys1ms(50);  
  66.     [ i][ i]        }  
  67.     [ i][ i]        for(i = 9; i > 0; i--)  
  68.     [ i][ i]        {  
  69.     [ i][ i]            P2 = table[ i];  
  70.                  ys1ms(50);  
  71.             }  
  72.             for(i = 9; i > 0; i--)  
  73.             {  
  74.                 P3 = table[ i];  
  75.                  ys1ms(50);  
  76.             }  
  77.             
  78.     }  
  79.       
  80.      void ys1ms(unsigned int s)    //定時器精確延時1毫秒函數,改變S數值即改變時間  
  81.      {  
  82.         TR0=1;  
  83.         while(s!=0)  
  84.         {  
  85.             TH0=-(7629/256);  
  86.             TL0=-(7629%256);  
  87.             while(TF0!=1);  
  88.             TF0=0;  
  89.             s--;  
  90.         }  
  91.         TR0=0;  
  92.      }  
  93.       
  94.      /****************************************************************************/  
  95.     void rjl()  //漸亮函數   
  96.     {     
  97.         unsigned char a, b;//a控制延時長度 b控制循環周期        
  98.         P0 = 0xff;  
  99.         P1 = 0xff;  
  100.         P2 = 0xff;  
  101.         P3 = 0xff;  
  102.         a = 0;     
  103.             for (b=250; b>0; b--)   //循環周期設置  
  104.             {     
  105.                 a++;     
  106.                 zkb (a);      //延時長度隨a而改變      
  107.                 P0 = 0xff;  
  108.                 P1 = 0xff;  
  109.                 P2 = 0xff;  
  110.                 P3 = 0xff;  
  111.                 a = ~a;         //a值取反,決定燈滅時的占空比      
  112.                 zkb (a);     
  113.                 P0 = 0x00;  
  114.                 P1 = 0x00;  
  115.                 P2 = 0x00;  
  116.                 P3 = 0x00;  
  117.                 a = ~a;         //a值取反 使a回到原值繼續循環   
  118.              }  
  119.      }  
  120.     /****************************************************************************/  
  121.     void rja()  //漸暗函數  
  122.     {  
  123.         unsigned char a, b;//a控制延時長度 b控制循環周期      
  124.         P0 = 0x00;  
  125.         P1 = 0x00;  
  126.         P2 = 0x00;  
  127.         P3 = 0x00;            //亮起LED   
  128.         a = 0;     
  129.             for (b=250; b>0; b--)     
  130.             {     
  131.                 a++;     
  132.                 zkb (a);     
  133.                 P0 = 0x00;  
  134.                 P1 = 0x00;  
  135.                 P2 = 0x00;  
  136.                 P3 = 0x00;  
  137.                 a = ~a;     
  138.                 zkb (a);     
  139.                 P0 = 0xff;  
  140.                 P1 = 0xff;  
  141.                 P2 = 0xff;  
  142.                 P3 = 0xff;   
  143.                 a = ~a;     
  144.             }  
  145.     }  
  146.     void huaxin()  
  147.     {  
  148.         for(j = 0; j < 2; j++)  
  149.         {  
  150.             for(i = 0; i < 8; i++)  
  151.             {  
  152.                 P1 = table2[ i];  
  153.                 P3 = table3[ i];  
  154.                 ys1ms(50);  
  155.             }  
  156.             for(i = 0; i < 8; i++)  
  157.             {  
  158.                 P0 = table3[ i];  
  159.                 P2 = table3[ i];  
  160.                  ys1ms(50);  
  161.             }  
  162.             for(i = 0; i < 9; i++)   
  163.             {  
  164.                 P2 = table5[ i];  
  165.                 P0 = table5[ i];  
  166.                 ys1ms(50);  
  167.             }  
  168.             for(i = 0; i < 9; i++)  
  169.             {  
  170.                 P3 = table5[ i];  
  171.                 P1 = table4[ i];  
  172.                  ys1ms(50);  
  173.             }  
  174.             ys1ms(100);  
  175.         }  
  176.     }  
  177.     void huaxin2()  
  178.     {  
  179.             for(i = 0; i < 8; i++)  
  180.             {  
  181.                 P1 = table2[ i];  
  182.                 ys1ms(50);  
  183.             }  
  184.             for(i = 0; i < 8; i++)  
  185.             {  
  186.                 P0 = table3[ i];  
  187.                  ys1ms(50);  
  188.             }  
  189.              for(i = 0; i < 8; i++)  
  190.             {  
  191.                 P2 = table2[ i];  
  192.                   
  193.                 ys1ms(50);  
  194.             }  
  195.             for(i = 0; i < 8; i++)  
  196.             {  
  197.                 P3 = table2[ i];  
  198.                   
  199.                  ys1ms(50);  
  200.             }  
  201.     }  
  202.     void huaxin3()  
  203.     {  
  204.         k = 0;  
  205.         for(m = 0; m < 2; m++)  
  206.         {  
  207.             for(j = 0; j < 4; j++)  
  208.             {  
  209.                 for(i = 9; i > 0; i--)  
  210.                 {  
  211.                     P1 = table[ i];  
  212.                     P0 = table6[ i];  
  213.                     P2 = table[ i];  
  214.                     P3 = table[ i];  
  215.                     ys1ms(50);  
  216.                 }  
  217.             }  
  218.       
  219.                 for(i = 0; i < 8; i++)  
  220.                 {  
  221.                     P1 = table2[ i];  
  222.                     P0 = table3[ i];  
  223.                     P2 = table2[ i];  
  224.                     P3 = table2[ i];  
  225.                     ys1ms(50);  
  226.                 }  
  227.             if(k == 0)  
  228.             {  
  229.                 for(i = 0; i < 8; i++)  
  230.                 {  
  231.                     P1 = table5[ i];  
  232.                     P0 = table4[ i];  
  233.                     P2 = table5[ i];  
  234.                     P3 = table5[ i];  
  235.                     ys1ms(50);  
  236.                 }  
  237.             }  
  238.                 ys1ms(100);   
  239.                 k++;  
  240.         }  
  241.     }  
  242.     /****************************************************************************/  
  243.     void zkb(unsigned char d)   //占空比函數,由d決定延時長度      
  244.     {        
  245.         unsigned char i;     
  246.         while( --d != 0)     
  247.         {     
  248.             for(i = 0; i < 1; i++);   //占空比時間設置  
  249.         }                           
  250.     }   
復制代碼

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本淫视频 | 2018天天干天天操 | 97超碰人人 | 狠狠色综合久久丁香婷婷 | 91久久精品一区二区二区 | 国产欧美日韩在线观看 | 成人免费xxxxx在线视频 | 爱草在线 | 伊人青青久久 | 亚洲高清久久 | 精品国产一区二区三区久久久久久 | 日日夜夜天天 | 成人超碰 | 国产免费播放视频 | 久久久久精 | 国产精品美女久久久久久久久久久 | 国产精品一区二区久久久久 | 欧美另类视频 | 国产激情| 剑来高清在线观看 | 久久精品亚洲 | 亚洲国产精品久久 | 操久久| 男人天堂社区 | 午夜一区二区三区在线观看 | 国产欧美一区二区三区久久手机版 | 男女在线网站 | 日韩福利在线观看 | 亚洲午夜精品一区二区三区他趣 | 日韩在线电影 | 久久久91 | www.亚洲一区二区 | 亚洲导航深夜福利涩涩屋 | 久久久久久综合 | 男人天堂视频在线观看 | 亚洲97 | 99热在线播放 | av天天操 | 国产精品91网站 | 欧美一区二区三区视频在线播放 | 91在线成人 |