📄 finish.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 + -