找回密码
 立即注册

QQ登录

只需一步,快速开始

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

生日快乐歌单片机C语言程序

[复制链接]
跳转到指定楼层
楼主
ID:116726 发表于 2016-4-26 10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit BEEP=P2^3;//接喇叭或蜂鸣器的接口
  5. uint h,i;
  6. uint hz;
  7. uchar jiep;
  8. bit flag;
  9. uint code fre[]={ 64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217};
  10. uchar code song[]={6,9, 6,3, 7,12, 6,12, 9,12, 8,24, 6,9, 6,3, 7,12,
  11. 6,12, 10,12, 9,24, 6,9, 6,3, 13,12, 11,12, 8,12, 7,12,
  12. 12,9, 12,3, 11,12, 9,12, 10,12, 9,24}; //歌谱 2个一组(0,0)(音调,节拍)

  13. void init () //初始化
  14. {
  15.         EA=1;
  16.         TMOD=0x11;
  17.         ET0=1;
  18.         ET1=1;
  19.         i=0;
  20.         flag=1;
  21. }

  22. void sing()
  23. {
  24.         if(flag==1)
  25.         {
  26.         h=song[i];
  27.         jiep=song[i+1];
  28.         i=i+2;
  29.         if(i>46)
  30.                 i=0;
  31.         hz=fre[h];
  32.         TH0=(hz)/256;
  33.         TL0=(hz)%256;
  34.         flag=0;
  35.         TR0=1;
  36.         TR1=1;
  37.         }
  38. }

  39. void main()
  40. {
  41.         init();
  42.         while(1)
  43.         {
  44.         sing();
  45.         }
  46. }

  47. void time0() interrupt 1 //定时器0
  48. {
  49.         TH0=(hz)/256;
  50.         TL0=(hz)%256;
  51.         if(!flag)
  52.                 BEEP=!BEEP;
  53.         else
  54.                 TR0=0;
  55. }

  56. void time1() interrupt 3
  57. {
  58.         TH1=(15536)/256;
  59.         TL1=(15536)%256;
  60.         --jiep;
  61.         if(jiep==0)
  62.         flag=1;
  63. }

复制代码

评分

参与人数 1黑币 +10 收起 理由
WANGCHONG + 10 很给力!

查看全部评分

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

使用道具 举报

沙发
ID:116400 发表于 2016-4-26 12:47 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

板凳
ID:116400 发表于 2016-4-26 12:48 | 只看该作者
谢谢楼主
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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