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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

廢手機電池的“浪漫”用途—迷你搖搖棒制作

[復制鏈接]
跳轉到指定樓層
樓主
手頭上攢了一些手機電池不知道干嘛就尋思著做一些小玩意,于是就有了一個主意就是搖搖棒即簡單又好玩,本人喜歡小而巧的東西所以就把這個東西做的很小。

上圖是搖搖棒的原理利用人的視覺暫留結合單片機控制LED的亮滅就可以在空中顯示字符或者圖標

上圖是電路圖為了把東西做小我選擇了STC15F104單片機它有8個引腳去除VCCGND還有6I/O口可以顯示一些簡單的字母和數字單片機內部自帶了EEPROM所以利用它可以存儲每一次顯示的狀態(每一次的開關電源就可以切換到下一個顯示的字符)程序在最后面。


顯示效果:

單片機源程序如下:
  1. #include
  2. #define uchar unsigned char
  3. #define EN_EPROM 0x83;        //使能EEPROM
  4. #define S_MODE     0x00;        //待機模式
  5. #define R_MODE     0x01;        //讀模式
  6. #define W_MODE     0x02;        //寫模式
  7. #define F_MODE     0x03;        //擦除模式
  8. sfr IAP_DATA  =  0xC2;
  9. sfr IAP_ADDRH =  0xC3;
  10. sfr IAP_ADDRL =  0xC4;
  11. sfr IAP_CMD   =  0xC5;
  12. sfr IAP_TRIG  =  0xC6;
  13. sfr IAP_CONTR =  0xC7;
  14. void init();
  15. uchar num=0,m=0;
  16. uchar read_dat(uchar addr_h,uchar addr_l);
  17. void erase_dat(uchar addr_h,uchar addr_l);
  18. void write_dat(uchar addr_h,uchar addr_l,uchar w_dat);
  19. unsigned char code tab[10][32]={
  20.     {
  21.         0xe7,0xc3,0xc1,0xe0,0xc1,0xc3,0xe7,0xff,
  22.         0xff,0xff,0xff,0xe7,0xc3,0xc1,0xe0,0xc1,
  23.         0xc3,0xe7,0xff,0xff,0xff,0xff,0xe7,0xc3,
  24.         0xc1,0xe0,0xc1,0xc3,0xe7,0xff,0xff,0xff         
  25.     },

  26.     {
  27.         0xff,0xff,0xde,0xc0,0xde,0xff,0xff,0xff,
  28.         0xff,0xff,0xff,0xe7,0xc3,0xc1,0xe0,0xc1,
  29.         0xc3,0xe7,0xff,0xff,0xff,0xff,0xff,0xc1,
  30.         0xfe,0xfe,0xfe,0xfe,0xc1,0xff,0xff,0xff        
  31.     },

  32.     {
  33.          0xde,0xed,0xf3,0xf3,0xed,0xde,0xff,0xff,
  34.         0xff,0xff,0xff,0xde,0xed,0xf3,0xf3,0xed,
  35.         0xde,0xff,0xff,0xff,0xff,0xff,0xff,0xde,
  36.         0xed,0xf3,0xf3,0xed,0xde,0xff,0xff,0xff        
  37.     },

  38.     {
  39.         0xfb,0xfd,0xd6,0xe8,0xd6,0xfd,0xfb,0xff,
  40.         0xff,0xff,0xff,0xfb,0xfd,0xd6,0xe8,0xd6,
  41.         0xfd,0xfb,0xff,0xff,0xff,0xff,0xfb,0xfd,
  42.         0xd6,0xe8,0xd6,0xfd,0xfb,0xff,0xff,0xff         
  43.     },

  44.     {
  45.          0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5,
  46.         0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5,
  47.         0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5,
  48.         0xea,0xd5,0xea,0xd5,0xea,0xd5,0xea,0xd5        
  49.     },
  50.    
  51.     {
  52.          0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff,
  53.         0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff,
  54.         0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff,
  55.         0xfa,0xfd,0xfa,0xff,0xef,0xd7,0xef,0xff        
  56.     },
  57.    
  58.     {
  59.         0xf0,0xed,0xdd,0xed,0xf0,0xff,0xff,0xdf,
  60.         0xdf,0xc0,0xdf,0xdf,0xff,0xff,0xc1,0xfe,
  61.         0xfe,0xfe,0xc1,0xff,0xff,0xc1,0xfe,0xf1,
  62.         0xfe,0xc1,0xff,0xff,0xe1,0xde,0xde,0xe1      
  63.     },
  64.    
  65.     {
  66.         0xc0,0xfb,0xfb,0xfb,0xc0,0xff,0xff,0xff,
  67.         0xff,0xff,0xde,0xed,0xf3,0xf3,0xed,0xde,
  68.         0xff,0xff,0xff,0xff,0xff,0xff,0xcf,0xf7,
  69.         0xf8,0xf7,0xcf,0xff,0xff,0xff,0xff,0xff     
  70.     },
  71.    
  72.     {
  73.         0xc0,0xde,0xd2,0xda,0xda,0xc2,0xfe,0xc0,
  74.         0xdf,0xd0,0xd6,0xd6,0xd2,0xde,0xc0,0xff,
  75.         0xc0,0xde,0xd2,0xda,0xda,0xc2,0xfe,0xc0,
  76.         0xdf,0xd0,0xd6,0xd6,0xd2,0xde,0xc0,0xff
  77.     },
  78.    
  79.     {
  80.         0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfd,0xfb,
  81.         0xf7,0xef,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,
  82.         0xfd,0xfb,0xf7,0xef,0xdf,0xef,0xf7,0xfb,
  83.         0xfd,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xff
  84.     },
  85. };                                      
  86. void delay(uchar xms)
  87. {
  88.     char i,j;
  89.     for(i=0;i    for(j=0;j<50;j++);
  90. }
  91. void main()
  92. {
  93.     init();
  94.     num=read_dat(0x00,0x01);
  95.     ++num;
  96.     if(num>=11)
  97.     {
  98.         num=1;
  99.     };   

  100.     erase_dat(0x00,0x01);
  101.     write_dat(0x00,0x01,num);
  102.     while(1)
  103.     {
  104.         uchar i=0;
  105.         
  106.         for(i=0;i<32;i++)
  107.         {
  108.             P3=tab[num-1][i];
  109.             delay(100);
  110.         }            
  111.     }   
  112. }
  113. void init()
  114. {
  115.     IAP_CONTR    = EN_EPROM;        //把第7位置1允許EEPROM可以讀寫
  116.     IAP_CMD     = S_MODE;        //待機模式無ISP操作
  117.     IAP_ADDRH    = 0x00;
  118.     IAP_ADDRL    = 0x00;

  119. }

  120. uchar read_dat(uchar addr_h,uchar addr_l)
  121. {
  122.     uchar E_dat = 0x00;
  123.     IAP_CMD     = R_MODE;        //模式選擇為讀EEPROM
  124.     IAP_ADDRH    = addr_h;
  125.     IAP_ADDRL    = addr_l;
  126.     IAP_TRIG    = 0x5A;        //使命令有效
  127.     IAP_TRIG    = 0xA5;        //使命令有效
  128.     E_dat        = IAP_DATA;
  129.     return E_dat;
  130. }

  131. ……………………

  132. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
廢手機電池的“浪漫”用途—迷你搖搖棒.rar (117.82 KB, 下載次數: 19)




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

使用道具 舉報

沙發
ID:266802 發表于 2017-12-28 14:19 來自手機 | 只看該作者
看著還挺不錯的
回復

使用道具 舉報

板凳
ID:263842 發表于 2017-12-29 13:30 | 只看該作者
就喜歡迷你的東西,但是這個型號的怎么燒錄呢?》
回復

使用道具 舉報

地板
ID:704585 發表于 2020-6-19 10:32 | 只看該作者
謝謝分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人免费一区二区 | 色综合天天天天做夜夜夜夜做 | 欧美亚洲国语精品一区二区 | 国产aa | 国产精品久久久久久238 | 97精品超碰一区二区三区 | 韩国毛片一区二区三区 | 成人日韩| 国产精品国产成人国产三级 | 欧美一区二区三区四区在线 | 天天干天天爽 | 九九热免费观看 | 天天爽综合网 | 日本在线中文 | 日韩成人免费视频 | 久久久久国产一区二区三区四区 | 毛片a区 | 国产日韩一区 | 国产黄色av电影 | 91精品国产91久久久久福利 | 成人免费视频网站在线看 | 免费簧片视频 | 欧美日韩18| 欧美久久一级特黄毛片 | 亚洲成人av | 一区在线视频 | 国产高清视频 | 欧美精品一区二区三区在线 | 日韩在线精品 | 一区二区三区四区在线 | 热re99久久精品国产99热 | 日韩精品成人网 | 久优草 | 在线观看亚洲专区 | 男女在线免费观看 | 国产91久久精品一区二区 | 久操av在线| 一区二区三区四区免费观看 | 在线观看中文字幕dvd播放 | 久草免费在线视频 | 亚洲国产精久久久久久久 |