找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2957|回复: 0
收起左侧

单片机电子琴完整程序

[复制链接]
ID:244243 发表于 2018-1-5 14:28 | 显示全部楼层 |阅读模式
单片机源程序如下:
  1. #include<reg52.h>                         //包含头文件
  2. #define uint unsigned int
  3. #define uchar unsigned char         //宏定义
  4. sbit speaker=P1^4;                        //喇叭引脚定义
  5. uchar a,b;                                        //声明两个无符号字符型变量,用于定时器初值的赋值
  6. void check_key()                        //按键函数
  7. {
  8.         P3=0xff;//先赋给P3组口高电平
  9.         switch(P3)//当有按键按下,P3口的状态就会改变
  10.         {
  11.                 case 0xfe:P2=0x7f;a=0xfb;b=0xe9;EA=1;break;//当第一个按键按下,P3口状态就是11111110,也就是0xfe,就执行后面的P2口显示数字1,并给定时器赋初值,打开中断系统总开关
  12.                 case 0xfd:P2=0xbf;a=0xfc;b=0x5c;EA=1;break;//同上
  13.                 case 0xfb:P2=0xdf;a=0xfc;b=0xc1;EA=1;break;
  14.                 case 0xf7:P2=0xef;a=0xfc;b=0xef;EA=1;break;//P2组为发光二极管组
  15.                 case 0xef:P2=0xf7;a=0xfd;b=0x45;EA=1;break;//注意:EA不能改为TR0
  16.                 case 0xdf:P2=0xfb;a=0xfd;b=0x92;EA=1;break;
  17.                 case 0xbf:P2=0xfd;a=0xfd;b=0xd0;EA=1;break;
  18.                 case 0x7f:P2=0xfe;a=0xfd;b=0xee;EA=1;break;
  19.                 default:EA=0;speaker=0;P2=0xff;                           //当P3口为其他状态时(包括无按键按下和多按键按下)关闭声音输出和显示
  20.         }
  21. }

  22. void main()                //主函数
  23. {
  24.         TMOD=0x01;        //定时器工作方式1
  25.         TH0=a;                //定时器0初值的高八位
  26.         TL0=b;                //定时器0初值的低八位
  27.         ET0=1;                //允许中断
  28.         TR0=1;                //打开定时器
  29.         while(1)    //进入循环
  30.         {
  31.                 check_key();//扫描按键
  32.         }
  33. }

  34. void time0() interrupt 1          //定时器工作函数
  35. {
  36.         TH0=a;                                          //定时器高八位赋初值
  37.         TL0=b;                                          //定时器低八位赋初值
  38.         speaker=~speaker;                  //喇叭引脚取反
  39. }
复制代码

所有资料51hei提供下载:
完整程序.docx (13.78 KB, 下载次数: 12)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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