STC12C2052AD芯片ADC转换程序及软件滤波实现
5星 · 超过95%的资源 需积分: 10 35 浏览量
更新于2024-11-29
2
收藏 40KB DOC 举报
"STC12C2052AD芯片的AD转换程序,用于获取模拟信号的数字表示,通过软件滤波提升精度。程序包括LCD显示和ADC读取功能。"
这篇文档是关于STC12C2052AD微控制器上的模拟到数字(AD)转换程序的实现。STC12C2052AD是一款8位单片机,具有内置的AD转换器,可用于将模拟信号转换为数字值,以便于处理和显示。
程序中定义了相关的寄存器,如ADCR(AD控制寄存器)和ADDR(AD结果寄存器),这些寄存器在AD转换过程中起着关键作用。其中,ADCR用于配置AD转换的参数,ADDR则用于存储转换后的结果。此外,还定义了一些与LCD显示相关的sbit和函数,如RS、RW、E,以及LcdIni()、WrOp()、WrDat()、ChkBusy()等,用于与LCD显示屏交互,显示AD转换的数值。
在主函数`main()`中,首先初始化LCD,然后在屏幕上显示"V:"和"P:"作为电压和精度的标识。接着,进入一个无限循环,不断地更新并显示两个通道(0和1)的AD转换结果。`AdcValPro(0)`和`AdcVal(1)`分别代表通道0和1的AD转换值,`AdcValPro()`函数实现了软件滤波,提高AD转换的精度,而`AdcVal()`则返回未经滤波的原始值。
`AdcVal()`函数执行20次AD转换,并对结果取平均值,用以降低噪声影响。这个平均值被存储在`val`变量中,然后与之前的AD转换结果进行比较,以实现简单的低通滤波效果。`AdcValPro(n)`函数接收一个通道号n,返回该通道经过滤波处理后的AD值。
`ShowByte()`函数用于在LCD指定位置显示一个字节数据,`ShowNum()`函数用于显示一个无符号整数,`DisText()`函数用于显示文本字符串。这些函数结合使用,使得AD转换的数值可以在LCD上实时更新。
这个程序提供了STC12C2052AD芯片AD转换的基本框架,并通过软件滤波优化了转换精度。它还包含了LCD显示功能,使得用户可以直观地观察到AD转换的结果。
2014-12-08 上传
2013-04-14 上传
2022-09-23 上传
2024-02-02 上传
2024-04-22 上传
2023-05-28 上传
2023-08-07 上传
2023-09-13 上传
2023-12-11 上传
zhenganping
- 粉丝: 0
- 资源: 4