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

📄 main.lis

📁 基于HC908GP32的电子琴程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -