2984|1

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

麻烦解答下谢谢!keil 中用c 语言写的代码 syntax error near 'EA' [复制链接]

/***************************************************
**FileName   :main.c
**Modifided  :Sep-05-2008
**Author     :wang
**Description:The main file of the project.
*****************************************************/
#include
sbit ADC_CS = P0^5;        //AD芯片引脚的定义
sbit ADC_CLK= P0^6;
sbit ADC_DO = P0^7;
sbit ADC_DI = P2^0;
sbit P00    = P0^0;
sbit P01    = P0^1;
sbit P02    = P0^2;
sbit P03    = P0^3;
sbit P04    = P0^4;
sbit P21    = P2^1;
unsigned char LedDispData[4];//定义一个全局变量
const unsigned char LedData[10]=
{
   0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90  
               
}; //数码管的显示码(共阳极)
/******函数的声明***********************************/
void Delay(unsigned char val);
void DelayMs(unsigned int val);
void Init_System(void);
unsigned char ReadAdc(void);
void LedChange(unsigned char val);
/*****************************************************
**函数名:main
**输入  :
**输出  :
**描述  :整个程序的入口地址,在此实现全部的功能
*****************************************************/
int main(int argc,char **argv)
{
   unsigned char val;

        DelayMs(30000);//延迟30S用于传感器的预热
   Init_System();
   while(1)
   {
     val=ReadAdc();
     LedChange(val);
         if(val>200)
         {
           P04=~P04;//蜂鸣器报警
           DelayMs(10);
           P21=0; //风扇转动
           DelayMs(10);
          }
          else
          {
           P04=1;
           P21=1;
          }
   }
   return 0;
}
/*****************************************************
**函数名:Dleay
**输入  :
**输出  :
**描述  :该函数主要用于脉冲的延迟时间
*******************************************************/
void Delay(unsigned char val)
{
    unsigned char i;
        for(i=0;i }
/*****************************************************
**函数名:ReadAdc
**输入  :无
**输出  :
**描述  :该函数主要是把模拟电压转换8位2进制并返回
******************************************************/
unsigned char ReadAdc(void)
{
    unsigned char i,ch;
        ch=0;
        ADC_CS=0;
        ADC_DO=0; //片选,D0为高阻
        for(i=0;i<10;i++)
         {;}
        ADC_CLK=0;
        Delay(2);
        ADC_DI=1;
        ADC_CLK=1;
        Delay(2);//第一个脉冲,起始位,此时DI=1
        ADC_CLK=0;
        Delay(2);
        ADC_DI=1;
        ADC_CLK=1;
        Delay(2);//第2个脉冲,DI=1表示双通道单极性输入
        ADC_CLK=0;
        Delay(2);
        ADC_DI=0;
        ADC_CLK=1;
        Delay(2);//第3个脉冲,DI=0表示选择通道0
        ADC_DO=1;//DI转为高阻,D0脱离高阻为读数据作准备
        ADC_CLK=1;
        Delay(2);
        ADC_CLK=0;
        Delay(2);//
        for(i=0;i<8;i++)//开始读取数据
        {
          ADC_CLK=1;
          Delay(2);
          ADC_CLK=0;
          Delay(2);
          ch=(ch<<1)|ADC_DO;//下降沿读取数据
        }
        ADC_CS=1;
        return(ch);
}
/*****************************************************
**函数名:Init_System
**输入  :
**输出  :
**描述  :该函数为系统的初始化
*******************************************************/
void Init_System(void)
{
            P0=0xf0;//蜂鸣器不叫
         P1=0x00;//数码管为0
         TMOD=0x01;
         PCON=0x00;
         TH0=0xf5;//
         TL0=0x33//
         EA=1;//
         ET0=1;        //
         TR0=1;//开始计数
}

/*****************************************************
**函数名:LedDisp
**输入  :
**输出  :
**描述  :该函数主要是来显示数码管
*******************************************************/
void LedChange(unsigned char val)
{
   
        LedDispData[0]=val/1000;
        LedDispData[1]=(val/100)%10;
        LedDispData[2]=(val/10)%10;
        LedDispData[3]=val%10;

}

/*****************************************************
**函数名:Tier0_Int
**输入  :
**输出  :
**描述  :该函数为定时器0中断的服务子程序
*******************************************************/

void Timer0_Int(void) interrupt 1 using 0
{
    EA=0;
    TR0=0;
    TH0=0xf5;//
    TL0=0x33;//
          P0=P0 & 0xFE;
        P1=LedData[LedDispData[0]];
    P0=P0 & 0xFD;
        P1=LedData[LedDispData[1]];
        P0=P0 & 0xfFB;
        P1=LedData[LedDispData[2]];
    P0=P0 & 0xF7;
        P1=LedData[LedDispData[3]];
    TR0=1;
    EA=1;
}
/*****************************************************
**函数名:DelayMs
**输入  :
**输出  :
**描述  :该函数主要用延迟n毫秒
*******************************************************/
void DelayMs(unsigned int val)
{
   unsigned i,j;
   for(i=0;i    {
     for(j=0;j<125;j++);
   }
}
/*********************************************************/

最新回复

TL0=0x33// -------------------- 楼主  是你的分号  详情 回复 发表于 2011-12-27 11:52
点赞 关注

回复
举报

7231

帖子

192

TA的资源

五彩晶圆(高级)

沙发
 
TL0=0x33//
--------------------
楼主  是你的分号
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表