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

標(biāo)題: 自制搖搖棒 [打印本頁]

作者: 51hei學(xué)習(xí)技術(shù)中    時間: 2016-10-11 22:25
標(biāo)題: 自制搖搖棒
嘿嘿,自我感覺不錯。就是這個用手搖晃的東西有點(diǎn)累。
補(bǔ)充下,這個慣性開關(guān) 就是把單片機(jī)的兩個引腳引出來,然后在負(fù)極上接上一根彈性導(dǎo)線,搖動的時候這個彈性導(dǎo)線會向兩邊擺動而觸動到兩個引腳(為了增加慣性,我得彈性導(dǎo)線很長,并且在頂端彎了幾個圈增加慣性)。為了防止擺動出來,我在兩個引腳上加了一段帶皮導(dǎo)線,這樣就能隨便亂晃,不至于導(dǎo)線出來
正面,上面一排是發(fā)光二極管。右下角的是慣性開關(guān)



關(guān)燈后的效果(視頻截圖,相機(jī)拍不到)



STC12C5a60S2單片機(jī)




原理圖,上面少了外震蕩電路和上電復(fù)位電路。其實(shí)這個單片機(jī)在寫入程序后可設(shè)置為內(nèi)部晶振,然后晶振和復(fù)位 ...



源程序:
  1. #include  //單片機(jī)頭文件


  2. #define DY_DELAY                5 //設(shè)置每一個點(diǎn)顯示的時間長度(1~20)

  3. sbit KEY1 = P1 ^ 2; //搖動慣性開關(guān)
  4. sbit KEY2 = P1 ^ 3;


  5. sbit LED1 = P0 ^ 3; //LED燈定義,低電平時亮(自上到下)
  6. sbit LED2 = P0 ^ 4;
  7. sbit LED3 = P0 ^ 5;
  8. sbit LED4 = P0 ^ 6;
  9. sbit LED5 = P0 ^ 7;
  10. sbit LED6 = P4 ^ 6;
  11. sbit LED7 = P4 ^ 5;
  12. sbit LED8 = P4 ^ 4;
  13. sbit LED9 = P2 ^ 7;
  14. sbit LED10 = P2 ^ 6;
  15. sbit LED11 = P2 ^ 5;
  16. sbit LED12 = P2 ^ 4;
  17. sbit LED13 = P2 ^ 3;
  18. sbit LED14 = P2 ^ 2;
  19. sbit LED15 = P2 ^ 1;
  20. sbit LED16 = P2 ^ 0;

  21. /*********************************************************************************************/
  22. unsigned char code logo[] =  {            // (取碼:從上到下從左到右,縱向8位下高位)
  23. //"老",
  24. 0x40,0x40,0x40,0x20,0x48,0x10,0x48,0x08,
  25.       0x48,0x04,0x48,0x7E,0x7F,0x91,0xC8,0x90,
  26.       0x4C,0x88,0x68,0x88,0x50,0x84,0x48,0x86,
  27.       0x4C,0x80,0x60,0xE0,0x40,0x00,0x00,0x00,

  28. //"婆",
  29. 0x00,0x04,0x84,0x04,0xC9,0x87,0x22,0x84,
  30.       0x06,0x4D,0x80,0x54,0x7E,0x26,0x12,0x24,
  31.       0x32,0x26,0x52,0x55,0x9F,0x4C,0x52,0x85,
  32.       0x32,0x06,0x0A,0x06,0x06,0x04,0x00,0x00,

  33. //"我",
  34. 0x20,0x00,0x24,0x08,0x24,0x48,0x24,0x84,
  35.       0xFE,0x7F,0x23,0x02,0x22,0x21,0x20,0x10,
  36.       0xFF,0x09,0x20,0x06,0x22,0x1A,0xAC,0x61,
  37.       0x20,0x80,0x30,0xE0,0x20,0x00,0x00,0x00,

  38. //"愛",
  39. 0x40,0x00,0xB0,0x00,0x92,0x40,0x96,0x30,
  40.       0x9A,0x8C,0x92,0x83,0xF2,0x46,0x9E,0x2A,
  41.       0x92,0x12,0x91,0x2A,0x99,0x26,0x95,0x42,
  42.       0x91,0xC0,0x50,0x40,0x30,0x00,0x00,0x00,

  43. //"你",
  44. 0x40,0x00,0x20,0x00,0xF8,0xFF,0x07,0x00,
  45.       0x40,0x00,0x20,0x08,0x18,0x04,0x0F,0x43,
  46.       0x08,0x80,0xC8,0x7F,0x08,0x00,0x08,0x01,
  47.       0x28,0x06,0x18,0x0C,0x00,0x00,0x00,0x00

  48. }

  49. void delay (unsigned int a){ // 用于點(diǎn)掃描的延時
  50.         unsigned int i;
  51.         while( --a != 0){
  52.                 for(i = 0; i < 1; i++);
  53.         }                                      
  54. }

  55. void DELAY_MS (unsigned int a){
  56.         unsigned int i;
  57.         while( --a != 0){
  58.                 for(i = 0; i < 600; i++);
  59.         }
  60. }
  61. /*********************************************************************************************/



  62. void DISPLAY_OFF (void){
  63.         delay(DY_DELAY);//顯示停留
  64.         P0 = 0xff;
  65.         P2 = 0xff;
  66.         P4 = 0xff;
  67. }
  68. /**********************************************************************************************/


  69. void DISPLAY_PIN (unsigned char d,unsigned char e){ //第1列橫向顯示程序
  70.         unsigned char i;
  71.         i = d & 0x01;
  72.         if(i == 0x01){LED1 = 0;}DISPLAY_OFF();
  73.         i = d & 0x02;
  74.         if(i == 0x02){LED2 = 0;}DISPLAY_OFF();
  75.         i = d & 0x04;
  76.         if(i == 0x04){LED3 = 0;}DISPLAY_OFF();
  77.         i = d & 0x08;
  78.         if(i == 0x08){LED4 = 0;}DISPLAY_OFF();
  79.         i = d & 0x10;
  80.         if(i == 0x10){LED5 = 0;}DISPLAY_OFF();
  81.         i = d & 0x20;
  82.         if(i == 0x20){LED6 = 0;}DISPLAY_OFF();
  83.         i = d & 0x40;
  84.         if(i == 0x40){LED7 = 0;}DISPLAY_OFF();
  85.         i = d & 0x80;
  86.         if(i == 0x80){LED8 = 0;}DISPLAY_OFF();

  87.         i = e & 0x01;
  88.         if(i == 0x01){LED9 = 0;}DISPLAY_OFF();
  89.         i = e & 0x02;
  90.         if(i == 0x02){LED10 = 0;}DISPLAY_OFF();
  91.         i = e & 0x04;
  92.         if(i == 0x04){LED11 = 0;}DISPLAY_OFF();
  93.         i = e & 0x08;
  94.         if(i == 0x08){LED12 = 0;}DISPLAY_OFF();
  95.         i = e & 0x10;
  96.         if(i == 0x10){LED13 = 0;}DISPLAY_OFF();
  97.         i = e & 0x20;
  98.         if(i == 0x20){LED14 = 0;}DISPLAY_OFF();
  99.         i = e & 0x40;
  100.         if(i == 0x40){LED15 = 0;}DISPLAY_OFF();
  101.         i = e & 0x80;
  102.         if(i == 0x80){LED16 = 0;}DISPLAY_OFF();
  103. }

  104. void init (void){
  105.         P4SW = 0xff; //啟動P4接口
  106.         P0M0 = 0xff; //接口設(shè)置為強(qiáng)推
  107.         P2M0 = 0xff;
  108.         P4M0 = 0xff;
  109.         P1 = 0xff; //初始IO接口狀態(tài)
  110.         P0 = 0xff;
  111.         P2 = 0xff;
  112.         P4 = 0xff;
  113. }
  114. /**********************************************************************************************/


  115. void main (void)
  116.    {
  117.         unsigned char a,c;
  118.         init();//初始程序
  119.         while(1)
  120.          {
  121.                
  122.         
  123.                          if(KEY2 == 0)
  124.                         {
  125.                                 DELAY_MS(20);
  126.                                 while(KEY2 == 0);
  127.                                 c = 0;
  128.                                 for(a=1;a<80;a++)
  129.                                 { //這里的“80”是這個字幕需要掃描的列數(shù),修改字幕時必須修改此參數(shù)。
  130.                                         DISPLAY_PIN (logo[c],logo[c+1]); //“LOGO”是第一個字幕的數(shù)據(jù)表名
  131.                                         c=c+2;//產(chǎn)生顯示行移位
  132.                                 }
  133.                         }
  134.                         if(KEY1 == 0)
  135.                         {
  136.                                 DELAY_MS(20);
  137.                                 while(KEY1 == 0);
  138.                                 c = 158;
  139.                                 for(a=1;a<80;a++)
  140.                                 {
  141.                                         DISPLAY_PIN (logo[c],logo[c+1]);
  142.                                         c=c-2;//產(chǎn)生顯示行移位
  143.                                 }
  144.                         }
  145.                         }
  146.                         }
