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

📄 timer.i

📁 此源码为商用的电力抄表系统的从机端源程序。通过电力载波模块
💻 I
字号:
#line 1 "timer.c" /0         #line 1 "C:\KEIL\C51\INC\PHILIPS\REG922.H" /0       sfr P0   = 0x80; sfr P1   = 0x90; 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 IEN0 = 0xA8; sfr IP0  = 0xB8; sfr SCON = 0x98; sfr SBUF = 0x99;   sfr AUXR1  = 0xA2; sfr SADDR  = 0xA9; sfr SADEN  = 0xB9; sfr BRGR0  = 0xBE; sfr BRGR1  = 0xBF; sfr BRGCON = 0xBD; sfr CMP1   = 0xAC; sfr CMP2   = 0xAD; sfr DIVM   = 0x95; sfr FMADRH = 0xE7; sfr FMADRL = 0xE6; sfr FMCON  = 0xE4; sfr FMDATA = 0xE5; sfr I2ADR  = 0xDB; sfr I2CON  = 0xD8; sfr I2DAT  = 0xDA; sfr I2SCLH = 0xDD; sfr I2SCLL = 0xDC; sfr I2STAT = 0xD9; sfr IP1    = 0xF8; sfr IP1H   = 0xF7; sfr KBCON  = 0x94; sfr KBMASK = 0x86; sfr KBPATN = 0x93; sfr P0M1   = 0x84; sfr P0M2   = 0x85; sfr P1M1   = 0x91; sfr P1M2   = 0x92; sfr P3M1   = 0xB1; sfr P3M2   = 0xB2; sfr PCONA  = 0xB5; sfr PT0AD  = 0xF6; sfr RSTSRC = 0xDF; sfr RTCCON = 0xD1; sfr RTCH   = 0xD2; sfr RTCL   = 0xD3; sfr SSTAT  = 0xBA; sfr TAMOD  = 0x8F; sfr TRIM   = 0x96; sfr WDCON  = 0xA7; sfr WDL    = 0xC1; sfr WFEED1 = 0xC2; sfr WFEED2 = 0xC3; sfr IP0H   = 0xB7; sfr IEN1   = 0xE8;    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 F1   = PSW^1; 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   = IEN0^7; sbit EWDRT = IEN0^6; sbit EBO  = IEN0^5; sbit ES   = IEN0^4;   sbit ESR  = IEN0^4;  sbit ET1  = IEN0^3; sbit EX1  = IEN0^2; sbit ET0  = IEN0^1; sbit EX0  = IEN0^0;   sbit EC   = IEN1^2; sbit EKBI = IEN1^1; sbit EI2C = IEN1^0;   sbit PST  = IP0^6; sbit PC   = IP0^2; sbit PKBI = IP0^1; sbit Pi2c = IP0^0;   sbit PWDRT = IP0^6; sbit PBO  = IP0^5; sbit PS   = IP0^4;   sbit PSR  = IP0^4; sbit PT1  = IP0^3; sbit PX1  = IP0^2; sbit PT0  = IP0^1; sbit PX0  = IP0^0;    sbit SM0  = SCON^7;   sbit FE   = 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 I2EN  = I2CON^6; sbit STA   = I2CON^5; sbit STO   = I2CON^4; sbit SI    = I2CON^3; sbit AA    = I2CON^2; sbit CRSEL = I2CON^0;   sbit KB7 = P0^7;   sbit T1  = P0^7; sbit KB6 = P0^6;    sbit KB5 = P0^5; sbit KB4 = P0^4; sbit KB3 = P0^3; sbit KB2 = P0^2; sbit KB1 = P0^1; sbit KB0 = P0^0;      sbit RST     = P1^5; sbit INT1    = P1^4; sbit INT0    = P1^3;   sbit SDA     = P1^3; sbit T0      = P1^2;   sbit SCL     = P1^2; sbit RxD     = P1^1; sbit TxD     = P1^0;   sbit XTAL1= P3^1; sbit XTAL2= P3^0;   #line 8 "timer.c" /0    #line 1 "sart.h" /0    #line 1 "C:\KEIL\C51\INC\PHILIPS\REG922.H" /0   #line 11 "C:\KEIL\C51\INC\PHILIPS\REG922.H" /1                                                                                                                                                                             #line 183 "C:\KEIL\C51\INC\PHILIPS\REG922.H" /0 #line 8 "sart.h" /0       sbit      RX_RDY        = 0x96;							  sbit      TX_BUSY       = 0x87;							  sbit      RX_BUSY       = 0x94;							  sbit      D_RDY         = 0x83;							  sbit      D_SYNC        = 0x80;							  sbit      SCLK      	= 0x81;							  sbit      SDATA   	    = 0x82;							  sbit      Rxok          = 0x97;							  sbit      RST_PLC       = 0x86;							  sbit      TX_EN         = 0x92;							  sbit      SYNC_50Hz     = 0x93;							  sbit      K2            = P3^1;	 sbit      K1            = P3^0;						   void uart_init(); int uart_recved(); int uart_processed(); unsigned char uart_getchar();   int recv_amr_frame(void);  void uart_sendchar(char c); void uart_sendblock(char buf[], int len);    void sync_sendchar(char c); int sync_recved(); int sync_data_ready(); int sync_getchar(); int sync_getblock(char *buf, int len); #line 10 "timer.c" /0      unsigned char tm_count, count_reload;   unsigned char inter;  void (*t0_proc)();      unsigned int t0_count;  unsigned int t0_val; bit t0_enable;  void (*t1_proc)();      unsigned int t1_count;  unsigned int t1_val; bit t1_enable;  void (*t2_proc)();      unsigned int t2_count;  unsigned int t2_val; bit t2_enable;  void (*t3_proc)();      unsigned char t3_count;  unsigned char t3_val; bit t3_enable;  void (*t4_proc)();      unsigned int t4_count;  unsigned int t4_val; bit t4_enable;    void timer0_init(unsigned char interval, unsigned char count) {    TMOD = (TMOD & 0xF0) | 0x01;    TAMOD = 0x00;                TH0 = interval;     TL0 = 0;               inter=TH0;  EX1 = 1;	    IT1 = 1;	    ET0 = 1;                        TR0 = 1;                        EA = 1;                            count_reload = count; tm_count = count;  t0_enable = 0; t1_enable = 0; t2_enable = 0; t3_enable = 0; t4_enable = 0; }         void timer0_ISR (void) interrupt 1  { TH0   = inter;  		    TL0	 = 0;     if (t0_enable == 1) {    t0_count++; if (t0_count == t0_val) { t0_count = 0; t0_proc(); } }  if (tm_count-- == 0) {   tm_count = count_reload;      if (t1_enable == 1) {     t1_count++; if (t1_count == t1_val) { t1_count = 0; t1_proc();    } }  if (t2_enable == 1) {       t2_count++; if (t2_count == t2_val) { t2_count = 0; t2_proc(); } }   if (t3_enable == 1) {      t3_count++; if (t3_count == t3_val) { t3_count = 0; t3_proc(); } } if (t4_enable == 1) {      t4_count++; if (t4_count == t4_val) { t4_count = 0; t4_proc(); } }   }  }   void wdt_init() { ACC = WDCON;	     ACC = ACC| 0x74;    WDL = 0xff;	     WDCON = ACC;	     WFEED1 = 0xA5;	     WFEED2 = 0x5A;	      }   void clr_wdt() { EA     =  0;		   WFEED1 = 0xA5;		   WFEED2 = 0x5A;		    EA     =  1;		   }   void setup_t0(unsigned int t0, void (*proc)()) { t0_val = t0;      t0_proc = proc;   t0_count = 0; t0_enable = 1;  }    void disable_t0(void) { t0_enable = 0; }   void setup_t1(unsigned int t, void (*proc)()) { t1_val = t; t1_proc = proc; t1_count = 0; t1_enable = 1;  }  void disable_t1(void) { t1_enable = 0; Rxok   = 1; }    void setup_t2(unsigned int t, void (*proc)()) { t2_val = t; t2_proc = proc; t2_count = 0; t2_enable = 1;  }     void disable_t2(void) { t2_enable = 0; }  void setup_t3(unsigned int t, void (*proc)()) { t3_val = t; t3_proc = proc; t3_count = 0;  t3_enable = 1; }  void disable_t3(void) { t3_enable = 0; }  void setup_t4(unsigned int t, void (*proc)()) { t4_val = t; t4_proc = proc; t4_count = 1;  t4_enable = 1; }  void disable_t4(void) { t4_enable = 0;  }    

⌨️ 快捷键说明

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