📄 51adc0832.c
字号:
/********************************************************/
/*杭州电子&计算机工作室 */
/*http://www.hificat.com */
/*ADC0832测试程序 */
/*目标器件:AT89S51 */
/*晶振:11.0592MHZ */
/*编译环境:Keil 7.50A */
/********************************************************/
/*********************************包含头文件********************************/
#include <reg51.h>
/*********************************端口定义**********************************/
sbit CS = P3^4;
sbit Clk = P1^0;
sbit DIO = P1^1;
/*******************************定义全局变量********************************/
unsigned char adval; //AD值
/*******************************共阳LED段码表*******************************/
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/****************************************************************************
函数功能:AD转换子程序
入口参数:CH
出口参数:adval
****************************************************************************/
unsigned char A_D(bit CH)
{
unsigned char i;
CS = 0; //片选
Clk = 0; //时钟拉低
Clk = 1; //时钟拉高
DIO = 1; //启动信号
if ( CH == 0 ) //通道选择
{
Clk = 0;
Clk = 1;
DIO = 1; //通道0的第一位
Clk = 0;
Clk = 1;
DIO = 0; //通道0的第二位
}
else
{
Clk = 0;
Clk = 1;
DIO = 1; //通道1的第一位
Clk = 0;
Clk = 1;
DIO = 1; //通道1的第二位
}
Clk = 1;
Clk = 0;
for( i = 0;i < 8;i++ ) //读取八位AD值
{
Clk = 1;
Clk = 0;
if ( DIO )
adval = (adval>>1) | 0x80;
else
adval = (adval>>1) | 0x00;
}
CS = 1; //释放ADC0832
return(adval); //返回采样值
}
/****************************************************************************
函数功能:数码管显示子程序
入口参数:
出口参数:
****************************************************************************/
void delay1(void)
{
int k;
for(k=0;k<400;k++);
}
/****************************************************************************
函数功能:数码管显示子程序
入口参数:k
出口参数:
****************************************************************************/
void display(int k)
{
P2=0xfe;
P0=tab[k/1000];
delay1();
P2=0xfd;
P0=tab[k%1000/100];
delay1();
P2=0xfb;
P0=tab[k%100/10];
delay1();
P2=0xf7;
P0=tab[k%10];
delay1();
P2=0xff;
}
/****************************************************************************
函数功能:主程序
入口参数:
出口参数:
****************************************************************************/
void main(void)
{
P2=0xff; //端口初始化
P0=0xff;
while(1) //主循环
{
A_D(0x01); //通道1转换
display(adval); //显示AD值
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -