STC8A8K32S4使用,因停产替换为STC8A8K32D4

  1. 外围电路简单,晶振及复位电路非必要,如果使用外部有源或无源晶振。需要系统启动时先进行切换
void set_clock(void)//切换外部有源晶振
{
	P_SW2=0X80;// 访问寄存器位于扩展SFR,需最高位置1
	XOSCCR=0X80;//启动外部时钟,有源晶振 
	while(!(XOSCCR&1));//等待时钟稳定
	CLKDIV=0x00;//时钟不分频
	CKSEL=0X02;//选择外部晶振
	P_SW2=0X00;// 关闭外部寄存器访问
}
  1. ADC是12位的,精密ad外部基准电压接2.5v基准,一般需求连接vcc。16通道,最后一个通道是内部基准电压,出厂写入外部ram内
int *BGV ;//内部16通道ad模拟量值,单位mv
BGV=(int idata *)0xef;//指针赋值
vcc=(unsigned int)(4095L* *BGV/current);//根据内部基准电压,算外部电压

从BGV读取的值是1282,表示16通道的内部基准电压是1282mv。

  1. 增强型PWM输出,8路PWM输出计数器PWMC是公用的,因此输出频率一样的
void pwm_init(void)
{	
	P_SW2=0X80;// 访问寄存器位于扩展SFR,需最高位置1
	P2M0=0X00;
	P2M1=0X00;
	PWMCKS = 0x09;         // PWM时钟为系统时钟,10分频
//    PWMC = 0x0;            //设置PWM周期为1000H个PWM时钟
//    PWM0T1= 0x0;           //在计数值为100H地方输出低电平
//    PWM0T2= 0;             //在计数值为500H地方输出高电平
//    PWM0CR= 0x80;          //使能PWM0输出
    P_SW2 = 0x00;
    PWMCR = 0x80;          //启动PWM模块
}
void set_pwm(void)
{
	P_SW2=0X80;
	pwm_c=(uart1rx_buffer[15]<<8)|uart1rx_buffer[16];//获取频率设定值
	if(pwm_c==0)//获取频率设定值=0,低电平
	{
		PWMC=0;//周期计数值
		PWM0T1=0;
		PWM1T1=0;
		PWM2T1=0;
	}
	.....
  1. 输入捕获,4路的计数器的计数器是公用的,因此同时只能计算一路的脉冲输入。
  2. 4个串口,在同波特率的情况下,可共用一个定时器。

2022.3.11因为STC8A8K32S4停产,需要更换为STC8A8K32D4

利用读取ROM指定地址,获取ID,前两位可区分两种芯片

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值