中微单片机学习--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、系统配置

WDT

ENABLE:打开看门狗

DISABLE:关闭看门狗

PROTECT

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配置

PORTx数据寄存器
TRISx方向寄存器
ODCONx开漏输出使能寄存器
ANSELx模拟选择寄存器
WPUx上拉电阻寄存器
WPDx下拉电阻寄存器
IOCxPORTx电平变化中断寄存器
注:当用户读一个 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:11:4 1:16

通过将 T2CON 寄存器的 TMR2ON 位置 1 使能 TIMER2;通过将 TMR2ON 位清零禁止 TIMER2

(3)TIMER2相关寄存器

10、10位PWM

芯片包含一个 10 PWM 模块,可配置为 4 路共用周期、独立占空比的输出,和 1 路独立周期、独立占 空比的输出,或 2 组互补输出.。
PWM周期:
                T_{PWM}=(PWMT+1)*T_{HSI}*CLKDIV (T_{HSI}=1/F_{HSI})
脉冲宽度:
                 (PWMD+1)*T_{HSI}*CLKDIV
占空比:
                                         \frac{PWMD+1}{PWMT+1}

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 中断标志位清零(如果允许中断的话,需要进行此操作)。

(4)ADC相关寄存器

SC8F072是一款微控制器,它通常用于控制矩阵LED灯的显示。矩阵LED是一种通过逐行或逐列扫描的方式点亮的LED阵列,由于其结构,可以大大减少所需的I/O引脚数。 下面是一个基本的SC8F072矩阵LED扫描点亮的示例例程概述: 1. **硬件连接**: - 连接矩阵LED到SC8F072的GPIO端口,通常每行和每列各需要一组独立的数据线。 - 确保有足够的时间间隔(如10us)在扫描一行结束后再扫描下一行,防止闪烁。 2. **初始化**: - 初始化GPIO作为输出模式,并设置为低电平驱动。 - 设置扫描方向,通常是先列扫描后行扫描。 3. **主循环**: a) **列扫描**: - 对每一列LED,将对应的GPIO线设高,点亮这一列,然后设低,关闭。 b) **行扫描**: - 对每一行,重复a步骤的操作,但数据线会随着行的变化而改变。 4. **定时控制**: 可能需要用到定时器中断,确保每个像素点的亮灭时间准确。 5. **处理用户输入或动画效果**(可选): 如果你想让LED屏显示更复杂的动态效果,可以读取按键、触摸屏输入等,控制LED的显示内容。 ```c // 示例伪代码(注意这只是一个简化的版本,实际代码需要参考SC8F072的官方文档) void init_GPIO() { // GPIO配置为推挽输出 } void set_column(int column) { for (int i = 0; i < ROWS; i++) { GPIO[i * COLS + column] = HIGH; delay_us(1); // LED点亮时间 GPIO[i * COLS + column] = LOW; delay_us(1); // LED熄灭时间 } } void scan_display() { for (int j = 0; j < COLS; j++) { set_column(j); } delay_ms(SECONDS_PER_ROW); // 列扫描完后延迟行扫描时间 set_row(0); // 行开始 for (int i = 0; i < ROWS; i++) { set_row(i); delay_ms(SECONDS_PER_COLUMN); // 行内列扫描 } } int main() { init_GPIO(); while (1) { scan_display(); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值