复位线路的设计
Mega16已经内置了上电复位设计。并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:直接拉一只10K的电阻到VCC即可(R0)。
为了可靠,再加上一只0.1uF的电容(C0)以消除干扰、杂波。
D3(1N4148)的作用有两个:作用一是将复位输入的最高电压钳在Vcc+0.5V 左右,另一作用是系统断电时,将R0(10K)电阻短路,让C0快速放电,让下一次来电时,能产生有效的复位。
当AVR在工作时,按下S0开关时,复位脚变成低电平,触发AVR芯片复位。
重要说明:实际应用时,如果你不需要复位按钮,复位脚可以不接任何的零件,AVR芯片也能稳定工作。即这部分不需要任何的外围零件。
晶振电路的设计
Mega16已经内置RC振荡线路,可以产生1M、2M、4M、8M的振荡频率。不过,内置的毕竟是RC振荡,在一些要求较高的场合,比如要与RS232通信需要比较精确的波特率时,建议使用外部的晶振线路。
早期的90S系列,晶振两端均需要接22pF左右的电容。Mega系列实际使用时,这两只小电容不接也能正常工作。不过为了线路的规范化,我们仍建议接上。
重要说明:实际应用时,如果你不需要太高精度的频率,可以使用内部RC振荡。即这部分不需要任何的外围零件。
AD转换滤波线路的设计
为减小AD转换的电源干扰,Mega16芯片有独立的AD电源供电。官方文档推荐在VCC串上一只10uH的电感(L1),然后接一只0.1uF的电容到地(C3)。
Mega16内带2.56V标准参考电压。也可以从外面输入参考电压,比如在外面使用TL431基准电压源。不过一般的应用使用内部自带的参考电压已经足够。习惯上在AREF脚接一只0.1uF的电容到地(C4)。
重要说明:实际应用时,如果你想简化线路,可以将AVCC直接接到VCC,AREF悬空。即这部分不需要任何的外围零件。
问:C8051F系列单片机的中断有几级?答:C8051F系列单片机的中断只有两级:低优先级与高优先级,上电后所有的中断默认的是低优先级;互相之间不能打断中断。
ISP下载接口设计
ISP下载接口,不需要任何的外围零件。使用双排2*5插座。由于没有外围零件,故PB5(MOSI)、PB6(MISO)、PB7(SCK)、复位脚仍可以正常使用,不受ISP的干扰。
重要说明:实际应用时,如果你想简化零件,可以不焊接2*5座。但在PCB设计时最好保留这个空位,以便以后升级AVR内的软件。
JTAG仿真接口设计
仿真接口也是使用双排2*5插座。需要四只10K的上拉电阻。
重要说明:实际应用时,如果你不想使用JTAG仿真,并且不想受四只10K的上拉电阻的影响,可以将JP1-JP4断开。
电源设计
AVR单片机最常用的是5V与3.3V两种电压。本线路以开关切换两种电压,并且以双色二极管指示(5V时为绿灯,3.3V时为红灯)。
二极管D1防止用户插错电源极性。D2可以允许用户将电压倒灌入此电路内,不会损坏1117-ADJ。
1117-ADJ的特性为1脚会有50uA的电流输出,1-2脚会有1.25V电压。利用这个特点,可以计算出输出电压:
当SW开关打向左边时,R6上的电流为 1.25/0.33 = 3.78ma 。R8上的电流为1117-ADJ 1脚电流加上R6上的电流,即0.05+3.78=3.83ma. 可以计算得R8上的电压为3.84V。 于是得出VCC=1.25+3.83=5.08V。误差在2%以内。
当SW开关打向右边时,R6上的电流为 1.25/0.62 = 2.02ma 。R8上的电流为1117-ADJ 1脚电流加上R6上的电流,即0.05+2.02=2.07ma. 可以计算得R8上的电压为2.07V。 于是得出VCC=1.25+2.07=3.32V。误差在1%以内。
使用1%精度的电阻,可以控制整个输出电压误差在3%以内。
重要说明:实际应用时,视乎使用1117-ADJ的品牌,输入电压可以低至7伏甚至更低。(也可以同时使用低压降的二极管代替1N4007)。
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
虽然汇编语言比机器语言更加简单易懂了,但是人们读起来还是挺难理解的。而且,汇编语言还存在另一个问题,就是不同的CPU,机器语言的描述方式也不同。因此,如果更换了CPU,就必须改写与机器语言有着密不可分关系的汇编语言,工作量比较大。(以上例子中的机器语言和汇编语言均为瑞萨的RL78族单片机中的语言。)