📄 main.lis
字号:
.module main.c
.area text
.area func_lit
0000 L30:
0000 00C4 .word L8
0002 00D6 .word L9
0004 00E8 .word L10
0006 00FA .word L11
0008 010C .word L12
000A 011E .word L13
000C 0130 .word L14
000E 0238 .word L5
0010 0238 .word L5
0012 0238 .word L5
0014 0238 .word L5
0016 0238 .word L5
0018 0238 .word L5
001A 0238 .word L5
001C 0238 .word L5
001E 0238 .word L5
0020 0142 .word L15
0022 0154 .word L16
0024 0166 .word L17
0026 0178 .word L18
0028 018A .word L19
002A 019C .word L20
002C 01AE .word L21
.area text
; KB_valve -> 2,X
0000 _main::
0000 A7FD ais #-3
0002 95 tsx
0003 ; /*-----------------------------------------------------*
0003 ; *工 程 名:PWM.prj *
0003 ; *硬件接线:PTD.4,即定时器1通道0(21脚)接指示灯或蜂鸣器 *
0003 ; *程序描述:通过对PWM占空比的调节实现现指示灯的渐亮的功能*
0003 ; * 当占空比为100%时再从0%逐渐增加 *
0003 ; *目 的:学习HC08系列定时器脉宽调制功能 *
0003 ; *---------《嵌入式应用技术基础教程》教学实例----------*/
0003 ; /*[头文件]*/
0003 ; #include "GP32C.H" //包含头文件
0003 ; #include "KB.h"
0003 ; /*函数声明*/
0003 ; extern void PWMInit(unsigned int ); //PWM初始化
0003 ; extern void PWMconf(unsigned int); //PWM设置
0003 ; extern void Delay_ms(unsigned char ); //延时
0003 ; /*主程序*/
0003 ; void main()
0003 ; {
0003 ; unsigned char KB_valve;
0003 ; DDRB=0xFF;
0003 A6FF lda #-1
0005 B705 sta 0x5
0007 ; PTB=0xFF;
0007 A6FF lda #-1
0009 B701 sta 0x1
000B CC0242 jmp L3
000E L2:
000E ; //[主循环]
000E ; while(1)
000E ; {
000E ; //KB_Init();
000E ; KB_valve=KB_Scan();
000E CD0000 jsr _KB_Scan
0011 95 tsx
0012 B700 sta *__r1
0014 E702 sta 2,X
0016 ; KB_valve=KB_Def(KB_valve);
0016 87 psha
0017 CD0000 jsr _KB_Def
001A A701 ais #1
001C 95 tsx
001D B700 sta *__r1
001F E702 sta 2,X
0021 ; switch(KB_valve)
0021 7F clr ,X
0022 E701 sta 1,X
0024 F6 lda ,X
0025 B700 sta *__r0
0027 5500 ldhx *__r0
0029 650031 cphx #49
002C 95 tsx
002D 9003 bge X9
002F CC0238 jmp L5
0032 X9:
0032 E601 lda 1,X
0034 B700 sta *__r1
0036 F6 lda ,X
0037 B700 sta *__r0
0039 5500 ldhx *__r0
003B 650047 cphx #71
003E 95 tsx
003F 922C bgt L29
0041 E601 lda 1,X
0043 A031 sub #49
0045 B700 sta *__r1
0047 F6 lda ,X
0048 A200 sbc #0
004A B700 sta *__r0
004C 3800 lsl *__r1
004E 3900 rol *__r0
0050 B600 lda *__r1
0052 AB00 add #<L30
0054 B700 sta *__r1
0056 B600 lda *__r0
0058 A900 adc #>L30
005A B700 sta *__r0
005C 5500 ldhx *__r0
005E E601 lda 1,x
0060 B700 sta *__r1
0062 F6 lda ,x
0063 95 tsx
0064 B700 sta *__r0
0066 B600 lda *__r1
0068 87 psha
0069 B600 lda *__r0
006B 87 psha
006C 81 rts
006D L29:
006D F6 lda ,X
006E 2609 bne X0
0070 E601 lda 1,X
0072 A161 cmp #97
0074 2603 bne X10
0076 CC01C0 jmp L22
0079 X10:
0079 X0:
0079 F6 lda ,X
007A 2609 bne X1
007C E601 lda 1,X
007E A162 cmp #98
0080 2603 bne X11
0082 CC01D2 jmp L23
0085 X11:
0085 X1:
0085 F6 lda ,X
0086 2609 bne X2
0088 E601 lda 1,X
008A A163 cmp #99
008C 2603 bne X12
008E CC01E3 jmp L24
0091 X12:
0091 X2:
0091 F6 lda ,X
0092 2609 bne X3
0094 E601 lda 1,X
0096 A164 cmp #100
0098 2603 bne X13
009A CC01F4 jmp L25
009D X13:
009D X3:
009D F6 lda ,X
009E 2609 bne X4
00A0 E601 lda 1,X
00A2 A165 cmp #101
00A4 2603 bne X14
00A6 CC0205 jmp L26
00A9 X14:
00A9 X4:
00A9 F6 lda ,X
00AA 2609 bne X5
00AC E601 lda 1,X
00AE A166 cmp #102
00B0 2603 bne X15
00B2 CC0216 jmp L27
00B5 X15:
00B5 X5:
00B5 F6 lda ,X
00B6 2609 bne X6
00B8 E601 lda 1,X
00BA A167 cmp #103
00BC 2603 bne X16
00BE CC0227 jmp L28
00C1 X16:
00C1 X6:
00C1 CC0238 jmp L5
00C4 X7:
00C4 ; {
00C4 L8:
00C4 ;
00C4 ; case '1':PWMconf(523);PTB=0xF0;break;//1~7
00C4 45020B ldhx #523
00C7 89 pshx
00C8 8B pshh
00C9 CD0000 jsr _PWMconf
00CC A702 ais #2
00CE 95 tsx
00CF A6F0 lda #-16
00D1 B701 sta 0x1
00D3 CC0242 jmp L6
00D6 L9:
00D6 ; case '2':PWMconf(587);PTB=0xF0;break;
00D6 45024B ldhx #587
00D9 89 pshx
00DA 8B pshh
00DB CD0000 jsr _PWMconf
00DE A702 ais #2
00E0 95 tsx
00E1 A6F0 lda #-16
00E3 B701 sta 0x1
00E5 CC0242 jmp L6
00E8 L10:
00E8 ; case '3':PWMconf(659);PTB=0xF0;break;
00E8 450293 ldhx #659
00EB 89 pshx
00EC 8B pshh
00ED CD0000 jsr _PWMconf
00F0 A702 ais #2
00F2 95 tsx
00F3 A6F0 lda #-16
00F5 B701 sta 0x1
00F7 CC0242 jmp L6
00FA L11:
00FA ; case '4':PWMconf(698);PTB=0xF0;break;
00FA 4502BA ldhx #698
00FD 89 pshx
00FE 8B pshh
00FF CD0000 jsr _PWMconf
0102 A702 ais #2
0104 95 tsx
0105 A6F0 lda #-16
0107 B701 sta 0x1
0109 CC0242 jmp L6
010C L12:
010C ; case '5':PWMconf(784);PTB=0xF0;break;
010C 450310 ldhx #784
010F 89 pshx
0110 8B pshh
0111 CD0000 jsr _PWMconf
0114 A702 ais #2
0116 95 tsx
0117 A6F0 lda #-16
0119 B701 sta 0x1
011B CC0242 jmp L6
011E L13:
011E ; case '6':PWMconf(880);PTB=0xF0;break;
011E 450370 ldhx #880
0121 89 pshx
0122 8B pshh
0123 CD0000 jsr _PWMconf
0126 A702 ais #2
0128 95 tsx
0129 A6F0 lda #-16
012B B701 sta 0x1
012D CC0242 jmp L6
0130 L14:
0130 ; case '7':PWMconf(988);PTB=0xF0;break;
0130 4503DC ldhx #988
0133 89 pshx
0134 8B pshh
0135 CD0000 jsr _PWMconf
0138 A702 ais #2
013A 95 tsx
013B A6F0 lda #-16
013D B701 sta 0x1
013F CC0242 jmp L6
0142 L15:
0142 ;
0142 ; case 'A':PWMconf(262);PTB=0xF0;break;//#1~~~~#7
0142 450106 ldhx #262
0145 89 pshx
0146 8B pshh
0147 CD0000 jsr _PWMconf
014A A702 ais #2
014C 95 tsx
014D A6F0 lda #-16
014F B701 sta 0x1
0151 CC0242 jmp L6
0154 L16:
0154 ; case 'B':PWMconf(294);PTB=0xF0;break;
0154 450126 ldhx #294
0157 89 pshx
0158 8B pshh
0159 CD0000 jsr _PWMconf
015C A702 ais #2
015E 95 tsx
015F A6F0 lda #-16
0161 B701 sta 0x1
0163 CC0242 jmp L6
0166 L17:
0166 ; case 'C':PWMconf(330);PTB=0xF0;break;
0166 45014A ldhx #330
0169 89 pshx
016A 8B pshh
016B CD0000 jsr _PWMconf
016E A702 ais #2
0170 95 tsx
0171 A6F0 lda #-16
0173 B701 sta 0x1
0175 CC0242 jmp L6
0178 L18:
0178 ; case 'D':PWMconf(349);PTB=0xF0;break;
0178 45015D ldhx #349
017B 89 pshx
017C 8B pshh
017D CD0000 jsr _PWMconf
0180 A702 ais #2
0182 95 tsx
0183 A6F0 lda #-16
0185 B701 sta 0x1
0187 CC0242 jmp L6
018A L19:
018A ; case 'E':PWMconf(392);PTB=0xF0;break;
018A 450188 ldhx #392
018D 89 pshx
018E 8B pshh
018F CD0000 jsr _PWMconf
0192 A702 ais #2
0194 95 tsx
0195 A6F0 lda #-16
0197 B701 sta 0x1
0199 CC0242 jmp L6
019C L20:
019C ; case 'F':PWMconf(440);PTB=0xF0;break;
019C 4501B8 ldhx #440
019F 89 pshx
01A0 8B pshh
01A1 CD0000 jsr _PWMconf
01A4 A702 ais #2
01A6 95 tsx
01A7 A6F0 lda #-16
01A9 B701 sta 0x1
01AB CC0242 jmp L6
01AE L21:
01AE ; case 'G':PWMconf(494);PTB=0xF0;break;
01AE 4501EE ldhx #494
01B1 89 pshx
01B2 8B pshh
01B3 CD0000 jsr _PWMconf
01B6 A702 ais #2
01B8 95 tsx
01B9 A6F0 lda #-16
01BB B701 sta 0x1
01BD CC0242 jmp L6
01C0 L22:
01C0 ;
01C0 ; case 'a':PWMconf(1046);PTB=0xF0;break;//*1~~~~*7
01C0 450416 ldhx #1046
01C3 89 pshx
01C4 8B pshh
01C5 CD0000 jsr _PWMconf
01C8 A702 ais #2
01CA 95 tsx
01CB A6F0 lda #-16
01CD B701 sta 0x1
01CF CC0242 jmp L6
01D2 L23:
01D2 ; case 'b':PWMconf(1175);PTB=0xF0;break;
01D2 450497 ldhx #1175
01D5 89 pshx
01D6 8B pshh
01D7 CD0000 jsr _PWMconf
01DA A702 ais #2
01DC 95 tsx
01DD A6F0 lda #-16
01DF B701 sta 0x1
01E1 205F bra L6
01E3 L24:
01E3 ; case 'c':PWMconf(1318);PTB=0xF0;break;
01E3 450526 ldhx #1318
01E6 89 pshx
01E7 8B pshh
01E8 CD0000 jsr _PWMconf
01EB A702 ais #2
01ED 95 tsx
01EE A6F0 lda #-16
01F0 B701 sta 0x1
01F2 204E bra L6
01F4 L25:
01F4 ; case 'd':PWMconf(1397);PTB=0xF0;break;
01F4 450575 ldhx #1397
01F7 89 pshx
01F8 8B pshh
01F9 CD0000 jsr _PWMconf
01FC A702 ais #2
01FE 95 tsx
01FF A6F0 lda #-16
0201 B701 sta 0x1
0203 203D bra L6
0205 L26:
0205 ; case 'e':PWMconf(1568);PTB=0xF0;break;
0205 450620 ldhx #1568
0208 89 pshx
0209 8B pshh
020A CD0000 jsr _PWMconf
020D A702 ais #2
020F 95 tsx
0210 A6F0 lda #-16
0212 B701 sta 0x1
0214 202C bra L6
0216 L27:
0216 ; case 'f':PWMconf(1760);PTB=0xF0;break;
0216 4506E0 ldhx #1760
0219 89 pshx
021A 8B pshh
021B CD0000 jsr _PWMconf
021E A702 ais #2
0220 95 tsx
0221 A6F0 lda #-16
0223 B701 sta 0x1
0225 201B bra L6
0227 L28:
0227 ; case 'g':PWMconf(1976);PTB=0xF0;break;
0227 4507B8 ldhx #1976
022A 89 pshx
022B 8B pshh
022C CD0000 jsr _PWMconf
022F A702 ais #2
0231 95 tsx
0232 A6F0 lda #-16
0234 B701 sta 0x1
0236 200A bra L6
0238 L5:
0238 ;
0238 ; default :T1SC|=(1<<5);T1SC0=0x0e;PTB=0xFF;break;//停止定时器1计数器计数
0238 1A20 bset #5,0x20
023A A60E lda #14
023C B725 sta 0x25
023E A6FF lda #-1
0240 B701 sta 0x1
0242 L6:
0242 L3:
0242 CC000E jmp L2
0245 X8:
0245 L1:
0245 A703 ais #3
0247 .dbline 0 ; func end
0247 81 rts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -