AD的基本应用要求如下:
采样可变电阻电压与光敏电阻电压
要求如下:
独立按键S4为通道切换选择,系统上电的时候,采样通道1光敏电阻的数据并显示在数据管上。按下S4松开后,切换到通道3采样可调电阻的数据并显示;再次按下S4松开后,又切换回通道1采样光敏
电阻数据,如此循环往复。前3位数码管显示通道号,后3位显示PCF8591相应通道读取的数据。
AD的基本应用要求如图:
单片机源程序如下:
- #include"XPT2046.h"
- void SPI_Write(uchar dat) //写入数据
- {
- uchar i;
- CLK = 0; //拉低时钟信号电位
- for(i=0; i<8; i++) //循环写入八位字节
- {
- DIN = dat >> 7; //从最高位到最低为开始传送
- dat <<= 1;
- CLK = 0; //接收时让时钟信号不断变化
- CLK = 1;
- }
- }
- uint SPI_Read(void) //读取数据
- {
- uint i, dat=0;
- CLK = 0;
- for(i=0; i<12; i++) //读取12位数据
- {
- dat <<= 1; //读取要先移位再赋值,写入就相反
- CLK = 1;
- CLK = 0;
- dat |= DOUT;
- }
- return dat;
- }
- uint Read_AD_Data(uchar cmd) //读取数据
- {
- uchar i;
- uint AD_Value;
- CLK = 0; //拉低时钟信号电位
- CS = 0; //拉低片选信号电位
- SPI_Write(cmd); //发送命令字符
- for(i=6; i>0; i--); //延时等待转换结果
- CLK = 1; //发送一个时钟周期,清除BUSY
- _nop_();
- _nop_();
- CLK = 0;
- _nop_();
- _nop_();
- AD_Value=SPI_Read();
- CS = 1; //读取完要关闭片选信号
- return AD_Value; //信号处理后返回的值
- }
复制代码
所有资料51hei提供下载:
关于ADC的基本应用.7z
(43.25 KB, 下载次数: 18)
|