📄 main.lis
字号:
.module main.c
.area data
0000 _LCD_buff_fresh::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data
0001 _LCD_buff1::
0001 .blkb 1
.area idata
0001 00 .byte 0
.area data
.area lit
0000 _Key_show::
0000 31206973207072657373656420202020 .byte 49,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32,32
0010 663D353233487A202020202020202020 .byte 'f,61,53,50,51,'H,'z,32,32,32,32,32,32,32,32,32
0020 32206973207072657373656420202020 .byte 50,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32,32
0030 663D353538487A202020202020202020 .byte 'f,61,53,53,56,'H,'z,32,32,32,32,32,32,32,32,32
0040 33206973207072657373656420202020 .byte 51,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32,32
0050 663D363630487A202020202020202020 .byte 'f,61,54,54,48,'H,'z,32,32,32,32,32,32,32,32,32
0060 34206973207072657373656420202020 .byte 52,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32,32
0070 663D363938487A202020202020202020 .byte 'f,61,54,57,56,'H,'z,32,32,32,32,32,32,32,32,32
0080 35206973207072657373656420202020 .byte 53,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32,32
0090 663D373834487A202020202020202020 .byte 'f,61,55,56,52,'H,'z,32,32,32,32,32,32,32,32,32
00A0 36206973207072657373656420202020 .byte 54,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32,32
00B0 663D383830487A202020202020202020 .byte 'f,61,56,56,48,'H,'z,32,32,32,32,32,32,32,32,32
00C0 37206973207072657373656420202020 .byte 55,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32,32
00D0 663D393838487A202020202020202020 .byte 'f,61,57,56,56,'H,'z,32,32,32,32,32,32,32,32,32
00E0 4C312069732070726573736564202020 .byte 'L,49,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
00F0 663D323632487A202020202020202020 .byte 'f,61,50,54,50,'H,'z,32,32,32,32,32,32,32,32,32
0100 4C322069732070726573736564202020 .byte 'L,50,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0110 663D323934487A202020202020202020 .byte 'f,61,50,57,52,'H,'z,32,32,32,32,32,32,32,32,32
0120 4C332069732070726573736564202020 .byte 'L,51,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0130 663D333330487A202020202020202020 .byte 'f,61,51,51,48,'H,'z,32,32,32,32,32,32,32,32,32
0140 4C342069732070726573736564202020 .byte 'L,52,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0150 663D333439487A202020202020202020 .byte 'f,61,51,52,57,'H,'z,32,32,32,32,32,32,32,32,32
0160 4C352069732070726573736564202020 .byte 'L,53,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0170 663D333932487A202020202020202020 .byte 'f,61,51,57,50,'H,'z,32,32,32,32,32,32,32,32,32
0180 4C362069732070726573736564202020 .byte 'L,54,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0190 663D343430487A202020202020202020 .byte 'f,61,52,52,48,'H,'z,32,32,32,32,32,32,32,32,32
01A0 4C372069732070726573736564202020 .byte 'L,55,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
01B0 663D343934487A202020202020202020 .byte 'f,61,52,57,52,'H,'z,32,32,32,32,32,32,32,32,32
01C0 48312069732070726573736564202020 .byte 'H,49,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
01D0 663D31303436487A2020202020202020 .byte 'f,61,49,48,52,54,'H,'z,32,32,32,32,32,32,32,32
01E0 48322069732070726573736564202020 .byte 'H,50,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
01F0 663D31313735487A2020202020202020 .byte 'f,61,49,49,55,53,'H,'z,32,32,32,32,32,32,32,32
0200 48332069732070726573736564202020 .byte 'H,51,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0210 663D31333138487A2020202020202020 .byte 'f,61,49,51,49,56,'H,'z,32,32,32,32,32,32,32,32
0220 48342069732070726573736564202020 .byte 'H,52,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0230 663D31333937487A2020202020202020 .byte 'f,61,49,51,57,55,'H,'z,32,32,32,32,32,32,32,32
0240 48352069732070726573736564202020 .byte 'H,53,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0250 663D31353638487A2020202020202020 .byte 'f,61,49,53,54,56,'H,'z,32,32,32,32,32,32,32,32
0260 48362069732070726573736564202020 .byte 'H,54,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0270 663D31373630487A2020202020202020 .byte 'f,61,49,55,54,48,'H,'z,32,32,32,32,32,32,32,32
0280 48372069732070726573736564202020 .byte 'H,55,32,'i,'s,32,'p,'r,'e,'s,'s,'e,'d,32,32,32
0290 663D31393736487A2020202020202020 .byte 'f,61,49,57,55,54,'H,'z,32,32,32,32,32,32,32,32
.area text
; key_value -> 0,X
0000 _main::
0000 A7FF ais #-1
0002 95 tsx
0003 ; /*-------------------键盘实验--------------------------*
0003 ; *文 件 名:Keyboard.c *
0003 ; *硬件连接:PTA.7-4接键盘4根列线,PTA.3-0接键盘4根行线 *
0003 ; *程序描述:按下键盘按键,串口发送对应的键值 *
0003 ; *目 的:键盘扫描,键盘中断,键值识别,键盘编码 *
0003 ; *注 意:如果键盘插在实验板上排插孔,无须连线,若插在下 *
0003 ; * 排插孔,需手工接线 *
0003 ; *-------《嵌入式应用技术基础教程》教学实例------------*/
0003 ; /*[头文件]*/
0003 ; #include "GP32C.H"
0003 ; #include "KB.h" //键盘中断头文件
0003 ; #include "KeyBoard_define.h"
0003 ; #define MCLK 2457600
0003 ;
0003 ;
0003 ; char Play_Sound(unsigned char key);
0003 ; void PWMInit(unsigned int Period);
0003 ; void Key_handle(unsigned char key);
0003 ; extern void lcdshow(unsigned char str[]);
0003 ; extern unsigned char KB_Scan(void);
0003 ;
0003 ; unsigned char LCD_buff_fresh=0,LCD_buff1=0;
0003 ;
0003 ;
0003 ; const unsigned char Key_show[21][32]={
0003 ; "1 is pressed f=523Hz ",
0003 ; "2 is pressed f=558Hz ",
0003 ; "3 is pressed f=660Hz ",
0003 ; "4 is pressed f=698Hz ",
0003 ; "5 is pressed f=784Hz ",
0003 ; "6 is pressed f=880Hz ",
0003 ; "7 is pressed f=988Hz ",
0003 ; "L1 is pressed f=262Hz ",
0003 ; "L2 is pressed f=294Hz ",
0003 ; "L3 is pressed f=330Hz ",
0003 ; "L4 is pressed f=349Hz ",
0003 ; "L5 is pressed f=392Hz ",
0003 ; "L6 is pressed f=440Hz ",
0003 ; "L7 is pressed f=494Hz ",
0003 ; "H1 is pressed f=1046Hz ",
0003 ; "H2 is pressed f=1175Hz ",
0003 ; "H3 is pressed f=1318Hz ",
0003 ; "H4 is pressed f=1397Hz ",
0003 ; "H5 is pressed f=1568Hz ",
0003 ; "H6 is pressed f=1760Hz ",
0003 ; "H7 is pressed f=1976Hz "
0003 ; };
0003 ;
0003 ;
0003 ; /*[主程序]*/
0003 ; void main()
0003 ; {
0003 ; unsigned char key_value;
0003 ; asm("SEI"); //关总中断
0003 9B SEI
0004 ; KB_Init();
0004 CD0000 jsr _KB_Init
0007 95 tsx
0008 200E bra L3
000A L2:
000A CD0000 jsr _KB_Scan
000D 95 tsx
000E B700 sta *__r1
0010 F7 sta ,X
0011 87 psha
0012 CD001D jsr _Play_Sound
0015 A701 ais #1
0017 95 tsx
0018 L3:
0018 ; //INTKBSCR&= ~(1<<IntBit); //开放键盘中断(IMASKk=1)
0018 ; //asm("CLI"); //开总中断
0018 ; //主循环
0018 ; while(1)
0018 20F0 bra L2
001A X0:
001A L1:
001A A701 ais #1
001C .dbline 0 ; func end
001C 81 rts
.area lit
02A0 L8:
02A0 4E6F2076616C6964206B657920697320 .byte 'N,'o,32,'v,'a,'l,'i,'d,32,'k,'e,'y,32,'i,'s,32
02B0 62652070726573732120202020202020 .byte 'b,'e,32,'p,'r,'e,'s,'s,33,32,32,32,32,32,32,32
.area text
; LCD_buff -> 0,X
; backup_DDRD -> 32,X
; key -> 35,X
001D _Play_Sound::
001D A7DF ais #-33
001F 95 tsx
0020 ; {
0020 ; key_value=KB_Scan();
0020 ; Play_Sound(key_value);
0020 ; }
0020 ; }
0020 ;
0020 ; char Play_Sound(unsigned char key)
0020 ; {
0020 ; char backup_DDRD;
0020 ; if(key==0xff)
0020 E623 lda 35,X
0022 A1FF cmp #-1
0024 2641 bne L6
0026 ; {
0026 ; unsigned char LCD_buff[32]="No valid key is be press! ";
0026 3500 sthx *__r0
0028 A620 lda #32
002A 87 psha
002B 4F clra
002C 87 psha
002D A6A0 lda #<L8
002F 87 psha
0030 A6A0 lda #>L8
0032 87 psha
0033 B600 lda *__r1
0035 87 psha
0036 B600 lda *__r0
0038 87 psha
0039 CD0000 jsr __asgnblk
003C A706 ais #6
003E ; T1SC=0x38;
003E A638 lda #56
0040 B720 sta 0x20
0042 ; T1SC0=0b00100010;
0042 A622 lda #34
0044 B725 sta 0x25
0046 ; T1SC|= 0b00100000; //stop Timer
0046 1A20 bset #5,0x20
0048 ; LCD_buff_fresh++;
0048 3C00 inc *_LCD_buff_fresh
004A ; if(LCD_buff_fresh%255==0)
004A B600 lda *_LCD_buff_fresh
004C AEFF ldx #-1
004E 8C clrh
004F 52 div
0050 8B pshh
0051 86 pula
0052 95 tsx
0053 4D tsta
0054 2608 bne L9
0056 ; {
0056 ; lcdshow((unsigned char *)LCD_buff);
0056 89 pshx
0057 8B pshh
0058 CD0000 jsr _lcdshow
005B A702 ais #2
005D 95 tsx
005E ; }
005E L9:
005E ; LCD_buff1=1;
005E A601 lda #1
0060 B701 sta *_LCD_buff1
0062 ; return 1; //do something and return!!!
0062 A601 lda #1
0064 CC02AF jmp L5
0067 L6:
0067 ; }
0067 ;
0067 ; else
0067 ; {
0067 ; switch(key) //do something and return
0067 6F1E clr 30,X
0069 E623 lda 35,X
006B E71F sta 31,X
006D E61E lda 30,X
006F 2609 bne X1
0071 E61F lda 31,X
0073 A1A5 cmp #-91
0075 2603 bne X23
0077 CC0248 jmp L26
007A X23:
007A X1:
007A E61E lda 30,X
007C 2609 bne X2
007E E61F lda 31,X
0080 A1A6 cmp #-90
0082 2603 bne X24
0084 CC0226 jmp L23
0087 X24:
0087 X2:
0087 E61F lda 31,X
0089 B700 sta *__r1
008B E61E lda 30,X
008D B700 sta *__r0
008F 5500 ldhx *__r0
0091 6500A6 cphx #166
0094 95 tsx
0095 9303 ble X25
0097 CC013F jmp L36
009A X25:
009A L35:
009A E61E lda 30,X
009C 2609 bne X3
009E E61F lda 31,X
00A0 A145 cmp #69
00A2 2603 bne X26
00A4 CC027F jmp L31
00A7 X26:
00A7 X3:
00A7 E61E lda 30,X
00A9 2609 bne X4
00AB E61F lda 31,X
00AD A146 cmp #70
00AF 2603 bne X27
00B1 CC025E jmp L28
00B4 X27:
00B4 X4:
00B4 E61F lda 31,X
00B6 B700 sta *__r1
00B8 E61E lda 30,X
00BA B700 sta *__r0
00BC 5500 ldhx *__r0
00BE 650046 cphx #70
00C1 95 tsx
00C2 925E bgt L38
00C4 L37:
00C4 E61E lda 30,X
00C6 2609 bne X5
00C8 E61F lda 31,X
00CA A131 cmp #49
00CC 2603 bne X28
00CE CC01BA jmp L14
00D1 X28:
00D1 X5:
00D1 E61E lda 30,X
00D3 2609 bne X6
00D5 E61F lda 31,X
00D7 A132 cmp #50
00D9 2603 bne X29
00DB CC01C6 jmp L15
00DE X29:
00DE X6:
00DE E61E lda 30,X
00E0 2609 bne X7
00E2 E61F lda 31,X
00E4 A133 cmp #51
00E6 2603 bne X30
00E8 CC01D2 jmp L16
00EB X30:
00EB X7:
00EB E61E lda 30,X
00ED 2609 bne X8
00EF E61F lda 31,X
00F1 A134 cmp #52
00F3 2603 bne X31
00F5 CC01DE jmp L17
00F8 X31:
00F8 X8:
00F8 E61E lda 30,X
00FA 2609 bne X9
00FC E61F lda 31,X
00FE A135 cmp #53
0100 2603 bne X32
0102 CC01EA jmp L18
0105 X32:
0105 X9:
0105 E61E lda 30,X
0107 2609 bne X10
0109 E61F lda 31,X
010B A136 cmp #54
010D 2603 bne X33
010F CC01F6 jmp L19
0112 X33:
0112 X10:
0112 E61E lda 30,X
0114 2609 bne X11
0116 E61F lda 31,X
0118 A137 cmp #55
011A 2603 bne X34
011C CC0202 jmp L20
011F X34:
011F X11:
011F CC02A9 jmp L12
0122 L38:
0122 E61E lda 30,X
0124 2609 bne X12
0126 E61F lda 31,X
0128 A195 cmp #-107
012A 2603 bne X35
012C CC0295 jmp L33
012F X35:
012F X12:
012F E61E lda 30,X
0131 2609 bne X13
0133 E61F lda 31,X
0135 A196 cmp #-106
0137 2603 bne X36
0139 CC0274 jmp L30
013C X36:
013C X13:
013C CC02A9 jmp L12
013F L36:
013F E61E lda 30,X
0141 2609 bne X14
0143 E61F lda 31,X
0145 A1D5 cmp #-43
0147 2603 bne X37
0149 CC028A jmp L32
014C X37:
014C X14:
014C E61E lda 30,X
014E 2609 bne X15
0150 E61F lda 31,X
0152 A1D6 cmp #-42
0154 2603 bne X38
0156 CC0269 jmp L29
0159 X38:
0159 X15:
0159 E61F lda 31,X
015B B700 sta *__r1
015D E61E lda 30,X
015F B700 sta *__r0
0161 5500 ldhx *__r0
0163 6500D6 cphx #214
0166 95 tsx
0167 922A bgt L40
0169 L39:
0169 E61E lda 30,X
016B 2609 bne X16
016D E61F lda 31,X
016F A1C3 cmp #-61
0171 2603 bne X39
0173 CC02A0 jmp L34
0176 X39:
0176 X16:
0176 E61E lda 30,X
0178 2609 bne X17
017A E61F lda 31,X
017C A1C5 cmp #-59
017E 2603 bne X40
0180 CC023D jmp L25
0183 X40:
0183 X17:
0183 E61E lda 30,X
0185 2609 bne X18
0187 E61F lda 31,X
0189 A1C6 cmp #-58
018B 2603 bne X41
018D CC021A jmp L22
0190 X41:
0190 X18:
0190 CC02A9 jmp L12
0193 L40:
0193 E61E lda 30,X
0195 2609 bne X19
0197 E61F lda 31,X
0199 A1E3 cmp #-29
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -