探索极限输出频率
首先感谢stc公司的慷慨,我已收到了实验箱。现在正探索,STC单片机的极限输出频率。先考用考虑用定时器方式,将公司网站下载的例程修改后,在p66口输出方波。当频率为500千赫兹的时候,频率正常,波形有些变形。当频率上升到一兆赫兹的时候,实测频率只有700多千赫兹。想通过修改p6sr寄存器,提高Io口电平转换速率,程序又出现语法错误。所以现在卡住了,请高手指点一二。 附件例程供参考F_Main:
MOV WTST, #00H ;设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
MOV CKCON,#00H ;提高访问XRAM速度
ORL P_SW2,#080H ;使能访问XFR
MOV P0M1, #00H ;设置为准双向口
MOV P0M0, #00H
MOV P1M1, #00H ;设置为准双向口
MOV P1M0, #00H
MOV P2M1, #00H ;设置为准双向口
MOV P2M0, #00H
MOV P3M1, #00H ;设置为准双向口
MOV P3M0, #00H
MOV P4M1, #00H ;设置为准双向口
MOV P4M0, #00H
MOV P5M1, #00H ;设置为准双向口
MOV P5M0, #00H
MOV P6M1, #00H ;设置为准双向口,P66设置推挽输出
MOV P6M0, #40H
MOV P7M1, #00H ;设置为准双向口
MOV P7M0, #00H
MOV WR0, #WORD2 P6SR
MOV WR2, #WORD0 P6SR
MOV A, #0BFH ;P66电平快速转换
MOV @DR0, R11
记得硬件上是有不到30MHz的限制,在那个频率就完全测不出波形了 频率太高,IO口的硬件反应不过来了,毕竟芯片IO内部也是MOS管,本身就有频率限制。 进展,已插入乘风所提供的代码。可以编译通过,但最高输出频率仍然只有700多千赫兹,应该是没有产生效果。
然后下载乘风所提供的代码,得到以下输出波形,频率达到3M多,研究中。。 新发现,将p6sr设为ff,输出频率和波形不变。难道p6sr是个摆设?
这段代码什么意思啊?真心不懂,望高人指点。
MOV WR0, #WORD2 P6SR ;这是说把p6sr的地址高16(或者低16位?) 位置入r2,r3中吗?
MOV WR2, #WORD0 P6SR;这是说把p6sr的地址低16(或者高16位?) 位置入r0,r1中吗?
MOV A, #0bFH ;这是说把bf存入累加器A,这个应该没问题
MOV @DR0, R11 ; R11是什么鬼?不是说当前寄存器就r0-r7吗?r11中有什么?A寄存器中的东西呢?貌似没用上啊。按程序的意思应该是把A中的内容存入p6sr中啊。这A和r11又有什么关系?
晕了晕了。。 查了点资料,原来A的地址是0eh,也就是r11的地址{:4_167:}这就好理解了。只不过p6sr的设置还是没起到作用。 原来寄存器都是在内存中(或者地址重合?)
页:
[1]
2