📄 main.lis
字号:
.module main.c
.area text
0000 _main::
0000 A7FE ais #-2
0002 95 tsx
0003 CC0282 jmp L3
0006 L2:
0006 ; /*-----------------------------------------------------*
0006 ; *工 程 名:
0006 ; *硬件连接:
0006 ; *程序描述: SD-HC08 模板生成
0006 ; */
0006 ; /*[头文件]*/
0006 ; #include "GP32C.h" //映像寄存器地址头文件
0006 ; #include "KB.h"
0006 ; void PWMInit(unsigned int); //PWM初始化
0006 ; void PWMconf(unsigned int); //PWM设置
0006 ; void Delay_ms(unsigned char );
0006 ; unsigned char KB1,KB2,KB3,KB4,KB5,KB6,i,KB_valve1,KB_valve2;
0006 ; //DDRA=0xFF;PTA=0xFF;
0006 ; /*[主函数]*/
0006 ; void main()
0006 ; {
0006 ; while(1)
0006 ; {
0006 ; KB_Init();
0006 CD0000 jsr _KB_Init
0009 ; T1SC0=0x0e;
0009 A60E lda #14
000B B725 sta 0x25
000D ; KB_valve1=KB_Scan1();
000D CD0000 jsr _KB_Scan1
0010 B700 sta *__r1
0012 B701 sta *_KB_valve1
0014 ; KB_valve2=KB_Scan2();
0014 CD0000 jsr _KB_Scan2
0017 95 tsx
0018 B700 sta *__r1
001A B700 sta *_KB_valve2
001C ; if((KB_valve1!=0xff)||(KB_valve2!=0xff)) //有键按下
001C B601 lda *_KB_valve1
001E A1FF cmp #-1
0020 2609 bne L7
0022 B600 lda *_KB_valve2
0024 A1FF cmp #-1
0026 2603 bne X9
0028 CC0282 jmp L5
002B X9:
002B L7:
002B ; {
002B ; KB1=KB_valve1;
002B 4E0108 mov *_KB_valve1,*_KB1
002E ; KB2=KB_valve2;
002E 4E0007 mov *_KB_valve2,*_KB2
0031 ; KB1&=0b00001000;
0031 B608 lda *_KB1
0033 A408 and #8
0035 B708 sta *_KB1
0037 ; KB2&=0b00001000;
0037 B607 lda *_KB2
0039 A408 and #8
003B B707 sta *_KB2
003D ; if(KB1==0||KB2==0) //L或H按下
003D B608 lda *_KB1
003F 2707 beq L10
0041 B607 lda *_KB2
0043 2703 beq X10
0045 CC01CA jmp L8
0048 X10:
0048 L10:
0048 ; {
0048 ; KB3=KB5=KB_valve1;
0048 4E0104 mov *_KB_valve1,*_KB5
004B 4E0106 mov *_KB_valve1,*_KB3
004E ; KB4=KB6=KB_valve2;
004E 4E0003 mov *_KB_valve2,*_KB6
0051 4E0005 mov *_KB_valve2,*_KB4
0054 ; KB3&=0b00010000;
0054 B606 lda *_KB3
0056 A410 and #16
0058 B706 sta *_KB3
005A ; KB4&=0b00010000;
005A B605 lda *_KB4
005C A410 and #16
005E B705 sta *_KB4
0060 ; KB5&=0b00100000;
0060 B604 lda *_KB5
0062 A420 and #32
0064 B704 sta *_KB5
0066 ; KB6&=0b00100000;
0066 B603 lda *_KB6
0068 A420 and #32
006A B703 sta *_KB6
006C ; if(KB3==0||KB4==0) //L按下
006C B606 lda *_KB3
006E 2707 beq L13
0070 B605 lda *_KB4
0072 2703 beq X11
0074 CC0118 jmp L11
0077 X11:
0077 L13:
0077 ; {
0077 B601 lda *_KB_valve1
0079 A1E6 cmp #-26
007B 2706 beq L16
007D B600 lda *_KB_valve2
007F A1E6 cmp #-26
0081 260B bne L14
0083 L16:
0083 ; if((KB_valve1==0xE6)||(KB_valve2==0xE6))PWMconf(262);
0083 450106 ldhx #262
0086 89 pshx
0087 8B pshh
0088 CD02A3 jsr _PWMconf
008B A702 ais #2
008D 95 tsx
008E L14:
008E B601 lda *_KB_valve1
0090 A1DE cmp #-34
0092 2706 beq L19
0094 B600 lda *_KB_valve2
0096 A1DE cmp #-34
0098 260B bne L17
009A L19:
009A ; if((KB_valve1==0xDE)||(KB_valve2==0xDE))PWMconf(294);
009A 450126 ldhx #294
009D 89 pshx
009E 8B pshh
009F CD02A3 jsr _PWMconf
00A2 A702 ais #2
00A4 95 tsx
00A5 L17:
00A5 B601 lda *_KB_valve1
00A7 A1BE cmp #-66
00A9 2706 beq L22
00AB B600 lda *_KB_valve2
00AD A1BE cmp #-66
00AF 260B bne L20
00B1 L22:
00B1 ; if((KB_valve1==0xBE)||(KB_valve2==0xBE))PWMconf(330);
00B1 45014A ldhx #330
00B4 89 pshx
00B5 8B pshh
00B6 CD02A3 jsr _PWMconf
00B9 A702 ais #2
00BB 95 tsx
00BC L20:
00BC B601 lda *_KB_valve1
00BE A1E5 cmp #-27
00C0 2706 beq L25
00C2 B600 lda *_KB_valve2
00C4 A1E5 cmp #-27
00C6 260B bne L23
00C8 L25:
00C8 ; if((KB_valve1==0xE5)||(KB_valve2==0xE5))PWMconf(349);
00C8 45015D ldhx #349
00CB 89 pshx
00CC 8B pshh
00CD CD02A3 jsr _PWMconf
00D0 A702 ais #2
00D2 95 tsx
00D3 L23:
00D3 B601 lda *_KB_valve1
00D5 A1DD cmp #-35
00D7 2706 beq L28
00D9 B600 lda *_KB_valve2
00DB A1DD cmp #-35
00DD 260B bne L26
00DF L28:
00DF ; if((KB_valve1==0xDD)||(KB_valve2==0xDD))PWMconf(392);
00DF 450188 ldhx #392
00E2 89 pshx
00E3 8B pshh
00E4 CD02A3 jsr _PWMconf
00E7 A702 ais #2
00E9 95 tsx
00EA L26:
00EA B601 lda *_KB_valve1
00EC A1BD cmp #-67
00EE 2706 beq L31
00F0 B600 lda *_KB_valve2
00F2 A1BD cmp #-67
00F4 260B bne L29
00F6 L31:
00F6 ; if((KB_valve1==0xBD)||(KB_valve2==0xBD))PWMconf(440);
00F6 4501B8 ldhx #440
00F9 89 pshx
00FA 8B pshh
00FB CD02A3 jsr _PWMconf
00FE A702 ais #2
0100 95 tsx
0101 L29:
0101 B601 lda *_KB_valve1
0103 A1E3 cmp #-29
0105 2706 beq L34
0107 B600 lda *_KB_valve2
0109 A1E3 cmp #-29
010B 260B bne L32
010D L34:
010D ; if((KB_valve1==0xE3)||(KB_valve2==0xE3))PWMconf(494);
010D 4501EE ldhx #494
0110 89 pshx
0111 8B pshh
0112 CD02A3 jsr _PWMconf
0115 A702 ais #2
0117 95 tsx
0118 L32:
0118 ; }
0118 L11:
0118 ; if(KB5==0||KB6==0) //H按下
0118 B604 lda *_KB5
011A 2707 beq L37
011C B603 lda *_KB6
011E 2703 beq X12
0120 CC0282 jmp L9
0123 X12:
0123 L37:
0123 ; {
0123 B601 lda *_KB_valve1
0125 A1EE cmp #-18
0127 2706 beq L40
0129 B600 lda *_KB_valve2
012B A1EE cmp #-18
012D 260B bne L38
012F L40:
012F ; if((KB_valve1==0xEE)||(KB_valve2==0xEE))PWMconf(1046);
012F 450416 ldhx #1046
0132 89 pshx
0133 8B pshh
0134 CD02A3 jsr _PWMconf
0137 A702 ais #2
0139 95 tsx
013A L38:
013A B601 lda *_KB_valve1
013C A1D6 cmp #-42
013E 2706 beq L43
0140 B600 lda *_KB_valve2
0142 A1D6 cmp #-42
0144 260B bne L41
0146 L43:
0146 ; if((KB_valve1==0xD6)||(KB_valve2==0xD6))PWMconf(1175);
0146 450497 ldhx #1175
0149 89 pshx
014A 8B pshh
014B CD02A3 jsr _PWMconf
014E A702 ais #2
0150 95 tsx
0151 L41:
0151 B601 lda *_KB_valve1
0153 A1BE cmp #-66
0155 2706 beq L46
0157 B600 lda *_KB_valve2
0159 A1BE cmp #-66
015B 260B bne L44
015D L46:
015D ; if((KB_valve1==0xBE)||(KB_valve2==0xBE))PWMconf(1318);
015D 450526 ldhx #1318
0160 89 pshx
0161 8B pshh
0162 CD02A3 jsr _PWMconf
0165 A702 ais #2
0167 95 tsx
0168 L44:
0168 B601 lda *_KB_valve1
016A A1ED cmp #-19
016C 2706 beq L49
016E B600 lda *_KB_valve2
0170 A1ED cmp #-19
0172 260B bne L47
0174 L49:
0174 ; if((KB_valve1==0xED)||(KB_valve2==0xED))PWMconf(1397);
0174 450575 ldhx #1397
0177 89 pshx
0178 8B pshh
0179 CD02A3 jsr _PWMconf
017C A702 ais #2
017E 95 tsx
017F L47:
017F B601 lda *_KB_valve1
0181 A1D5 cmp #-43
0183 2706 beq L52
0185 B600 lda *_KB_valve2
0187 A1D5 cmp #-43
0189 260B bne L50
018B L52:
018B ; if((KB_valve1==0xD5)||(KB_valve2==0xD5))PWMconf(1568);
018B 450620 ldhx #1568
018E 89 pshx
018F 8B pshh
0190 CD02A3 jsr _PWMconf
0193 A702 ais #2
0195 95 tsx
0196 L50:
0196 B601 lda *_KB_valve1
0198 A1BD cmp #-67
019A 2706 beq L55
019C B600 lda *_KB_valve2
019E A1BD cmp #-67
01A0 260B bne L53
01A2 L55:
01A2 ; if((KB_valve1==0xBD)||(KB_valve2==0xBD))PWMconf(1760);
01A2 4506E0 ldhx #1760
01A5 89 pshx
01A6 8B pshh
01A7 CD02A3 jsr _PWMconf
01AA A702 ais #2
01AC 95 tsx
01AD L53:
01AD B601 lda *_KB_valve1
01AF A1EB cmp #-21
01B1 2709 beq L58
01B3 B600 lda *_KB_valve2
01B5 A1EB cmp #-21
01B7 2703 beq X13
01B9 CC0282 jmp L9
01BC X13:
01BC L58:
01BC ; if((KB_valve1==0xEB)||(KB_valve2==0xEB))PWMconf(1976);
01BC 4507B8 ldhx #1976
01BF 89 pshx
01C0 8B pshh
01C1 CD02A3 jsr _PWMconf
01C4 A702 ais #2
01C6 95 tsx
01C7 ; }}
01C7 CC0282 jmp L9
01CA L8:
01CA ; else
01CA ; {
01CA ; switch(KB_valve1)
01CA 7F clr ,X
01CB B601 lda *_KB_valve1
01CD E701 sta 1,X
01CF F6 lda ,X
01D0 2609 bne X0
01D2 E601 lda 1,X
01D4 A1DD cmp #-35
01D6 2603 bne X14
01D8 CC0259 jmp L66
01DB X14:
01DB X0:
01DB F6 lda ,X
01DC 2606 bne X1
01DE E601 lda 1,X
01E0 A1DE cmp #-34
01E2 274E beq L63
01E4 X1:
01E4 E601 lda 1,X
01E6 B700 sta *__r1
01E8 F6 lda ,X
01E9 B700 sta *__r0
01EB 5500 ldhx *__r0
01ED 6500DE cphx #222
01F0 95 tsx
01F1 9215 bgt L70
01F3 L69:
01F3 F6 lda ,X
01F4 2606 bne X2
01F6 E601 lda 1,X
01F8 A1BD cmp #-67
01FA 276A beq L67
01FC X2:
01FC F6 lda ,X
01FD 2606 bne X3
01FF E601 lda 1,X
0201 A1BE cmp #-66
0203 273A beq L64
0205 X3:
0205 CC0280 jmp L59
0208 L70:
0208 F6 lda ,X
0209 2606 bne X4
020B E601 lda 1,X
020D A1EB cmp #-21
020F 2762 beq L68
0211 X4:
0211 F6 lda ,X
0212 2606 bne X5
0214 E601 lda 1,X
0216 A1ED cmp #-19
0218 2732 beq L65
021A X5:
021A F6 lda ,X
021B 2606 bne X6
021D E601 lda 1,X
021F A1EE cmp #-18
0221 2702 beq L62
0223 X6:
0223 205B bra L59
0225 X7:
0225 ; {
0225 L62:
0225 ; case 0xEE: PWMconf(523);break;
0225 45020B ldhx #523
0228 89 pshx
0229 8B pshh
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -