亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcd.lst

?? 這是廣西大學生設計大賽的源碼
?? LST
字號:
C51 COMPILER V8.02   LCD                                                                   04/26/2008 21:37:30 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: D:\Keil1\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include "lcd.h"
   3          #include <REGX51.H>
   4          
   5           
   6          
   7          
   8          #define LCD_E   P3_5
   9          #define LCD_RS   P3_7
  10          #define LCD_RW   P3_6
  11          #define LCD_DBX   P1
  12          
  13           
  14          
  15          
  16          ////////////////////////////////////////////////////////////////////////////
  17          //
  18          //       物理接口層
  19          
  20          
  21          void lcdSetBus(BIT rs, BYTE dbx)
  22          {
  23   1       LCD_E   = 1;
  24   1      
  25   1       LCD_RS  = rs;
  26   1       LCD_RW  = 0;
  27   1       LCD_DBX = dbx;
  28   1      
  29   1       LCD_E   = 0;
  30   1      }
  31          
  32          /*
  33          BYTE lcdGetBus(BIT rs)
  34          {
  35           LCD_E   = 1;
  36          
  37           LCD_RS  = rs;
  38           LCD_RW  = 1;
  39          
  40           LCD_E   = 0;
  41           LCD_E   = 0;
  42          
  43           LCD_DBX = 0xff;
  44           return LCD_DBX;
  45          }
  46          */
  47          
  48           
  49          
  50          ////////////////////////////////////////////////////////////////////////////
  51          //
  52          //       邏輯控制層
  53            
  54          /*
  55          BYTE lcdReadBusyFlagAddress(void)
C51 COMPILER V8.02   LCD                                                                   04/26/2008 21:37:30 PAGE 2   

  56          {
  57           return lcdGetBus(0);
  58          }
  59          */
  60          
  61          void lcdClearDisplay(void)
  62          {
  63   1      // while ( lcdReadBusyFlagAddress() & 0x80 );
  64   1       DelayX1ms(2);
  65   1       lcdSetBus(0,0x01);
  66   1       DelayX1ms(2);
  67   1      }
  68          
  69          /*
  70          void lcdReturnHome(void)
  71          {
  72          // while ( lcdReadBusyFlagAddress() & 0x80 );
  73          
  74           lcdSetBus(0,0x02);
  75          }
  76          */
  77          
  78          void lcdEntryModeSet(BIT id, BIT s)
  79          {
  80   1      // while ( lcdReadBusyFlagAddress() & 0x80 );
  81   1      
  82   1       lcdSetBus(0, 0x04|(id?0x02:0)|(s?0x01:0) );
  83   1       DelayX1ms(1);
  84   1      }
  85          
  86          void lcdDisplayOnOffControl(BIT d, BIT c, BIT b)
  87          {
  88   1      // while ( lcdReadBusyFlagAddress() & 0x80 );
  89   1      
  90   1       lcdSetBus(0,0x08|(d?0x04:0)|(c?0x02:0)|(b?0x01:0));
  91   1       DelayX1ms(1);
  92   1      }
  93          
  94          /*
  95          void lcdCursorDisplayShift(BIT sc, BIT rl)
  96          {
  97          // while ( lcdReadBusyFlagAddress() & 0x80 );
  98          
  99           lcdSetBus(0,0x10|(sc?0x08:0)|(rl?0x04:0));
 100          }
 101          */
 102          
 103          void lcdFunctionSet(BIT dl, BIT n, BIT f)
 104          {
 105   1      // while ( lcdReadBusyFlagAddress() & 0x80 );
 106   1      
 107   1       lcdSetBus(0,0x20|(dl?0x10:0)|(n?0x08:0)|(f?0x04:0));
 108   1       DelayX1ms(1);
 109   1      }
 110          
 111          /*
 112          void lcdSetCGRAMAddress(BYTE acg)
 113          {
 114          // while ( lcdReadBusyFlagAddress() & 0x80 );
 115          
 116           lcdSetBus(0,0x40|(acg&0x3f));
 117          }
C51 COMPILER V8.02   LCD                                                                   04/26/2008 21:37:30 PAGE 3   

 118          */
 119          
 120          void lcdSetDDRAMAddress(BYTE add)
 121          {
 122   1      // while ( lcdReadBusyFlagAddress() & 0x80 );
 123   1       lcdSetBus(0,0x80|(add&0x7f));
 124   1       DelayX1ms(1);
 125   1      }
 126          
 127          
 128          void lcdWriteDataToCGDDRAM(BYTE bData)
 129          {
 130   1      // while ( lcdReadBusyFlagAddress() & 0x80 );
 131   1       lcdSetBus(1,bData);
 132   1       DelayX1ms(1);
 133   1      }
 134          
 135          /*
 136          BYTE lcdReadDataFromCGDDRAM(void)
 137          {
 138          // while ( lcdReadBusyFlagAddress() & 0x80 );
 139          
 140           return lcdGetBus(1);
 141          }
 142          */
 143          
 144          
 145          ////////////////////////////////////////////////////////////////////////////
 146          //
 147          //       應用接口層
 148          
 149          
 150          void lcdInit(void)
 151          {
 152   1       /////////////////////////
 153   1       // 軟復位
 154   1      
 155   1       DelayX1ms(50);
 156   1      
 157   1       lcdSetBus(0,0x30);  DelayX1ms(5);
 158   1       lcdSetBus(0,0x30);  DelayX1ms(1);
 159   1       lcdSetBus(0,0x30);  DelayX1ms(1);
 160   1       
 161   1       lcdFunctionSet(1,1,0);   //(BIT dl, BIT n, BIT f)   set n(lines) & f(font)
 162   1       lcdDisplayOnOffControl(1,0,0); //(BIT  d, BIT c, BIT b)
 163   1       lcdClearDisplay();
 164   1       lcdEntryModeSet(1,0);   //(BIT id, BIT s)
 165   1      
 166   1      
 167   1       /////////////////////////
 168   1       // 初始化
 169   1      
 170   1       DelayX1ms(10);
 171   1      }
 172          
 173          
 174          void lcdTextAddOut(char* pStr)
 175          {
 176   1       BYTE i = 0;
 177   1       while (pStr[i])
 178   1       {
 179   2        lcdWriteDataToCGDDRAM( pStr[i] );
C51 COMPILER V8.02   LCD                                                                   04/26/2008 21:37:30 PAGE 4   

 180   2        i++;
 181   2        if (i>200) break;
 182   2       }
 183   1      }
 184          
 185          
 186          void lcdTextOut(BYTE x, BYTE y, char* pStr)
 187          {
 188   1       BYTE i;
 189   1      
 190   1       if (y & 0x01) x+=0x40;
 191   1       if (y & 0x02) x+=20;
 192   1       lcdSetDDRAMAddress( x );
 193   1      
 194   1       i = 0;
 195   1       while (pStr[i])
 196   1       {
 197   2        lcdWriteDataToCGDDRAM( pStr[i] );
 198   2        i++;
 199   2        if (i>200) break;
 200   2       }
 201   1      }
 202          
 203          
 204          void lcdHexOut(BYTE byte)
 205          {
 206   1       BYTE h;
 207   1      
 208   1       h = (byte>>4)&0x0f;
 209   1       if (h < 0x0a) h += '0';
 210   1       else h += ('A' - 0x0a);
 211   1       lcdWriteDataToCGDDRAM( h );
 212   1      
 213   1       h = byte&0x0f;
 214   1       if (h < 0x0a) h += '0';
 215   1       else h += ('A' - 0x0a);
 216   1       lcdWriteDataToCGDDRAM( h );
 217   1      }
 218          
 219          
 220          void lcdUIntOut(BYTE byte, BYTE width)
 221          {
 222   1       while (width)
 223   1       {
 224   2        switch (width)
 225   2        {
 226   3        case 1:   // x1
 227   3         lcdWriteDataToCGDDRAM( '0'+  (byte % 10) );
 228   3         break;
 229   3        case 2:   // x10
 230   3         lcdWriteDataToCGDDRAM( '0'+  ((byte/10) % 10) );
 231   3         break;
 232   3        case 3:   // x100
 233   3         lcdWriteDataToCGDDRAM( '0'+  ((byte/100) % 10) );
 234   3         break;
 235   3        default:;
 236   3        }
 237   2        width--;
 238   2       }
 239   1      }
 240          
 241          
