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

📄 main.lst

📁 uC_OS-II在C51下的一个完整的LCD项目源码
💻 LST
📖 第 1 页 / 共 4 页
字号:
C51 COMPILER V8.02   MAIN                                                                  09/21/2008 12:29:52 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE main.c LARGE DEBUG OBJECTEXTEND

line level    source

   1          #include <includes.h>
   2          #include <ctype.h>
   3          #include <aultdef.h>
   4          #include <i2c.h>
   5          #include <hhh16.h>
   6          #include <chatfont.h>
   7          #include <sed1330.h>
   8          #include <8253.h>
   9          #define KCREETRANT              reentrant
  10          
  11          void sys_init(void *lcnpdata) reentrant;
  12          void mysecondtask(void *lcndata) reentrant;
  13          void main1test(void *lcnpdata) KCREETRANT;
  14          void gettesttype(void *lcnpdata) KCREETRANT;
  15          void lcngetkey(void *lcnpdata) reentrant;
  16          void getcurvault() reentrant;
  17          void getstr8255() reentrant;
  18          
  19          OS_STK sys_init_Stk[MaxStkSize];
  20          OS_STK mysecondtask_Stk[MaxStkSize];
  21          OS_STK lcngetkey_Stk[MaxStkSize];
  22          OS_STK main1test_Stk[MaxStkSize];
  23          OS_STK gettesttype_Stk[MaxStkSize];
  24          
  25          
  26          void init_serial() reentrant
  27          {       
  28   1              PCON &= 0x7F;                           
  29   1              TH1 = 0xFD;     
  30   1              TMOD |= 0X20;                      //定时器1方式2
  31   1              SCON = 0X50;                      //允许接收
  32   1              TR1 = 1;                          //启动定时器1
  33   1              ES = 1;                           //串行口中断允许
  34   1      }
  35          
  36          //串口中断处理
  37          void serial() reentrant
  38          {   
  39   1              if(RI)  
  40   1          {  
  41   2                      RI = 0;
  42   2                      rs485in = SBUF;
  43   2              }
  44   1              else
  45   1          { 
  46   2                      TI = 0; 
  47   2                      if(bout485 > 0)
  48   2                      {
  49   3                              SBUF = rs485out; 
  50   3                              bout485 = 0;
  51   3                      }
  52   2                      else
  53   2                      {
  54   3                              RS485 = 1;
  55   3                      }
C51 COMPILER V8.02   MAIN                                                                  09/21/2008 12:29:52 PAGE 2   

  56   2              }
  57   1      }
  58          
  59          unsigned int advaut;                                    //AD574采样中间数值
  60          void getad() reentrant
  61          {
  62   1              unsigned char i,tempcl;
  63   1              unsigned int tempch;
  64   1              advaut=0;
  65   1              for(i=0;i<16;i++)
  66   1              {
  67   2                      ADCOM=0;        //启动AD转换
  68   2                      adbusy=1;
  69   2                      tempcl=200;
  70   2                      while(tempcl&&adbusy)
  71   2                      {
  72   3                              tempcl++;
  73   3                      }
  74   2                      tempch=(unsigned int)ADHI;
  75   2                      tempcl=ADLO;
  76   2                      advaut+=(tempch*16+(unsigned int)(tempcl/16));
  77   2              }
  78   1              advaut/=16;     
  79   1      }
  80          unsigned char gettimestr(unsigned int x,unsigned char y,unsigned char nu,unsigned char bdate) reentrant
  81          {
  82   1              unsigned char tem;
  83   1              keystaut=0;
  84   1              rectangle(SAD2,x-1,y,x+nu*8,y+16,1);
  85   1              tem=0;
  86   1              OSSemPend(KeySem,0,&lcnerr);
  87   1              if(key==ESC||key==ENTER)
  88   1              {
  89   2                      rectangle(SAD2,x-1,y,x+nu*8,y+16,0);
  90   2                      return(0);
  91   2              }
  92   1              for(tem=0;tem<nu;tem++)
  93   1                      disstr[tem]=' ';
  94   1              if(bdate)
  95   1              {
  96   2                      disstr[2]='.';
  97   2                      disstr[5]='.';
  98   2              }
  99   1              else
 100   1              {
 101   2                      disstr[2]=':';
 102   2                      disstr[5]=':';
 103   2              }
 104   1              disstr[tem]=0;
 105   1              tem=0;
 106   1              while(tem<nu)
 107   1              {
 108   2                      if(isdigit(key))
 109   2                      {
 110   3                              disstr[tem]=key;
 111   3                              myprintf(SAD1,TA_LEFT,x,y,disstr);
 112   3                              tem++;
 113   3                              if(tem==2||tem==5)
 114   3                                      tem++;
 115   3                      }
 116   2                      else
 117   2                      {
C51 COMPILER V8.02   MAIN                                                                  09/21/2008 12:29:52 PAGE 3   

 118   3                              switch(key)
 119   3                              {
 120   4                              case ENTER:
 121   4                                      keystaut=0;
 122   4                                      rectangle(SAD2,x-1,y,x+nu*8,y+16,0);
 123   4                                      return(1);
 124   4                              default:
 125   4                                      break;
 126   4                              }
 127   3                      }
 128   2                      if(tem<nu)
 129   2                              OSSemPend(KeySem,0,&lcnerr);
 130   2              }
 131   1              rectangle(SAD2,x-1,y,x+nu*8,y+16,0);
 132   1              keystaut=0;
 133   1              return(1);
 134   1      }
 135          unsigned char getstrnumber(unsigned int x,unsigned char y,unsigned char nu) reentrant
 136          {
 137   1              unsigned char tem;
 138   1              keystaut=0;
 139   1              linex(SAD1,y+16,x-1,x+nu*8);
 140   1              tem=0;
 141   1              OSSemPend(KeySem,0,&lcnerr);
 142   1              if(key==ESC||key==ENTER)
 143   1              {
 144   2                      rectangle(SAD1,x-1,y+15,x+nu*8,y+16,0);
 145   2                      return(0);
 146   2              }
 147   1              for(tem=0;tem<nu;tem++)
 148   1                      disstr[tem]=' ';
 149   1              disstr[tem]=0;
 150   1              tem=0;
 151   1              while(tem<nu)
 152   1              {
 153   2                      if(isdigit(key))
 154   2                      {
 155   3                              disstr[tem]=key;
 156   3                              myprintf(SAD1,TA_LEFT,x,y,disstr);
 157   3                              tem++;
 158   3                      }
 159   2                      else
 160   2                      {
 161   3                              switch(key)
 162   3                              {
 163   4                              case ENTER:
 164   4                                      keystaut=0;
 165   4                                      rectangle(SAD1,x-1,y,x+nu*8,y+16,0);
 166   4                                      myprintf(SAD1,TA_LEFT,x,y,disstr);
 167   4                                      return(1);
 168   4                              case ESC:
 169   4                                      if(tem>0)
 170   4                                              tem--;
 171   4                                      disstr[tem]=' ';
 172   4                                      myprintf(SAD1,TA_LEFT,x,y,disstr);
 173   4                                      disstr[tem]=0;
 174   4                                      break;
 175   4                              default:
 176   4                                      break;
 177   4                              }
 178   3                      }
 179   2                      if(tem<nu)
C51 COMPILER V8.02   MAIN                                                                  09/21/2008 12:29:52 PAGE 4   

 180   2                              OSSemPend(KeySem,0,&lcnerr);
 181   2              }
 182   1              keystaut=0;
 183   1              rectangle(SAD1,x-1,y,x+nu*8,y+16,0);
 184   1              myprintf(SAD1,TA_LEFT,x,y,disstr);
 185   1              return(1);
 186   1      }
 187          
 188          unsigned char getstr(unsigned int x,unsigned char y,unsigned char nu) reentrant
 189          {
 190   1              unsigned char tem;
 191   1              keystaut=0;
 192   1              rectangle(SAD2,x-1,y,x+nu*8+8,y+16,1);
 193   1              myprintf(SAD1,TA_LEFT,x+nu*8,y,"v");
 194   1              tem=0;
 195   1              OSSemPend(KeySem,0,&lcnerr);
 196   1              if(key==ESC||key==ENTER)
 197   1              {
 198   2                      myprintf(SAD1,TA_LEFT,x+nu*8,y," ");
 199   2                      rectangle(SAD2,x-1,y,x+nu*8+8,y+16,0);
 200   2                      return(0);
 201   2              }
 202   1              for(tem=0;tem<nu;tem++)
 203   1                      disstr[tem]=' ';
 204   1              disstr[tem]=0;
 205   1              tem=0;
 206   1              myprintf(SAD1,TA_LEFT,x+nu*8,y,"v");
 207   1              while(tem<nu)
 208   1              {
 209   2                      if(isprint(key))
 210   2                      {
 211   3                              disstr[tem]=key;
 212   3                              myprintf(SAD1,TA_LEFT,x,y,disstr);
 213   3                              tem++;
 214   3                      }
 215   2                      else
 216   2                      {
 217   3                              switch(key)
 218   3                              {
 219   4                              case ENTER:
 220   4                                      keystaut=0;
 221   4                                      rectangle(SAD2,x-1,y,x+nu*8+8,y+16,0);
 222   4                                      myprintf(SAD1,TA_LEFT,x+nu*8,y," ");
 223   4                                      return(1);
 224   4                              case LEFT:
 225   4                                      keystaut=24;
 226   4                                      myprintf(SAD1,TA_LEFT,x+nu*8,y,"<");
 227   4                                      break;
 228   4                              case UP:
 229   4                                      keystaut=48;
 230   4                                      myprintf(SAD1,TA_LEFT,x+nu*8,y,"^");
 231   4                                      break;
 232   4                              case RIGHT:
 233   4                                      keystaut=72;
 234   4                                      myprintf(SAD1,TA_LEFT,x+nu*8,y,">");
 235   4                                      break;
 236   4                              case DOWN:
 237   4                                      keystaut=0;
 238   4                                      myprintf(SAD1,TA_LEFT,x+nu*8,y,"v");
 239   4                                      break;
 240   4                              case ESC:
 241   4                                      if(tem>0)
C51 COMPILER V8.02   MAIN                                                                  09/21/2008 12:29:52 PAGE 5   

 242   4                                              tem--;
 243   4                                      disstr[tem]=' ';
 244   4                                      myprintf(SAD1,TA_LEFT,x,y,disstr);
 245   4                                      disstr[tem]=0;
 246   4                                      break;
 247   4                              default:
 248   4                                      break;
 249   4                              }
 250   3                      }
 251   2                      if(tem<nu)
 252   2                              OSSemPend(KeySem,0,&lcnerr);

⌨️ 快捷键说明

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