📄 ad0809.c
字号:
//-----------------------函数声明,变量定义--------------------------------------------------------
#include <AT89X51.H>
#define CH0 XBYTE[0x7FF8]
//-----------------------定义寻址的基址--------------------------------------------------------
#define base_Adr 0x7FF8
//-----------------------定义地址指针,指向基址--------------------------------------------------------
unsigned char xdata *CH_base_Adr = base_Adr;
//--------------------------------------------------------------------------------------------------
// 函数名称: delay
// 入口参数: N
// 函数功能:延时子程序,实现(16*N+24)us的延时
// 系统采用11.0592MHz的时钟时,延时满足要求,其它情况需要改动
//--------------------------------------------------------------------------------------------------
void delay(unsigned int N)
{
int i;
for(i=0;i<N;i++);
}
//------------------------------------------------------------------------------------------------------
// 函数名称 read_oneCH
// 入口函数 CH_num通道号码(0~7)
// 出口函数 返回AD转换的值
// 函数功能 写外部数据存储区
//------------------------------------------------------------------------------------------------------
unsigned char read_oneCH(unsigned char CH_num)
{
unsigned char ADC_data;
*(CH_base_Adr+ CH_num)=0;
delay(0);
ADC_data= *( CH_base_Adr+ CH_num);
return(ADC_data);
}
//------------------------------------------------------------------------------------------------------
// 函数名称 main
// 函数功能 依次采集8个通道的电压信号
//------------------------------------------------------------------------------------------------------
void main()
{
float m;
unsigned char i;
unsigned char j,n;
unsigned char data1[]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};//带点
unsigned char data2[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//不带点0 1 2 3 4 5 6 7 8 9
for(i=0;i<80;i++)
{m=read_oneCH(0);
m=m*0.02;
m=m*10;
n=m;
j= n%10;
n=n/10;
P3=data1[n];
P1_6=0;
P1_7=1;
delay(250);
P1_6=1;
P1_7=0;
P3=data2[j];
delay(250);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -