求救:原来我可以用这个程序测试IOPB口,将其各个脚置高置低,但突然就不行了。现在可以对IOPC口各位进行操作,但IOPB口却一直常低,没有任何反映。我使用别的演示程序发现IOPB口没有损坏,可以正常操作,但用我的程序就不行,所以我确定是自己的程序有问题,请各位救我一命,我快被折磨疯了,看看到底是怎么回事。以下为程序代码
#include "LF2407A_REGS_C.H"
main() { asm(" SETC INTM "); //关总中断,INTM=1 asm(" SETC SXM "); //SXM置1,抑制符号扩展位 asm(" CLRC OVM "); //OVM清0,累加器中结果正常溢出 asm(" CLRC CNF "); //配置的片内双访问RAM块B0到数据空间 SCSR1=0x02FC; //振荡器频率CLKIN=20MHz,设置工作频率CLKOUT=2*CLKIN=40MHz WDCR=0x0028; //关软件看门狗 IFR=0x003F; //向所有中断标志位写1,以清除所有中断请求 //IOPB0~7,IOPC3~6设置为IO口模式 MCRA=0x00FF; MCRB=0xFF87; //IOPB0~7设置为输出功能,初始化全为0 //IOPC3~6设置为输出功能,初始化全为1 PBDATDIR=0xFF00; PCDATDIR=0x7878; //对IOPB口进行操作 PCDATDIR=0x7800; PBDATDIR=0xFF66; PBDATDIR=0xFF00; PBDATDIR=0xff01; PBDATDIR=0xff02; PBDATDIR=0xff04; PBDATDIR=0xff08; PBDATDIR=0xff10; PBDATDIR=0xff20; PBDATDIR=0xff40; PBDATDIR=0xff80; } |