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

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

?? monitor.lst

?? 汽車行駛狀態記錄儀的系統設計
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.02b   MONITOR                                                              09/27/2005 23:33:35 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE MONITOR
OBJECT MODULE PLACED IN monitor.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE monitor.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /****************************************/
   2          /* Copyright (c) 2004, 通信工程學院     */
   3          /* All rights reserved.                 */                   
   4          /****************************************/
   5          
   6          #include <at898252.h>
   7          #include "vehicle.h"
   8          
   9          #define LIMIT 60
  10          #define uint unsigned int
  11          #define uchar unsigned char
  12          
  13          #define CSA P2_1
  14          #define CSB P2_0
  15          #define DI P2_6
  16          #define RW P2_5
  17          
  18          sbit uip_bit=ACC^7;//ds12c887 register a bit 7
  19          sbit busy_bit=ACC^7;//lcd state byte bit 7
  20          sbit run_bit=P3^3; 
  21          
  22          uchar timer0_flag=0;
  23          uchar int0_flag=0;
  24          uchar active_buffer=1;
  25          
  26          uint page_counter=0;
  27          uint buffer_counter=0;
  28          //uchar active_buffer=1;
  29          uchar circle=0;
  30          uchar time_counter=0;
  31          uchar year,month,day,hour,min,sec;
  32          unsigned long ttcy=0;
  33          
  34          //delay 100ms,should be adjusted for frequency and compile
  35          void dl_100ms(void)
  36          {
  37   1              unsigned char i,j;
  38   1              for (i=10;i>0;i--) for (j=0;j<250;j++) ; 
  39   1      }
  40          
  41          /*下面是對液晶屏gxm12864d操作的函數,其內置的控制器是hd61202,
  42            128x64點陣,漢字顯示,CSA,CSB用來進行左右顯示區的選擇。
  43            R/W,D/I兩個信號我沒有接在地址線上,而是用單獨的端口控制,
  44            數據訪問通過對外部數據區的0xffff訪問實現。E信號由地址譯碼產生
  45          */
  46          
  47          /*  發命令i到主窗口*/
  48          void lcd_mwc(uchar i)
  49          {
  50   1           CSA=1;
  51   1           CSB=0;
  52   1           RW=1;
  53   1           DI=0;
  54   1           do {ACC=LCD;} 
  55   1               while (busy_bit) ;//wait for lcd not busy
C51 COMPILER V7.02b   MONITOR                                                              09/27/2005 23:33:35 PAGE 2   

  56   1           RW=0;
  57   1           LCD=i;
  58   1      }
  59          
  60          /*  寫數據i到主窗口*/
  61          void lcd_mwd(uchar i)
  62          {
  63   1           CSA=1;
  64   1           CSB=0;
  65   1           RW=1;
  66   1           DI=0;
  67   1           do {ACC=LCD;} while (busy_bit);//wait for lcd not busy
  68   1           RW=0;
  69   1           DI=1;
  70   1           LCD=i;
  71   1      }
  72          
  73          /*   清屏                                */
  74          void lcd_clear(void)
  75          {
  76   1           uchar i;
  77   1           uchar page;
  78   1           for (page=0xb8;page<0xc0;page++)
  79   1               {
  80   2                   lcd_mwc(page);       /*設置顯示頁面*/
  81   2      
  82   2                   lcd_mwc(0x40);          /*設置列地址*/
  83   2       
  84   2                   for (i=0;i<64;i++)
  85   2                   {
  86   3         
  87   3                       lcd_mwd(0);
  88   3                   }
  89   2               }
  90   1      }
  91          
  92          //初始化lcd
  93          void lcd_init(void)
  94          {
  95   1              lcd_mwc(0xc0);
  96   1      
  97   1              lcd_mwc(0x3f);
  98   1      
  99   1      }
 100          
 101          //dispm_hz_up() display up half of a hanzi in left area
 102          void dispm_hz_up(uchar code * hz)
 103          {
 104   1              uchar i;
 105   1              for (i=0;i<16;i++) lcd_mwd(*(hz+i));
 106   1      }
 107          
 108          //dispm_hz_down() display down half of a hanzi in left area
 109          void dispm_hz_down(uchar code * hz)
 110          {
 111   1              uchar i;
 112   1              for (i=16;i<32;i++) lcd_mwd(*(hz+i));
 113   1      }
 114          
 115          void disp_num(uchar i)
 116          {
 117   1              uchar j;
C51 COMPILER V7.02b   MONITOR                                                              09/27/2005 23:33:35 PAGE 3   

 118   1              for (j=0;j<8;j++) lcd_mwd(ARAB[j+i*8]);
 119   1      }
 120          
 121          
 122          /*set mcu counter0 as 5s timer,clk is 500ms*/
 123          
 124          void set_5s_counter(void)
 125          {
 126   1              TMOD=0x16;//counter0 mode 2 
 127   1              TH0=-10;
 128   1              TL0=-10;
 129   1              IP=0x01;//int0 high,counter0 low
 130   1              IT0=1;
 131   1              EA=1;//enable interrupt
 132   1              ET0=1;
 133   1              EX0=1;
 134   1              TR0=1;
 135   1      }
 136          
 137          /*下面是對flash存儲卡at45d041的操作,數據接口為spi接口,
 138            卡共2048頁,每頁264字節
 139          */
 140          
 141          void write_spi(uchar dat)
 142          {
 143   1             SPDR = dat;
 144   1             while (!(SPSR & 0x80)) ;             // wait for data transfer to be completed
 145   1      }
 146          
 147          uchar df_busy(void)
 148          {
 149   1          P1 &= ~DF_CHIP_SELECT;               // enable DataFlash
 150   1          
 151   1         write_spi(STAT_REG_READ);
 152   1         write_spi(0x00);                       // don't cares
 153   1         
 154   1         P1 |= DF_CHIP_SELECT;                // disable DataFlash 
 155   1         return SPDR;
 156   1      }
 157          
 158          //write_to_flash write data to buffer,if buffer is full write buffer to memory page
 159          void write_to_flash(uchar flash_data)
 160          { 
 161   1          //  checking if flash is busy
 162   1          while (!(df_busy()&0x80)) ;
 163   1          P1 &= ~DF_CHIP_SELECT;               // enable DataFlash
 164   1           
 165   1          if (active_buffer==1) write_spi(BUFFER_1_WRITE);
 166   1          else write_spi(BUFFER_2_WRITE);
 167   1          write_spi(0x00);                       // don't cares
 168   1          write_spi((uchar)(buffer_counter>>8)); // don't cares plus first bit of buffer address
 169   1          write_spi((uchar)buffer_counter);      // buffer address 
 170   1          write_spi(flash_data);                   // write data into SPI Data Register
 171   1              
 172   1          P1 |= DF_CHIP_SELECT;                // disable DataFlash 
 173   1          
 174   1          buffer_counter++; 
 175   1              
 176   1          if (buffer_counter > 263)               // if buffer full write buffer into memory page
 177   1          {
 178   2              buffer_counter = 0;
 179   2              if (page_counter < 2047)            // if memory is not full   
C51 COMPILER V7.02b   MONITOR                                                              09/27/2005 23:33:35 PAGE 4   

 180   2              { 
 181   3                  P1 &= ~DF_CHIP_SELECT;       // enable DataFlash
 182   3      
 183   3                  if (active_buffer==1) write_spi(B1_TO_MM_PAGE_PROG_WITHOUT_ERASE);// write data from buffer1 t
             -o page 
 184   3                  else write_spi(B2_TO_MM_PAGE_PROG_WITHOUT_ERASE);//write data from buffer2 to page
 185   3                  write_spi((uchar)(page_counter>>7));
 186   3                  write_spi((uchar)(page_counter<<1));
 187   3                  write_spi(0x00);                    // don't cares
 188   3              
 189   3                  P1 |= DF_CHIP_SELECT;        // disable DataFlash
 190   3                  page_counter++;              //page_counter 指向下一可用頁
 191   3              }
 192   2              if (active_buffer==1) active_buffer=0;
 193   2              else active_buffer=1;
 194   2          }  
 195   1      }
 196          
 197          uchar cardin(void)
 198          {
 199   1              SPCR=0x5d;//interrupt disabled,spi enabled,master,msb first,spi mode 3,Fosc/16
 200   1              
 201   1              P1 &= ~DF_CHIP_SELECT;               // enable DataFlash
 202   1              
 203   1              write_spi(MAIN_MEMORY_PAGE_READ) ;
 204   1              write_spi(0x00) ;
 205   1              write_spi(0x00) ;
 206   1              write_spi(0x00) ;
 207   1              write_spi(0x00) ;
 208   1              write_spi(0x00) ;
 209   1              write_spi(0x00) ;
 210   1              write_spi(0x00) ;
 211   1              write_spi(0xff) ;//write dummy value to start register shift
 212   1              
 213   1              P1 |= DF_CHIP_SELECT ;//disable flash card
 214   1              return SPDR;
 215   1      }
 216          
 217          /*下面是對日歷時鐘芯片ds12c887的部分操作,芯片初始化的操作在settime.c中實現*/
 218          
 219          //getlstpage()從DS12C887中讀取最近可用頁地址
 220          uint getcurpage(void)
 221          {
 222   1              uchar i=0;
 223   1              uint j=0;
 224   1              i=TIME_LSTPGH;
 225   1              j=i+j;//maybe wrong
 226   1              i=TIME_LSTPGL;
 227   1              j=j<<8;
 228   1              j=j+i;
 229   1              return j;
 230   1      }
 231          
 232          //getfrnpg()從DS12C887中讀取最近可用的存放終止頁地址的頁地址
 233          uint getfrnpg(void)
 234          {
 235   1              uchar i=0;
 236   1              uint j=0;
 237   1              i=TIME_FRNPGH;
 238   1              j+=i;
 239   1              i=TIME_FRNPGL;
 240   1              j=j<<8;
C51 COMPILER V7.02b   MONITOR                                                              09/27/2005 23:33:35 PAGE 5   

 241   1              j+=i;
 242   1              return j;
 243   1      }
 244          
 245          //storetime() read time from ds12887 then store in flash card
 246          void storetime(void)
 247          {
 248   1      //      uchar year,month,day,hour,min,sec;
 249   1              do {ACC=TIME_A;} while (uip_bit) ;//wait for UIP bit turn 0
 250   1              sec=TIME_SEC;
 251   1              min=TIME_MIN;
 252   1              hour=TIME_HOUR;
 253   1              day=TIME_DAY;
 254   1              month=TIME_MONTH;
 255   1              year=TIME_YEAR;
 256   1              write_to_flash(year);
 257   1              write_to_flash(month);
 258   1              write_to_flash(day);
 259   1              write_to_flash(hour);
 260   1              write_to_flash(min);
 261   1              write_to_flash(sec);
 262   1      }
 263          
 264          /*下面是鍵盤掃描和給鍵賦值的操作*/
 265          
 266          //keyscan() scan keyboard and return key code
 267          uchar keyscan(void)     
 268          {
 269   1              uchar sccode,recode;
 270   1              P2=0x78;
 271   1              if ((P2&0x78)!=0x78)
 272   1              {
 273   2                      dl_100ms();
 274   2                      if ((P2&0x78)!=0x78)
 275   2                      {
 276   3                              sccode=0xfe;
 277   3                              while ((sccode&0x08)!=0)
 278   3                              {
 279   4                                      P2=sccode;
 280   4                                      if((P2&0x78)!=0x78)
 281   4                                      {
 282   5                                              recode=(P2&0x78)|0x87;
 283   5                                              return ((~sccode)+(~recode));
 284   5                                      }
 285   4                                      else sccode=(sccode<<1)|0x01;
 286   4                              }
 287   3                      }
 288   2              }
 289   1              return (0);
 290   1      }
 291          
 292          
 293          //getkey() translate key code to number ,return keyboard input number
 294          uint getkey(void)
 295          {
 296   1              uchar num1=0;
 297   1              uint num2=0;
 298   1              while (num1!=0x44)
 299   1              {
 300   2                      num1=keyscan();
 301   2                      switch(num1)
 302   2                      {
C51 COMPILER V7.02b   MONITOR                                                              09/27/2005 23:33:35 PAGE 6   

 303   3                              case 0x09:
 304   3                                      num1=0;
 305   3                                      num2=num2*10;
 306   3                                      disp_num(num1);
 307   3                                      break;
 308   3                              case 0x11:
 309   3                                      num1=1;
 310   3                                      num2=num2*10+num1;
 311   3                                      disp_num(num1);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合视频在线观看| 91美女在线看| 日韩福利视频网| 一区二区三区国产精品| 一区二区三国产精华液| 亚洲国产日韩在线一区模特| 亚洲高清视频中文字幕| 亚洲国产aⅴ成人精品无吗| 亚洲午夜免费福利视频| 午夜精品国产更新| 狠狠色综合播放一区二区| 精品伊人久久久久7777人| 国产呦精品一区二区三区网站| 国产专区欧美精品| 成人国产精品免费观看视频| av一区二区三区四区| 欧美少妇xxx| 精品国产髙清在线看国产毛片| 国产欧美一区二区在线观看| 国产精品久久久久久久久果冻传媒| 最近日韩中文字幕| 亚洲成a人v欧美综合天堂| 久久电影网电视剧免费观看| 不卡的看片网站| 欧美一区二区三区在线看| 国产调教视频一区| 亚洲国产精品视频| 国产另类ts人妖一区二区| 91论坛在线播放| 精品国产乱码久久久久久久久| 自拍偷在线精品自拍偷无码专区| 丝袜国产日韩另类美女| 国产成人免费视频网站高清观看视频| 粉嫩在线一区二区三区视频| 日韩国产欧美视频| 麻豆极品一区二区三区| 成人黄色a**站在线观看| 欧美性猛交xxxx乱大交退制版| 欧美大片在线观看一区| 亚洲精品菠萝久久久久久久| 精品综合免费视频观看| av网站免费线看精品| 日韩欧美自拍偷拍| 一区二区三区日韩在线观看| 国产激情91久久精品导航| 欧美久久婷婷综合色| 国产精品理论片| 国产在线视视频有精品| 欧美精选在线播放| 亚洲精品v日韩精品| 日韩精品五月天| 国产综合一区二区| 欧美日韩国产综合视频在线观看| 久久精品综合网| 狠狠狠色丁香婷婷综合激情| 欧美日韩一区小说| 亚洲乱码日产精品bd| 国产福利91精品一区| 欧美成人在线直播| 日韩不卡免费视频| 欧美性猛交xxxx黑人交| 国产精品网站在线播放| 国产成人av电影在线观看| 精品国产区一区| 麻豆国产精品一区二区三区| 91精品国产麻豆国产自产在线| 亚洲精品你懂的| 色国产精品一区在线观看| 成人免费在线观看入口| 99久久免费视频.com| 亚洲欧洲精品一区二区精品久久久| 国产成人在线影院 | 亚洲欧洲av在线| 国产91对白在线观看九色| 久久久久国产精品麻豆ai换脸 | 欧美日韩黄色一区二区| 亚洲精品视频在线观看免费| 91麻豆自制传媒国产之光| 国产精品三级在线观看| 99国产精品99久久久久久| 一色屋精品亚洲香蕉网站| www.激情成人| 亚洲激情自拍视频| 欧美日韩国产一级二级| 奇米一区二区三区av| 久久影院视频免费| 亚洲欧洲日产国码二区| 欧美日韩国产另类不卡| 亚洲香蕉伊在人在线观| 欧美午夜不卡在线观看免费| 天天操天天干天天综合网| 日韩一区二区三区免费看| 国产精品538一区二区在线| 国产精品―色哟哟| 欧美亚州韩日在线看免费版国语版| 午夜精品久久久久久久久久久| 欧美mv和日韩mv国产网站| 风间由美性色一区二区三区| 精品日韩一区二区三区免费视频| 久久69国产一区二区蜜臀| 久久精品一区四区| 91久久精品一区二区三区| 午夜成人免费电影| 亚洲国产精品成人综合色在线婷婷 | 在线一区二区视频| 蜜桃视频免费观看一区| 中文字幕亚洲不卡| 在线电影一区二区三区| 国产激情一区二区三区| 午夜免费欧美电影| 国产偷国产偷亚洲高清人白洁 | 欧美视频日韩视频在线观看| 久久精品国产久精国产爱| 亚洲啪啪综合av一区二区三区| 制服丝袜激情欧洲亚洲| 不卡一区中文字幕| 久久精品72免费观看| 亚洲麻豆国产自偷在线| xnxx国产精品| 538prom精品视频线放| 91丨porny丨户外露出| 伦理电影国产精品| 亚洲一区二区三区四区五区中文| 久久蜜桃av一区二区天堂 | 国产精品蜜臀在线观看| 日韩视频在线一区二区| 欧美视频在线一区| jiyouzz国产精品久久| 国内精品伊人久久久久av一坑| 亚洲午夜私人影院| 亚洲男同性恋视频| 中文字幕欧美国产| 精品免费国产二区三区| 欧美电影一区二区三区| 欧美影院一区二区三区| 97精品电影院| 成人免费视频caoporn| 精品中文字幕一区二区| 免费人成在线不卡| 亚洲成av人片www| 亚洲国产精品久久艾草纯爱| 中文字幕一区二区三区色视频 | 色乱码一区二区三区88| 成人理论电影网| www.亚洲人| 不卡av在线网| 97国产一区二区| 91视频观看视频| 99久久精品国产观看| 成人精品亚洲人成在线| 成人av免费在线观看| 9l国产精品久久久久麻豆| 成人97人人超碰人人99| www.日韩精品| 91理论电影在线观看| 在线免费不卡视频| 欧美日韩五月天| 欧美日韩成人综合| 日韩一区二区在线看| 日韩免费视频一区| 国产午夜精品美女毛片视频| 欧美经典一区二区| 亚洲精品免费看| 亚洲一区二区三区四区在线观看| 亚洲一区二区三区四区在线| 奇米四色…亚洲| 国产麻豆视频一区二区| 成人h精品动漫一区二区三区| 91在线视频在线| 欧美三级乱人伦电影| 欧美www视频| 国产精品天干天干在线综合| 亚洲在线观看免费视频| 日本va欧美va精品发布| 成人中文字幕合集| 欧洲一区在线电影| 日韩女优av电影| 亚洲视频1区2区| 日韩福利电影在线| 成人黄色777网| 欧美精品在线一区二区三区| 精品久久国产97色综合| 一区在线播放视频| 日本欧美在线观看| 国产suv一区二区三区88区| 欧美性一级生活| 久久久久亚洲蜜桃| 亚洲图片欧美色图| 国产精品一区在线| 欧美精品99久久久**| 国产欧美综合色| 日本aⅴ精品一区二区三区 | 国产精品一区三区| 欧美美女bb生活片| 久久精品一区蜜桃臀影院| 偷拍日韩校园综合在线| 91影院在线免费观看| 日韩午夜电影在线观看| 亚洲国产精品精华液网站| 高潮精品一区videoshd|