復(fù)制代碼

搖搖棒資料.rar

1.4 KB, 下載次數(shù): 23, 下載積分: 黑幣 -5


作者: qqb    時間: 2017-9-12 13:16
如果把單色二極管換成彩色二極管就更好了
作者: majun_1234    時間: 2017-9-14 22:42
用的是貼片嗎?
作者: 1276312109    時間: 2019-5-4 22:34
樓主您好。請問制作這個需要用到那些東西?
作者: xiaozhong1314    時間: 2019-8-7 18:00
樓主您好。請問制作這個需要用到那些東西?
作者: xiaozhong1314    時間: 2019-8-8 20:26
取模是怎么取的啊




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 夜夜骑av| 黄色播放 | 在线激情视频 | 欧美黄在线观看 | 色综合99 | 涩涩视频网 | 91精品国产一区二区三区蜜臀 | 一区二区三区久久久 | 国产精品高潮呻吟久久 | 在线观看黄视频 | 手机看片在线播放 | 精品久久国产老人久久综合 | 成人午夜电影在线观看 | 亚洲视频第一页 | 一级欧美日韩 | 欧美一区二区免费电影 | 久久免费精彩视频 | 欧美日韩中文在线 | 97人人澡人人爽91综合色 | 99在线免费视频 | 日韩成人av在线 | 国产一级片 | 好姑娘高清在线观看电影 | 婷婷色国产偷v国产偷v小说 | 精品一区二区三区91 | 天天操天天射综合网 | 欧美一区二区三区四区视频 | 黄色大片网| 欧美久久国产 | 日本不卡一区二区三区在线观看 | 91亚洲欧美 | 欧美一级在线观看 | 人人看人人草 | 成人亚洲视频 | 国产情侣啪啪 | 久久只有精品 | 午夜精品三区 | 天天干天天想 | 一级片在线视频 | 久热电影 | 美女久久久 |