找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3198|回复: 2
打印 上一主题 下一主题
收起左侧

diy AT89S52摇摇棒

[复制链接]
跳转到指定楼层
楼主

diy AT89S52摇摇棒
  1. #include <AT89X52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int    //o궨òå
  4. #define KEY P3_7      //¶¨òå»-ÃæÇD»»°′¼ü
  5. uchar KY;    //KY×÷óÃÔúoóÃæËμÃ÷     
  6. uchar disp;     //ÏÔê¾oo×ÖÖ¸Õë
  7. uchar pic=0,num=0;     //picÎa°′¼ü′Îêy£»numÎaÖD¶Ï′Îêy



  8. uchar code love[] = {
  9. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x20,0xC0,0x20,0x00,0x13,
  10. 0x00,0x0C,0x00,0x03,0xC0,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  11. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  12. 0x00,0x00,0x00,0x00,0x08,0x0C,0x08,0x0A,0x08,0x09,0x88,0x08,0x48,0x08,0x28,0x08,
  13. 0x18,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  14. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x0F,
  15. 0x10,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0xF0,0x0F,0x10,0x00,0x08,0x00,0x08,0x00,
  16. 0x08,0x00,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"E:\ò¡ò¡°ô×êáÏ\yzm.BMP",0*/
  17. /* (64 X 16 ) */
  18. };


  19. uchar code loveyou[] = {
  20. 0x00,0x00,0x00,0x00,0xF0,0x0F,0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0xFF,0xFF,
  21. 0x10,0x04,0x10,0x04,0x10,0x04,0x10,0x04,0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,/*"ÖD",0*/
  22. /* (16 X 16 , ËÎìå ) */
  23. 0x20,0x10,0x20,0x08,0x24,0x04,0x24,0x02,0x24,0x01,0x24,0x0D,0xBF,0x0B,0x64,0x09,
  24. 0x24,0x49,0x34,0x89,0x28,0x49,0x24,0x39,0x22,0x01,0x20,0x00,0x20,0x00,0x00,0x00,/*"¿¼",1*/
  25. /* (16 X 16 , ËÎìå ) */
  26. 0x10,0x80,0x10,0x40,0x10,0x30,0xFF,0x0F,0x10,0x40,0x10,0x80,0xF0,0x7F,0x00,0x00,
  27. 0x00,0x00,0xF8,0x7F,0x08,0x20,0x08,0x20,0x08,0x20,0xF8,0x7F,0x00,0x00,0x00,0x00,/*"¼ó",2*/
  28. /* (16 X 16 , ËÎìå ) */
  29. 0x10,0x04,0x60,0x04,0x02,0x7E,0x8C,0x01,0x00,0x00,0xF0,0xFF,0x10,0x42,0x10,0x42,
  30. 0x10,0x42,0xFF,0x7F,0x10,0x42,0x10,0x42,0x10,0x42,0xF0,0xFF,0x00,0x00,0x00,0x00,/*"óí",3*/
  31. /* (16 X 16 , ËÎìå ) */

  32. };

  33. uchar code hehe[] = {
  34. 0x80,0x40,0x40,0x40,0x30,0x42,0x1E,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0xFF,0x7F,
  35. 0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x40,0x00,0x40,0x00,0x00,/*"éú",0*/
  36. /* (16 X 16 , ËÎìå ) */
  37. 0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFF,0x82,0x40,0x82,0x40,0x82,0x40,0x82,0x40,
  38. 0x82,0x40,0x82,0x40,0x82,0x40,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"èÕ",1*/
  39. /* (16 X 16 , ËÎìå ) */
  40. 0x00,0x01,0xE0,0x00,0x00,0x00,0xFF,0xFF,0x10,0x00,0x20,0x81,0x08,0x41,0x08,0x31,
  41. 0x08,0x0D,0xFF,0x03,0x08,0x0D,0x08,0x31,0xF8,0x41,0x00,0x81,0x00,0x81,0x00,0x00,/*"¿ì",2*/
  42. /* (16 X 16 , ËÎìå ) */
  43. 0x00,0x00,0x00,0x20,0xE0,0x10,0x9C,0x08,0x84,0x06,0x84,0x40,0x84,0x80,0xF4,0x7F,
  44. 0x82,0x00,0x82,0x00,0x83,0x02,0x82,0x04,0x80,0x08,0x80,0x30,0x00,0x00,0x00,0x00,/*"àÖ",3*/
  45. /* (16 X 16 , ËÎìå ) */
  46. };

  47. unsigned char code hanzi[] = {
  48. 0x00,0x08,0x00,0x08,0xE0,0x08,0x9F,0x08,
  49. 0x88,0x08,0x88,0x08,0x88,0x08,0x88,0x08,
  50. 0x88,0x08,0x88,0x48,0x88,0x80,0x88,0x40,
  51. 0x88,0x3F,0x08,0x00,0x00,0x00,0x00,0x00,/*"óë",0*/
  52. /* (16 X 16 , ËÎìå ) */
  53. 0x00,0x01,0x80,0x00,0x60,0x00,0xF8,0xFF,
  54. 0x07,0x00,0x40,0x10,0x20,0x0C,0x18,0x03,
  55. 0x0F,0x40,0x08,0x80,0xC8,0x7F,0x08,0x00,
  56. 0x08,0x01,0x28,0x06,0x18,0x18,0x00,0x00,/*"Äã",1*/
  57. /* (16 X 16 , ËÎìå ) */
  58. 0x10,0x08,0x10,0x04,0x10,0x03,0xD0,0x00,
  59. 0xFF,0xFF,0x90,0x00,0x10,0x03,0x00,0x00,
  60. 0xFE,0xFF,0x22,0x42,0x22,0x42,0x22,0x42,
  61. 0x22,0x42,0xFE,0xFF,0x00,0x00,0x00,0x00,/*"Ïà",2*/
  62. /* (16 X 16 , ËÎìå ) */
  63. 0x00,0x01,0x80,0x00,0x60,0x00,0xF8,0xFF,
  64. 0x07,0x02,0x20,0x02,0x22,0x02,0x2C,0x02,
  65. 0x20,0x02,0xFF,0xFF,0x20,0x02,0x28,0x02,
  66. 0x24,0x02,0x22,0x02,0x00,0x02,0x00,0x00,/*"°é",3*/
  67. /* (16 X 16 , ËÎìå ) */


  68. 0x00,0x10,0x02,0x08,0x02,0x04,0x02,0x02,
  69. 0x02,0x01,0x82,0x00,0x42,0x00,0xF2,0xFF,
  70. 0x0E,0x00,0x42,0x00,0x82,0x00,0x02,0x01,
  71. 0x02,0x02,0x02,0x0C,0x00,0x00,0x00,0x00,/*"2»",4*/
  72. /* (16 X 16 , ËÎìå ) */
  73. 0x04,0x40,0x04,0x38,0x04,0x00,0xFC,0x00,
  74. 0x84,0x3C,0x84,0x40,0x85,0x40,0x86,0x42,
  75. 0x84,0x4C,0x84,0x40,0x84,0x40,0x84,0x70,
  76. 0x84,0x04,0x04,0x08,0x04,0x30,0x00,0x00,/*"íü",5*/
  77. /* (16 X 16 , ËÎìå ) */
  78. 0x08,0x02,0x08,0x01,0x89,0x00,0xEA,0xFF,
  79. 0x18,0x01,0x88,0x86,0x00,0x40,0x04,0x20,
  80. 0x04,0x18,0xFC,0x07,0x04,0x40,0x04,0x80,
  81. 0x04,0x40,0xFC,0x3F,0x00,0x00,0x00,0x00,/*"3õ",6*/
  82. /* (16 X 16 , ËÎìå ) */
  83. 0x04,0x20,0x04,0x20,0xF4,0x10,0x94,0x10,
  84. 0x94,0x08,0x94,0xFC,0x95,0x42,0xFE,0x21,
  85. 0x94,0x02,0x94,0x04,0x94,0x08,0x94,0x10,
  86. 0xF4,0x28,0x04,0x44,0x04,0x40,0x00,0x00,/*"ÖÔ",7*/
  87. /* (16 X 16 , ËÎìå ) */


  88. 0x00,0x80,0xFE,0x47,0x02,0x30,0xFA,0x0F,
  89. 0x02,0x10,0xFE,0x67,0x00,0x00,0x00,0xFF,
  90. 0x00,0x41,0x00,0x41,0xFF,0x41,0x10,0x41,
  91. 0x10,0x41,0x10,0xFF,0x10,0x00,0x00,0x00,/*"ìù",8*/
  92. /* (16 X 16 , ËÎìå ) */
  93. 0x00,0x10,0x00,0x0C,0x80,0x03,0x00,0x00,
  94. 0x00,0x00,0xE0,0x3F,0x02,0x40,0x04,0x40,
  95. 0x18,0x40,0x00,0x40,0x00,0x40,0x00,0x78,
  96. 0x40,0x00,0x80,0x01,0x00,0x0E,0x00,0x00,/*"DÄ",9*/
  97. /* (16 X 16 , ËÎìå ) */
  98. 0x10,0x08,0x10,0x04,0x10,0x03,0xD0,0x00,
  99. 0xFF,0xFF,0x90,0x00,0x10,0x03,0x00,0x00,
  100. 0xFE,0xFF,0x22,0x42,0x22,0x42,0x22,0x42,
  101. 0x22,0x42,0xFE,0xFF,0x00,0x00,0x00,0x00,/*"Ïà",10*/
  102. /* (16 X 16 , ËÎìå ) */
  103. 0x00,0x00,0xFE,0xFF,0x22,0x04,0x5A,0x08,
  104. 0x86,0x87,0x08,0x41,0x10,0x3F,0x44,0x40,
  105. 0x24,0x80,0xF4,0xBF,0x2C,0x85,0x27,0x95,
  106. 0x24,0xA5,0xE4,0x9F,0x04,0x80,0x00,0x00,/*"Ëæ",11*/
  107. /* (16 X 16 , ËÎìå ) */





  108. };


  109. /*****oˉêyéùÃ÷*****/
  110. void display1_ltor(void);
  111. void display2_ltor(void);
  112. void display2_rtol(void);
  113. void display3(void);
  114. void display4(void);






  115. /*****n£¨us£©Ñóê±×ó3ìDò*****/
  116. void DelayUs(uint N)
  117. {
  118. uint x;
  119. for(x=0; x<=N;x++);
  120. }

  121. /*****ÖD¶Ï·tÎñ3ìDò*****/
  122. void intersvr0(void) interrupt 0
  123. {
  124. ;
  125. KY=~KY;      //ÿ¸öò¡¶ˉà′»ØË®òø¿a1Ø»áÔú°ú·ùὶ˷ֱe2úéúϽμÑØÖD¶Ï£¬Ö»ìáè¡ÆäÖDò»′Σ¨′ó×óÏòóòò¡2ÅÏÔê¾£©
  126. if(KY==0)
  127. {
  128.    num++;     //¼ÆËãÖD¶Ï′Îêy
  129.    switch(pic)      //Ñ¡Ôñ»-Ãæ
  130.    {
  131.     case 0:{display1_ltor();}break;
  132.     case 1:{display2_ltor();}break;
  133.     case 2:{display3();}break;
  134.     case 3:{display4();}break;
  135.     default:{display1_ltor();}  
  136.    }
  137. }

  138. }
  139. /*****ÏÔê¾×ó3ìDò1*****/
  140. void display1_ltor(void)
  141. {
  142. uchar i;
  143. if(num>5){disp++;num=0;}     //ÿÖD¶Ï7′ÎÇD»»
  144. if(disp>2)disp=0;
  145.   DelayUs(5200);     //′Ë′|Ñóê±ê±¼äòà¸÷ó2¼t2î±e¶ø¸÷2»Ïàí¬£¬êÔ×Åμ÷Õûê1μÃÏÔê¾ÄúèY¾óÖD¼′¿é
  146. for(i=0;i<64;i++)
  147. {
  148.      P0=~hanzi[disp*128+i*2];
  149.      P2=~hanzi[disp*128+i*2+1];
  150.      DelayUs(100);
  151. }
  152. }

  153. /*****ÏÔê¾×ó3ìDò2*****/
  154. void display2_ltor(void)
  155. {
  156. uchar i;
  157. DelayUs(4000);
  158. for(i=0;i<64;i++)
  159. {
  160.      P0=~love[i*2];
  161.      P2=~love[i*2+1];
  162.      DelayUs(140);
  163. }
  164. }
  165. /*****ÏÔê¾×ó3ìDò3*****/
  166. void display3(void)
  167. {
  168. uchar i;
  169.   DelayUs(4000);
  170. for(i=0;i<64;i++)
  171. {
  172.      P0=~loveyou[i*2];
  173.      P2=~loveyou[i*2+1];
  174.      DelayUs(120);
  175. }
  176. }

  177. /*****ÏÔê¾×ó3ìDò4*****/
  178. void display4(void)
  179. {
  180. uchar i;
  181. DelayUs(4000);
  182. for(i=0;i<64;i++)
  183. {
  184.      P0=~hehe[i*2];
  185.      P2=~hehe[i*2+1];
  186.      DelayUs(120);
  187. }
  188. }

  189. /*****Ö÷oˉêy*****/
  190. void main(void)
  191. {
  192. IT0=1;
  193. EX0=1;
  194. EA=1;      //¿aÖD¶Ï£¬Ï½μÑØÖD¶Ï
  195. KY=0;
  196. while(1)     //Ö÷3ìDòÖDÖ»¼ì2a°′¼ü
  197. {
  198.   if(KEY==0)     //»-ÃæÇD»»¼ü°′ÏÂ
  199.   {
  200.   DelayUs(10000);     //°′¼ü襶¶
  201.   if(KEY==0);
  202.   pic++;}
  203.   if(pic>3)pic=0;
  204. }
  205. }
  206. /*****END*****/




复制代码

电路图与资料.rar

5.31 MB, 下载次数: 15, 下载积分: 黑币 -5

评分

参与人数 2黑币 +105 收起 理由
老友人 + 5 很给力!
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:137922 发表于 2016-8-30 13:57 | 只看该作者
新手入门
回复

使用道具 举报

板凳
ID:143796 发表于 2016-11-14 10:46 | 只看该作者
楼主你是真的厉害 用万能板把摇摇棒做出来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表