中微单片机学习--SC8F072
目录
1、引脚分布
2、系统配置
3、系统时钟
4、时钟框图编辑
4、复位系统
5、休眠模式
(1)进入休眠模式
(2)从休眠状态唤醒
(3)使用中断唤醒
6、IO配置
7、中断
(1)中断源
(2)中断原理
(3)中断相关寄存器
8、定时器TIMER0
(1)TIMER0/WDT结构图编辑
(2)定时器TIMER0工作原理
(3)相关寄存器
9、定时器TIMER2
(1)TIMER2结构图编辑
(2)定时器TIMER2工作原理
(3)TIMER2相关寄存器
10、10位PWM
11、模数转换ADC
(1)ADC框图
(2)ADC工作原理
(3)AD转换步骤
(4)ADC相关寄存器
1、引脚分布
2、系统配置
ENABLE:打开看门狗
DISABLE:关闭看门狗
ENABLE:ROM代码加密
DISABLE:ROM代码不加密
FCPU_DIV
(指令时钟分频)
4T:Fcpu=Fsys/4
2T:Fcpu=Fsys/2
ICSPPORT_SEL
(仿真口功能选择)
ICSP:ICSPCLK、DAT口一直保持为仿真口、所有功能不可用
NORMAL:ICSPCLK、DAT口为普通功能口
EXT_RESET
(外部复位口选择)
ENABLE:使能外部复位功能,RB2为外部复位口
DISABLE:禁止外部复位功能,RB2为普通IO口
LVR_SEL
(低压侦测选择)
1.8V
2.0V
2.5V
3.0V
注:如果 CONFIG 中 WDT 配置位 =1 ,则 WDT 始终被使能,而与 SWDTEN 控制位的状态无关。如 果 CONFIG 中 WDT 配置位 =0 ,则可以使用 SWDTEN 控制位使能或禁止 WDT 。
3、系统时钟
芯片默认的振荡方式为内部 RC 振荡,振荡频率固定为 16MHz ,在这个基础上可通过 OSCCON 寄存器设 置芯片工作频率。起振时间( ResetTime )是指从芯片复位到芯片振荡稳定这段时间,其设计值为 16ms 。
4、时钟框图
4、复位系统
芯片可用以下4种复位方式:上电复位、外部复位、LVR复位、正常工作下看门狗溢出复位。
5、休眠模式
(1)进入休眠模式
由STOP指令可进入休眠模式。
(2)从休眠状态唤醒
- 看门狗定时器唤醒;
- INT 中断;
- PORTB 电平变化中断;
- PORTA 电平变化中断或外设中断。
(3)使用中断唤醒
当禁止全局中断(GIE 被清零)时,并且有任一中断源将其中断允许位和中断标志位置 1 ,将会发生下列 事件之一。
- 如果在执行 STOP 指令之前产生了中断,那么 STOP 指令将被作为一条 NOP 指令执行
- 如果在执行 STOP 指令期间或之后产生了中断,那么器件将被立即从休眠模式唤醒。
6、IO配置
注:当用户读一个 I/O 口状态时,若此 I/O 口为输入口,则用户读回的数据将是此口线外部电平的状态, 若此 I/O 口为输出口那么读出的值将会是此口线内部输出寄存器的数据。
7、中断
(1)中断源
◆ PORTA 电平变化中断 ◆ PORTB 电平变化中断 ◆ TIMER0 溢出中断 ◆ TIMER2 匹配中断 ◆ PWM 中断 ◆ INT 中断 ◆ CMP 中断 ◆ A/D 中断
(2)中断原理
(3)中断相关寄存器
8、定时器TIMER0
(1)TIMER0/WDT结构图
(2)定时器TIMER0工作原理
TIMER0 模块既可用作 8 位定时器也可用作 8 位计数器。 用作定时器时, TIMER0 模块将在每个指令周期递增(不带预分频器)。 用作计数器时, TIMER0 模块将在 T0CKI 引脚的每个上升沿或下降沿递增。 TIMER0 和看门狗定时器( WDT )共用一个软件可编程预分频器,但不能同时使用。 注:只有将时钟源选择 FLSE 时, TIMER0 中断才能唤醒处理器。
(3)相关寄存器
9、定时器TIMER2
(1)TIMER2结构图
(2)定时器TIMER2工作原理
TIMER2 模块的输入时钟是系统指令时钟(FSYS/4)或外部 32.768kHz 振荡(FLSE)。 时钟被输入到 TIMER2 预分频器,有如下几种分频比可供选择:1:1、1:4 或 1:16。
通过将 T2CON 寄存器的 TMR2ON 位置 1 使能 TIMER2;通过将 TMR2ON 位清零禁止 TIMER2
(3)TIMER2相关寄存器
10、10位PWM
芯片包含一个 10 位 PWM 模块,可配置为 4 路共用周期、独立占空比的输出,和 1 路独立周期、独立占 空比的输出,或 2 组互补输出.。 PWM周期: 脉冲宽度:
占空比:
11、模数转换ADC
模数转换器(ADC )可以将模拟输入信号转换为表示该信号的一个 12 位二进制数。ADC 参考电压可选择内部 LDO 或 VDD。ADC 在转换完成之后可以产生一个中断。
(1)ADC框图
(2)ADC工作原理
要使能ADC模块,必须将ADCON0寄存器的ADON位置为1,将ADCON0寄存器的GO/DONE位置1开始模数转换。
(3)AD转换步骤
1. 端口配置: ⚫ 将引脚配置为输入引脚(见 TRIS 寄存器)。 2. 配置 ADC 模块: ⚫ 选择 ADC 转换时钟; ⚫ 选择 ADC 输入通道; ⚫ 选择结果的格式; ⚫ 启动 ADC 模块。 3. 配置 ADC 中断(可选): ⚫ 清零 ADC 中断标志位; ⚫ 允许 ADC 中断; ⚫ 允许外设中断; ⚫ 允许全局中断。 4. 等待所需的采集时间。 5. 将 GO/DONE 置 1 启动转换。 6. 由如下方法之一等待 ADC 转换结束: ⚫ 查询 GO / DONE 位; ⚫ 等待 ADC 中断(允许中断)。 7. 读 ADC 结果。 8. 将 ADC 中断标志位清零(如果允许中断的话,需要进行此操作)。