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

標題: 利用單片機中斷-花樣霓虹燈設計 [打印本頁]

作者: 13170256672    時間: 2018-8-28 22:04
標題: 利用單片機中斷-花樣霓虹燈設計
這是我自己設計的一個花樣霓虹燈設計,及8個led先一次亮滅,然后奇數和偶數燈閃爍,閃爍三次厚,8個燈又開始一次亮,依次循環。
用用單片機實物和proteus都試過,效果很好。

電路原理圖如下:


單片機源程序:
  1. //霓虹燈實驗: P0口接了8個燈,晶振為11.0592MHZ;
  2. //從D1到D8開始8個燈循環點亮一次,即D1點亮1s熄滅,依次是D8;
  3. //然后是間隔閃爍3次,即D1,3,5,7點亮1S熄滅,緊接著2,4,6,8點亮1s熄滅,
  4. //這為一次,然后循環3次。

  5. /*********主程序*******/
  6. #include <reg52.h>
  7. #define uchar unsigned char
  8. uchar i20,i8,i6;  //定義三個正char:-128~127,unsigned char:0~127)
  9. uchar mod1,mod2        ; //定義兩種模式,沒中模式是8位,所以前面用char
  10. bit F;                                          //循環標志位,用bit定義是為了節省空間
  11. void main ()
  12. {
  13. i20=20; //20x50ms=1s
  14. i8=8;        //模式1有8次
  15. i6=6;        //模式2有6次
  16. mod1=0x01;        //0000 0001,模式1初始狀態D1滅,其他亮
  17. mod2=0xAA;        //1010 1010,模式2初始狀態D1,3,5,7亮,其他滅
  18. F=0;//設置循環點亮階段標志;=0為循環點亮階段
  19. TMOD=0x10;//定時,T1,方式1

  20. TH1=0x4C;                    //11.0592*1000000/12*50*0.001=46080 ,   
  21.               //(65536-46080)/256=76...0 商是76(ox4C),余數是0(ox00)
  22. TL1=0x00;
  23. IE=0x88; //打開總中斷與T1中斷
  24. TR1=1;//打開T1控制位開關,在TCON寄存器中
  25. P1=0xF0;  //針對這個實驗板子,led燈一端連著鎖存器和數碼管,
  26.            //為了防止鎖存器數碼管干擾,首先就要先關閉位選 ,
  27.                    //因為使能在硬件始終是開著的,所以關閉位選
  28. while(1);
  29. }

  30. /*****T1中斷程序*********/
  31. void time0() interrupt 3 using 1
  32. {
  33.   
  34.   TH1=0x4C;                   //50ms到,中斷跳出,此時繼續裝初值,直到20次,累計到1s
  35.   TL1=0x00;
  36.   i20--;
  37.   if(i20==0)
  38.    {
  39.           i20=20;
  40.           if(F==0)
  41.              {
  42.               P0=~mod1;
  43.            mod1=mod1<<1;
  44.               i8--        ;
  45.              if(i8==0)
  46.               {
  47.                       i8=8;
  48.                    F=1;
  49.                    mod1=0x01;
  50.               }
  51.             }
  52.   
  53.             else
  54.           {
  55.                   P0=mod2;
  56.                 mod2=~mod2;
  57.                 i6--;
  58.                 if(i6==0)
  59.                  {
  60.                   i6=6;
  61.                   F=0;
  62.                  }
  63.           }  
  64.    }
  65. }
復制代碼



作者: 13170256672    時間: 2018-8-29 10:00
謝謝,麻煩群主了。初學單片機,我會上傳一些自己的心得,但是覺得太簡單了,不知道對大家有沒有用,剛接觸論壇,有什么不對的地方多多包涵,謝謝。
作者: 文鳳軒    時間: 2018-8-29 18:01
謝謝樓主分享這個資料非常珍貴
作者: disalike    時間: 2019-11-15 19:24
可以問下原理圖就這樣嗎
作者: mengxin@    時間: 2019-12-6 17:38
這個是延時,按鍵只有當前的模式跑完了才能進入下一個模式
作者: 姜思湃    時間: 2020-5-15 12:32
老哥有沒有原理圖和ad圖




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1