微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ADμC812的数据采集子系统及其系统编程技术

ADμC812的数据采集子系统及其系统编程技术

时间:08-29 来源:互联网 点击:

;mov @R0,Ainc R0djnz R7,iRAM_initcall Timer0_init;初始化T0为1.25ms中断一次call ADC_init;初始化ADC为单次转换setb EAControlloop:Jnb ADC_flag,Controlloop…… ;将AD转换的结果取走clr ADC_flag;允许开始下一次转换jmp ControlloopADC_init:mov ADCCON1,#01101100B;

上电ADCmov ADCCON2,ADC_count;选择转换通道retTimer0_interrupt:

setb SCONV;开始单次ADC转换mov TL0,#LOW(Timer_ms_const);装入定时常数mov TH0,#HIGH(Timer_ms_const)push PSWmov PSW,#00001000B;使用page1mov R2,A;暂存A累Timer0_int_ADC:jb ADC_flag,Timer0_int_ADC_end;数据未取走则退出Mov A,ADCCON3;

读ADC状态jb ACC.7,Timer0_int_ADCmov A,ADC_countanl A,#07Hrl Aadd A,#ADC_accmov R0,Amov A,ADCDATAL;将ADC转换结果加入累加单元add A,@R0mov @R0,Ainc R0mov A,ADCDATAHanl A,#0FHaddc A,@R0mov #R0,Ainc ADC_countmov A,ADC_countanl A,#07Hmov ADCCON2,A;选择下一通道mov A,ADC_countcjne A,#80H,Timer0_int_ADC_endmov ADC_count,#0mov R0,#ADC_acc;数字滤波后存入ADC结果mov R1,#ADC_resultmov R7,#08Timer0_int_save_ADC:

clr Amov #R0,Ainc R0xch A,#R0mov @R1,Ainc R0inc R1djnz,R7,Timer0_int_save_ADCsetb ADC_flagTimer0_int_ADC_end:Mov A,R2Pop PSWRetiTimer0_init;mov TH0,#HIGH(Timer_ms_const);装入定时常数mov TL0,#LOW(Timer_ms_const)anl TMOD,#11110000Borl TMDD,#00000001BSetb ET0;允许T0中断Setb TR0;T0开始运行RetEND

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top