欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

提供一個(gè)自動(dòng)窗簾的51單片機(jī)程序(藍(lán)橋杯的題)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:500662 發(fā)表于 2019-3-29 16:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
提供一個(gè)自動(dòng)窗簾的51單片機(jī)程序(藍(lán)橋杯的題)

單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include<time1302.h>

  3. #define        uchar unsigned char
  4. #define uint unsigned int

  5. sbit key1=P2^3;         //獨(dú)立鍵盤(pán)的各個(gè)位置
  6. sbit key2=P2^4;
  7. sbit key3=P2^5;
  8. sbit key4=P2^6;
  9. sbit clock=P3^6;                //是單片機(jī)上IO的位置
  10. sbit dout=P3^7;                         //是out對(duì)應(yīng)的位置


  11. uchar wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};                                   //位選
  12. uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};                 //段選         0到9
  13. uchar cun[8];          //每位數(shù)據(jù)存放的數(shù)組
  14. uchar a;

  15. void mode_change();
  16. void chushi();
  17. void dis_clock_time();
  18. uchar read();

  19. void delay(uint x)
  20. {
  21.       uint i,j;
  22.           for(i=x;i>0;i--)
  23.           for(j=110;j>0;j--);
  24. }

  25. void display()           //顯示函數(shù)的固定格式          其中i和wei的取值根據(jù)自己的需要增加和減少
  26. {
  27.         uint i;
  28.         for(i=0;i<8;i++)          //兩位數(shù)的循環(huán) 兩取決于i
  29.         {
  30.                    P1=0xff;   //消影
  31.                 switch(i)
  32.                 {
  33.                         case 0:P0=wei[0];break;         //選擇第幾位
  34.                         case 1:P0=wei[1];break;
  35.                         case 2:P0=wei[2];break;
  36.                     case 3:P0=wei[3];break;
  37.                         case 4:P0=wei[4];break;
  38.                         case 5:P0=wei[5];break;
  39.                         case 6:P0=wei[6];break;
  40.                         case 7:P0=wei[7];break;

  41.                 }
  42.                 P1=cun[i];                          //存放第幾位
  43.                 delay(1);       
  44.         }       
  45. }

  46. void main()
  47. {
  48.     Ds1302Init();
  49.         chushi();
  50.         while(1)
  51.         {       
  52.                 a=read();
  53.                 Ds1302ReadTime();
  54.                 mode_change();
  55.                 display();
  56.         }
  57. }


  58. void mode_change()
  59. {
  60.    if(key1 == 0)           //獨(dú)立鍵盤(pán)的固定格式
  61.         {
  62.                 while(!key1)
  63.                   {
  64.                   cun[0]=~duan[TIME[5]%16];      //年       
  65.                   cun[1]=~duan[TIME[5]/16];       
  66.                   cun[2]=~duan[TIME[6]/16];       
  67.                   cun[3]=~duan[TIME[6]%16]&0x7f;          
  68.                   cun[4]=~duan[TIME[4]/16];            //月
  69.                   cun[5]=~duan[TIME[4]%16]&0x7f;               
  70.                   cun[6]=~duan[TIME[3]/16];
  71.                   cun[7]=~duan[TIME[3]%16];            //日
  72.                   display();          //這個(gè)可以根據(jù)自己的需要而定,即鍵盤(pán)的作用

  73.                 }
  74.         }
  75.        
  76. }

  77. void chushi()
  78. {
  79.                      cun[0]=~duan[10];
  80.                   cun[1]=~duan[10];       
  81.                   cun[2]=~duan[10];       
  82.                   cun[3]=~duan[10];          
  83.                   cun[4]=~duan[10];
  84.                   cun[5]=~duan[10];               
  85.                   cun[6]=~duan[10];
  86.                   cun[7]=~duan[10];            
  87. }

  88. void dis_clock_time()                                                //時(shí)鐘顯示         
  89. {
  90.           
  91.           Ds1302ReadTime();          
  92.       cun[0]=~duan[TIME[2]/16];                //小時(shí)
  93.           cun[1]=~duan[TIME[2]%16];
  94.           //閃爍  在中斷里面                                 
  95.           cun[2]=~duan[TIME[1]/16];              //分鐘
  96.           cun[3]=~duan[TIME[1]%16];          
  97.           cun[4]=~duan[10];                             //“-”
  98.           cun[5]=~duan[a/100];                    //ad顯示
  99.           cun[6]=~duan[a/10%10];
  100.           cun[7]=~duan[a%10];
  101.           display();
  102. }


  103. uchar read()  //AD固定格式
  104. {
  105.         uint i;

  106.         uchar ad=0x00;

  107.         dout=1;
  108.         for(i=0;i<8;i++)
  109.         {
  110.                 ad=ad<<1;          //左移的數(shù)碼管的 方便顯示各個(gè)位置的
  111.                 if(dout)
  112.                 {
  113.                         ad++;
  114.                 }
  115.         clock=1;
  116.         clock=0;
  117.         _nop_();           //相當(dāng)于延遲函數(shù)delay
  118.                 _nop_();
  119.         }
  120.         return ad;
  121. }
復(fù)制代碼

所有資料51hei提供下載:
自動(dòng)窗簾.rar (33.99 KB, 下載次數(shù): 13)



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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-3-31 02:36 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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