|
本来设计要做了个ADC电路,实验挺成功的。下一步要做一个脉冲计数器。结果无论如何就是不成功。
先声明,我自己做了NE555方波发生器。50%固定占空,频率从 0.72Hz ~ 72kHz 可调。产生出来的波形送给51单片机P34引脚。虽然样子丑了点,但是功能完全正常。
单片机型号为STC8A8K64S4A12。所有的测试都做过了。先写了一个简单代码,就是检测外部脉冲,LED跟着闪烁就行
测试结果完全正常,说明准双向口输入输出均正常。
但下面妖魔鬼怪就来了。
- #include "reg51.h"
- #include "intrins.h"
- sbit P05 = P0^5;
- void TM0_Isr() interrupt 1
- {
- P05 = !P05; //测试端口
- }
- void main()
- {
- TMOD = 0x04; //外部计数模式
- TL0 = 0x08;
- TH0 = 0x00;
- TR0 = 1; //启动定时器
- ET0 = 1; //使能定时器中断
- EA = 1;
- while (1);
- }
复制代码
这段程序可不是我写的,是人家STC官方的范例程序,只是测试端口修改为P05,计数次数改成了8次。然后就没有然后了,我已无法用语言形容。更可恨的是换成定时器1、定时器2、定时器3、定时器4都不能正常计数。甚至连芯片都换了也白搭。
我已无法用见了鬼来形容了,无语了,词穷了。
请各路大神来赐教一下吧,谢谢啦。
|
|