logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

中微芯片SC8P052,定时器中断,1ms进入一次中断

摘要:本文介绍了Timer2定时器的初始化及中断配置方法。通过Timer2_Init()函数根据微秒级时间参数初始化定时器,计算公式为PR2=us_time/4-1,并设置最大限制值255。调用时传入1000us(1ms)参数实现定时中断。中断服务函数interrupt()中通过检测TMR2IF标志位实现1ms周期的定时处理,每次进入中断后需手动清除标志位。配置包括16MHz系统时钟、1:16预分

文章图片
#单片机#嵌入式硬件
中微芯片SC8P052,比较器监测电源电压

4.检测电池电压函数,将此函数放到主函数while()循环里面。CMPCON1 寄存器,用来改变检测电压值。CMPCON0寄存器,输出比较结果。3.上面初始化我用的的是3.6v。

文章图片
#单片机
中微芯片SC8P052,5脚两位数码管驱动代码

摘要:本文介绍了一种仅需5个IO引脚即可驱动两个7段数码管的极简驱动方案。该方案采用复用IO技术,通过状态机扫描方式实现0-99的数字显示,包含完整的段码映射表和初始化/显示控制函数。特点包括代码结构清晰、便于移植,支持动态数字切换(如65→55→45循环显示),适合MCU引脚资源紧张的场景。驱动通过1ms定时器中断进行扫描刷新,有效降低了硬件资源占用。

文章图片
#单片机
中微芯片SC8P052,软件延时函数,模拟的会有误差的

本文介绍了两种基于循环实现的精确延时函数。微秒级延时函数Delay_us()通过嵌套循环和空操作指令实现,循环次数针对16MHz时钟优化,包含看门狗清除功能。毫秒级延时函数Delay_ms()基于微秒延时实现,每毫秒调用64次微秒延时。两种函数均采用软件循环方式,精度受编译器优化影响,适用于嵌入式系统的时间控制需求。

文章图片
#单片机
到底了