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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

流水燈,數碼管同時工作

[復制鏈接]
跳轉到指定樓層
樓主
ID:198493 發表于 2017-5-13 22:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教怎么讓流水燈和數碼管同時工作,我弄的總只能顯示其中一個…剛剛入門的小白,最好能推薦些有相關的詳細教程的,謝謝謝謝!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-5-14 00:40 | 只看該作者
這是我八年前寫的程序,你可以參考一下:http://www.zg4o1577.cn/bbs/dpj-3011-1.html
回復

使用道具 舉報

板凳
ID:198493 發表于 2017-5-18 20:37 | 只看該作者
admin 發表于 2017-5-14 00:40
這是我八年前寫的程序,你可以參考一下:http://www.zg4o1577.cn/bbs/dpj-3011-1.html

這是我的程序,如果是想要在定時器定義一個變量用來延時 ,也可以的嗎  大概要怎么弄啊
  1.   #include<reg52.h>
  2. #include <intrins.h>
  3. sbit key1=P1^0;        
  4. sbit key2=P1^1        ;
  5. sbit key3=P1^2;
  6. sbit key4=P1^3;
  7. sbit key5=P1^4;                  //第五個鍵盤調節分
  8. sbit key6=P1^5;
  9. typedef unsigned char u8;
  10. typedef unsigned int u16;
  11. u8 smgduan[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
  12.                       0x7F, 0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71,};// 段選
  13. u8 smgduan1[16]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,};

  14. u8 smgwei[8]={0x00,0x04,0x08,0x0c,0x10,0x14,0x18,0x1c}; //位選
  15. u8 a[4];//保存時鐘的數據
  16. u8 sec,min;
  17. void delay(u16 i)
  18. {
  19. while(i--);
  20. }
  21. void time0init()  //定時器0初始化
  22. {
  23. TMOD=0X01;
  24. TH0=0Xfc;
  25. TL0=0X18;  //1ms
  26. TR0=1;
  27. EA=1;
  28. ET0=1;
  29. }
  30. void display()
  31. {
  32. u8 i;
  33. a[0]=smgduan[sec%10];
  34. a[1]=smgduan[sec/10];

  35. a[2]=smgduan1[min%10];
  36. a[3]=smgduan[min/10];


  37. for(i=0;i<4;i++)        
  38. {
  39. P0=a[i];
  40. P2=smgwei[4-i];
  41. delay(300);          //不同的延時時間對數碼管顯示亮度會產生很大的影響,時間越短影響越大
  42. }
  43. }
  44. //--聲明全局函數--//
  45. void Delay10ms(unsigned int c);   //延時10ms            

  46. /*******************************************************************************
  47. * 函 數 名         : abc
  48. * 函數功能                   : 主函數
  49. * 輸    入         : 無
  50. * 輸    出         : 無
  51. *******************************************************************************/

  52. abc()
  53. {
  54.         if(min==40)
  55. {
  56.         unsigned char LED;

  57.         LED = 0x01;          //0xfe = 1111 1110

  58.          while (1)
  59.         {

  60.              P0 = LED;
  61.                  Delay10ms(50);
  62.                  LED = LED << 1;    //循環右移1位,點亮下一個LED "<<"為左移位
  63.                   if (P0 == 0x00)        //當它全滅的時候,重新賦值
  64.                  {
  65.                          LED = 0x01;          // 0xfe = 1111 1110
  66.                  }
  67.                                     
  68.         }
  69. }
  70. }
  71. /*******************************************************************************
  72. * 函 數 名         : Delay10ms
  73. * 函數功能                   : 延時函數,延時10ms
  74. * 輸    入         : 無
  75. * 輸    出         : 無
  76. *******************************************************************************/

  77. void Delay10ms(unsigned int c)   //誤差 0us
  78. {
  79.     unsigned char a, b;

  80.         //--c已經在傳遞過來的時候已經賦值了,所以在for語句第一句就不用賦值了--//
  81.     for (;c>0;c--)
  82.         {
  83.                 for (b=38;b>0;b--)
  84.                 {
  85.                         for (a=130;a>0;a--);
  86.                 }
  87.            
  88.         }      
  89. }

  90. void keyscan()
  91. {
  92. if(key2==0)
  93. {
  94. delay(200);
  95. if(key2==0)
  96. {
  97. delay(200);
  98. min=0;
  99. sec=0;
  100. while (!key2);}
  101. }
  102. if(key1==0)
  103. {
  104. delay(200);
  105. if(key1==0)
  106. {
  107. delay(200);
  108. while (!key1);
  109. TR0=~TR0;
  110. }
  111. }
  112.   if(key3==0)
  113. {
  114. delay(200);
  115. if(key3==0)
  116. {
  117. delay(200);
  118. sec +=10;
  119. while(!key3);
  120. }
  121. }
  122. if(key5==0)
  123.   {
  124.   delay(200);
  125.   if(key5==0)
  126.   {
  127.   delay(200);
  128.   min+=10;
  129.   while(!key5);}
  130.   if(min>=60)
  131.   {delay(200);
  132.   min=0;
  133.   sec=0;
  134.   while(!key5);}}
  135.   if(key6==0)
  136.   {
  137.   delay(200);
  138.   if(key6==0)
  139.   {
  140.   delay(200);
  141.   if(min>=10)
  142.   min-=10;
  143.   while(!key6);}
  144.   else
  145.   {delay(200);
  146.   min=0
  147.   sec=0;
  148.   while(!key6);}
  149.   }
  150. if(key4==0)
  151. {
  152. delay(200);
  153. if(key4==0)
  154. {
  155. delay(200);
  156. if(sec>=10)
  157. {delay(200);
  158. sec-=10;
  159. while(!key4);
  160.   }
  161.   else if(min>=1&&sec<=10)
  162.   {delay(200);
  163.   min-=1;
  164.   sec+=50;
  165.   while(!key4);
  166.   }
  167.   else if(min==0&&sec<=10)
  168.   {delay(200);
  169.   min=0;
  170.   sec=0;
  171.   while(!key4);
  172.   }
  173.   }
  174.   
  175. }
  176. }
  177.                
  178. void main()
  179. {
  180. time0init();
  181. while(1)
  182. { abc();
  183. keyscan();
  184. display();
  185. }        
  186. }
  187. void time0() interrupt 1
  188. {
  189. static u16 j;
  190. TH0=0Xfc;
  191. TL0=0X18;  //1ms
  192. j++;
  193. if(j==1000) //1s
  194. {
  195. j=0;
  196. sec++;
  197. if(sec>=60)        
  198. {
  199. sec=0;
  200. min++;
  201. if(min>=60)
  202. {
  203. min=0;
  204. }
  205. }
  206. }
  207. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本久久综合 | 日韩av高清 | 色噜噜亚洲男人的天堂 | 一级毛片在线视频 | 久久一区二区视频 | 欧美视频偷拍 | 色视频网站 | 中文字幕在线第一页 | 91亚洲国产成人久久精品网站 | 国产精品视频一二三区 | av在线二区| 国产精品成人品 | 午夜视频一区二区 | 99精品一区二区 | 日本精品一区二区在线观看 | 日韩在线综合网 | 国产成人精品午夜视频免费 | 国产精品99久久久久 | 超碰最新在线 | 成人免费大片黄在线播放 | 能看的av| 一级做a爰片久久毛片免费看 | 欧美亚洲国产一区二区三区 | 久久精品网 | 人人人人人爽 | 久久激情视频 | 欧美日韩在线高清 | 国产区视频在线观看 | 国产日韩欧美 | 精品婷婷 | 色播视频在线观看 | 国产精品免费看 | 中文字幕一区二区三区不卡在线 | xx视频在线观看 | 福利视频一区二区 | 久久伊人精品 | 久久精品播放 | 亚洲男女激情 | 国产中文视频 | 午夜影晥 | 亚洲日本一区二区三区四区 |