#include <c8051f310.h>
#include <stdio.h>
#include<intrins.h>
sfr16 TMR2RL = 0xca;
sfr16 TMR2 = 0xcc;
sfr16 ADC0 = 0xbd; // ADC0 result
#define SYSCLK 24000000 // SYSCLK frequency in Hz
sbit LED = P2^0;
unsigned long ADC0_INT_COUNT = 0; //ADC0中断次数变量
unsigned long mV; // measured voltage in mV
void WDT_Init(void);
void OSCILLATOR_Init(void);
void PORT_Init (void);
void Timer2_Init(void);
void ADC0_Init(void);
void UART0_Init (void);
void Init_Device(void);
void main()
{
Init_Device();
while(1);
}
void WDT_Init(void)
{
PCA0MD &= ~0x40; // 关闭看门狗
}
void OSCILLATOR_Init (void)
{
OSCICN |= 0x03; // SYSCLK 为内部振荡器输出(不分频)
}
void PORT_Init (void)
{
P2MDOUT = 0x01; // P2.0推挽输出
XBR1 = 0x40; // 使能交叉开关
}
void Timer2_Init (void)
{
TMR2CN = 0x00; // 初始化定时器2,工作在16 位自动重装载方式
CKCON = 0x10; // 定时器2 低字节使用系统时钟。
TMR2RL = 65535-(SYSCLK/10000); // 定时器2的自动重装载值
TMR2 = 0xffff; // 定时器2的初始值
TR2 = 1; // 使能定时器2
}
void ADC0_Init (void)
{
ADC0CN = 0x02; // 定时器2 溢出启动ADC0 转换
REF0CN = 0x0A; // VDD 作为电压基准,内部偏压发生器工作(使用ADC 时该位必须为‘1’)
AMX0P = 0x10; // ADC0 正输入P3.0
AMX0N = 0x1F; // ADC0 负输入GND
ADC0CF = ((SYSCLK/3000000)-1)<<3; // ADC0 SAR 转换时钟3MHz
ADC0CF &= 0xFB; // ADC0L 中的数据为右对齐
EIE1 |= 0x08; // 允许AD0INT 标志的中断请求
AD0EN = 1; // 使能ADC0
}
void Init_Device(void)
{
WDT_Init();
OSCILLATOR_Init ();
PORT_Init();
Timer2_Init();
ADC0_Init();
}
void ADC0_ISR (void) interrupt 10
{
static unsigned long accumulator = 0; // ADC累加值
static unsigned int measurements = 2048; // 中断次数
unsigned long result=0;
AD0INT = 0; // 清空ADC值
accumulator += ADC0;
measurements--;
if(measurements == 0)
{
measurements = 2048; // 还原计数值
result = accumulator / 2048; // ADC平均值
accumulator=0; // 清空ADC累加值
mV = result * 3300 / 1023; // 计算电压
// Vref (mV)
// measurement (mV) = --------------- * result (bits)
// (2^10)-1 (bits)
}
ADC0_INT_COUNT ++; // ADC计算次数
}
ADzhuanhuan.zip_c8051F310 AD转换
版权申诉
113 浏览量
2022-09-23
16:39:30
上传
评论
收藏 26KB ZIP 举报
刘良运
- 粉丝: 68
- 资源: 1万+
最新资源
- 基于QT的地图可视化桌面系统后台数据库为MySQL5.7源码.zip
- 基于simulink的PLL锁相环系统仿真【包括模型,文档,参考文献,操作步骤】
- 基于EM-GMM模型的目标跟踪和异常行为检测matlab仿真【包括程序,注释,参考文献,操作步骤,说明文档】
- 2109010044_胡晨燕_选课管理数据库设计与实现.prj
- 帕鲁介绍的PPT备份没什么好下的
- demo1-202405
- 两种方式修改Intel网卡MAC地址
- 服务器搭建所需资源:static文件夹
- Vue02的源码学习资料
- Python 程序语言设计模式思路-行为型模式:访问者模式:在不改变被访问对象结构的情况下,定义对其元素的新操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