#include<intrins.h>
sbit led0 = P2^1; //管脚定义,数码管
sbit led1 = P2^7;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit led5 = P1^5;
sbit led6 = P1^6;
sbit led_dp = P1^7 ;
sbit V1 = P1^0; //ADC已自动配好? 先用这个
sbit V2 = P1^1 ;
sbit led_ge =P2^6 ;
sbit led_shi =P2^2 ;
sbit full =P2 ^4 ;
sbit not_enough =P2^5 ;
#define u8 unsigned char ;
#define u16 unsigned int ;
#define uchar unsigned char ;
#define uint unsigned int ;
//
/*Declare SFR associated with the ADC */ // adc通讯配置
/*Define ADC operation const for ADC_CONTR*/
#define ADC_POWER 0x80 //ADC 电源控制位
#define ADC_FLAG 0x10 //ADC 转换结束标志位 flag
#define ADC_START 0x08 //ADC 开始转换控制位
#define ADC_SPEEDLL 0x00 //420 个时钟周期转换一次
#define ADC_SPEEDL 0x20 //280 个时钟周期转换一次
#define ADC_SPEEDH 0x40 //140 个时钟周期转换一次
#define ADC_SPEEDHH 0x60 //70 个时钟周期转换一次
Uchar Read (uchar CHA,cha1) //40行
{
uchar AD_FIN=0; //存储A/D转换标志;若在函数外定义此变量则不能得到连续变化的模拟量的显示
/******以下为ADC初始化程序****************************/
CHA &= 0x00; //选择ADC的8个接口中的一个(0000 0xxx 清0高位) xxx控制模拟输入通道选择
cha1 &= 0x04 ;
ADC_CONTR = 0x00; //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置)
_nop_();
ADC_CONTR |= CHA,cha1; //选择A/D当前通道
_nop_();
ADC_CONTR |= 0x80; //启动A/D电源
delay(2); //使输入电压达到稳定(1ms即可?
/******以下为ADC执行程序****************************/
ADC_CONTR |= 0x08; //启动A/D转换(0000 1000 令ADCS = 1)
_nop_();
_nop_();
_nop_();
_nop_();
while (AD_FIN ==0) //等待A/D转换结束
{
AD_FIN = (ADC_CONTR & 0x10); //0001 0000测试A/D转换结束否
}
ADC_CONTR &= 0xE7; //1111 0111 清ADC_FLAG位, 关闭A/D转换,
return (ADC_DATA); //返回A/D转换结果(8位)
}
/*----------------------------
Initial ADC sfr
----------------------------*/
void InitRead()
{
sfr p1M0[1:0] =0x03 ;
sfr p1M1[1:0] =0x00 ; //Set some P1 as only input(高阻) mode
}
/*----------------------------
Software delay function 软件延时函数 官方STC
----------------------------*/
void Delay(u16 n)
{
u16 x;
while (n--) // 先判断n是否等于0,如果等于0,就不循环。n每增加1大约增加0.5ms ,看系统而定。
{ // 如果不等于0,就进入循环,同时n的值减1.一直等到n=0才退出while循环 。
x = 5000; //限制了n最多为5000,因为x循环到0的时候while(x--)为假,不许执行接下来的动作
while (x--);// 先判断x是否等于0,如果等于0,就不循环。
} // 如果不等于0,就进入循环,同时x的值减1.一直等到x=0才退出while循环 。
} // 在while(x--)后面有一个分号,表示该循环的循环体为空,即只做判断和循环,并不执行操作。
我想问一下(40): error C129: missing ';' before 'Read' 40行出了问题,怎么办 急
|