在线时间74 小时
UID3323317
注册时间2016-10-25
NXP金币120
TA的每日心情 | 慵懒 2019-7-22 13:56 |
---|
签到天数: 38 天 连续签到: 1 天 [LV.5]常住居民I
金牌会员
 
- 积分
- 1820
- 最后登录
- 2020-10-13
|
本帖最后由 邹姆斯特朗 于 2016-12-12 17:34 编辑
软件平台:keil5.14
硬件平台:LPC824Lite
目的:12bit adc采集电压,串口助手显示。
STC89C51
原来学习的STC89c52单片机是没有AD转换的,后来的STC12系列带有A/D转换了,10位精度ADC,共8路,转换速度可达250K/S。
LPC824
12位逐次比较型模数转换器,转换速率高达1.2Msample/s,两个独立触发可配置的转换序列。我利用其中的A序列,每500ms触发一次ADC转化,在中断中读取结果并发送到PC端。
- Chip_SYSCTL_PowerUp(SYSCTL_SLPWAKE_ADC_PD);//唤醒ADC
- Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_ADC);//使能ADC外设时钟
- Chip_ADC_EnableInt(LPC_ADC, ADC_INTEN_SEQA_ENABLE );//使能ADC的的SEQA中断
- NVIC_EnableIRQ(ADC_SEQA_IRQn);//使能ADC外设的中断
-
- /*使能ADC引脚 */
- Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);
- Chip_SWM_EnableFixedPin(SWM_FIXED_ADC3);
- Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);
-
- /*每次上电或者Deep power-down模式下唤醒,都需要校准ADC*/
- Chip_ADC_StartCalibration(LPC_ADC);
- while (!(Chip_ADC_IsCalibrationDone(LPC_ADC)))
-
- Chip_ADC_SetClockRate(LPC_ADC, ADC_MAX_SAMPLE_RATE);//设置ADC的采样率,设置最大30Mhz
-
- /* 设置、使能ADC的A序列 */
- Chip_ADC_SetupSequencer(LPC_ADC, ADC_SEQA_IDX,(ADC_SEQ_CTRL_CHANSEL(3) | ADC_SEQ_CTRL_MODE_EOS));
- Chip_ADC_EnableSequencer(LPC_ADC, ADC_SEQA_IDX);
复制代码
附件
ADC.zip
(228.22 KB, 下载次数: 33)
|
|