标签:优先级 中断 RES STC15W ADC 寄存器 转换 模数转换器
与ADC相关的寄存器有以下:
P1ASF为P1口模拟功能控制寄存器(该寄存器是只写寄存器,读无效)
PS:只写寄存器就是可以写但是读不出来,或者读出来的值是不对的,随机的.
P1ASF格式如上:其功能是P1.0~P1.7八个端口对应是否作为模拟功能A/D使用。比如:P1ASF=0xff; //将P1口作为模拟功能A/D使用
ADC控制寄存器ADC_CONTR
格式如下:
ADC_POWER:ADC电源控制位(0关1开)
SPEED1、SPEED0是模数速度转换控制位
ADC_FLAG:模数转换器转换结束标志。(A/D转换完成后,ADC_FLAG=1,一定要用软件清零)
ADC_START:模数转换器(ADC)转换启动控制位(1开始转换;0转换结束)
CHS2、CHS1、CHS0作为模拟输入通道选择,比如:000 即P1.0作为A/D输入来源;010 即P1.2作为A/D输入来源;111 即P1.7作为A/D输入来源...
故ADC_CONTR=0x8b; //也就是10001011 ADC_POWER=1打开A/D转换器电源;ADC_START=1启动模拟转换器ADC;CHS=011选择P1^3作为A/D输入使用
A/D转换结果寄存器ADC_RES、ADC_RESL
特殊功能寄存器ADC_RES(A/D转换结果寄存器高)和ADC_RESL(A/D转换结果寄存器低)寄存器用于保存A/D转换结果。
CKKO_DIV(PCON2)寄存器
格式如下:
其中ADRJ位是A/D转换结果寄存器(ADC_RES,ADC_RESL)的数据格式调整控制位。
当ADRJ=0时,ADC_RES【7:0】存放高8位结果,ADC_RESL【1:0】存放低2位ADC结果。
当ADRJ=1时,ADC_RES【1:0】存放高2位结果,ADC_RESL【7:0】存放低8位ADC结果。
Tx_Rx是串口1中断广播方式设置位,MCLKO_2为0则是P5.4对外输出时钟,为1则是P1.6
CLKS2、CLKS1、CLKS0:
如:CLK_DIV=0x20; //即0010 0000 ADRJ=1——ADC_RES[1:0]存放高2位ADC结果,ADC_RESL[7:0]存放低8位ADC结果,CPU工作时钟就是系统时钟(未分频)。
CLK_DIV = 0X00; //即0000 0000 ADRJ = 0 ADC_RES存放高八位结果
中断允许寄存器IE
EA:开放或禁止所有中断。
ELVD:LVD中断允许控制位。
EADC:ADC中断允许控制位。
ES:开放或禁止串行通道中断。
ET1:开放或禁止定时器1溢出中断。
EX1:开放或禁止外部中断源1。
ET0:开放或禁止定时器0溢出中断。
EX0:开放或禁止外部中断源0。
1允许,0禁止(所以中断寄存器各位的意义应该都明白了)
中断优先级控制寄存器IP
PADC:A/D转换中断优先级控制位。
当PADC = 0时,A/D转换中断为最低优先级中断(优先级0)
当PADC = 1时,A/D转换中断为最高优先级中断(优先级1)
(1)PPCA:PCA中断优先级控制位。
1:PCA中断为高优先级;0:PCA中断为低优先级。
(2)PLVD:低电压检测中断优先级控制位。
1:低电压检测中断为高优先级;0:低电压检测中断为低优先级。
(3)PADC:ADC中断优先级控制位。
1:ADC中断为高优先级;0:ADC中断为低优先级。
(4)PS:决定串行通道中断优先级。PS=1,则编程为高优先级。
PT1:决定定时器1中断优先级。PT1=1,则编程为高优先级。PX1:决定外中断1优先级。PX1=1,则编程为高优先级。
PTO:决定定时器0中断优先级。PTO=1,则编程为高优先级。PXO:决定外中断0优先级。PX0=1,则编程为高优先级。
标签:优先级,中断,RES,STC15W,ADC,寄存器,转换,模数转换器 来源: https://www.cnblogs.com/liu-jiani/p/15114682.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。