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

📄 finish.i

📁 能完成对小车的往返
💻 I
字号:
#line 1 "Finish.c" /0  #line 1 "HeadFile.h" /0   #line 1 "D:\KEIL\C51\INC\STDIO.H" /0                typedef unsigned int size_t;   #pragma SAVE #pragma REGPARMS extern char _getkey (void); extern char getchar (void); extern char ungetchar (char); extern char putchar (char); extern int printf   (const char *, ...); extern int sprintf  (char *, const char *, ...); extern int vprintf  (const char *, char *); extern int vsprintf (char *, const char *, char *); extern char *gets (char *, int n); extern int scanf (const char *, ...); extern int sscanf (char *, const char *, ...); extern int puts (const char *);  #pragma RESTORE   #line 2 "HeadFile.h" /0   #line 1 "D:\KEIL\C51\INC\REG52.H" /0       sfr P0    = 0x80; sfr P1    = 0x90; sfr P2    = 0xA0; sfr P3    = 0xB0; sfr PSW   = 0xD0; sfr ACC   = 0xE0; sfr B     = 0xF0; sfr SP    = 0x81; sfr DPL   = 0x82; sfr DPH   = 0x83; sfr PCON  = 0x87; sfr TCON  = 0x88; sfr TMOD  = 0x89; sfr TL0   = 0x8A; sfr TL1   = 0x8B; sfr TH0   = 0x8C; sfr TH1   = 0x8D; sfr IE    = 0xA8; sfr IP    = 0xB8; sfr SCON  = 0x98; sfr SBUF  = 0x99;   sfr T2CON  = 0xC8; sfr RCAP2L = 0xCA; sfr RCAP2H = 0xCB; sfr TL2    = 0xCC; sfr TH2    = 0xCD;     sbit CY    = PSW^7; sbit AC    = PSW^6; sbit F0    = PSW^5; sbit RS1   = PSW^4; sbit RS0   = PSW^3; sbit OV    = PSW^2; sbit P     = PSW^0;     sbit TF1   = TCON^7; sbit TR1   = TCON^6; sbit TF0   = TCON^5; sbit TR0   = TCON^4; sbit IE1   = TCON^3; sbit IT1   = TCON^2; sbit IE0   = TCON^1; sbit IT0   = TCON^0;   sbit EA    = IE^7; sbit ET2   = IE^5;   sbit ES    = IE^4; sbit ET1   = IE^3; sbit EX1   = IE^2; sbit ET0   = IE^1; sbit EX0   = IE^0;   sbit PT2   = IP^5; sbit PS    = IP^4; sbit PT1   = IP^3; sbit PX1   = IP^2; sbit PT0   = IP^1; sbit PX0   = IP^0;   sbit RD    = P3^7; sbit WR    = P3^6; sbit T1    = P3^5; sbit T0    = P3^4; sbit INT1  = P3^3; sbit INT0  = P3^2; sbit TXD   = P3^1; sbit RXD   = P3^0;   sbit SM0   = SCON^7; sbit SM1   = SCON^6; sbit SM2   = SCON^5; sbit REN   = SCON^4; sbit TB8   = SCON^3; sbit RB8   = SCON^2; sbit TI    = SCON^1; sbit RI    = SCON^0;   sbit T2EX  = P1^1;   sbit T2    = P1^0;     sbit TF2    = T2CON^7; sbit EXF2   = T2CON^6; sbit RCLK   = T2CON^5; sbit TCLK   = T2CON^4; sbit EXEN2  = T2CON^3; sbit TR2    = T2CON^2; sbit C_T2   = T2CON^1; sbit CP_RL2 = T2CON^0;  #line 3 "HeadFile.h" /0   #line 1 "D:\KEIL\C51\INC\ABSACC.H" /0                 #line 24 "D:\KEIL\C51\INC\ABSACC.H" /1         #line 29 "D:\KEIL\C51\INC\ABSACC.H" /0       #line 4 "HeadFile.h" /0   #line 1 "D:\KEIL\C51\INC\INTRINS.H" /0      extern void          _nop_     (void); extern bit           _testbit_ (bit); extern unsigned char _cror_    (unsigned char, unsigned char); extern unsigned int  _iror_    (unsigned int,  unsigned char); extern unsigned long _lror_    (unsigned long, unsigned char); extern unsigned char _crol_    (unsigned char, unsigned char); extern unsigned int  _irol_    (unsigned int,  unsigned char); extern unsigned long _lrol_    (unsigned long, unsigned char); extern unsigned char _chkfloat_(float);   #line 5 "HeadFile.h" /0         sbit p10 = P1^0;     sbit p11 = P1^1;     sbit p12 = P1^2;     sbit p13 = P1^3;     sbit p14 = P1^4;     sbit p15 = P1^5;     sbit p16 = P1^6;     sbit p17 = P1^7;       unsigned char xdata *HC574_0 = 0xa000;  unsigned char xdata *HC574_1 = 0xa400;  unsigned char xdata *HC574_2 = 0xa800;  unsigned char xdata *HC574_3 = 0xac00;  unsigned char xdata *HC574_4 = 0xb000;  unsigned char xdata *HC574_5 = 0xb400;  unsigned char xdata *HC574_6 = 0xb800;  unsigned char xdata *HC574_7 = 0xbc00;    unsigned char g_Time0FLAG;        unsigned char g_Time08sFLAG;        unsigned char g_Time010sFLAG;        unsigned char g_PulseCount;         unsigned int g_TirePulseCount;       unsigned char NumTab[10] = { 0xc0,  0xf9,  0xa4,  0xb0,  0x99,   0x92, 0x82,  0xf8,  0x80,  0x98};#line 1 "Finish.c" /0    void Delay(unsigned char time) { while (time--) { _nop_(); } }     void SomeNOP(unsigned int time) { while (time--) { _nop_(); } }     void Show(unsigned int number, unsigned char index) {  unsigned char *p_Address[8];     p_Address[0] = HC574_0;     p_Address[1] = HC574_1;     p_Address[2] = HC574_2;     p_Address[3] = HC574_3;     p_Address[4] = HC574_4;     p_Address[5] = HC574_5;     p_Address[6] = HC574_6;     p_Address[7] = HC574_7;     if (number == 0)   { *p_Address[index] = NumTab[0]; }   while (number > 0) { *p_Address[index] = NumTab[number%10];  index++;  if (index > 7) { index = 0;  *p_Address[index] = NumTab[number%10];  }   number /= 10; }   }     void InitialLED(void) {  unsigned char i;   unsigned char *p_Address[8];  p_Address[0] = HC574_0;  p_Address[1] = HC574_1;  p_Address[2] = HC574_2;  p_Address[3] = HC574_3;  p_Address[4] = HC574_4;  p_Address[5] = HC574_5;  p_Address[6] = HC574_6;  p_Address[7] = HC574_7;  for (i=0; i<8;i++) { *p_Address[i] = 0xff;    } }      unsigned char CheckStatus(void) { ET0 = 1;     if (g_PulseCount==4 | g_PulseCount == 10)    { g_Time08sFLAG = 0;  return 1; } else if (g_Time08sFLAG > 8)    { g_Time08sFLAG = 0;  return 1;    } else return 0; }    void FastForward(void) { p14 = 0;  p15 = 1; }    void FastReverse(void) { p14 = 1;  p15 = 0; }     void SlowForward(void) { p15 = 1;  while (1) { p14 = ~p14;  Delay(50);  if (CheckStatus())    { break; } } }    void SlowReverse(void) { p14 = 1;  while (1) { p15 = ~p15;  Delay(100);  if (CheckStatus())    { break; } } }   void Stop(void) { p14 = 1;  p15 = 1; }      unsigned char DetectPort0(void) {  unsigned char i;   unsigned char count = 0;     for (i=0; i<10; i++) { if (p10 == 0) { count++;  SomeNOP(200); } }  if (count>4) { return 1; } else return 0; }     unsigned char DetectPort1(void) {  unsigned char i;   unsigned char count = 0;     for (i=0; i<10; i++) { if (p11 == 0) { count++;  SomeNOP(70); } }  if (count>1) { return 1; } else return 0; }      void main(void) { InitialLED();     TMOD = 0X51;     ET0 = 1;         TR0 = 1;  ET1 = 1;         TR1 = 1;  TH1 = 0XFF;       TL1 = 0XFF;  TH0 = 0X3C;       TL0 = 0XB0;  EX0 = 1;         IT0 = 1;         EX1 = 1;       IT1 = 1;        PX1 = 1;        EA = 1;            while (g_PulseCount < 3)    { FastForward(); }  SlowForward();     while (g_PulseCount < 6)    { FastForward(); }  while (g_Time010sFLAG != 10)    { Stop(); }  while (g_PulseCount < 9)    { FastReverse(); }  SlowReverse();     while (g_PulseCount < 12) { FastReverse(); }  Stop();     ET0 = 0;   while (1) { ; } }    void Extern0Interrupt(void) interrupt 0 { EX0 = 0;  EA = 0;  if (DetectPort1())    { g_TirePulseCount++; }   EX0 = 1;  EA = 1;   }    void Time0Inerrupt(void) interrupt 1  { static unsigned char count;      unsigned char low_second;      unsigned char high_second;      unsigned char minute;     ET0 = 0;  EA = 0;	  count++;  if (count == 10) { *HC574_2 = 0XF6;    }  if (count == 20)     {	     count = 0;  low_second++;  if (g_PulseCount == 3 | g_PulseCount == 9)    { g_Time08sFLAG++; }  if (g_PulseCount == 4 | g_PulseCount == 10)    { g_Time08sFLAG = 0; }  if (g_PulseCount == 6)    { g_Time010sFLAG++; }  if (low_second == 10)    { low_second = 0;  high_second++;  if (high_second == 6)    { high_second = 0;  minute++;  if (minute == 10)    { minute = 0; }  }  }   Show(low_second, 0);     Show(high_second, 1);     Show(minute, 3);     *HC574_2 = 0XFF;     }   TH0 = 0x3c;    TL0 = 0xb0;     ET0 = 1;     EA = 1; }     void Extern1Interrupt(void) interrupt 2 { EX1 = 0;  EA = 0;  p12 = 0;     p13 = 1;  g_Time010sFLAG++;  Show(g_Time010sFLAG, 7);  SomeNOP(5000);  p12 = 1;  p13 = 1;  EX1 = 1;  EA = 1; }    void Time1Interrupt(void) interrupt 3 { ET1 = 0;  EA = 0;  if (DetectPort0())    { g_PulseCount++;    }    TH1 = 0XFF;     TL1 = 0XFF;     ET1 = 1;  EA = 1; }        

⌨️ 快捷键说明

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