|
#include<intrins.h>
sbit led0 = P2^1; //管腳定義,數(shù)碼管
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已自動配好? 先用這個(gè)
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 轉(zhuǎn)換結(jié)束標(biāo)志位 flag
#define ADC_START 0x08 //ADC 開始轉(zhuǎn)換控制位
#define ADC_SPEEDLL 0x00 //420 個(gè)時(shí)鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDL 0x20 //280 個(gè)時(shí)鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDH 0x40 //140 個(gè)時(shí)鐘周期轉(zhuǎn)換一次
#define ADC_SPEEDHH 0x60 //70 個(gè)時(shí)鐘周期轉(zhuǎn)換一次
Uchar Read (uchar CHA,cha1) //40行
{
uchar AD_FIN=0; //存儲A/D轉(zhuǎn)換標(biāo)志;若在函數(shù)外定義此變量則不能得到連續(xù)變化的模擬量的顯示
/******以下為ADC初始化程序****************************/
CHA &= 0x00; //選擇ADC的8個(gè)接口中的一個(gè)(0000 0xxx 清0高位) xxx控制模擬輸入通道選擇
cha1 &= 0x04 ;
ADC_CONTR = 0x00; //ADC轉(zhuǎn)換的速度(0XX0 0000 其中XX控制速度,請根據(jù)數(shù)據(jù)手冊設(shè)置)
_nop_();
ADC_CONTR |= CHA,cha1; //選擇A/D當(dāng)前通道
_nop_();
ADC_CONTR |= 0x80; //啟動A/D電源
delay(2); //使輸入電壓達(dá)到穩(wěn)定(1ms即可?
/******以下為ADC執(zhí)行程序****************************/
ADC_CONTR |= 0x08; //啟動A/D轉(zhuǎn)換(0000 1000 令A(yù)DCS = 1)
_nop_();
_nop_();
_nop_();
_nop_();
while (AD_FIN ==0) //等待A/D轉(zhuǎn)換結(jié)束
{
AD_FIN = (ADC_CONTR & 0x10); //0001 0000測試A/D轉(zhuǎn)換結(jié)束否
}
ADC_CONTR &= 0xE7; //1111 0111 清ADC_FLAG位, 關(guān)閉A/D轉(zhuǎn)換,
return (ADC_DATA); //返回A/D轉(zhuǎn)換結(jié)果(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 軟件延時(shí)函數(shù) 官方STC
----------------------------*/
void Delay(u16 n)
{
u16 x;
while (n--) // 先判斷n是否等于0,如果等于0,就不循環(huán)。n每增加1大約增加0.5ms ,看系統(tǒng)而定。
{ // 如果不等于0,就進(jìn)入循環(huán),同時(shí)n的值減1.一直等到n=0才退出while循環(huán) 。
x = 5000; //限制了n最多為5000,因?yàn)閤循環(huán)到0的時(shí)候while(x--)為假,不許執(zhí)行接下來的動作
while (x--);// 先判斷x是否等于0,如果等于0,就不循環(huán)。
} // 如果不等于0,就進(jìn)入循環(huán),同時(shí)x的值減1.一直等到x=0才退出while循環(huán) 。
} // 在while(x--)后面有一個(gè)分號,表示該循環(huán)的循環(huán)體為空,即只做判斷和循環(huán),并不執(zhí)行操作。
我想問一下(40): error C129: missing ';' before 'Read' 40行出了問題,怎么辦 急
|
|