1、EA需要接高电平
把硬件按照设计图焊接完成之后发现LED数码显无规律闪烁,开始以为是程序写的有问题或者复位电路没弄好,后来发现EA引脚忘记接高电平了,不从片内ROM执行程序,看来EA引脚上没有内置上拉电阻...
2、P0口没有内置上拉电阻
本来是用p2口驱动数码管,发现不亮(一个引脚驱动八个发光二极管),想用P0驱动(一个引脚驱动四个发光二极管),结果也不亮,后来一想P0没有内置的上拉电阻,给P0口置一的时候它是高组态
3、灵异事件
我没给EA接高电平的时候LED数码管胡乱闪烁(P2接阳极P0接阴极),给EA置高电平之后程序正常运行,但是mov p2,#0ff再mov p0,#0之后LED数码管不亮,后来发现是P2驱动能力有限,上加了上拉电阻之后就好了,难道驱动能力还可以改?已经想明白了,用p0和p2控制管子一个一个的循环点亮就可以了(最多不要超过同时3个)。ea悬空使得程序从片外rom执行,p0,p2口要不断的输出16位地址,这样难免有做到满足3个以内led亮的条件,然后就会出现闪烁效果了。
4、下载线长度有极限
长度有极限这个事早就知道,但是没想到这么短,我用的是自己做的并口isp下载线,本想把线弄长点在主机前面用,结果才半米就不能正常传程序了,后来还是剪短了
5、TF2只能软件复位(清零)
为了提高通用性,我用计时器T2控制系统周期(刷新显示之类的事),结果中断起来没完没了,研究了半天控制字,也没解决,在不轻易见发现手册上大字写着TF2只能软件复位,就是clr tf2。(不复位的话会在执行完中断和中断的下一条指令之后自动进入中断)