C51 COMPILER V8.02   LCD                                                                   04/26/2008 21:37:30 PAGE 5   

 242          void lcdDateOut(DATETIME * pDtt)
 243          {
 244   1       //year
 245   1       lcdTextAddOut("20");
 246   1       lcdUIntOut(pDtt->yy,2);
 247   1       lcdTextAddOut("-");
 248   1      
 249   1       //month
 250   1       lcdUIntOut(pDtt->mo,2);
 251   1       lcdTextAddOut("-");
 252   1      
 253   1       //day
 254   1       lcdUIntOut(pDtt->dd,2);
 255   1      }
 256          
 257          
 258          void lcdTimeOut(DATETIME * pDtt)
 259          {
 260   1       //year
 261   1       lcdUIntOut(pDtt->hh,2);
 262   1       lcdTextAddOut(":");
 263   1      
 264   1       //month
 265   1       lcdUIntOut(pDtt->mi,2);
 266   1       lcdTextAddOut(":");
 267   1      
 268   1       //day
 269   1       lcdUIntOut(pDtt->ss,2);
 270   1      }
 271          
 272          
 273          void lcdTempeOut(TEMPE* pT, BIT bConvertToF)
 274          //-mmm.nn
 275          {
 276   1       BYTE m,n;
 277   1       TEMPE tempe;
 278   1             // 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
 279   1       const BYTE code div[] = {  00,  06,  13,  19,  25,  31,  38,  44,  50,  56,  63,  69,  75,  81,  88,  94,
             - };
 280   1      // const BYTE -div[]     = {  94, 88,  81,  75,  69, 63,  56,  50,  44, 38,  31,  25,  19, 16,  06,  00, }
             -; //正的倒序
 281   1      
 282   1       tempe = *pT;
 283   1       if (bConvertToF) ConvertCtoF(pT);
 284   1      
 285   1      
 286   1       m = ((pT->th << 4) & 0xf0) | ((pT->tl >> 4) & 0x0f);
 287   1      
 288   1       if (pT->th & 0x80)
 289   1       {
 290   2        lcdTextAddOut("-");
 291   2        m = ~m;
 292   2        n = div[(16 - pT->tl) & 0x0f];
 293   2       }
 294   1       else
 295   1       {
 296   2        lcdTextAddOut("+");
 297   2        n = div[pT->tl & 0x0f];
 298   2       }
 299   1      
 300   1       lcdUIntOut( m / 100, 1 );
 301   1       m%=100;
C51 COMPILER V8.02   LCD                                                                   04/26/2008 21:37:30 PAGE 6   

 302   1       lcdUIntOut( m / 10, 1 );
 303   1       m%=10;
 304   1       lcdUIntOut( m, 1 );
 305   1      
 306   1       lcdTextAddOut( "." );
 307   1      
 308   1       lcdUIntOut( n / 10, 1 );
 309   1       lcdUIntOut( n % 10, 1 );
 310   1      
 311   1       lcdTextAddOut( bConvertToF ? "F" : "C" );
 312   1      
 313   1       *pT = tempe;
 314   1      }
 315          
 316           
 317          
 318           
 319          
 320           
 321          
 322           
 323          
 324           
 325          
 326          // keyboard.c
 327          #include "keyboard.h"
 328          #include <REGX51.H>
 329          #include "lcd.h"
 330          
 331           
 332          
 333          #define KBD P0
 334          
 335           
 336          
 337          BYTE kbdReadPort(void)
 338          {
 339   1       BYTE in,out;
 340   1       out = 0;
 341   1      
 342   1       KBD = 0x0f;
 343   1       in = KBD;
 344   1       while (in & 0x08)
 345   1       {
 346   2        in<<=1;
 347   2        out++;
 348   2        if (out>=4) return 0xff;
 349   2       }
 350   1      
 351   1       KBD = 0xf0;
 352   1       in = KBD;
 353   1       while (in & 0x80)
 354   1       {
 355   2        in<<=1;
 356   2        out+=4;
 357   2        if (out>=16) return 0xff;
 358   2       }
 359   1      
 360   1      //  lcdTextOut(15,3,""); lcdHexOut(out);  // for debug only
 361   1       return out;
 362   1      }
 363          
