当前位置: 代码迷 >> 单片机 >> 崩溃+郁闷的有关问题不知道原因出在哪里,求指点,试了无数次
  详细解决方案

崩溃+郁闷的有关问题不知道原因出在哪里,求指点,试了无数次

热度:379   发布时间:2016-04-28 14:57:29.0
崩溃+郁闷的问题不知道原因出在哪里,求指点,试了无数次
在主函数中的 exsample(void)里面代码执行到delayms就卡死在循环里面程序不执行了,实在搞不明白什么原因了,在这里求一下指点

代码如下:

//-------------------------------------------------------------------------------
#include <c8051f060.h>
#include <intrins.h>
#include "fun.h"

//-------------------------------------------------------------------------------
//
sbit CDPIN=P1^3;                         
sbit CEPIN=P1^2;                        
sbit WRPIN=P1^0;                        
sbit RDPIN=P1^1; 
//-------------------------------------------------------------------------------
//
unsigned char XPOS;                     //列方向LCD点阵位置指针
unsigned char YPOS;                     //行方向LCD点阵位置指针
unsigned char code yp[9]={0,16,32,48,64,80,96,112,128};
bit CharImageReverse;                   //字符及图形的反显控制,0(正常显示),1(反显)

#define XDOTS   240                     //图形空间X方向大小
#define YDOTS   128                     //图形空间X方向大小


void Delayms(unsigned int MS)   
{
  unsigned int i,j;
  for( i=0;i<MS;i++)
  for(j=0;j<2700;j++); 
}
  

void delay(unsigned int tim)
{
    unsigned int aa=tim;
if(aa>0)aa--;
}

void OSCILLATOR_Init (void)
{
char SFRPAGE_SAVE = SFRPAGE;        // Save Current SFR page

SFRPAGE = CONFIG_PAGE;              // set SFR page

OSCICN |= 0x03;                     // Configure internal oscillator for
                   // its maximum frequency (24.5 Mhz)

SFRPAGE = SFRPAGE_SAVE;             // Restore SFR page
}


//-----------------------------------------------------------------------------
void PORT_Init (void)
{

   char old_SFRPAGE = SFRPAGE;

   SFRPAGE = CONFIG_PAGE;              // Switch to configuration page
   
   P2MDIN |= 0XFF;                     //P2设为数字输入 
   P1MDIN |= 0XFF;
   P1MDOUT |=0Xf0;
   P1=0X0f;
   P2MDOUT |=0X00;                    
   P2=0Xff;     
   XBR2    = 0x40;                     // Enable crossbar and weak pull-ups                  
   SFRPAGE = old_SFRPAGE;              // restore SFRPAGE
}
//-------------------------------------------------------------------------------

void main(void)
{  
    OSCILLATOR_Init ();
    PORT_Init ();
    lcdreset();  //初始化液晶显示控制器
    exsample();                     //演示程序
    while(1)
    {                         
        _nop_();
    }
}
void exsample(void)                     //演示程序
{

//0.演示前的准备,将LCD液晶显示全部清空
    CharImageReverse=0;                 //反显关闭
    lcdfill(0);                         //清屏
  相关解决方案