标题:
51单片机ADC0832数模转换液晶显示程序
[打印本页]
作者:
JN0717
时间:
2022-5-13 17:15
标题:
51单片机ADC0832数模转换液晶显示程序
#include <REGX52.H>
#include "LCD1602.h"
#include "Delay.h"
#include "ADC0832.h"
void main()
{
LCD_Init();
ADC0832_Init();
while(1)
{
Delay(200); //每二百毫秒扫描一次数据情况
LCD_ShowNum(2,2,getDaTa(),3);
}
}
复制代码
#include <REGX52.H>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
//ADC0832绑定引脚
sbit ADCS=P1^3;
sbit ADDI=P1^5;
sbit ADCLK=P1^4;
/**
* @brief ADC083初始化,在程序的开头调用
* @param 无
* @retval 无
*/
void ADC0832_Init()
{
ADCS=1;
}
/**
* @brief ADC083获取无符号8位数据
* @param 无
* @retval 返回 usigned char 型数据
*/
uchar getDaTa()
{
uchar i=0;
uchar j;
uint dat=0;
uchar ndat=0;
ADDI=1;
_nop_();
_nop_();
ADCS=0;//拉低CS端
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿1
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=1; //选择通道0
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿2
_nop_();
_nop_();
ADCLK=1;//拉高CLK端
ADDI=0; //选择通道1
_nop_();
_nop_();
ADCLK=0;//拉低CLK端,形成下降沿3
ADDI=1;//控制命令结束
_nop_();
_nop_();
dat=0;
for(i=0;i<8;i++)
{
dat|=ADDI;//收数据
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次时钟脉冲
_nop_();
_nop_();
dat<<=1;
if(i==7)dat|=ADDI;
}
for(i=0;i<8;i++)
{
j=0;
j=j|ADDI;//收数据
ADCLK=1;
_nop_();
_nop_();
ADCLK=0;//形成一次时钟脉冲
_nop_();
_nop_();
j=j<<7;
ndat=ndat|j;
if(i<7)ndat>>=1;
}
ADCS=1;//拉低CS端
ADCLK=0;//拉低CLK端
ADDI=1;//拉高数据端,回到初始状态
dat<<=8;
dat|=ndat;
return(dat); //return ad k
}
复制代码
Keil代码下载:
51单片机数模转换液晶显示.7z
(78.5 KB, 下载次数: 30)
2022-5-14 02:05 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1