找回密码
 立即注册

QQ登录

只需一步,快速开始

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

我的目的是为了按钮的时候,灯亮的同时do的发音响起,可是我不知道哪错了

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

"..\..\..\..\..\..\..\..\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\Tools\MAKE\RunTool.exe" --good-exits=0,1 --executable=C51.exe "..\main.c" ROM(SMALL) BROWSE DEBUG CODE OBJECTEXTEND PREPRINT  OBJECT("main.OBJ")
"..\..\..\..\..\..\..\..\Program Files (x86)\Labcenter Electronics\Proteus 8 Professional\Tools\MAKE\RunTool.exe" --good-exits=0,1 --executable=BL51.exe "main.OBJ" TO "Debug.OMF"  
这是我错的提示大神们帮帮忙,不知道怎么改
下面是我的编程
#include <reg51.h>
#include <stdio.h>
sbit sound=P3^7;
sbit S1=P1^0;sbit S2=P1^1;sbit S3=P1^2;sbit S4=P1^3;sbit S5=P1^4;sbit S6=P1^5;sbit S7=P1^6;sbit S8=P1^7;
void delay(void)
{
   unsigned char i,j;
   for(i=0;i<250;i++)
      for(j=0;j<250;j++);
}
void main(void)
{
   while(1)
   {
      if(S1==0)//第一个按钮
       {P0=0xfe;delay();}
       {
  void delaydo(void)//do的音调开始
{
   unsigned char n;
   for(n=0;n<300;n++);//do
}
void sounder(void)
{
   unsigned int i;
   while(1)
   {
      for(i=0;i<130;i++)//do音调
      {
  sound=0;
  delaydo();
  sound=1;
  delaydo();
      }
   }
}
       }
       else{P0=0xff;}//do结束结束发音




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

使用道具 举报

沙发
ID:111634 发表于 2017-10-3 15:38 | 只看该作者
把发音程序编委子函数,在主程序中调用。
回复

使用道具 举报

板凳
ID:151348 发表于 2017-10-3 16:15 | 只看该作者
delaydo,sounder这两个函数拿到main函数外面成为子函数,另外还要去掉sounder函数里的while(1)这层循环
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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