C51 COMPILER V8.02   LCD                                                                   04/26/2008 21:37:30 PAGE 7   

 364          
 365          BYTE kbdGetKeyPress(void)
 366          {
 367   1       static BYTE lastStatus = 0xff;
 368   1       BYTE now,rt;
 369   1      
 370   1       rt = 0xff;
 371   1      
 372   1       now = kbdReadPort();
 373   1       if (now < 16)
 374   1       {
 375   2        if (lastStatus >= 16)
 376   2        {
 377   3         //key down
 378   3         rt = now;
 379   3         DelayX1ms(50);
 380   3        }
 381   2       }
 382   1       else
 383   1       {
 384   2        if (lastStatus < 16)
 385   2        {
 386   3         //key up
 387   3         DelayX1ms(50);
 388   3        }
 389   2       }
 390   1      
 391   1       lastStatus = now;
 392   1       return rt;
 393   1      }
 394          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    953    ----
   CONSTANT SIZE    =     31    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1      27
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----      10
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美自拍偷拍| 成人av集中营| 亚洲国产精品影院| 一区二区三区精品在线| 亚洲日本青草视频在线怡红院| 久久亚洲影视婷婷| 久久免费的精品国产v∧| 26uuu亚洲综合色欧美| 久久综合一区二区| 亚洲国产高清在线| 中文在线一区二区| 亚洲日本在线视频观看| 一区二区三区91| 奇米在线7777在线精品 | 国产精品88av| 97精品久久久午夜一区二区三区| 91福利在线导航| 91精品婷婷国产综合久久性色| 日韩欧美精品在线视频| 国产肉丝袜一区二区| 国产精品国产精品国产专区不蜜 | 欧美日韩大陆一区二区| 日韩一区二区视频| 中文字幕精品—区二区四季| 伊人性伊人情综合网| 美女视频黄频大全不卡视频在线播放| 国产一区二区剧情av在线| 国产电影精品久久禁18| 日本丶国产丶欧美色综合| 日韩一区二区三区四区| 中文字幕中文字幕一区二区| 日韩中文字幕区一区有砖一区| 极品少妇xxxx精品少妇| 91香蕉视频mp4| 日韩精品一区二区三区swag| 国产精品久久久久久亚洲毛片| 视频在线观看一区二区三区| 成人综合婷婷国产精品久久蜜臀 | 国产精品福利电影一区二区三区四区| 亚洲一区二区成人在线观看| 国产高清无密码一区二区三区| 在线亚洲精品福利网址导航| 久久综合成人精品亚洲另类欧美 | 欧洲亚洲精品在线| 精品99久久久久久| 亚洲免费大片在线观看| 韩国一区二区视频| 欧美日韩精品一区视频| 国产精品国产精品国产专区不片 | 一区二区高清视频在线观看| 国产精品影音先锋| 欧美一级国产精品| 亚洲电影视频在线| 色偷偷88欧美精品久久久| 国产日韩亚洲欧美综合| 久久精品国产**网站演员| 欧美日韩一区二区不卡| 亚洲区小说区图片区qvod| 高清久久久久久| 精品国产不卡一区二区三区| 青娱乐精品视频| 3d成人h动漫网站入口| 亚洲第一狼人社区| 欧美三级在线视频| 亚洲一二三四在线| 丁香一区二区三区| 久久久国产综合精品女国产盗摄| 奇米色一区二区三区四区| 欧美三级视频在线观看| 亚洲在线成人精品| 欧美在线观看一区| 亚洲成人av资源| 欧美精品免费视频| 五月天欧美精品| 日韩一级二级三级| 日韩高清不卡一区二区| 日韩视频在线你懂得| 美腿丝袜一区二区三区| 欧美一区二视频| 久久99国产精品麻豆| 久久青草欧美一区二区三区| 国产91丝袜在线18| 亚洲欧洲美洲综合色网| 色综合欧美在线视频区| 亚洲一区在线观看视频| 欧美一区二区三区成人| 国产一区二区精品久久99| 亚洲国产高清aⅴ视频| gogo大胆日本视频一区| 亚洲自拍都市欧美小说| 久久精品在线观看| 天堂蜜桃一区二区三区| 在线电影院国产精品| 欧美在线观看一区二区| 亚洲高清视频中文字幕| 国产在线观看一区二区| 国产精品美女久久久久久久网站| 成人av网站在线| 亚洲一区二区高清| 精品人在线二区三区| 床上的激情91.| 亚洲福利一区二区三区| 精品av久久707| 色猫猫国产区一区二在线视频| 午夜亚洲福利老司机| 久久亚区不卡日本| 色激情天天射综合网| 久久99精品国产麻豆婷婷| 国产精品伦一区二区三级视频| 欧美色精品在线视频| 精品亚洲成av人在线观看| 一区二区三区欧美日韩| 日韩久久免费av| 99免费精品在线| 美女视频黄免费的久久| 国产精品久久久久久久久免费桃花| 欧美日韩二区三区| 波多野结衣中文一区| 麻豆精品久久久| 亚洲国产日韩在线一区模特| 国产精品亲子乱子伦xxxx裸| 日韩一区二区三区高清免费看看| 99精品在线观看视频| 极品少妇xxxx精品少妇| 天堂成人免费av电影一区| 中文字幕一区二区三区精华液 | 中文字幕第一区综合| 欧美二区在线观看| 色久综合一二码| 国产999精品久久久久久 | 精品少妇一区二区三区在线播放| 国产精品18久久久久久久久久久久| 图片区小说区国产精品视频| 中文字幕视频一区二区三区久| 欧美刺激脚交jootjob| 91麻豆福利精品推荐| 懂色av一区二区三区蜜臀| 激情都市一区二区| 麻豆久久久久久| 丝瓜av网站精品一区二区| 最新不卡av在线| 国产精品久线在线观看| 欧美精彩视频一区二区三区| 国产亚洲一区二区三区| 正在播放亚洲一区| 91精品国产综合久久久久久久久久 | 99亚偷拍自图区亚洲| 精品一区在线看| 亚洲国产精品久久人人爱| 日韩伦理电影网| 中文字幕一区二区在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 中文在线免费一区三区高中清不卡| 精品免费国产一区二区三区四区| 欧美高清hd18日本| 欧美另类高清zo欧美| 欧美久久久久久蜜桃| 日韩一区二区免费高清| 91.com在线观看| 日韩免费观看高清完整版在线观看| 777欧美精品| 日韩色视频在线观看| 日韩免费观看2025年上映的电影| 精品久久一区二区三区| 久久久精品国产免费观看同学| 欧美国产精品一区二区| 国产精品久久久一本精品| 亚洲精品国产第一综合99久久| 亚洲一区二区不卡免费| 首页欧美精品中文字幕| 国产一区二区三区久久悠悠色av| 国产老女人精品毛片久久| 成人国产精品免费观看视频| 色av一区二区| 日韩免费高清av| 中文字幕高清一区| 亚洲精品欧美二区三区中文字幕| 亚洲成人av免费| 国产呦萝稀缺另类资源| 高清在线成人网| 欧美日韩一区在线| 久久精品水蜜桃av综合天堂| 最新国产精品久久精品| 天天操天天色综合| 成人教育av在线| 欧美欧美欧美欧美| 久久久精品国产免大香伊| 亚洲一区视频在线观看视频| 九色|91porny| 在线一区二区三区四区五区| 精品久久人人做人人爽| 国产精品国产三级国产a| 蜜臀久久久久久久| 91麻豆免费视频| 日韩免费高清av| 夜夜操天天操亚洲| 国产 欧美在线| 日韩精品一区二区三区视频| 亚洲三级视频在线观看| 激情小说欧美图片|