我自己编程的程序在法编译通过,我反复查找,找不到原因,请帮忙检查一下到底在那个地方有错误,是什么原因?麻烦你告诉我出错误的地方,是什么原因发生这样的错误。
下面是我编程的程序和错误信息:(红 {MOD}错误信息)
C51 COMPILER V6.12 SWW 07/17/2012 15:23:29 PAGE 1 C51 COMPILER V6.12, COMPILAtiON OF MODULE SWWOBJECT MODULE PLACED IN H:SWW.OBJCOMPILER INVOKED BY: D:keilC51BINC51.EXE H:SWW.CDB SB OE stmt level source 1 //班玛频率程序// 2 #include<intrins.h> 3 #include <reg52.h> 4 #define SEG P2 //7段数码管接P2 5 #define SCANP P1 //数码管扫描线接P1 6 sbit PB0=P3^2; //PBO安纽接P3.2 7 char TAB[3]={0xc0,0xf9,0xa4}; 8 char disp[4]={0xc0,0xc0,0xc0,0xc0}; //显示区数组初始显示0000; 9 //=======声明T0定时函数===== 10 #define count_M1 5000 //(T0(MODE1)的计数值0.05S 11 #define H_0 (65636-count_M1)/256 //(T0(MODE1)的计算高8位 12 #define L_0 (65636-count_M1)%256 //(T0(MODE1)的计算低8位 13 char times=0; // 计算中断次数 14 //=====声明基本变量======= 15 bit status_F=1; //状态标志位 16 char scan=1; // 扫描信号 17 unsigned int fred=0; // 频率变量 18 void delay1m(int); // 声明延迟函数 19 void measure(void); // 声明测量函数 20 void display(void); // 声明显示函数 21 sfr16 DPTR=0x82; //声明DPTR 22 //=========主程序============ 23 main() //主程序开始 24 { while(1) //无穷循环,程序一直运行 25 1 {if(PB0==0) //如果安下PB0 26 2 { status_F=0; //则进入测量阶段 27 3 measure(); //调测量函数 28 3 while(status_F=0); //等待0;测量完毕*** WARNING C276 IN LINE 28 OF H:SWW.C: constant incondition expression 29 3 } 30 2 else display(); // 显示阶段 31 2 } //while 循环结束 32 1 } //主程序结束 33 //======= 测量函数======== 34 void measure() //测量函数开始 35 { SCANP=0xff; //关闭显示器 36 1 IE=0X8a; //启用T0,T1中断 37 1 TMOD=0X51; //T1为计算器,T0定时器 38 1 TH0=H_0; //设置T0高位 39 1 TL0=L_0; //设置T0低位 40 1 TH1=0; //TH1归0 41 1 TL1=0; //TL1归0 42 1 TR0=1; //启动TR0 43 1 TR1=1; //启动TR1 44 1 { //测量函数结束 45 2 //==========T0_1S============= //T0_1S中断开始 46 2 void To_1s()interrupt 1*** ERROR C141 IN LINE 46 OF H:SWW.C: syntax errornear 'interrupt' 47 2 { TH0=H_0; //设置T0计算器的高位*** ERROR C136 IN LINE 47 OF H:SWW.C: 'TH0': 'void'on variable 48 2 TL0=L_0; //设置T0计算器的低位 49 2 if(++times==20) //如果达到1S 50 2 { times=0; //重新计次 51 3 status_F=1; //完成测量 52 3 TR0=0; //关闭TR0 53 3 TR1=0; //关闭TR1 54 3 DPL=TL1; //计算量的低8位 55 3 DPH=TH1; //计算量的高8位 56 3 fred=DPTR; 57 3 if(fred>=10000) //超过10KZ 58 3 { disp[3]=TAB[10]; //负号填入千位数显示区*** ERROR C213 IN LINE 58 OF H:SWW.C: left side ofasn-op not an lvalue 59 4 disp[2]=TAB[10]; //负号填入百位数显示区*** ERROR C213 IN LINE 59 OF H:SWW.C: left side ofasn-op not an lvalue 60 4 disp[1]=TAB[fred/10000]; //填入十位数显示区*** ERROR C213 IN LINE 60 OF H:SWW.C: left side ofasn-op not an lvalue 61 4 disp[0]=TAB[(fred/100)%10]; } //填入个位数显示区 - *** ERROR C213 IN LINE 61 OF H:SWW.C: left side ofasn-op not an lvalue 62 3 else //低于10KZ 63 3 { 64 4 disp[3]=TAB[(fred/1000)%10]; //填入千位数显示区*** ERROR C213 IN LINE 64 OF H:SWW.C: left side ofasn-op not an lvalue 65 4 disp[2]=TAB[(fred/100)%10]; //填入百位数显示区*** ERROR C213 IN LINE 65 OF H:SWW.C: left side ofasn-op not an lvalue 66 4 disp[1]=TAB[(fred/10)%10]; //填入十位数显示区*** ERROR C213 IN LINE 66 OF H:SWW.C: left side ofasn-op not an lvalue 67 4 disp[0]=TAB[fred%10];} //填入个位数显示区*** ERROR C213 IN LINE 67 OF H:SWW.C: left side ofasn-op not an lvalue 68 3 } //结束if判断(达到1S) 69 2 } //T0_1S中断程序结束 70 1 71 1 //===============显示程序============= 72 1 void display(void) //显示程序开始*** ERROR C141 IN LINE 72 OF H:SWW.C: syntax errornear 'void' 73 1 { char i; //声明变量 74 1 while(PB0==1) //如果按下PB0 75 1 { scan=0x01; //初始扫描信号 76 2 for(i=0;i<4;i++) //扫描4次*** ERROR C202 IN LINE 76 OF H:SWW.C: 'i': undefinedidentifier 77 2 { SEG=0xff; //关闭7段LED数码管 78 3 SCANP=~scan; //输出扫描信号 79 3 SEG=disp; //输出显示信号*** ERROR C202 IN LINE 79 OF H:SWW.C: 'i': undefinedidentifier 80 3 delay1m(4); //延迟4hm 81 3 scan<<=1; //下一个扫描信号 82 3 } //for结束扫描4次 83 2 } //结束while按下PB0 84 1 } //显示函数结束 85 //======延迟扫描=============== 86 void delay1m(int x) //延迟函数开始 87 { int i,j; //声明变量 88 1 for(i=0;i<x;i++) //数X次,约Xms 89 1 for(j=0;j<120;j++); //数120次结束;约1ms 90 1 } //延迟函数结束 91 92 93 94 95 96 97 98 99 100 101 102
C51 COMPILER V6.12 SWW 07/17/2012 15:23:29 PAGE 3 103 104 105 106 107 108 109 110 111 112 C51 COMPILATION COMPLETE. 1 WARNING(S), 13 ERROR(S)
一周热门 更多>