小菜鸟_4624
获得 16 次赞
帮助过12人
混合接地使接地系统在低频和高频时呈现不同的特性,这在宽带敏感电路中是必要的。电容对低频和直流有较高的阻抗,因此能够避免两模块之间的地环路形成。当将直流地和射频地分开时,将每个子系统的直流地通过10~100nF的电容器接到射频地上,这两种地应在一点有低阻抗连接起来,连接点应选在最高翻转速度(di/dt)信号存在的点。
除了硬件上要采取一系列的抗干扰措施外,在软件上也要采取数字滤波、设置软件陷阱、利用看门狗程序冗余设计等措施使系统稳定可靠地运行。特别地,当储能飞轮处于某一工作状态的时间较长时,在主循环中应不断地检测状态,重复执行相应的操作,也是增强可靠性的一个方法
{ TMOD=0x10; // 置定时器1为方式1 while(1) { for(i=0;i<=255;i++) //形成三角波输出值,最大255 { DA0832=i; //D/A转换输出 delay_100us(); } for(j=255;j>=0;j--)//形成三角波输出值,最大255 { DA0832=j; //D/A转换输出 delay_100us(); } }}
#define DA0832 XBYTE[0x7fff]#define uchar unsigned char#define uint unsigned intuchar ij;void delay_100us(){ TH1=0xff; //置定时器初值0xff9c,即65436,定时0.1ms TL1=0x9c; TR1=1; // 启动定时器1 while(!TF1); // 查询计数是否溢出,即定时0.1ms时间到,TF1=1 TF1=0; // 0.1ms时间到,将定时器溢出标志位TF清零}void main(void){ TMOD=0x10; // 置定时器1为方式1 while(1) { for(i=0;i<=255;i++) //形成三角波输出值,最大255 { DA0832=i; //D/A转换输出 delay_100us(); } for(j=255;j>=0;j--)//形成三角波输出值,最大255 { DA0832=j; //D/A转换输出 delay_100us(); } }}
首先要允许外部振荡器,但此时的系统时钟源仍应是内部时钟,直到外部振荡器稳定后,才可将系统时钟源切换到外部振荡器上,否则会出现切换不过去,系统死机的情况。
中断是通过硬件来改变CPU的运行方向。计算机在执行程序的过程中,当出现CPU以外的某种情况,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。调用中断服务程序的过程类似于调用子程序,其区别在于调用子程序在程序中是事先安排好的;而何时调用中断服务程序事先却无法确定,因为“中断”的发生是由外部因素决定的,程序中无法事先安排调用指令,因此,调用中断服务程序的过程是由硬件自动完成的。中断的特点:分时操作、实时处理、故障处理
当定时/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器增1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,如果单片机系统采用12M晶振,则计数周期为:,这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。当定时/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数,检测一个由1到0的负跳变需要两个机器周期,所以,最高检测频率为振荡频率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。当需要准确计算时间时往往采用定时器的定时方式,而当要对一些外部事件计数时则采用定时器的计数方式。