找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1419|回复: 1
收起左侧

单片机仿真-跑马灯和音频播放器组合 附源程序

[复制链接]
ID:824089 发表于 2020-9-28 11:19 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
  1. #include<reg52.h>
  2. #define   uint   unsigned int
  3. #define   uchar  unsigned char
  4. sbit      speaker=P3^0; //??????????,???I/O???????????????????I/O????
  5. //sbit      speaker1=P1^1; //????????I/O???,???????
  6. uint k,i;
  7. unsigned char timer0h,timer0l,time;
  8.         //???
  9. code unsigned char sszymmh[]={
  10.          5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,
  11.          5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,
  12.          5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,
  13.          4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};
  14.        // ????? ???
  15. code unsigned char FREQH[]={
  16.         0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
  17.         0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
  18.         0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
  19.         0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
  20.                             } ;// ????? ???
  21. code unsigned char FREQL[]={
  22.       0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
  23.       0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
  24.       0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
  25.       0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
  26.                             };
  27. void delay(unsigned char t)
  28.    {
  29.    unsigned char t1;
  30.    unsigned long t2;
  31.    for(t1=0;t1<t;t1++)
  32.    {
  33.     for(t2=0;t2<8000;t2++)
  34.        {
  35.         ;
  36.         }
  37.    }
  38.    TR0=0;
  39. }
  40. void t0int() interrupt 1
  41. {
  42. TR0=0;
  43. speaker=!speaker;
  44. TH0=timer0h;
  45. TL0=timer0l;
  46. TR0=1;
  47. }
  48. void song()
  49. {
  50. TH0=timer0h;
  51. TL0=timer0l;
  52. TR0=1;
  53. delay(time);                     
  54. }
  55. void delay_()
  56. {
  57. uchar a,b;
  58. for(a=500;a;a--)
  59. {
  60. for(b=500;b;b--);
  61. }
  62. }
  63. void main(void)
  64. {
  65.          uchar tmp=1;
  66. speaker=0; //??I/O??????????
  67. //unsigned int k,i;
  68. TMOD=1; //?CT0??????1
  69. EA=1;
  70. ET0=1;//IE=0x82 //CPU???,CT0???
  71. while(1)
  72.     {
  73.        i=0;
  74.        while(i<75)
  75.     {         //?????? ,??????      
  76.        k=sszymmh[i]+7*sszymmh[i+1]-1;
  77.        timer0h=FREQH[k];
  78.        timer0l=FREQL[k];
  79.        time=sszymmh[i+2];
  80.        i=i+3;
  81.        song();
  82.         }
  83.                                 P0=(~tmp);
  84. delay_();
  85. tmp<<=1;
  86. if(tmp==0)//?????????1
  87. {
  88. tmp=1;
  89. }
  90.     }
  91.   }
复制代码
51hei.png
全部资料51hei下载地址:
文件.rar (51.83 KB, 下载次数: 15)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:748788 发表于 2020-9-29 15:55 | 显示全部楼层
这个仿真够热闹的。8个电阻改用排阻更简单,另外单片机的晶振和复位电路都可以省去,仿真不受影响
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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