【51单片机】AD模数转换&DA数模转换(江科大) | 您所在的位置:网站首页 › 单片机ad转换器实验报告 › 【51单片机】AD模数转换&DA数模转换(江科大) |
1.AD/DA介绍
· AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号 · DA(Digital to Analog):数字-模拟转换,将计算机输出的数字信号转换为模拟信号 · AD/DA转换打开了计算机与模拟信号的大门,极大的提高了计算机系统的应用范围,也为模拟信号数字化处理提供了可能
XPT2046是一个A/D转换器,用的时候直接用时序将A/D的值读出即可 XPT2046时序 现象:LCD显示可调电阻、热敏电阻和光敏电阻的值 定义引脚 S必须为1,A2-A0地址位,MODE为1(8位模式),SER/DFR为1(单端模式),PD1为0(外部电压),PD0为0(低功率模式) 测量X+,根据单端模式输入配置图,A2-A0可以为001,也可以为011,以001为例,故命令码为1001 1100即0x9C,011为0xBC XPT2046.h #ifndef __XPT2046_H__ #define __XPT2046_H__ #define XPT2046_VBAT 0xAC #define XPT2046_AUX 0xEC #define XPT2046_XP 0x9C //0xBC #define XPT2046_YP 0xDC unsigned int XPT2046_ReadAD(unsigned char Command); #endifmain.c #include #include "Delay.h" #include "LCD1602.h" #include "XPT2046.h" unsigned int ADValue; void main(void) { LCD_Init(); LCD_ShowString(1,1,"ADJ NTC GR"); while(1) { ADValue=XPT2046_ReadAD(XPT2046_XP); //读取AIN0,可调电阻 LCD_ShowNum(2,1,ADValue,3); //显示AIN0 ADValue=XPT2046_ReadAD(XPT2046_YP); //读取AIN1,热敏电阻 LCD_ShowNum(2,6,ADValue,3); //显示AIN1 ADValue=XPT2046_ReadAD(XPT2046_VBAT); //读取AIN2,光敏电阻 LCD_ShowNum(2,11,ADValue,3); //显示AIN2 Delay(100); } } 6.DA数模转换现象:LED呈呼吸灯状态 在PWM控制直流电机速度的基础上修改main.c即可 原理就是改变PWM占空比,与之前的原理一样 #include #include "Delay.h" #include "Timer0.h" sbit DA=P2^1; unsigned char Counter,Compare; //计数值和比较值,用于输出PWM unsigned char i; void main() { Timer0_Init(); while(1) { for(i=0;i Compare=i; //设置比较值,改变PWM占空比 Delay(10); } } } void Timer0_Routine() interrupt 1 { TL0 = 0x9C; //设置定时初值 TH0 = 0xFF; //设置定时初值 Counter++; Counter%=100; //计数值变化范围限制在0~99 if(Counter DA=0; //输出0 } } |
CopyRight 2018-2019 实验室设备网 版权所有 |