导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[landysky]怎么仿真可以通过,烧片后程序不运行? 帮



No.94462
作者:landysky
邮件:mingxch@sohu.com
ID:55105
登陆:1次
文章数:2篇
最后登陆IP:219.138.202.165
最后登陆:2006/6/11 13:03:06
注册:2006/6/9 20:47:38
财富:107
发帖时间:2006/6/9 20:50:43
发贴者IP:219.138.202.165
标题:landysky:怎么仿真可以通过,烧片后程序不运行? 帮我看看啊
摘要:No.94462怎么仿真可以通过,烧片后程序不运行? 帮我看看啊 // LCD Module:        LM3037
// Display Size:      144x32
// Driver/Controller: ST7920
// Interface:         P0--LCDBUS  P2.4--RS
//                    P2.3--RW    P2.2--E
// by:                Landy
// Date:          2006-05-25
// System;            AT89S52/12MHz/PLCC44
// Edith:             1.0
//-------------------------------------------------
// P.S.:              p3.6,P3.7正式使用时取消
//-------------------------------------------------

#include   <stdio.h>  
#include   <reg52.h>  
#include   <intrins.h>  

//-----------------------------------

#define uchar unsigned char // 0~255
#define uint  unsigned int   // 0~65535
#define LcdBus      P0      //LCDM数据总线
#define DataPortB   P1      //PIC16C74B PORTB
#define BitPortB    P3      //接138,读位信息

//-----------------------------------
uchar bdata  FlagBit;
uchar bdata  CodeNum[5];
uchar  data  PortBData;
uchar bdata  Segvalue[5];

//------------------------------------
sbit   ENABLE1  = P3^6;
sbit   ENABLE2  = P3^7;
sbit   ENABLE3  = P2^7;
sbit   ENABLE4  = P2^6;
sbit   ENABLE5  = P2^5;

sbit   RS       = P2^4;
sbit   RW       = P2^3;
sbit   E        = P2^2;
sbit   ENABLE6  = P2^1;
sbit   ENABLE7  = P2^0;

sbit   FlagBit0 =FlagBit^0;
sbit   FlagBit1 =FlagBit^1;
sbit   FlagBit2 =FlagBit^2;
sbit   FlagBit3 =FlagBit^3;
sbit   FlagBit4 =FlagBit^4;
sbit   FlagBit5 =FlagBit^5;
sbit   FlagBit6 =FlagBit^6;
sbit   FlagBit7 =FlagBit^7;

//-----------------------------------
//SubRoutine
//-----------------------------------

//-----------------------------------
/* 定时器1的10ms中断服务程序 */
//void timer1() interrupt 3 using 2{
  //    TF1=0;
    //  _nop_();
      //ReadPortB();
      //test();
      //_nop_();_nop_();
//}

// Delay Routine
//-----------------------------------
void delayms(uint);
void delayms(uint m)        // 12MHz Xtal, close to ms value
{
    uint data j;
    uint data i;
    for(i=0; i  <m; i++)
        for(j=0; j  <109; j++)
                    _nop_();
}

//send command
void SdCmd(uchar);
void SdCmd(uchar Command)
{

    RW = 0;
    RS = 0;
     E = 0;
    LcdBus = Command;
       E =1;
       _nop_();
       E =0;
    _nop_(); _nop_();
    _nop_(); _nop_();
    _nop_(); _nop_();
    _nop_(); _nop_();
}

//send display data
void SdData(uchar);
void SdData(uchar DData)
{

    RW =0;
    RS =1;
     E =0;
    LcdBus =DData;
     E =1;
    _nop_();
     E =0;
    _nop_(); _nop_();
    _nop_(); _nop_();
    _nop_(); _nop_();
    _nop_(); _nop_();
}


void ClrScr(void);
void ClrScr(void)
     {
      SdCmd(0x01);
     }

//Display
void hzkdis(uchar code *);
void hzkdis(uchar code *s)
{while(*s>  0)
      {SdData(*s);
           s++;
           delayms(2);
      }
}

//Read PortB
void ReadPortB(void);
void ReadPortB(void)
{      P3=0xff;
       FlagBit=BitPortB;
       FlagBit=BitPortB;
       FlagBit=~FlagBit;
       PortBData=DataPortB;
       _nop_();
       _nop_();
       PortBData=DataPortB;
       if (FlagBit7)
          { CodeNum[0]=PortBData; }
  else if (FlagBit6)
          { CodeNum[1]=PortBData; }
  else if (FlagBit5)
          { CodeNum[2]=PortBData; }
  else if (FlagBit4)
          { CodeNum[3]=PortBData; }
  else if (FlagBit3)
          { CodeNum[4]=PortBData; }
       else {_nop_();}
}

