i=0;
break;
default:break;
}
}
3 定时器T0
#ifndef __Timer0_H__
#define __Timer0_H__
#include void Timer0_Init(void); #endif #include 'Timer0.h' void Timer0_Init(void) //1毫秒@11.0592MHz { TMOD &= 0xF0; //设置定时器模式 TMOD |= 0x01; //设置定时器模式 TL0 = 0x66; //设置定时初始值 TH0 = 0xFC; //设置定时初始值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 ET0 = 1; //定时器0中断开关 // EA = 1; //中断总开关 } //中断服务函数一定是一个没有返回值的函数 //中断服务函数一定是没有参数的函数 //中断服务函数函数名后跟着关键字interrupt //interrupt n 0~4 5个中断源,8*n+0003H // 0003H INT0, 00BH T0, 0013H INT1, 001BH T1, 0023H ES //中断服务函数不能被主程序或者其他程序所调用 //n后面跟着using m(0~3)工作寄存器组 //void Timer0_ISR(void) interrupt 1 //{ // TL0 = 0x66; //设置定时初始值 // TH0 = 0xFC; //设置定时初始值 //} 4 主函数(对采集的数据进行均值滤波) 复制代码 #include #include 'DisplaySmg.h' #include 'ADC0832.h' #include 'Timer0.h' unsigned char adc_result = 0; int adc_result_show = 0; void disp_num(void) //显示四位十进制数 { LedBuf[0]= 23; //千位,不显示 LedBuf[1]= adc_result_show/100; //百位 LedBuf[2]= adc_result_show/10%10;//十位 LedBuf[3]= adc_result_show%10; //个位 } void main() { int adc_result_reg; int adc_result_fliter; //采用均值滤波 unsigned char adc_cnt; //采样次数 Timer0_Init(); //定时/计数器T0初始化 ADC0832_Init(); EA=1; //中断总开关 DotDig1=1; //点亮第二个数码管的小数点 while(1) { adc_result = ADC0832_Conv(); //采集数据,ADC转换后结果 adc_result_reg = adc_result*1.0*100*5/255; //数据变换处理(线性标度变换) adc_result_fliter = adc_result_fliter + adc_result_reg; //数据累加 adc_cnt++; if(adc_cnt > 7) { adc_result_show = adc_result_fliter >> 3; //等价于除于8,取平均值 adc_cnt = 0; adc_result_fliter = 0; } disp_num(); //显示数据 } } void Timer0_ISR(void) interrupt 1 { TR0=0; //关闭定时器 DisplaySmg(); //每过1ms,刷新一次数码管显示函数 TL0 = 0x66; //设置定时初始值,定时1ms TH0 = 0xFC; //设置定时初始值,定时1ms TR0=1; //打开定时器 } 5 参考来源 (1)(141条消息) 【mcuclub】模数转换ADC0832_单片机俱乐部--官方的博客-CSDN博客_adc0832模数转换原理; (2)单片机应用——利用串行A/D转换器件ADC0832实现模拟电压信号的A/D转换_哔哩哔哩_bilibili;
上一篇:【51单片机】I/O口
下一篇:简易数字电压表+ADC0809+程序查询方式实现8路数据转换
推荐阅读最新更新时间:2024-11-13 14:02
设计资源 培训 开发板 精华推荐
- 【物联网】基于Hi3861的智能wifi开关+1658748A
- 简化版晶体管测试仪
- 使用 Richtek Technology Corporation 的 RT8280 的参考设计
- 适用于低占空比应用的 LT3007HTS8 低压差线性稳压器的典型应用电路
- LTC2862AIS8-2 网络的典型应用,用于针对 5kV 浪涌、5kV EFT 和 30kV IEC ESD Plus ±360V 过压保护的 IEC 4 级保护
- 25W, -5V, 1V, 1.2V, 1.5V, 1.8V, 2.5V, 3V, 3.3V, 3.3V, 5V DC to DC 机顶盒多路输出电源
- AKD4359-SC,AK4539 24bit 8CH D/A转换器评估板
- LM317M 中等电流 1.2 至 37V 稳压器的典型应用,带保护二极管
- STM32F411 system1
- 【训练营】四足机器人