📄 ze015_1.lis
字号:
024E 0C01 .word 268
0250 1601 .word 278
0252 2001 .word 288
0254 2B01 .word 299
0256 3501 .word 309
0258 4001 .word 320
025A 4B01 .word 331
025C 5601 .word 342
025E 6101 .word 353
0260 6C01 .word 364
0262 7701 .word 375
0264 8201 .word 386
0266 8E01 .word 398
0268 9901 .word 409
026A A501 .word 421
026C B001 .word 432
026E BC01 .word 444
0270 C701 .word 455
0272 D301 .word 467
0274 DE01 .word 478
0276 E901 .word 489
0278 F501 .word 501
027A 0002 .word 512
027C 0B02 .word 523
027E 1602 .word 534
0280 2102 .word 545
0282 2C02 .word 556
0284 3702 .word 567
0286 4202 .word 578
0288 4D02 .word 589
028A 5702 .word 599
028C 6202 .word 610
028E 6C02 .word 620
0290 7602 .word 630
0292 8002 .word 640
0294 8A02 .word 650
0296 9302 .word 659
0298 9D02 .word 669
029A A602 .word 678
029C AF02 .word 687
029E B802 .word 696
02A0 C102 .word 705
02A2 C902 .word 713
02A4 D202 .word 722
02A6 DA02 .word 730
02A8 E202 .word 738
02AA EA02 .word 746
02AC F202 .word 754
02AE F902 .word 761
02B0 0003 .word 768
02B2 0803 .word 776
02B4 0F03 .word 783
02B6 1503 .word 789
02B8 1C03 .word 796
02BA 2303 .word 803
02BC 2903 .word 809
02BE 2F03 .word 815
02C0 3503 .word 821
02C2 3B03 .word 827
02C4 4103 .word 833
02C6 4603 .word 838
02C8 4B03 .word 843
02CA 5103 .word 849
02CC 5603 .word 854
02CE 5B03 .word 859
02D0 5F03 .word 863
02D2 6403 .word 868
02D4 6803 .word 872
02D6 6D03 .word 877
02D8 7103 .word 881
02DA 7503 .word 885
02DC 7903 .word 889
02DE 7D03 .word 893
02E0 8103 .word 897
02E2 8403 .word 900
02E4 8803 .word 904
02E6 8B03 .word 907
02E8 8F03 .word 911
02EA 9203 .word 914
02EC 9503 .word 917
02EE 9803 .word 920
02F0 9B03 .word 923
02F2 9E03 .word 926
02F4 A103 .word 929
02F6 A303 .word 931
02F8 A603 .word 934
02FA A803 .word 936
02FC AB03 .word 939
02FE AD03 .word 941
0300 B003 .word 944
0302 B203 .word 946
0304 B403 .word 948
0306 B603 .word 950
0308 B803 .word 952
030A BA03 .word 954
030C BC03 .word 956
030E BE03 .word 958
0310 C003 .word 960
0312 C103 .word 961
0314 C303 .word 963
0316 C503 .word 965
0318 C603 .word 966
031A C803 .word 968
031C .dbsym e temp20kh _temp20kh A[292:146]ki
.area text(rom, con, rel)
0000 .dbfile D:\icc\program\20080515\zv5/jf_valve.h
0000 .dbfunc e Fun_ad_20k10 _Fun_ad_20k10 fC
0000 ; yd1 -> R10
0000 ; yd0 -> R12
0000 ; truetemp0 -> R20
0000 ; truetemp -> R22,R23
0000 ; thAD -> R10,R11
.even
0000 _Fun_ad_20k10::
0000 0E940000 xcall push_gset4
0004 5801 movw R10,R16
0006 .dbline -1
0006 .dbline 107
0006 ; //ICC-AVR application builder : 2007-4-11 16:34:42
0006 ; // Target : M64
0006 ; // Crystal: 4.0000Mhz
0006 ;
0006 ; #include <iom64v.h>
0006 ; #include <macros.h>
0006 ; #include <math.h>
0006 ; #include "jf_atmel.h"
0006 ; #include "jf_valve.h"
0006 ; #include "jf_p1.c"
0006 ; #include "jf_act.c"
0006 ; #include "jf_valve.c"
0006 ;
0006 ;
0006 ;
0006 ; void port_init(void)
0006 ; {
0006 ; PORTA = 0x00;
0006 ; DDRA = 0x0F;//0x0b; //sck PA0-CD4052A,PA1-CD4052B
0006 ; PORTB = 0x00;
0006 ; DDRB = 0xF0;
0006 ; PORTC = 0x00; //m103 output only
0006 ; DDRC = 0x01;
0006 ; PORTD = 0x00;
0006 ; DDRD = 0xFB;
0006 ; PORTE = 0x00;
0006 ; DDRE = 0xC6;
0006 ; PORTF = 0x00;
0006 ; DDRF = 0x00;
0006 ; PORTG = 0x00;
0006 ; DDRG = 0x1B;
0006 ; }
0006 ;
0006 ; //Watchdog initialize
0006 ; // prescale: 16K
0006 ; void watchdog_init(void)
0006 ; {
0006 ; WDR(); //this prevents a timout on enabling
0006 ; WDTCR |= 0x18; //允许修改watchdog
0006 ; //WDTCR = 0x0d; //WATCHDOG ENABLED - 101--0.45s
0006 ; WDTCR = 0x0e; //WATCHDOG ENABLED - 110--1s
0006 ; }
0006 ;
0006 ; //20080612由10ms改为膨胀阀8ms定时
0006 ; //TIMER0 initialize - prescale:256
0006 ; // WGM: Normal
0006 ; // desired value: 8mSec
0006 ; // actual value: 8.000mSec (0.0%)
0006 ; void timer0_init(void)
0006 ; {
0006 ; TCCR0 = 0x00; //stop
0006 ; ASSR = 0x00; //set async mode
0006 ; TCNT0 = 0x83; //4MHZ-8ms set count
0006 ; OCR0 = 0x7D;
0006 ; TCCR0 = 0x06; //start timer
0006 ; }
0006 ;
0006 ; #pragma interrupt_handler timer0_ovf_isr:17
0006 ; void timer0_ovf_isr(void)
0006 ; {
0006 ; TCNT0 = 0x83;//64; //reload counter value
0006 ; time_flag |=b_time_10ms; //f_10ms=1
0006 ; t_10ms_times++; //10ms时间计时
0006 ; if (t_10ms_times>=12)
0006 ; {
0006 ; time_flag |=b_time_100ms; //f_100ms=1
0006 ; t_10ms_times=0;
0006 ; }
0006 ; if (mode & b_fast_test)time_flag |=b_time_1s; //快测f_1s=1
0006 ; else
0006 ; {//正常时计数100时置1秒
0006 ; t_1s_times++; //10ms的计时1秒
0006 ; if (t_1s_times>=125)
0006 ; {
0006 ; time_flag |=b_time_1s; //f_1s=1
0006 ; t_1s_times=0;
0006 ; }
0006 ; }
0006 ; if (run_state &b_beep_onask) //01-beep_on
0006 ; { //蜂鸣器要求响时,时间进行计数,计数到则关T2的CTC
0006 ; if (beep_time >=beep_time_ask)
0006 ; {//蜂鸣器响时间到时停止TIMER2,如次数未到则启动间隔计时
0006 ; PORTB &=~b_beep; //beep=0 PB5时间到则关蜂鸣器
0006 ; TCCR2 = 0x00; //stop T2 CTC
0006 ; run_state &=~b_beep_onask; //清除蜂鸣器响标志
0006 ; if (beep_times >=1) //如果要求响的次数大于1
0006 ; {
0006 ; beep_times--; // 蜂鸣器响的次数-1
0006 ; auto_state |=b_beep_stop; //开始蜂鸣器停止的间隔计时
0006 ; beep_stop_time =0; //间隔计时清0
0006 ; }
0006 ;
0006 ; }
0006 ; else beep_time++;//蜂鸣器响时间未到时接着响,蜂鸣器响时间+1
0006 ; }
0006 ; else if (auto_state &b_beep_stop)
0006 ; {//蜂鸣器间隔计时,计时到时启动TIMER2为CTC
0006 ; beep_stop_time ++; //间隔计时+1
0006 ; if (beep_stop_time >=beep_stop_time_ask)
0006 ; {//蜂鸣器间隔计时到时启动TIMER2
0006 ; TCCR2 = 0x00; //stop
0006 ; TCNT2 = 0x87; //0x86; // 2048 Khz 0x83; //2khz
0006 ; OCR2 = 0x79; //0x7a; //0x7d;
0006 ; TCCR2 = 0x1A; //start
0006 ; beep_time=0; //蜂鸣器响时间=0
0006 ; auto_state &=~b_beep_stop; //清间隔计时标志
0006 ; run_state |=b_beep_onask; //蜂鸣器响标志
0006 .dbline 111
0006 ; }
0006 ; }
0006 ; else
0006 ; {//无蜂鸣器响或间隔要求时关T2,输出0
0006 C501 movw R24,R10
0008 8F38 cpi R24,143
000A E3E0 ldi R30,3
000C 9E07 cpc R25,R30
000E 18F0 brlo L2
0010 .dbline 111
0010 68E7 ldi R22,120
0012 70E0 ldi R23,0
0014 2DC0 xjmp L17
0016 L2:
0016 .dbline 112
0016 ; TCCR2 = 0x00; //stop T2 CTC
0016 C501 movw R24,R10
0018 823F cpi R24,242
001A E2E0 ldi R30,2
001C 9E07 cpc R25,R30
001E 18F0 brlo L4
0020 .dbline 112
0020 6AE5 ldi R22,90
0022 70E0 ldi R23,0
0024 25C0 xjmp L17
0026 L4:
0026 .dbline 113
0026 ; PORTB &=~b_beep; //beep=0 PB5时间到则关蜂鸣器
0026 C501 movw R24,R10
0028 8733 cpi R24,55
002A E2E0 ldi R30,2
002C 9E07 cpc R25,R30
002E 18F0 brlo L6
0030 .dbline 113
0030 66E4 ldi R22,70
0032 70E0 ldi R23,0
0034 1DC0 xjmp L17
0036 L6:
0036 .dbline 114
0036 ; }
0036 C501 movw R24,R10
0038 8635 cpi R24,86
003A E1E0 ldi R30,1
003C 9E07 cpc R25,R30
003E 18F0 brlo L8
0040 .dbline 114
0040 62E3 ldi R22,50
0042 70E0 ldi R23,0
0044 15C0 xjmp L17
0046 L8:
0046 .dbline 115
0046 ; //uart0 与主模块板通讯,等待主模块,接收正确后延时40MS发送应答,发送完成后立即转接收
0046 C501 movw R24,R10
0048 8F3E cpi R24,239
004A E0E0 ldi R30,0
004C 9E07 cpc R25,R30
004E 18F0 brlo L10
0050 .dbline 115
0050 68E2 ldi R22,40
0052 70E0 ldi R23,0
0054 0DC0 xjmp L17
0056 L10:
0056 .dbline 116
0056 ; if (txd_state0 &rxd_txdstart0) //rxd_txdstart=1
0056 C501 movw R24,R10
0058 8E35 cpi R24,94
005A E0E0 ldi R30,0
005C 9E07 cpc R25,R30
005E 18F0 brlo L12
0060 .dbline 116
0060 64E1 ldi R22,20
0062 70E0 ldi R23,0
0064 05C0 xjmp L17
0066 L12:
0066 .dbline 117
0066 ; {
0066 6627 clr R22
0068 7727 clr R23
006A .dbline 118
006A 02C0 xjmp L17
006C L14:
006C .dbline 118
006C L15:
006C .dbline 118
006C 6F5F subi R22,255 ; offset = 1
006E 7F4F sbci R23,255
0070 L17:
0070 .dbline 118
0070 ; txd_rxd_delaytime0++;
0070 02E0 ldi R16,2
0072 10E0 ldi R17,0
0074 9B01 movw R18,R22
0076 0E940000 xcall empy16s
007A F801 movw R30,R16
007C 80E0 ldi R24,<_temp20kh
007E 90E0 ldi R25,>_temp20kh
0080 E80F add R30,R24
0082 F91F adc R31,R25
0084 0590 lpm R0,Z+
0086 1490 lpm R1,Z
0088 F001 movw R30,R0
008A EA15 cp R30,R10
008C FB05 cpc R31,R11
008E 70F3 brlo L14
0090 .dbline 119
0090 ; if (txd_rxd_delaytime0>=5) //接收完成转发送时延时40ms
0090 02E0 ldi R16,2
0092 10E0 ldi R17,0
0094 9B01 movw R18,R22
0096 0E940000 xcall empy16s
009A F801 movw R30,R16
009C 80E0 ldi R24,<_temp20kh
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -