找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2527|回復(fù): 2
收起左側(cè)

我的目的是為了按鈕的時(shí)候,燈亮的同時(shí)do的發(fā)音響起,可是我不知道哪錯(cuò)了

[復(fù)制鏈接]
ID:237055 發(fā)表于 2017-10-2 21:27 | 顯示全部樓層 |閱讀模式
電路圖00.png
"..\..\..\..\..\..\..\..\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"  
這是我錯(cuò)的提示大神們幫幫忙,不知道怎么改
下面是我的編程
#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)//第一個(gè)按鈕
       {P0=0xfe;delay();}
       {
  void delaydo(void)//do的音調(diào)開始
{
   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音調(diào)
      {
  sound=0;
  delaydo();
  sound=1;
  delaydo();
      }
   }
}
       }
       else{P0=0xff;}//do結(jié)束結(jié)束發(fā)音




回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2017-10-3 15:38 | 顯示全部樓層
把發(fā)音程序編委子函數(shù),在主程序中調(diào)用。
回復(fù)

使用道具 舉報(bào)

ID:151348 發(fā)表于 2017-10-3 16:15 | 顯示全部樓層
delaydo,sounder這兩個(gè)函數(shù)拿到main函數(shù)外面成為子函數(shù),另外還要去掉sounder函數(shù)里的while(1)這層循環(huán)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表