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

📄 main.lis

📁 实现A/D转换功能,含有实验结果.据有很大的修改空间
💻 LIS
字号:
                        .module main.c
                        .area text
                ;              q -> 0,X
                ;              a -> 1,X
                ;              t -> 5,X
                ;              p -> 7,X
                ;              b -> 8,X
 0000           _main::
 0000 A7F7              ais #-9
 0002 95                tsx
 0003           ; /*-----------------------------------------------------*
 0003           ; *工 程 名:AD.prj                                       *
 0003           ; *硬件连接:PTB0/AD0 接模拟量输入端                      *
 0003           ; *程序描述:获取1路A/D转换结果,并滤波,通过串口发送出去   *
 0003           ; *目   的:掌握AD转换的基本编程方法                      *
 0003           ; *注   意:用SD-1实验板测试时,把液晶拔出,否则可能影响结果*
 0003           ; *----------《嵌入式应用技术基础教程》教学实例---------*/
 0003           ; /*[头文件]*/
 0003           ; #include "GP32C.H"
 0003           ; /*[函数声明]*/
 0003           ; extern void SCIInit(void);    //串行口函数声明
 0003           ; extern void SCISend1(unsigned char o);
 0003           ; extern void SCISendN(unsigned char n,unsigned char ch[]);
 0003           ; //有关A/D转换函数声明
 0003           ; extern unsigned char adave(unsigned char n,unsigned char channel); 
 0003           ; extern unsigned char advalue(unsigned char channel);
 0003           ; extern unsigned char admid(unsigned char channel);
 0003           ; /*[主程序]*/
 0003           ; void main(void)
 0003           ;  {  float a;
 0003           ;     int t;
 0003           ;     unsigned char p,b,q;
 0003           ;       SCIInit();         //串行口初始化      
 0003 CD0000            jsr _SCIInit
 0006 95                tsx
 0007           ;       ADCLK=0b00110000;  //A/D用内部总线时钟,2分频
 0007 A630              lda #48
 0009 B73E              sta 0x3e
 000B CC022B            jmp L3
 000E           L2:
 000E           ; 	while(1){
 000E           ;       
 000E           ;      a=adave(20,0)/51.0;
 000E 4F                clra
 000F 87                psha
 0010 A614              lda #20
 0012 87                psha
 0013 CD0000            jsr _adave
 0016 A702              ais #2
 0018 95                tsx
 0019 3F00              clr *__r0
 001B 87                psha
 001C B600              lda *__r0
 001E 87                psha
 001F 4F                clra
 0020 87                psha
 0021 87                psha
 0022 9E6D03            tst 3,SP
 0025 2A06              bpl X0
 0027 9E6302            com 2,SP
 002A 9E6301            com 1,SP
 002D           X0:
 002D CD0000            jsr __long_to_SPfloat
 0030 4F                clra
 0031 87                psha
 0032 87                psha
 0033 A64C              lda #76
 0035 87                psha
 0036 A642              lda #66
 0038 87                psha
 0039 CD0000            jsr __SPFloat_div
 003C A704              ais #4
 003E 86                pula
 003F E701              sta 1,X
 0041 86                pula
 0042 E702              sta 2,X
 0044 86                pula
 0045 E703              sta 3,X
 0047 86                pula
 0048 E704              sta 4,X
 004A           ;       t=a*100; 
 004A 4F                clra
 004B 87                psha
 004C 87                psha
 004D A6C8              lda #-56
 004F 87                psha
 0050 A642              lda #66
 0052 87                psha
 0053 E604              lda 4,X
 0055 87                psha
 0056 E603              lda 3,X
 0058 87                psha
 0059 E602              lda 2,X
 005B 87                psha
 005C E601              lda 1,X
 005E 87                psha
 005F CD0000            jsr __SPFloat_mul
 0062 A704              ais #4
 0064 CD0000            jsr __SPFloat_to_long
 0067 A702              ais #2
 0069 86                pula
 006A E705              sta 5,X
 006C 86                pula
 006D E706              sta 6,X
 006F           ;       SCISendN(14,"通道0电压值是");
 006F 450015            ldhx #L5
 0072 89                pshx
 0073 8B                pshh
 0074 A60E              lda #14
 0076 87                psha
 0077 CD0000            jsr _SCISendN
 007A A703              ais #3
 007C 95                tsx
 007D           ;       p=t/100;
 007D E606              lda 6,X
 007F B700              sta *__rlo
 0081 E605              lda 5,X
 0083 B700              sta *__rhi
 0085 A664              lda #100
 0087 87                psha
 0088 4F                clra
 0089 87                psha
 008A CD0000            jsr __divmod16s
 008D A702              ais #2
 008F 4E0000            mov *__rlo,*__r1
 0092 B600              lda *__r1
 0094 E707              sta 7,X
 0096           ;       SCISend1(p+0x30);
 0096 AB30              add #48
 0098 87                psha
 0099 CD0000            jsr _SCISend1
 009C A701              ais #1
 009E           ;        SCISend1('.');
 009E A62E              lda #46
 00A0 87                psha
 00A1 CD0000            jsr _SCISend1
 00A4 A701              ais #1
 00A6 95                tsx
 00A7           ;        b=t%100/10;
 00A7 E606              lda 6,X
 00A9 B700              sta *__rlo
 00AB E605              lda 5,X
 00AD B700              sta *__rhi
 00AF A664              lda #100
 00B1 87                psha
 00B2 4F                clra
 00B3 87                psha
 00B4 CD0000            jsr __divmod16s
 00B7 86                pula
 00B8 B700              sta *__r0
 00BA 86                pula
 00BB B700              sta *__rlo
 00BD 4E0000            mov *__r0,*__rhi
 00C0 A60A              lda #10
 00C2 87                psha
 00C3 4F                clra
 00C4 87                psha
 00C5 CD0000            jsr __divmod16s
 00C8 A702              ais #2
 00CA 4E0000            mov *__rlo,*__r1
 00CD B600              lda *__r1
 00CF E708              sta 8,X
 00D1           ;       SCISend1(b+0x30);
 00D1 AB30              add #48
 00D3 87                psha
 00D4 CD0000            jsr _SCISend1
 00D7 A701              ais #1
 00D9 95                tsx
 00DA           ;       q=t%10;
 00DA E606              lda 6,X
 00DC B700              sta *__rlo
 00DE E605              lda 5,X
 00E0 B700              sta *__rhi
 00E2 A60A              lda #10
 00E4 87                psha
 00E5 4F                clra
 00E6 87                psha
 00E7 CD0000            jsr __divmod16s
 00EA 86                pula
 00EB 86                pula
 00EC F7                sta ,X
 00ED           ;       SCISend1(q+0x30);
 00ED AB30              add #48
 00EF 87                psha
 00F0 CD0000            jsr _SCISend1
 00F3 A701              ais #1
 00F5           ;       SCISendN(3,"伏");
 00F5 450012            ldhx #L6
 00F8 89                pshx
 00F9 8B                pshh
 00FA A603              lda #3
 00FC 87                psha
 00FD CD0000            jsr _SCISendN
 0100 A703              ais #3
 0102 95                tsx
 0103           ;       for(p=0;p<1000;p++)
 0103 6F07              clr 7,X
 0105 200E              bra L10
 0107           L7:
 0107 6F08              clr 8,X
 0109 2002              bra L14
 010B           L11:
 010B           L12:
 010B 6C08              inc 8,X
 010D           L14:
 010D E608              lda 8,X
 010F A1FA              cmp #-6
 0111 25F8              blo L11
 0113           L8:
 0113 6C07              inc 7,X
 0115           L10:
 0115 E607              lda 7,X
 0117 A1E8              cmp #-24
 0119 25EC              blo L7
 011B 45000E            ldhx #L15
 011E 89                pshx
 011F 8B                pshh
 0120 A607              lda #7
 0122 87                psha
 0123 CD0000            jsr _SCISendN
 0126 A703              ais #3
 0128 A601              lda #1
 012A 87                psha
 012B A614              lda #20
 012D 87                psha
 012E CD0000            jsr _adave
 0131 A702              ais #2
 0133 95                tsx
 0134 3F00              clr *__r0
 0136 87                psha
 0137 B600              lda *__r0
 0139 87                psha
 013A 4F                clra
 013B 87                psha
 013C 87                psha
 013D 9E6D03            tst 3,SP
 0140 2A06              bpl X1
 0142 9E6302            com 2,SP
 0145 9E6301            com 1,SP
 0148           X1:
 0148 CD0000            jsr __long_to_SPfloat
 014B 4F                clra
 014C 87                psha
 014D 87                psha
 014E A64C              lda #76
 0150 87                psha
 0151 A642              lda #66
 0153 87                psha
 0154 CD0000            jsr __SPFloat_div
 0157 A704              ais #4
 0159 86                pula
 015A E701              sta 1,X
 015C 86                pula
 015D E702              sta 2,X
 015F 86                pula
 0160 E703              sta 3,X
 0162 86                pula
 0163 E704              sta 4,X
 0165 4F                clra
 0166 87                psha
 0167 87                psha
 0168 A6C8              lda #-56
 016A 87                psha
 016B A642              lda #66
 016D 87                psha
 016E E604              lda 4,X
 0170 87                psha
 0171 E603              lda 3,X
 0173 87                psha
 0174 E602              lda 2,X
 0176 87                psha
 0177 E601              lda 1,X
 0179 87                psha
 017A CD0000            jsr __SPFloat_mul
 017D A704              ais #4
 017F CD0000            jsr __SPFloat_to_long
 0182 A702              ais #2
 0184 86                pula
 0185 E705              sta 5,X
 0187 86                pula
 0188 E706              sta 6,X
 018A 450000            ldhx #L16
 018D 89                pshx
 018E 8B                pshh
 018F A60E              lda #14
 0191 87                psha
 0192 CD0000            jsr _SCISendN
 0195 A703              ais #3
 0197 95                tsx
 0198 E606              lda 6,X
 019A B700              sta *__rlo
 019C E605              lda 5,X
 019E B700              sta *__rhi
 01A0 A664              lda #100
 01A2 87                psha
 01A3 4F                clra
 01A4 87                psha
 01A5 CD0000            jsr __divmod16s
 01A8 A702              ais #2
 01AA 4E0000            mov *__rlo,*__r1
 01AD B600              lda *__r1
 01AF E707              sta 7,X
 01B1 AB30              add #48
 01B3 87                psha
 01B4 CD0000            jsr _SCISend1
 01B7 A701              ais #1
 01B9 A62E              lda #46
 01BB 87                psha
 01BC CD0000            jsr _SCISend1
 01BF A701              ais #1
 01C1 95                tsx
 01C2 E606              lda 6,X
 01C4 B700              sta *__rlo
 01C6 E605              lda 5,X
 01C8 B700              sta *__rhi
 01CA A664              lda #100
 01CC 87                psha
 01CD 4F                clra
 01CE 87                psha
 01CF CD0000            jsr __divmod16s
 01D2 86                pula
 01D3 B700              sta *__r0
 01D5 86                pula
 01D6 B700              sta *__rlo
 01D8 4E0000            mov *__r0,*__rhi
 01DB A60A              lda #10
 01DD 87                psha
 01DE 4F                clra
 01DF 87                psha
 01E0 CD0000            jsr __divmod16s
 01E3 A702              ais #2
 01E5 4E0000            mov *__rlo,*__r1
 01E8 B600              lda *__r1
 01EA E708              sta 8,X
 01EC AB30              add #48
 01EE 87                psha
 01EF CD0000            jsr _SCISend1
 01F2 A701              ais #1
 01F4 95                tsx
 01F5 E606              lda 6,X
 01F7 B700              sta *__rlo
 01F9 E605              lda 5,X
 01FB B700              sta *__rhi
 01FD A60A              lda #10
 01FF 87                psha
 0200 4F                clra
 0201 87                psha
 0202 CD0000            jsr __divmod16s
 0205 86                pula
 0206 86                pula
 0207 F7                sta ,X
 0208 AB30              add #48
 020A 87                psha
 020B CD0000            jsr _SCISend1
 020E A701              ais #1
 0210 450012            ldhx #L6
 0213 89                pshx
 0214 8B                pshh
 0215 A603              lda #3
 0217 87                psha
 0218 CD0000            jsr _SCISendN
 021B A703              ais #3
 021D 45000E            ldhx #L15
 0220 89                pshx
 0221 8B                pshh
 0222 A607              lda #7
 0224 87                psha
 0225 CD0000            jsr _SCISendN
 0228 A703              ais #3
 022A 95                tsx
 022B           L3:
 022B CC000E            jmp L2
 022E           X2:
 022E           L1:
 022E A709              ais #9
 0230                   .dbline 0 ; func end
 0230 81                rts
                        .area lit
 0000           L16:
 0000 CDA8B5C031B5E7D1B9D6B5CAC700      .byte 205,168,181,192,49,181,231,209,185,214,181,202,199,0
 000E           L15:
 000E 20202000          .byte 32,32,32,0
 0012           L6:
 0012 B7FC00            .byte 183,252,0
 0015           L5:
 0015 CDA8B5C030B5E7D1B9D6B5CAC700      .byte 205,168,181,192,48,181,231,209,185,214,181,202,199,0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -