低功耗下:
WAIT模式下,ADC正常工作,ADC中断可以将CPU从WAIT模式中唤醒。倘若不希望ADC中断将其唤醒,可以在执行WAIT指令前,把ADC状态控制寄存器的CH[4-0]设为1来关闭ADC。
STOP模式下,ADC停止工作,放弃当前的转换。当程序一旦退出STOP模式,ADC转换继续进行。在退出STOP模式之后,继续转换之前会有一个转换时间来稳定转换电路。
有关的寄存器如下:
ADC状态控制寄存器(ADSCR)
地址:$003C Bit 7 6 5 4 3 2 1 0
读取 COCO AIEN ADCO CH4 CH3 CH2 CH1 CH0
写入
复位: 0 0 0 0 1 1 1 1
COCO - 转换结束位
当AIEN位为0,COCO位只读,每次转换完后COCO位置1。可以通过写ADC状态控制寄存器或读ADC数据寄存器来清零。复位清零。
1=转换结束(AIEN=0)
0=转换未结束(AIEN=0)
0=中断允许(AIEN=1)
AIEN - ADC中断允许位
当这位为一,ADC转换结束后中断发生。 当写ADC状态控制寄存器或读ADC数据寄存器时信号清零。复位清零。
1=ADC中断允许
0=ADC中断禁止
ADCO - ADC连续转换位
当为1时,ADC连续转换,每次更新。为0时,进行一次转换。 复位清零。
1=连续ADC转换
0=单次ADC转换
ADCH[4:0] - ADC通道选择位
ADCH4~0,。用于选择ADC通道。特别注意的就是当引脚同时为模拟输入和数字输入切换时产生的开关躁声。
当所有位设为1时,关闭ADC。这样减少MCU的消耗。复位时均为1。
ADC数据寄存器(ADR)
8位的转换结果。每次转换后更新。
地址:$003D Bit 7 6 5 4 3 2 1 0
读取 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
ADC时钟寄存器(ADICLK)
用于选择ADC时钟
地址:$003E Bit 7 6 5 4 3 2 1 0
读/写 ADIV2 ADIV1 ADIV0
复位: 0 0 0 0 0 0 0 0
ADIV2~0用于选择ADC内部时钟的分频率,ADC时钟应设在1MHz左右。
4.5 ADC相关寄存器设置始化
MOV #$40,ADICLK;ADC转换时钟频率等于总线周期的四分之一
MOV #$05,INTSCR ;允许外部中断
CLI
MOV #$49,ADSCR
MOV #$80,CONF2
MOV #init,duty
MOV #$50,OC
4.6 端口和时钟寄存器的初始化
;PORT A
MOV #%00000000,PTA
MOV #%00000000,DDRA
MOV #%00000111,PTAPUE ;设置端口PTA0,1,2内部上拉
;PORT B
MOV #%00111000,PTB
MOV #%00111111,DDRB
;PROT D
MOV #%11000000,PTD
MOV #%01100000,DDRD
MOV #%00000010,PDCR ;设置PTD7内部上拉
;Timer counter
MOV #%01110000,TSC
MOV #$00,TMODH
MOV #$C8,TMODL
;Timer channel 0
MOV #%00010000,TSC0
CLR TCH0L ;but can't start
&n
首页 上一页 5 6 7 8 9 10 11 下一页 尾页 8/11/11
免费资料论文--基于Motorola单片机的电动自行车控制器的设计(八)由教育资料网(www.jaoyuw.com)会员上传。