×
嵌入式 > 嵌入式开发 > 详情

51单片机驱动12位AD转换MAX1241程序及原理图

发布时间:2020-08-19 发布时间:
|
下面是MAX124151单片机连接的电路图:

本程序的完整工程文件下载:/zixunimg/eepwimg/www.51hei.com/f/1241.rar
以下是源码:
#include
#defineuchar unsigned char
#define uint unsigned int
#define High 1
#define Low0
int t;
sbit cs=P2^7;
sbit sclk=P2^6;
sbit dout=P2^5;
unsigned char b[5];
uchar code tv[]={0x08,0x10,0x20,0x40,0X80};//位选
uchar code dc[]={0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
0x80, //"8"
0x90, //"9"
};
uint dushuju() //定义为可以返回的参数
{
uint voltage_temp=0;
uchar ucloop=12;
cs=High;
sclk=Low;
cs=Low;
while(dout==0);//EOC信号为高表示转换结束
sclk=High;
sclk=Low;
while(ucloop--)
{
sclk=High;//上升沿数据稳定并读出
voltage_temp<<=1;
if(dout==1)
voltage_temp+=1;
sclk=Low;
}
cs=High;
return voltage_temp; //返回数据
}
void shuxiang(void )
{
char i, j;
t=dushuju(); //调用数据
b[0]=(t/10000)%10; //取得整数值到数组
b[1]=(t/1000)%10;
b[2]=(t/100)%10;
b[3]=(t/10)%10;
b[4]=(t/1)%10;
b[5]=0;
for(i=0;i<5;i++)
{
P3=tv[i];
j=b[i];
P1=dc[j];
Delay();
}
}
void delay(void)
{
uint i;
for(i=0;i<100;i++);
}
main()
{
loop:
dushuju();
shuxiang();
goto loop;
}


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
基于嵌入式系统的CAN总线网络通信流程设计