//display data
void DDData(void);
void DDData(void)
{   char data *strs=Segvalue+2;
   uchar t1;
   delayms(5);
   SdCmd(0x90);
   _nop_();
   _nop_();
   _nop_();
    for(t1=0;t1  <3;t1++)
       {
       _nop_();
       _nop_();
     switch(*strs)
           {
            case 0:hzkdis("0");break;
            case 1:hzkdis("1");break;
            case 2:hzkdis("2");break;
            case 3:hzkdis("3");break;
            case 4:hzkdis("4");break;
            case 5:hzkdis("5");break;
            case 6:hzkdis("6");break;
            case 7:hzkdis("7");break;
            case 8:hzkdis("8");break;
            case 9:hzkdis("9");break;
            case 13:hzkdis(" ");break;
             default:_nop_();
           }
          _nop_();
          _nop_();
          strs++;
          _nop_();
          _nop_();
       }
}

void PaSet(void);
void PaSet(void)
{
  ClrScr();
  SdCmd(0x80);
  _nop_();
  delayms(5);


}
//LED SEGGENT CODE CONVERT TO DIGITAL
void LedSegToNum(void);
void LedSegToNum()
{uchar data value;
uchar data *pt1;
uchar data *pt2;
uchar data mm;
        pt2=Segvalue;
       _nop_();
     for(mm=0;mm  <5;mm++)
         {
           switch(CodeNum[mm])
                 { case 0x20:{value=0;}break;
                   case 0xe9:{value=1;}break;
                   case 0x42:{value=2;}break;
                   case 0xc0:{value=3;}break;
                   case 0x89:{value=4;}break;
                   case 0x84:{value=5;}break;
                   case 0x04:{value=6;}break;
                   case 0xe1:{value=7;}break;
                   case 0x00:{value=8;}break;
                   case 0x80:{value=9;}break;
                   case 0x01:{value=0x0A;}break;
                   case 0x0c:{value=0x0B;}break;
                   case 0x26:{value=0x0C;}break;
                   case 0x48:{value=0x0D;}break;
                   case 0x06:{value=0x0E;}break;
                   case 0x07:{value=0x0F;}break;
                   case 0xcf:{value=0x10;}break;     //- RUN
                   case 0xe7:{value=0x11;}break;     //ˉ START
                   case 0xee:{value=0x12;}break;     //_ STOP
                   case 0xef:{value=0x13;}break;     //ALL DARK
                   default:{_nop_();}
                   }
                *pt2=value;
                 ++pt2;
                }
}
//display  notice
void  Display(uchar data *);
void  Display(uchar data *points)
{
uchar data *pt4=points;
   switch(*(pt4+1))
         {
          case 0:{
          PaSet();
          delayms(5);hzkdis("0 起始电压   ");delayms(5);DDData();hzkdis("%");}break;
          case 1:{PaSet();hzkdis("1 起动时间   ");DDData();hzkdis("s");}break;
          case 2:{PaSet();hzkdis("2 软停时间   ");DDData();hzkdis("s");}break;
          case 3:{PaSet();hzkdis("3 起动延时   ");DDData();hzkdis("s");}break;
          case 4:{PaSet();hzkdis("4 限流设定   ");DDData();hzkdis("%");}break;
          case 5:{PaSet();hzkdis("5 编程输出   ");DDData();}break;
          case 6:{PaSet();hzkdis("6 瞬停设置   ");DDData();}break;
          case 7:{PaSet();hzkdis("7 瞬停后再起动 ");DDData();}break;
          case 8:{PaSet();hzkdis("8 起动模式   ");DDData();}break;
          case 9:{PaSet();hzkdis("9 操作控制方式 ");DDData();}break;
          case 0xa:{
                    switch(*pt4)
                       {  case 0x10:{PaSet();hzkdis("ˉA   起动状态 ");}break;
                          case 0x11:{PaSet();hzkdis("-A  运行状态 " );}break;
                          case 0x12:{PaSet();hzkdis("_A  软停状态 " );}break;
    ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:63毫秒 最大:78531毫秒 查询6次