⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 105+.lst

📁 一个用keil写的,动行在c8051f410上的自己做的开关电源的驱动程序,在protes下仿真过.希望对初学者能有用.
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   105_                                                                  10/28/2007 11:09:37 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 105_
OBJECT MODULE PLACED IN 105+.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 105+.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <c8051f410.H>
   2          
   3          #define uchar unsigned char
   4          #define uint  unsigned int 
   5          #define LCD_PORT P2                      
   6          #define Left  2                                     
   7          #define Right 1
   8          
   9          ////////////////////12864
  10          sbit  LCD_Busy=P2^7;     
  11          sbit  LCD_EN = P1^7;
  12          sbit  LCD_RW = P1^6;
  13          sbit  LCD_RS = P1^5;
  14          sbit  LCD_CS1= P1^4;
  15          sbit  LCD_CS2= P1^3;
  16          sbit  LCD_RST= P1^1;
  17          sbit  kk= P1^0;
  18          
  19          uchar Page_Num,Clm_Num,tempdata,page,clum,pagestart,clmstart,clmsum,pageend,i,j,k,dataout,digih2,digih,dig
             -il2,digil,digitalin,clockrecog;
  20          uchar swd,symbolin,symbolout,con,ab,keysetsymbol,keyud,keylr,keyset,keysetin,dir,enterkeynumber=0,keyclr,x
             -,y;
  21          uint  v5,v15,vm15,v151,v152,v153,v154,v24,v24h;
  22          uchar count,dafig=0;
  23          uchar serial,accidentrecog=0;
  24          uchar dt[7];
  25          uchar datacenter[3][9];                                  
  26          code uchar digital[19][14]={{0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,0x03,0x04,0x08,0x08,0x04,0x03,0x00},/*"0",
             -0*/
  27                                     {0x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00},/*"1",1
             -*/
  28                                     {0x00,0x18,0x04,0x04,0xC4,0x38,0x00,0x00,0x0C,0x0A,0x09,0x08,0x0C,0x00},/*"2",2
             -*/
  29                                     {0x00,0x18,0x04,0x44,0x44,0xB8,0x00,0x00,0x06,0x08,0x08,0x08,0x07,0x00},/*"3",3
             -*/
  30                                     {0x80,0x40,0x30,0x08,0xFC,0x00,0x00,0x01,0x01,0x01,0x09,0x0F,0x09,0x01},/*"4",4
             -*/
  31                                     {0x00,0x7C,0x24,0x24,0x64,0xC4,0x00,0x00,0x06,0x08,0x08,0x0C,0x07,0x00},/*"5",5
             -*/
  32                                     {0xF0,0x88,0x44,0x44,0x44,0x8C,0x00,0x07,0x08,0x08,0x08,0x08,0x07,0x00},/*"6",6
             -*/
  33                                     {0x00,0x1C,0x04,0xC4,0x34,0x0C,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00},/*"7",7
             -*/
  34                                     {0x38,0xE4,0x44,0x44,0xC4,0x38,0x00,0x07,0x08,0x08,0x08,0x08,0x07,0x00},/*"8",8
             -*/
  35                                     {0x78,0x84,0x84,0x84,0x4C,0xF0,0x00,0x0C,0x08,0x08,0x0C,0x06,0x01,0x00},/*"9",9
             -*/
  36                                     {0x20,0xE0,0x40,0x20,0x20,0xC0,0x00,0x20,0x3F,0x28,0x08,0x0C,0x07,0x00},/*"p",1
             -0*/
  37                                     {0x00,0x40,0x20,0xA0,0xA0,0xC0,0x00,0x00,0x06,0x09,0x08,0x08,0x0F,0x08},/*"a",1
             -1*/
  38                                     {0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x00},//:   12
             -           
  39                                     {0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",1
             -3*/
C51 COMPILER V7.50   105_                                                                  10/28/2007 11:09:37 PAGE 2   

  40                                     {0x80,0x80,0x80,0xF0,0x80,0x80,0x80,0x00,0x00,0x00,0x07,0x00,0x00,0x00},/*"+",1
             -4*/
  41                                     {0x00,0x38,0x44,0xFE,0x84,0x18,0x00,0x00,0x06,0x08,0x3F,0x08,0x07,0x00},/*"$",1
             -5*/
  42                                                             {0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00},/*"=",16*/
  43                                     {0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x07,0x38,0x0E,0x01,0x00,0x00},/*"V",1
             -7*/
  44                                                     {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00}};/*".",18*/
  45          
  46          void Delay_us(unsigned int DelayTime)
  47           {
  48   1         while(DelayTime) DelayTime--;
  49   1        }
  50          
  51          void Delay_x10ms(unsigned char DelayTime)   //***************10ms延时**********//
  52             {
  53   1             unsigned char iq,jq,kq;
  54   1             for(iq=0;iq<DelayTime;iq++)
  55   1                for(jq=0;jq<50;jq++)
  56   1                   for(kq=0;kq<120;kq++) {;}
  57   1          }      
  58          
  59          
  60          /*---------------------------------------------------------------------------- 
  61          下面这个函数用于液晶模块的忙信号检测。 
  62          ----------------------------------------------------------------------------*/ 
  63          void LCD_Check_Busy(void)
  64            {
  65   1         while(1)
  66   1              { LCD_Busy=1;
  67   2                Delay_us(3);
  68   2                LCD_EN = 0;
  69   2                LCD_RS = 0;
  70   2                Delay_us(10);
  71   2                LCD_RW = 1;
  72   2                LCD_PORT = 0xff;
  73   2                LCD_EN = 1;
  74   2               
  75   2                if(!LCD_Busy) break;
  76   2           }
  77   1         LCD_EN = 0;
  78   1        }
  79          /*---------------------------------------------------------------------------- 
  80          下面这个函数用于向液晶模块写入控制指令代码。 
  81          函数入口参数:Command ------ 向液晶模块写入的控制指令代码 。 
  82                        CS_Num  ------ 左右半屏的选数值 
  83          ----------------------------------------------------------------------------*/ 
  84          void LCD_WriteCommand(uchar Command, uchar CS_Num) 
  85          {  Delay_us(3);
  86   1        if(CS_Num==1)                 /*选择左半屏*/
  87   1         {
  88   2           LCD_CS1 = 0;
  89   2               LCD_CS2 = 1;
  90   2              }
  91   1        else if(CS_Num==2)    /*选择右半屏*/
  92   1         {
  93   2           LCD_CS1 = 1;
  94   2               LCD_CS2 = 0;
  95   2              }
  96   1              Delay_us(3);
  97   1        LCD_Check_Busy();       /* 使能信号为L */ 
  98   1        LCD_RS = 0;           /* 置寄存器选择为L */ 
C51 COMPILER V7.50   105_                                                                  10/28/2007 11:09:37 PAGE 3   

  99   1        LCD_RW = 0;           /* 置读/写选择为L */ 
 100   1        LCD_PORT = Command;   /* 将控制指令代码输出到的数据端口 */ 
 101   1        LCD_EN = 1;           /* 使能信号为H */ 
 102   1        Delay_us(10);          /* 延时2us */ 
 103   1        LCD_EN = 0;           /* 使能信号为L */ 
 104   1        LCD_CS1 = 1;          /* 置片选1为L */ 
 105   1        LCD_CS2 = 1;          /* 置片选2为L */ 
 106   1      } 
 107          
 108          
 109          /*---------------------------------------------------------------------------- 
 110          下面这个函数用于向液晶模块写入显示数据。 
 111          函数入口参数:Data------ 向液晶模块写入的显示数据 。 
 112                      CS_Num-------左右半屏的选数值 
 113          ----------------------------------------------------------------------------*/ 
 114          void LCD_WriteData(uchar Data,uchar CS_Num) 
 115          { Delay_us(3); 
 116   1      if(CS_Num==1)            /*选择左半屏*/
 117   1         {
 118   2           LCD_CS1 = 0;
 119   2               LCD_CS2 = 1;
 120   2              }
 121   1        else if(CS_Num==2)  /*选择右半屏*/
 122   1         {
 123   2           LCD_CS1 = 1;
 124   2               LCD_CS2 = 0;
 125   2              }
 126   1        LCD_Check_Busy();
 127   1        LCD_EN = 0;
 128   1        LCD_RS = 1;  /* 置寄存器选择为H */ 
 129   1        LCD_RW = 0;       /* 置读/写选择为L */  
 130   1        LCD_PORT = Data;  /* 将显示数据输出到的数据端口 */ 
 131   1        LCD_EN = 1;       /* 使能信号为H */ 
 132   1        Delay_us(10);      /* 延时2us */ 
 133   1        LCD_EN = 0;       /* 使能信号为L */ 
 134   1        LCD_CS1= 1;       /* 置片选1为L */ 
 135   1        LCD_CS2= 1;       /* 置片选2为L */ 
 136   1      }    
 137          
 138          /*---------------------------------------------------------------------------
 139          下面这个函数用于液晶模块的清屏。
 140          ---------------------------------------------------------------------------*/
 141          void LCD_keyclr(uchar Side_Num)
 142           {
 143   1         uchar i,k,COM;
 144   1         
 145   1         for(i=0;i<8;i++)                               
 146   1         {
 147   2               COM=0xB8+i;
 148   2           LCD_WriteCommand(COM,Side_Num);    
 149   2               COM=0x40;
 150   2               LCD_WriteCommand(COM,Side_Num);  
 151   2                       
 152   2           for(k=0;k<64;k++)
 153   2            {
 154   3                  LCD_WriteData(0x00,Side_Num);
 155   3                 }
 156   2              }
 157   1               Delay_us(2);
 158   1        }
 159          
 160          
C51 COMPILER V7.50   105_                                                                  10/28/2007 11:09:37 PAGE 4   

 161          /*---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -