| 
 
| 在进行仿真的时候,主程序运行到这条语句的时候就不动了(*PEDATDIR = *PEDATDIR&0x0FFFD;),想进入死循环了一样,我是出学的,在做硬件仿真的时候应该把程序下载到外部RAM里吧,我现在的电路上还扩展了I/O空间,这样就是地址线和数据线复用,不知道这样能不能进行仿真~<br />主函数~:<br />main()<br />{       <br />    char LedBuf[4];<br />    long i;<br />    unsigned int t;<br />    <br />    DSPsystem_Init();  <br />    KeyOutput1_Fo;<br />    KeyOutput2_Fo;<br />    *PEDATDIR = *PEDATDIR&0x0FFFD;  <br />    <br />    sprintf(LedBuf, "%4s", "----");<br />    LedDisplay(LedBuf, 1); <br />    i=0;<br />    for(;;)<br />    {                            <br />        while(key == 0);<br />        switch(key)<br />              ………………<br />         }<br /><br />我的初始化函数如下:<br />void DSPsystem_Init(void)<br />{<br />    asm(" SETC INTM ");       /*关总中断*/<br />    asm(" CLRC SXM ");        /*抑制符号扩展*/<br />    asm(" CLRC OVM ");        /*累加器中结果正常溢出*/<br />    asm(" CLRC CNF ");        /*B0区被配置为数据空间*/<br />    *SCSR1=0x83FE;            /*时钟2倍频,CLKIN=12M,CLKOUT=24M*/<br />    *WDCR=0x00E8;             /*不使能WDT*/<br />    *IMR=0x0000;              /*屏蔽所有CPU中断*/ <br />    *XINT1CR=0x8001;          /*高优先级,使能中断INT1,上升沿产生中断*/     <br />    *XINT2CR=0x8001;          /*低优先级,使能中断INT2,下降沿产生中断*/ <br />    *IFR=0xFFFF;              /*清全部中断标志*/ <br />    <br />    *MCRA=0x0007;             /*IO口初始化*/<br />    *MCRB=0xFF3D;<br />    *MCRC=0x0000;          <br />    WSGR=0x0006;              /*外部IO空间和数据存储空间插入等待周期*/<br />    <br />    *PADATDIR=0xF080;<br />    *PBDATDIR=0x00FF;<br />    *PCDATDIR=0xFF00;<br />    *PDDATDIR=0xFFFF;<br />    *PEDATDIR=0xFFFF;<br />    *PFDATDIR=0xF000;  <br />    <br />    /*串口初始化*/<br />    <br />    *SCICCR=0x0007;             /*空闲线多处理器模式,8位数据,1位停止位,无奇偶校验*/<br />    *SCICTL1=0x0013;            /*接收使能,SLEEP=0,SW RESET=0*/<br />    *SCICTL2=0x0002;            /*接收中断使能*/                 <br />    *SCIHBAUD=0x0001;<br />    *SCILBAUD=0x0038;           /*波特率为9600systemclk=24M*/<br />    *SCICTL1=0x0033;            /*串口初始化完成,SW RESET=1*/<br />    *SCIPRI=0x0060;             /*一旦仿真挂起,在完成当前的接收/发送操作后停止*/ <br />    <br />    <br />    /*PEDATDIR = *PEDATDIR&0xFFFD;*/ <br />    <br />    *IMR=0x0001;                /*开中断INT1*/<br />    asm(" CLRC INTM ");         /*开总中断*/<br />    <br />} <br />  | 
 |