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