找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求助大神,单片机延时语句本身没错但报错,实在是不懂了,求教大神

查看数: 3036 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-5-30 15:02

正文摘要:

延时的3句全报错。。无奈。 #include<reg51.h> sbit P1_0=P1^0;                                ...

回复

ID:206466 发表于 2017-5-31 19:26
延时程序没错就不是他的问题,一些看似无关的小错误也会让程序报错
ID:155507 发表于 2017-5-30 22:37
  1. #include<reg51.h>

  2. sbit P1_0=P1^0;                                     //脉冲输出//
  3. sbit P1_1=P1^1;                                     //计数开关//
  4. sbit P1_2=P1^2;                                     //脉冲开关//
  5. unsigned char xdata w _at_ 0x8002,d _at_ 0x8004;    //位选 段选//
  6. unsigned char j,x0,x1,x2,x3,x4,x5;                  //定义j(定时倍数10) x显示段码//
  7. unsigned long i;                                    //累加i 显示i //
  8. unsigned char code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //数组显示//
  9. void delay()
  10. {   unsigned char i;
  11.         for(i=0;i<250;i++);
  12. }
  13. void play()
  14. {
  15.         x0=i%10;
  16.         x1=i/10%10;
  17.         x2=i/100%10;
  18.         x3=i/1000%10;
  19.         x4=i/10000%10;
  20.         x5=i/100000;
  21.         w=0x01;d=a[x0]; delay();
  22.         w=0x02;d=a[x1]; delay();
  23.         w=0x004;d=a[x2];delay();
  24.         w=0x08;d=a[x3]; delay();
  25.         w=0x10;d=a[x4]; delay();
  26.         w=0x20;d=a[x5]; delay();  
  27. }
  28. void main()
  29. {
  30.         EA=1;
  31.         ET0=1;
  32.         ET1=1;
  33.         TMOD=0x15;
  34.         TR0=0;
  35.         TR1=0;
  36.         TH0=0x00; TL1=0x00;
  37.         TH1=0x3c; TL1=0xb0;
  38.         while(1)
  39.         {
  40.                 if(P1_1==0)
  41.                 {
  42.                         TR0=0; TH0=0x00; TL0=0x00; i=153091; play();
  43.                 }
  44.                 if(P1_1==1)
  45.                 {
  46.                         TR0=1; i=TH0<<8|TL0; play();
  47.                 }
  48.                 if(P1_2==0)
  49.                 {
  50.                         TR1=0; TH1=0x3c; TL1=0xb0; j=0; P1_0=0;
  51.                 }
  52.                 if(P1_2==1)
  53.                 {
  54.                         TR1=1;
  55.                 }
  56.         }
  57. }
  58. void int1() interrupt 3
  59. {
  60.         TH1=0x3c; TL1=0xb0;
  61.         j++;
  62.         if(j==10)
  63.         {
  64.                 P1_0=!P1_0; j=0;
  65.         }
  66. }

复制代码
ID:70302 发表于 2017-5-30 19:18
语句结束了需要分号“;”
语句结束了需要分号“;”
语句结束了需要分号“;”
ID:18297 发表于 2017-5-30 16:41
任何问题都在你的程序中:
1)注意语句结束了需要分号“;”;
2)注意程序书写,不要一行接一行连着写;
code unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}  //数组显示//
这句后面的“;”呢?

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

Powered by 单片机教程网

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