找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的吉他校音器程序源码

[复制链接]
跳转到指定楼层
楼主
ID:192129 发表于 2018-7-25 11:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于51的吉他校音器源码

单片机源程序如下:
  1. //电子校音器源程序
  2. #include <reg51.h>
  3. unsigned char n,i,DelayTime;
  4. unsigned long int f,t,m;
  5. sbit P1_0=P1^0;
  6. sbit P1_1=P1^1;
  7. sbit P1_2=P1^2;
  8. sbit P1_3=P1^3;
  9. sbit P1_4=P1^4;
  10. sbit P1_5=P1^5;
  11. sbit P1_6=P1^6;
  12. sbit P1_7=P1^7;
  13. sbit P3_7=P3^7;
  14. sbit P3_5=P3^5;
  15. void delay(DelayTime);
  16. main()          //主程序
  17. {       
  18.         TMOD=0x01;        //定时器T0工作于方式1
  19.         TH0=0;
  20.         TL0=0;       
  21.         IE=0X81;         //开中断
  22.         IT0=1;           //外部中断0为边沿触发方式
  23.         TR0=1;           //开定时器T0
  24.         t=1;
  25.         f=1;
  26.         for(;;)          //显示输出部分
  27.         {       
  28.                 delay(50);                  //延时50mS
  29.                 P1=0xff;
  30.                 P3_7=1;
  31.                 if(P3_5==0)                 //校音显示输出
  32.                 {
  33.                         m=1000000000/t;
  34.                         m=m*10000;
  35.                         m=m/f;                  //计算频率比
  36.                         if(m>=9715&&m<9885)     //误差在-50音分与-20之间
  37.                                 P1_7=0;              //发光二极管VD2点亮
  38.                         else if(m>=9885&&m<9942)
  39.                                 P1_6=0;
  40.                         else if(m>=9942&&m<9971)
  41.                                 P1_5=0;
  42.                         else if(m>=9971&&m<9988)
  43.                                 P1_4=0;
  44.                         else if(m>9988&&m<=10012)
  45.                                 P1_3=0;
  46.                         else if(m>10012&&m<=10029)
  47.                                 P1_2=0;
  48.                         else if(m>10029&&m<=10058)
  49.                                 P1_1=0;
  50.                         else if(m>10058&&m<=10116)
  51.                                 P1_0=0;
  52.                         else if(m>10116&&m<=10293)
  53.                                 P3_7=0;
  54.                 }
  55.                 else                         //设置显示输出
  56.                 {
  57.                         m=1000000000/t;
  58.                         if(m>19208&&m<19992)     //LM567振荡频率在g音附近,即频率在196Hz附近
  59.                         {
  60.                                 P1_7=0;              //发光二极管VD2点亮
  61.                                 f=19600;             //给标准频率赋值
  62.                         }
  63.                         else if(m>28779&&m<29953)
  64.                         {
  65.                                 P1_6=0;
  66.                                 f=29366;
  67.                         }       
  68.                         else if(m>43120&&m<44880)
  69.                         {
  70.                                 P1_5=0;
  71.                                 f=44000;
  72.                         }       
  73.                         else if(m>64607&&m<67245)
  74.                         {
  75.                                 P1_4=0;
  76.                                 f=65926;
  77.                         }
  78.                 }
  79.         }
  80. }
  81. external0() interrupt 0 //外部中断服务程序
  82. {
  83.         n++;
  84.         if(n==10)
  85.         {
  86.                 TR0=0;
  87.                 t=TL0|(TH0<<8);   //取计数值
  88.                 TH0=0;
  89.                 TL0=0;
  90.                 n=0;
  91.                 TR0=1;
  92.                 t=t+18;           //程序误差修正
  93.         }
  94. }
  95. void delay(DelayTime)    //延时子程序
  96. {
  97.         for(;DelayTime>0;DelayTime--)
  98.         {
  99.                 for(i=0;i<250;i++);
  100.         }
  101. }

复制代码

所有资料51hei提供下载:
程序.zip (26.24 KB, 下载次数: 22)


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

使用道具 举报

沙发
ID:106347 发表于 2019-8-8 19:37 | 只看该作者
多谢楼主分享
回复

使用道具 举报

板凳
ID:598640 发表于 2019-8-10 00:05 来自手机 | 只看该作者
你好,这个有实物吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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