?? main.c
字號:
#include <spce061a.h>
extern void write(int,int);
extern void delay(int);
void AD_inti()
{
*P_IOA_Dir|=0xf000; //A0-A11為12位數(shù)據(jù)輸入 A12-A15為CE.R/C.A0.CS
*P_IOA_Dir&=0xf000; //ce為片選信號
*P_IOA_Attrib|=0xf000; //
*P_IOA_Attrib&=0xf000; //
*P_IOA_Data=0x0000;
*P_IOB_Dir|=0x7fff; //B15為STS 上拉方式 B14為12/8
*P_IOB_Dir&=0x7fff;
*P_IOB_Attrib|=0x7fff;
*P_IOB_Attrib&=0x7fff;
*P_IOB_Data|=0x8000;
}
void TEP_inti(void)
{
*P_IOA_Dir=0xf000; //A0-A11為12位數(shù)據(jù)輸入 A12-A15為CE.R/C.A0.CS
*P_IOA_Attrib=0xf000;
*P_IOA_Data=0x0000;
*P_IOB_Dir&=0x7fff; //B15為STS 上拉方式 B14為12/8
*P_IOB_Dir|=0x4000;
*P_IOB_Attrib&=0x7fff;
*P_IOB_Attrib|=0x4000;
*P_IOB_Data|=0x8000;
*P_IOB_Data&=0xbfff;
}
void converter()
{
*P_IOA_Data&=0xefff; //關(guān)閉轉(zhuǎn)換 CE=0
*P_IOA_Data&=0x7fff; //片選 A15置0 CS=0
*P_IOA_Data&=0xdfff; //轉(zhuǎn)換 A13置0 R/C=0
*P_IOA_Data&=0xbfff; //12位轉(zhuǎn)換 A0=0
*P_IOA_Data|=0x1000; //啟動轉(zhuǎn)換 cs=1
delay(1); //等待STS變高
*P_IOA_Data&=0xefff; //關(guān)閉轉(zhuǎn)換 CE=1
}
int read_data()
{
int AD_data;
*P_IOA_Data&=0xefff; //關(guān)閉轉(zhuǎn)換 CE=0
*P_IOA_Data&=0x7fff; //片選 A15置0 CS=0
*P_IOA_Data|=0x2000; //讀數(shù) A13置1 R/C=1
//在12位時 A0任意狀態(tài)
*P_IOA_Data|=0x1000; //啟動讀 CE=1
// AD_data=*P_IOA_Data; //?????????????????
delay(1);
*P_IOA_Data&=0xefff; //關(guān)閉 CE=0
AD_data=*P_IOA_Data; //????????????
return(AD_data);
}
void dis_AD(int ADnum1)
{
int thou1,hund1,ten1,one1,volt1;
float volt;
volt=((float)ADnum1/4095)*3300;
volt1=(int)volt;
thou1=volt1/1000;
hund1=(volt1%1000)/100;
ten1=(volt1%100)/10;
one1=volt1%10;
write(0x0001,one1);
write(0x0002,ten1);
write(0x0003,hund1);
write(0x0004,thou1);
}
void main(void)
{
int ADnum;
AD_inti();
while(1)
{
converter();
while(1)
{
if((*P_IOB_Data|0x7fff)==0x7fff)
{
ADnum=read_data();
break;
}
}
dis_AD(ADnum);
delay(200);
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -