No.14785 作者:waser 邮件: ID:6787 登陆:1次 文章数:4篇 最后登陆IP: 最后登陆:2002/11/18 19:13:00 注册:2002/11/18 19:13:00 财富:26 发帖时间:2002/11/20 20:21:00 发贴者IP:218.17.250.82 标题:waser:C51编程:定时器有些问题! 摘要:No.14785C51编程:定时器有些问题! $include (sreg.inc) ; target controller Special Function Registers NAME ?C_STARTUP IBPSTACK EQU 0 ;// 不定义模拟 栈 02-10-30 15:58 IBPSTACKTOP EQU 0ffH+1 ;//IDATALEN EQU 100H XDATA_START EQU 0c000H XDATA_LENG EQU 10000H-0c000H ;_DPTV_DEF_ EQU 0 ;DWZ ?C_C51STARTUP SEGMENT CODE ?C_INITSEG SEGMENT CODE EXTRN CODE (?C_INITSEGSTART) ;// +YMT,00-9-1 8:18 if this declaration is absent,?C_INITSEG will has no termination EXTRN CODE (main) EXTRN CODE (main_loop) EXTRN CODE (CMD_ir_bit_receive) ;// remote control receive interrupt 02-10-30 15:07 EXTRN CODE (TM_timer_1_int) ;// TBT interrupt 02- 10-30 15:07 EXTRN DATA (g_hsync_counter) ;// AFT hsync count 02- 10-30 15:08 ; EXTRN IDATA (g_scan_h_counter) ;// -DWZ,A01V01 needn't g_scan_h_counter 02-10-30 14:47 ; EXTRN IDATA (g_scan_v_counter) ;// -dwz,a01v01 needn't g_scan_v_counter 02-10-30 14:49 EXTRN BIT (F_t0_int) PUBLIC ?C_STARTUP CSEG AT 0H ?C_STARTUP: ljmp C_START ; /* can't use ljmp main directly,see comment in C_START */ ; CSEG AT 3H ljmp CMD_ir_bit_receive ; CSEG AT 7H ; /* fix address for jump to main loop,added at 00-4-19 11:34 */ ljmp main_loop ; /* if it is modificated,modify routine TC_to_main_loop() also */ ; CSEG AT 0bH ; /* timer 0 */ setb F_t0_int ljmp CMD_ir_bit_receive ; CSEG AT 13H ;/* ++g_hsync_counter */ inc g_hsync_counter reti ; CSEG AT 1bH ljmp TM_timer_1_int ; CSEG AT 23H reti ; ; CSEG AT 2bH ; clr ADC ; reti ; CSEG AT 43H reti ;ljmp CS_watchdog_int ; CSEG AT 53H clr AVS reti ;ljmp CS_acq_vsync_int ; ; CSEG AT 5bH ;//- DWZ,02-10-30 15:03 ; push ACC ;//- DWZ,02-10-30 15:03 ; mov A,R0 ;//- DWZ,02-10-30 15:03 ; push ACC ;//- DWZ,02-10-30 15:03 ; clr DVS ;//- DWZ,02-10-30 15:03 ;/* ++g_vsynCounter */ ; mov R0,#g_scan_v_counter ;//-DWZ,02-10- 30 15:03 ; inc @R0 ;//- DWZ,02-10-30 15:03 ;/* return; */ ; pop ACC ;//- DWZ,02-10-30 15:03 ; mov R0,A ;//- DWZ,02-10-30 15:03 ; pop ACC ;//- DWZ,02-10-30 15:03 ; reti ;//- DWZ,02-10-30 15:03 ; CSEG AT 93H reti ;ljmp CS_acq_hsync_int ; ; CSEG AT 9bH ;//- DWZ,02-10-30 15:03 ; clr DHS ;//- DWZ,02-10-30 15:03 ;/* ++g_scan_h_counter */ ;// inc g_scan_h_counter ; push ACC ;//- DWZ,02-10-30 15:03 ; mov A,R0 ;//- DWZ,02-10-30 15:03 ; push ACC ;//- DWZ,02-10-30 15:03 ; mov R0,#g_scan_h_counter+1 ;//- DWZ,02-10-30 15:03 ; inc @R0 ;//- DWZ,02-10-30 15:03 ; mov A,@R0 ;//- DWZ,02-10-30 15:03 ; jnz _scan_h_ct_end ;//- DWZ,02-10-30 15:03 ; dec R0 ;//- DWZ,02-10-30 15:03 ; inc @R0 ;//- DWZ,02-10-30 15:03 ;/* return; */ ;_scan_h_ct_end: ;//-DWZ,02-10- 30 15:03 ; pop ACC ;//- DWZ,02-10-30 15:03 ; mov R0,A ;//- DWZ,02-10-30 15:03 ; pop ACC ;//- DWZ,02-10-30 15:03 ; reti ;//- DWZ,02-10-30 15:03 ; RSEG ?C_C51STARTUP C_START: IF IBPSTACK <> 0 EXTRN DATA (?C_IBP) mov ?C_IBP,#LOW IBPSTACKTOP ENDIF ;/*=========02-11-18 9:29============*/ ;//if IDATALEN <> 0 ;// MOV R0,#IDATALEN - 1 ;// CLR A ;//IDATALOOP: MOV ......
>>返回讨论的主题
|