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

📄 doorc.lst

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
(0203) 			EEPROMwrite(0x200+i,0x01);
    0DD8 E021      LDI	R18,1
    0DD9 2F04      MOV	R16,R20
    0DDA 2711      CLR	R17
    0DDB 5000      SUBI	R16,0
    0DDC 4F1E      SBCI	R17,0xFE
    0DDD 940E48B2  CALL	_EEPROMwrite
    0DDF 9543      INC	R20
    0DE0 3140      CPI	R20,0x10
    0DE1 F3B0      BCS	0x0DD8
(0204) //			for(i=3;i<8;i++)
(0205) //			EEPROMwrite(0x100+i,0x01);
(0206) 			EEPROMwrite(EVEN_FLAG,0xaa);
    0DE2 EA2A      LDI	R18,0xAA
    0DE3 E003      LDI	R16,3
    0DE4 E010      LDI	R17,0
    0DE5 940E48B2  CALL	_EEPROMwrite
(0207) 	   }
(0208) 	   else ;
    0DE7 940E486E  CALL	pop_gset1
    0DE9 9508      RET
(0209) 	   
(0210) }
(0211) void timer1_init(void)
(0212) {
(0213)  	 TCCR1B = 0x00; //stop
_timer1_init:
    0DEA 2422      CLR	R2
    0DEB BC2E      OUT	0x2E,R2
(0214)  	 TCNT1H = 0xFD; //setup
    0DEC EF8D      LDI	R24,0xFD
    0DED BD8D      OUT	0x2D,R24
(0215)  	 TCNT1L = 0xE5;
    0DEE EE85      LDI	R24,0xE5
    0DEF BD8C      OUT	0x2C,R24
(0216)  	 TCCR1A = 0x00;
    0DF0 BC2F      OUT	0x2F,R2
(0217)  	 TCCR1B = 0x05; //start Timer
    0DF1 E085      LDI	R24,5
    0DF2 BD8E      OUT	0x2E,R24
    0DF3 9508      RET
(0218) }
(0219) void timer0_init(void)   //1ms
(0220) {
(0221)  	 TCCR0 = 0x00; //stop
_timer0_init:
    0DF4 2422      CLR	R2
    0DF5 BE23      OUT	0x33,R2
(0222) // 	 ASSR  = 0x00; //set async mode
(0223)  	 TCNT0 = 0x54; //set count
    0DF6 E584      LDI	R24,0x54
    0DF7 BF82      OUT	0x32,R24
(0224) // 	 OCR0  = 0xAC;
(0225)  	 TCCR0 = 0x04; //start timer
    0DF8 E084      LDI	R24,4
    0DF9 BF83      OUT	0x33,R24
    0DFA 9508      RET
_timer0_ovf_isr:
    0DFB 922A      ST	R2,-Y
    0DFC 923A      ST	R3,-Y
    0DFD 938A      ST	R24,-Y
    0DFE 939A      ST	R25,-Y
    0DFF B62F      IN	R2,0x3F
    0E00 922A      ST	R2,-Y
(0226) }
(0227) 
(0228) #pragma interrupt_handler timer0_ovf_isr:17
(0229) void timer0_ovf_isr(void)
(0230) {
(0231) // 	 unsigned char oop;
(0232) 	 TCNT0 = 0x54;                 //1ms
    0E01 E584      LDI	R24,0x54
    0E02 BF82      OUT	0x32,R24
(0233) 	 commtimer++;
    0E03 91800100  LDS	R24,commtimer
    0E05 91900101  LDS	R25,commtimer+1
    0E07 9601      ADIW	R24,1
    0E08 93900101  STS	commtimer+1,R25
    0E0A 93800100  STS	commtimer,R24
(0234) 	 if(commtimer>1950)
    0E0C E98E      LDI	R24,0x9E
    0E0D E097      LDI	R25,7
    0E0E 90200100  LDS	R2,commtimer
    0E10 90300101  LDS	R3,commtimer+1
    0E12 1582      CP	R24,R2
    0E13 0593      CPC	R25,R3
    0E14 F430      BCC	0x0E1B
(0235) 	 {
(0236) 	  	commtimer=0;
    0E15 2422      CLR	R2
    0E16 2433      CLR	R3
    0E17 92300101  STS	commtimer+1,R3
    0E19 92200100  STS	commtimer,R2
(0237) //		WDR();
(0238) 	 }
    0E1B 9029      LD	R2,Y+
    0E1C BE2F      OUT	0x3F,R2
    0E1D 9199      LD	R25,Y+
    0E1E 9189      LD	R24,Y+
    0E1F 9039      LD	R3,Y+
    0E20 9029      LD	R2,Y+
    0E21 9518      RETI
(0239) }
(0240) void beep(unsigned char second)
(0241) {
(0242)  	 beep_second=second;
_beep:
  second               --> R16
    0E22 93000131  STS	beep_second,R16
(0243) 	 beep_flag=1;
    0E24 E081      LDI	R24,1
    0E25 93800132  STS	beep_flag,R24
(0244) 	 CLEAR_BELL();
    0E27 9ABD      SBI	0x17,5
(0245) 	 CLEAR_LED0();
    0E28 9A8F      SBI	0x11,7
(0246) 	 timer=0;
    0E29 2422      CLR	R2
    0E2A 2433      CLR	R3
    0E2B 92300130  STS	timer+1,R3
    0E2D 9220012F  STS	timer,R2
    0E2F 9508      RET
_COMM_RX:
    0E30 940E486B  CALL	push_gset1
(0247) }
(0248) void COMM_RX(void)
(0249) {
(0250)  		RxHead0=0;
    0E32 2422      CLR	R2
    0E33 92200201  STS	RxHead0,R2
(0251) 		
(0252) 		sio_flag=0;
    0E35 922001A3  STS	sio_flag,R2
(0253) //		CLEAR_LED0();
(0254) 		switch(RX_BUF0[1])
    0E37 91400135  LDS	R20,RX_BUF0+1
    0E39 2755      CLR	R21
    0E3A 3242      CPI	R20,0x22
    0E3B E0E0      LDI	R30,0
    0E3C 075E      CPC	R21,R30
    0E3D F089      BEQ	0x0E4F
    0E3E E282      LDI	R24,0x22
    0E3F E090      LDI	R25,0
    0E40 1784      CP	R24,R20
    0E41 0795      CPC	R25,R21
    0E42 F02C      BLT	0x0E48
    0E43 3141      CPI	R20,0x11
    0E44 E0E0      LDI	R30,0
    0E45 075E      CPC	R21,R30
    0E46 F031      BEQ	0x0E4D
    0E47 C00A      RJMP	0x0E52
    0E48 3343      CPI	R20,0x33
    0E49 E0E0      LDI	R30,0
    0E4A 075E      CPC	R21,R30
    0E4B F029      BEQ	0x0E51
    0E4C C005      RJMP	0x0E52
(0255) 		{
(0256) //		  	case 0x01:
(0257) //			senddata(0);
(0258) //			break;
(0259) 			
(0260) 			case 0x11:
(0261) 			setup_curtime();                //设置模块当前时间
    0E4D D27F      RCALL	_setup_curtime
(0262) 			break;
    0E4E C003      RJMP	0x0E52
(0263) 			
(0264) 			case 0x22:                     //采集时间记录
(0265) 			colle_time();
    0E4F D068      RCALL	_colle_time
(0266) 			break;
    0E50 C001      RJMP	0x0E52
(0267) 			
(0268) 			case 0x33:                      //采集事件记录
(0269) 			colle_even();
    0E51 D003      RCALL	_colle_even
(0270) 			break;
(0271) 			
(0272) 			default:
(0273) 			break;
    0E52 940E486E  CALL	pop_gset1
    0E54 9508      RET
_colle_even:
  i                    --> R20
    0E55 940E486B  CALL	push_gset1
(0274) 		}
(0275) }
(0276) void colle_even(void)
(0277) {
(0278)  	 unsigned char i;
(0279) 	 for(i=0;i<12;i++)
    0E57 2744      CLR	R20
    0E58 C00E      RJMP	0x0E67
(0280) 	 even_data[i]=EEPROMread(0x200+i);
    0E59 2F04      MOV	R16,R20
    0E5A 2711      CLR	R17
    0E5B 5000      SUBI	R16,0
    0E5C 4F1E      SBCI	R17,0xFE
    0E5D 940E48AD  CALL	_EEPROMread
    0E5F E287      LDI	R24,0x27
    0E60 E092      LDI	R25,2
    0E61 2FE4      MOV	R30,R20
    0E62 27FF      CLR	R31
    0E63 0FE8      ADD	R30,R24
    0E64 1FF9      ADC	R31,R25
    0E65 8300      STD	Z+0,R16
    0E66 9543      INC	R20
    0E67 304C      CPI	R20,0xC
    0E68 F380      BCS	0x0E59
(0281) 	 send_even();
    0E69 D005      RCALL	_send_even
(0282) 	 beep(2);
    0E6A E002      LDI	R16,2
    0E6B DFB6      RCALL	_beep
    0E6C 940E486E  CALL	pop_gset1
    0E6E 9508      RET
_send_even:
  i                    --> R20
    0E6F 940E486B  CALL	push_gset1
(0283) 	 
(0284) }
(0285) void send_even(void)
(0286) {
(0287)  	unsigned int i;
(0288) 	SET_LIGHT();
    0E71 98BE      CBI	0x17,6
(0289) 	TX_BUF0[0]=0x33;
    0E72 E383      LDI	R24,0x33
    0E73 93800140  STS	TX_BUF0,R24
(0290) 	TX_BUF0[1]=15;
    0E75 E08F      LDI	R24,0xF
    0E76 93800141  STS	TX_BUF0+1,R24
(0291) 	TX_BUF0[2]=even_data[0];
    0E78 90200227  LDS	R2,even_data
    0E7A 92200142  STS	TX_BUF0+2,R2
(0292) 	TX_BUF0[3]=even_data[1];
    0E7C 90200228  LDS	R2,even_data+1
    0E7E 92200143  STS	TX_BUF0+3,R2
(0293) 	TX_BUF0[4]=even_data[2];
    0E80 90200229  LDS	R2,even_data+2
    0E82 92200144  STS	0x144,R2
(0294) 	TX_BUF0[5]=even_data[3];
    0E84 9020022A  LDS	R2,even_data+3
    0E86 92200145  STS	0x145,R2
(0295) 	TX_BUF0[6]=even_data[4];
    0E88 9020022B  LDS	R2,0x22B
    0E8A 92200146  STS	0x146,R2
(0296) 	TX_BUF0[7]=even_data[5];
    0E8C 9020022C  LDS	R2,0x22C
    0E8E 92200147  STS	0x147,R2
(0297) 	TX_BUF0[8]=even_data[6];
    0E90 9020022D  LDS	R2,0x22D
    0E92 92200148  STS	0x148,R2
(0298) 	TX_BUF0[9]=even_data[7];
    0E94 9020022E  LDS	R2,0x22E
    0E96 92200149  STS	0x149,R2
(0299) 	TX_BUF0[10]=even_data[8];
    0E98 9020022F  LDS	R2,0x22F
    0E9A 9220014A  STS	0x14A,R2
(0300) 	TX_BUF0[11]=even_data[9];
    0E9C 90200230  LDS	R2,0x230
    0E9E 9220014B  STS	0x14B,R2
(0301) 	TX_BUF0[12]=even_data[10];
    0EA0 90200231  LDS	R2,0x231
    0EA2 9220014C  STS	0x14C,R2
(0302) 	
(0303) 	TX_BUF0[13]=0x03;
    0EA4 E083      LDI	R24,3
    0EA5 9380014D  STS	0x14D,R24
(0304) 	TransmitByte0(TX_BUF0,14);
    0EA7 E02E      LDI	R18,0xE
    0EA8 E400      LDI	R16,0x40
    0EA9 E011      LDI	R17,1
    0EAA DEBD      RCALL	_TransmitByte0
(0305) 	for(i=0;i<3800;i++);
    0EAB 2744      CLR	R20
    0EAC 2755      CLR	R21
    0EAD C002      RJMP	0x0EB0
    0EAE 5F4F      SUBI	R20,0xFF
    0EAF 4F5F      SBCI	R21,0xFF
    0EB0 3D48      CPI	R20,0xD8
    0EB1 E0EE      LDI	R30,0xE
    0EB2 075E      CPC	R21,R30
    0EB3 F3D0      BCS	0x0EAE
(0306) 	CLEAR_LIGHT();
    0EB4 9ABE      SBI	0x17,6
    0EB5 940E486E  CALL	pop_gset1
    0EB7 9508      RET
_colle_time:
  i                    --> R20
    0EB8 940E486B  CALL	push_gset1
(0307) }
(0308) void colle_time(void)
(0309) {
(0310)  	unsigned int i;
(0311) 	
(0312) 	TX_BUF0[0]=0x22;
    0EBA E282      LDI	R24,0x22
    0EBB 93800140  STS	TX_BUF0,R24
(0313) 	TX_BUF0[1]=88;
    0EBD E588      LDI	R24,0x58
    0EBE 93800141  STS	TX_BUF0+1,R24
(0314) 	TX_BUF0[2]=EEPROMread(1*16+0);
    0EC0 E100      LDI	R16,0x10
    0EC1 E010      LDI	R17,0
    0EC2 940E48AD  CALL	_EEPROMread
    0EC4 93000142  STS	TX_BUF0+2,R16
(0315) 	TX_BUF0[3]=EEPROMread(1*16+1);
    0EC6 E101      LDI	R16,0x11
    0EC7 E010      LDI	R17,0
    0EC8 940E48AD  CALL	_EEPROMread
    0ECA 93000143  STS	TX_BUF0+3,R16
(0316) 	TX_BUF0[4]=EEPROMread(1*16+2);
    0ECC E102      LDI	R16,0x12
    0ECD E010      LDI	R17,0
    0ECE 940E48AD  CALL	_EEPROMread
    0ED0 93000144  STS	0x144,R16
(0317) 	TX_BUF0[5]=EEPROMread(1*16+3);
    0ED2 E103      LDI	R16,0x13
    0ED3 E010      LDI	R17,0
    0ED4 940E48AD  CALL	_EEPROMread
    0ED6 93000145  STS	0x145,R16
(0318) 	TX_BUF0[6]=EEPROMread(1*16+4);
    0ED8 E104      LDI	R16,0x14
    0ED9 E010      LDI	R17,0
    0EDA 940E48AD  CALL	_EEPROMread
    0EDC 93000146  STS	0x146,R16
(0319) 	TX_BUF0[7]=EEPROMread(1*16+5);
    0EDE E105      LDI	R16,0x15
    0EDF E010      LDI	R17,0
    0EE0 940E48AD  CALL	_EEPROMread
    0EE2 93000147  STS	0x147,R16
(0320) 	TX_BUF0[8]=EEPROMread(1*16+6);
    0EE4 E106      LDI	R16,0x16
    0EE5 E010      LDI	R17,0
    0EE6 940E48AD  CALL	_EEPROMread
    0EE8 93000148  STS	0x148,R16
(0321) 	
(0322) 	TX_BUF0[9]=EEPROMread(2*16+0);
    0EEA E200      LDI	R16,0x20
    0EEB E010      LDI	R17,0
    0EEC 940E48AD  CALL	_EEPROMread
    0EEE 93000149  STS	0x149,R16
(0323) 	TX_BUF0[10]=EEPROMread(2*16+1);
    0EF0 E201      LDI	R16,0x21
    0EF1 E010      LDI	R17,0
    0EF2 940E48AD  CALL	_EEPROMread
    0EF4 9300014A  STS	0x14A,R16
(0324) 	TX_BUF0[11]=EEPROMread(2*16+2);
    0EF6 E202      LDI	R16,0x22
    0EF7 E010      LDI	R17,0
    0EF8 940E48AD  CALL	_EEPROMread
    0EFA 9300014B  STS	0x14B,R16
(0325) 	TX_BUF0[12]=EEPROMread(2*16+3);
    0EFC E203      LDI	R16,0x23
    0EFD E010      LDI	R17,0
    0EFE 940E48AD  CALL	_EEPROMread
    0F00 9300014C  STS	0x14C,R16
(0326) 	TX_BUF0[13]=EEPROMread(2*16+4);
    0F02 E204      LDI	R16,0x24
    0F03 E010      LDI	R17,0
    0F04 940E48AD  CALL	_EEPROMread
    0F06 9300014D  STS	0x14D,R16
(0327) 	TX_BUF0[14]=EEPROMread(2*16+5);
    0F08 E205      LDI	R16,0x25
    0F09 E010      LDI	R17,0
    0F0A 940E48AD  CALL	_EEPROMread
    0F0C 9300014E  STS	0x14E,R16
(0328) 	TX_BUF0[15]=EEPROMread(2*16+6);
    0F0E E206      LDI	R16,0x26
    0F0F E010      LDI	R17,0
    0F10 940E48AD  CALL	_EEPROMread
    0F12 9300014F  STS	0x14F,R16
(0329) 	
(0330) 	TX_BUF0[16]=EEPROMread(3*16+0);
    0F14 E300      LDI	R16,0x30
    0F15 E010      LDI	R17,0
    0F16 940E48AD  CALL	_EEPROMread
    0F18 93000150  STS	0x150,R16
(0331) 	TX_BUF0[17]=EEPROMread(3*16+1);
    0F1A E301      LDI	R16,0x31
    0F1B E010      LDI	R17,0
    0F1C 940E48AD  CALL	_EEPROMread
    0F1E 93000151  STS	0x151,R16
(0332) 	TX_BUF0[18]=EEPROMread(3*16+2);
    0F20 E302      LDI	R16,0x32
    0F21 E010      LDI	R17,0
    0F22 940E48AD  CALL	_EEPROMread
    0F24 93000152  STS	0x152,R16
(0333) 	TX_BUF0[19]=EEPROMread(3*16+3);
    0F26 E303      LDI	R16,0x33
    0F27 E010      LDI	R17,0
    0F28 940E48AD  CALL	_EEPROMread
    0F2A 93000153  STS	0x153,R16
(0334) 	TX_BUF0[20]=EEPROMread(3*16+4);
    0F2C E304      LDI	R16,0x34
    0F2D E010      LDI	R17,0
    0F2E 940E48AD  CALL	_EEPROMread
    0F30 93000154  STS	0x154,R16
(0335) 	TX_BUF0[21]=EEPROMread(3*16+5);
    0F32 E305      LDI	R16,0x35
    0F33 E010      LDI	R17,0
    0F34 940E48AD  CALL	_EEPROMread
    0F36 93000155  STS	0x155,R16
(0336) 	TX_BUF0[22]=EEPROMread(3*16+6);
    0F38 E306      LDI	R16,0x36
    0F39 E010      LDI	R17,0
    0F3A 940E48AD  CALL	_EEPROMread
    0F3C 93000156  STS	0x156,R16
(0337) 	
(0338) 	TX_BUF0[23]=EEPROMread(4*16+0);
    0F3E E400      LDI	R16,0x40
    0F3F E010      LDI	R17,0
    0F40 940E48AD  CALL	_EEPROMread
    0F42 93000157  STS	0x157,R16
(0339) 	TX_BUF0[24]=EEPROMread(4*16+1);
    0F44 E401      LDI	R16,0x41
    0F45 E010      LDI	R17,0
    0F46 940E48AD  CALL	_EEPROMread
    0F48 93000158  STS	0x158,R16
(0340) 	TX_BUF0[25]=EEPROMread(4*16+2);
    0F4A E402      LDI	R16,0x42
    0F4B E010      LDI	R17,0
    0F4C 940E48AD  CALL	_EEPROMread

⌨️ 快捷键说明

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