?? ad0809.txt
字號:
//一個關于數據采集的C程序
#include <absacc.h>
#include <reg51.h>
#include <intrins.h>
#define ulong unsigned long
#define uint unsigned int
#define uchar unsigned char
uchar code LED[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit g = P2^0;//個位
sbit sf = P2^1;//十分位
sbit bf = P2^2;//百分位
sbit KA = P2^6;//百分位
sbit START = P3^4;//啟動轉換
sbit EOC = P3^3;//轉換結束標志
sbit OE = P3^2;//輸出使能
sbit ALE = P3^0;//地址鎖存
uint vol=0;//采樣得到的0~255之間的離散數據
ulong V=0;//處理后的電壓數據。V的高到低位依次為:整數位個位、小數十分位、百分位。
//-----------------------------------
void delay(uint x)
{
for(;x>0;x--) ;
}
//------------------------------------
void start(void)
{
ALE=1;
_nop_();
START=1;
_nop_();
ALE=0;
_nop_();
START=0;
}
//-------------------------------------
void check(void)
{
while(EOC==1) ; //等待轉換結束
_nop_();
_nop_();
while(EOC==0) ;
_nop_();
_nop_();
OE=1;
_nop_();
_nop_();
_nop_();
vol=P1;// 從P1口讀取數據
OE=0;
}
//------------------------------------
void deal(void)
{
V = (vol*5);
V *= 100;
V /= 256;//V的高到低位依次為:整數位個位、小數十分位、百分位。
}
//-----------------------------------
void display(void)
{
KA=0;
g=0;
P0=LED[V/100]&0x7f;//共陽顯示加小數點
delay(800);
g=1;
delay(50);
sf=0;
P0=LED[(V/10)%10];//&0x7f;
delay(800);
sf=1;
delay(50);
bf=0;
P0=LED[V%10];
delay(800);
bf=1;
KA=1;
}
void main()
{
EA=0;
while(1)
{
start();
check();
deal();
display();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -