找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2315|回复: 15
收起左侧

单片机C语言延时函数 编译时 提示语法错误,大佬们 请指点一下

  [复制链接]
回帖奖励 40 黑币 回复本帖可获得 40 黑币奖励! 每人限 1 次
ID:482534 发表于 2020-11-11 09:39 | 显示全部楼层 |阅读模式
void delay(uint jishi);//毫秒延时函数
void TimerInit();//定时器初始化函数
void Time0();//定时器0定时函数
void Time1();//定时器1定时函数
void KeyScan();//按键扫描函数
void waibuzhongduanlingjishu();//外部中断0计数函数
      //void shumaguandisplay(uint qian,uint bai,uint shi,uint ge);//数码管显示函数
      //void shumaguannodisplay(uint qian,uint bai,uint shi,uint ge);//数码管无显示函数
  void main()//主函数
{
   TimerInit();//定时器初始化函数
   IN1=0;//L298M芯片控制端IN1置低电平,电机不运转。
   IN2=0;//L298M芯片控制端IN2置低电平,电机不运转。
   while(1)//死循环

    KeyScan();//按键扫描函数
    {
      if(qitingnum==1)//判断启停键是否第一次按下
             //shumaguandisplay(qian,bai,shi,ge);//数码管显示函数

    //}
   void delay (uint jishi )//延时函数
   {
   uint i,j;
   for(i=jishi;i>0;i--)
      for(j=110;j>0;j--);
    }
   void TimerInit()//定时器初始化函数
{
   TMOD=0x11;//设定定时器为定时器0和定时器1,工作模式都为1。
   TH0=(65536-1000)/256;//TH0装初值为65536-100=65436,即定时100微妙,相当于0.1毫秒。
   TL0=(65536-1000)%256;//TL0装初值为65536-100=65436
   TH1=(65536-50000)/256;//TH1装初值为65536-50000=15536,即定时50000微妙,相当于50毫秒。
   TL1=(65536-50000)%256;//TL1装初值为65536-50000=15536
   EA=1;//全局中断允许
   ET0=1;//打开定时器0中断允许
   TR0=1;//开定时器0      
   EX0=1;//开外部中断0允许
   IT0=1;//设置外部中断0下降触发中断
   ET1=1;//打开定时器1中断允许
   TR1=1;//开定时器1
}



为什么 延时函数  编译时  语法错误呢


回复

使用道具 举报

ID:819660 发表于 2020-11-11 11:08 | 显示全部楼层
delay()上面的括号被注释掉了,也不能在主函数中写子函数,主函数没有},改变一下位置就好了
回复

使用道具 举报

ID:450849 发表于 2020-11-11 11:14 | 显示全部楼层
楼上正解
回复

使用道具 举报

ID:278840 发表于 2020-11-11 11:42 | 显示全部楼层
检查括号,括号有问题{}
回复

使用道具 举报

ID:592145 发表于 2020-11-11 13:48 | 显示全部楼层
KeyScan();//按键扫描函数
    {
      if(qitingnum==1)//判断启停键是否第一次按下
             //shumaguandisplay(qian,bai,shi,ge);//数码管显示函数

    //}


看这一段,注释//要在}后面;不能在前面
回复

使用道具 举报

ID:592145 发表于 2020-11-11 13:49 | 显示全部楼层
这程序 写的有点凌乱呀,写程序的功夫还不到家 呀
回复

使用道具 举报

ID:830240 发表于 2020-11-11 14:25 | 显示全部楼层
   while(1)//死循环      KeyScan();//按键扫描函数    这个死循环的运行范围也只是这个keyscan函数,对 {       if(qitingnum==1)//判断启停键是否第一次按下              //shumaguandisplay(qian,bai,shi,ge);//数码管显示函数      }这段代码没有包含,编译过了也达不到你要的要求吧
回复

使用道具 举报

ID:792404 发表于 2020-11-11 15:10 | 显示全部楼层
  IN1=0;//L298M芯片控制端IN1置低电平,电机不运转。
   IN2=0;//L298M芯片控制端IN2置低电平,电机不运转。
   while(1)//死循环

    KeyScan();//按键扫描函数
    {
      if(qitingnum==1)//判断启停键是否第一次按下
             //shumaguandisplay(qian,bai,shi,ge);//数码管显示函数

    //}
这段应该这样子改一下
  
   IN1=0;//L298M芯片控制端IN1置低电平,电机不运转。
    IN2=0;//L298M芯片控制端IN2置低电平,电机不运转。
while(1)//死循环
{
   
    KeyScan();//按键扫描函数
    {
      if(qitingnum==1)//判断启停键是否第一次按下
          shumaguandisplay(qian,bai,shi,ge);//数码管显示函数
}
    }
回复

使用道具 举报

ID:470996 发表于 2020-11-11 15:29 | 显示全部楼层
多熟悉一下 c语言
回复

使用道具 举报

ID:482534 发表于 2020-11-11 19:35 | 显示全部楼层
YUANYUXING 发表于 2020-11-11 15:10
IN1=0;//L298M芯片控制端IN1置低电平,电机不运转。
   IN2=0;//L298M芯片控制端IN2置低电平,电机不运转 ...

感谢指导    我 刚接触 单片机 啊  
回复

使用道具 举报

ID:482534 发表于 2020-11-11 19:36 | 显示全部楼层
陈都cd 发表于 2020-11-11 11:08
delay()上面的括号被注释掉了,也不能在主函数中写子函数,主函数没有},改变一下位置就好了

感谢 指导    我是  刚刚 接触  单片机的  请谅解
回复

使用道具 举报

ID:180919 发表于 2020-11-11 22:13 | 显示全部楼层
这里后都被注释掉了
//}
   void delay (uint jishi )//延时函数
   {
   uint i,j;
   for(i=jishi;i>0;i--)
      for(j=110;j>0;j--);
    }
   void TimerInit()//定时器初始化函数
{
   TMOD=0x11;//设定定时器为定时器0和定时器1,工作模式都为1。
   TH0=(65536-1000)/256;//TH0装初值为65536-100=65436,即定时100微妙,相当于0.1毫秒。
   TL0=(65536-1000)%256;//TL0装初值为65536-100=65436
   TH1=(65536-50000)/256;//TH1装初值为65536-50000=15536,即定时50000微妙,相当于50毫秒。
   TL1=(65536-50000)%256;//TL1装初值为65536-50000=15536
   EA=1;//全局中断允许
   ET0=1;//打开定时器0中断允许
   TR0=1;//开定时器0      
   EX0=1;//开外部中断0允许
   IT0=1;//设置外部中断0下降触发中断
   ET1=1;//打开定时器1中断允许
   TR1=1;//开定时器1
}
回复

使用道具 举报

ID:836364 发表于 2020-11-12 08:46 | 显示全部楼层
被注释掉了
//void shumaguandisplay(uint qian,uint bai,uint shi,uint ge);//数码管显示函数
      //void shumaguannodisplay(uint qian,uint bai,uint shi,uint ge);//数码管无显示函数
回复

使用道具 举报

ID:654028 发表于 2020-11-12 09:25 | 显示全部楼层
少了括号?
回复

使用道具 举报

ID:466730 发表于 2020-11-12 10:35 | 显示全部楼层
一个好的结构框架是你需要的
回复

使用道具 举报

ID:547021 发表于 2020-11-12 10:51 | 显示全部楼层
你的delay函数的括号被注释掉了,而且需要在main之外书写子函数,而不是在main里面现写
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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