您当前的位置:五五电子网电子知识电子制作照明-彩灯电路采用R1~R8和D1~D8设计的发光电路 正文
采用R1~R8和D1~D8设计的发光电路

采用R1~R8和D1~D8设计的发光电路

点击数:7115 次   录入时间:03-04 12:03:42   整理:http://www.55dianzi.com   照明-彩灯电路

  附图为自制的单片机最小实验板,R1~R8和D1~D8构成的发光电路为单独的线路板,由于最初没找到合适的元器件.R1~R8阻值参差不齐,D1~D8为普通低亮度红色发光管。用Keil uv3编译软件,使用Proteus软件仿真,再用自制的CH341A (USB转ISP同步下载)下载线下载到AT89S52.结果采用汇编语言时,仿真与实验完全吻合。但是采用C语言编程,用Proteus软件仿真完全达到设计要求。用CH341A下载到AT89S52上,下载软件上提示下载成功,但通电试验时,却是另一番结果:PO.O口的D1闪了一下即熄灭,其他LED不亮,断电后再加电,还是如此。由于PO口是开漏结构的8位准双向口,作普通V0口时必须外接上拉电阻,该电路设计为低电平有效(LED灯亮),不接上拉电阻按理说应该没问题,何况用汇编语言时都能正常工作,而C语言为什么不行?不管怎样,在试验板的每个LED负极与+5v间接上一只10kφ电阻,再试验仍是D1闪一下即灭,其它灯始终不亮。怀疑是单片机的PO口出了故障,程序改动后,重新下载到单片机上,输出分别接在P1~P3口结果仍是如此,怀疑可能是单片机坏了。但一连换了两块AT89S52.结果仍未改变。怀疑单片机的抗干扰性能差,在单片机最小实验板的40脚与地之间接上一只100nF的无极性电容(原来有一只100uF的电解电容),可问题还未解决。
  
  单片机未坏,程序没有问题,问题还是应在发光板。于是仔细检查发光板的焊接情况,当初由于零件有限,LED的限流电阻R1、R2原打算用470Ω的,不知怎么搞的,R1却装的是47Ω,R2为470Ω,另有4只1kΩ的,1.5kΩ和2.2kΩ的各一只。采用汇编语言编译时,D1点亮时电流达20mA,而用C语言编译时,D1点亮瞬间,电流并不大,不足10mA,也许是点亮的时间太短,指针表还未完全反应过来。把R1换成1kΩ用C语言编程的广告灯左移右移程序也能达到设计要求。查资料知道AT89S52单片机的灌电流(端口为低电平时)能力大,P1~P3口每个端口灌电流之和最大15mA.PO口灌电流之和最大26mA;拉电流(端口为高电平时)能力小,全部端口拉电流之和不足1mA,20mA电流没把单片机损坏已经是很幸运的。
  
  检查汇编语言和C语言生成的16进制的文件并不相同,可见两种语言生成代码的效率是不同的所以产生不同的实验效果。

采用R1~R8和D1~D8设计的发光电路

42855

48969




本文关键字:暂无联系方式照明-彩灯电路电子制作 - 照明-彩灯电路

《采用R1~R8和D1~D8设计的发光电路》相关文章>>>