|
/*********************************包含头文件********************************/
#include <reg51.h>
/*********************************端口定义**********************************/
sbit CS = P3^4;
sbit Clk = P1^0;
sbit DIO = P1^1;
/*******************************定义全局变量********************************/
unsigned char adval;
/*******************************共阳LED段码表*******************************/
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
/*******************************延时子函数*******************************/
void delay(void)
{
int i;
for(i=0;i<100;i++);
}
/*******************************ADC0832转换函数*******************************/
void adc0832()
{
unsigned char i;
adval=0;
CS = 0; //使能adc0832
DIO = 1;
Clk = 0; //产生第一个上升沿,启动adc0832
Clk = 1;
DIO = 1;
Clk = 0; //产生第二个上升沿,用于选择单通道输入方式
Clk = 1;
DIO = 0; //产生第三个上升沿,用于选择0通道输入
Clk = 0;
Clk = 1;
Clk = 0;
DIO = 1; //作为输入,先置1
for( i = 0;i < 8;i++ )
{
Clk = 1;
Clk = 0;
if (DIO)
adval=adval|(0x80>>i);
}
CS = 1;
}
/*******************************数码管显示函数*******************************/
void display(int k)
{
P2=0x00;
P0=tab[k/1000];
P2=0x08;
delay();
P2=0x00;
P0=tab[k%1000/100];
P2=0x04;
delay();
P2=0x00;
P0=tab[k%100/10];
P2=0x02;
delay();
P2=0x00;
P0=tab[k%10];
P2=0x01;
delay();
P2=0x00;
}
/*******************************主函数函数*******************************/
void main(void)
{
while(1)
{
adc0832();
display(adval);
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|