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

📄 main.lis

📁 要用到开发工具SD-H08
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module main.c
                        .area text
                ;             mo -> 0,X
                ;              k -> 1,X
                ;              i -> 2,X
                ;              p -> 4,X
                ;             lk -> 6,X
 0000           _main::
 0000 A7F8              ais #-8
 0002 95                tsx
 0003           ; /*-----------------------------------------------------*
 0003           ; *工 程 名:H08SCI_1                                     *
 0003           ; *硬件连接:无                                           *
 0003           ; *程序描述:把收到的数据发送回去                         *
 0003           ; *目    的:初步掌握利用查询方式进行串行通信的基本知识   *
 0003           ; *-------《嵌入式应用技术基础教程》教学实例------------*/
 0003           ; //头文件
 0003           ; #include "SCI.h"         //串行通信子程序头文件
 0003           ; #include "light.h"     //灯的初始化头文件
 0003           ; //函数声明
 0003           ; extern void SCIInit(void);  //串行口初始化子程序
 0003           ; //内存变量声明
 0003           ; unsigned char SerialBuff[]; //存放接收数据的数组
 0003           ; void Delay1000(void);
 0003           ; //主程序
 0003           ; void main()
 0003           ;  {   int lk,i,p;  
 0003           ;        unsigned char k,mo;
 0003           ;        light_ctrla=0xff;
 0003 A6FF              lda #-1
 0005 B704              sta 0x4
 0007           ;      light_ctrlb=0x00;
 0007 3F05              clr 0x5
 0009           ;        SCIInit();       //调串行口初始化子程序
 0009 CD0000            jsr _SCIInit
 000C 95                tsx
 000D CC05E9            jmp L3
 0010           L2:
 0010           ;      while(1)
 0010           ;      {
 0010           ;       i=SCIReN(1,SerialBuff);         //等待接收1个数据
 0010 450000            ldhx #_SerialBuff
 0013 89                pshx
 0014 8B                pshh
 0015 A601              lda #1
 0017 87                psha
 0018 CD0000            jsr _SCIReN
 001B A703              ais #3
 001D 95                tsx
 001E B700              sta *__r1
 0020 6F02              clr 2,X
 0022 E703              sta 3,X
 0024           ;       if(i==0)
 0024 E602              lda 2,X
 0026 2703              beq X17
 0028 CC05E9            jmp L5
 002B           X17:
 002B E603              lda 3,X
 002D 2703              beq X18
 002F CC05E9            jmp L5
 0032           X18:
 0032           ;       { 
 0032           ;       k=SerialBuff[0];
 0032 B600              lda *_SerialBuff
 0034 E701              sta 1,X
 0036           ; //8个LED中只有一个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约4秒。
 0036           ;               if(SerialBuff[0]=='1')
 0036 B600              lda *_SerialBuff
 0038 A131              cmp #49
 003A 2703              beq X19
 003C CC0170            jmp L7
 003F           X19:
 003F           ;      			{   SCISendN(10,"LED效果1");
 003F 450029            ldhx #L9
 0042 89                pshx
 0043 8B                pshh
 0044 A60A              lda #10
 0046 87                psha
 0047 CD0000            jsr _SCISendN
 004A A703              ais #3
 004C 95                tsx
 004D           ;                           light_a=0xff;
 004D A6FF              lda #-1
 004F B700              sta 0
 0051           ;                           for(lk=0;lk<512;lk++)
 0051 6F07              clr 7,X
 0053 6F06              clr 6,X
 0055           L10:
 0055 CD05EF            jsr _Delay1000
 0058 95                tsx
 0059           L11:
 0059 E607              lda 7,X
 005B AB01              add #1
 005D E707              sta 7,X
 005F E606              lda 6,X
 0061 A900              adc #0
 0063 E706              sta 6,X
 0065 E607              lda 7,X
 0067 B700              sta *__r1
 0069 E606              lda 6,X
 006B B700              sta *__r0
 006D 5500              ldhx *__r0
 006F 650200            cphx #512
 0072 95                tsx
 0073 91E0              blt L10
 0075           ;                       Delay1000();
 0075           ;               for(i=0;i<8;i++)
 0075 6F03              clr 3,X
 0077 6F02              clr 2,X
 0079           L14:
 0079           ;             		{if((ReSendStatusR & (1<<ReTestBit))==0)
 0079 0A1643            brset #5,0x16,L18
 007C           ;                               {
 007C           ;                               light_a=(0xff)^(1<<i);
 007C 6E0000            mov #0,*__r0
 007F 6E0100            mov #1,*__r1
 0082 E603              lda 3,X
 0084 A40F              and #15
 0086 2706              beq X2
 0088           X1:
 0088 3800              lsl *__r1
 008A 3900              rol *__r0
 008C 4BFA              dbnza X1
 008E           X2:
 008E B600              lda *__r1
 0090 A8FF              eor #-1
 0092 B700              sta *__r1
 0094 B600              lda *__r0
 0096 A800              eor #0
 0098 4E0000            mov *__r1,0
 009B           ;                               for(lk=0;lk<512;lk++)
 009B 6F07              clr 7,X
 009D 6F06              clr 6,X
 009F           L20:
 009F CD05EF            jsr _Delay1000
 00A2 95                tsx
 00A3           L21:
 00A3 E607              lda 7,X
 00A5 AB01              add #1
 00A7 E707              sta 7,X
 00A9 E606              lda 6,X
 00AB A900              adc #0
 00AD E706              sta 6,X
 00AF E607              lda 7,X
 00B1 B700              sta *__r1
 00B3 E606              lda 6,X
 00B5 B700              sta *__r0
 00B7 5500              ldhx *__r0
 00B9 650200            cphx #512
 00BC 95                tsx
 00BD 91E0              blt L20
 00BF           ;                               Delay1000();
 00BF           ;                               }
 00BF           L18:
 00BF           L15:
 00BF E603              lda 3,X
 00C1 AB01              add #1
 00C3 E703              sta 3,X
 00C5 E602              lda 2,X
 00C7 A900              adc #0
 00C9 E702              sta 2,X
 00CB E603              lda 3,X
 00CD B700              sta *__r1
 00CF E602              lda 2,X
 00D1 B700              sta *__r0
 00D3 5500              ldhx *__r0
 00D5 650008            cphx #8
 00D8 95                tsx
 00D9 919E              blt L14
 00DB           ;                       }
 00DB           ;                       light_a=0xff;
 00DB A6FF              lda #-1
 00DD B700              sta 0
 00DF           ;                          for(lk=0;lk<512;lk++)
 00DF 6F07              clr 7,X
 00E1 6F06              clr 6,X
 00E3           L24:
 00E3 CD05EF            jsr _Delay1000
 00E6 95                tsx
 00E7           L25:
 00E7 E607              lda 7,X
 00E9 AB01              add #1
 00EB E707              sta 7,X
 00ED E606              lda 6,X
 00EF A900              adc #0
 00F1 E706              sta 6,X
 00F3 E607              lda 7,X
 00F5 B700              sta *__r1
 00F7 E606              lda 6,X
 00F9 B700              sta *__r0
 00FB 5500              ldhx *__r0
 00FD 650200            cphx #512
 0100 95                tsx
 0101 91E0              blt L24
 0103           ;                       Delay1000();
 0103           ;                       for(i=0;i<8;i++)
 0103 6F03              clr 3,X
 0105 6F02              clr 2,X
 0107           L28:
 0107           ;             		{if((ReSendStatusR & (1<<ReTestBit))==0)
 0107 0A1643            brset #5,0x16,L32
 010A           ;                               {
 010A           ;                               light_a=(0xff)^(0x80>>i);
 010A 6E0000            mov #0,*__r0
 010D 6E8000            mov #-128,*__r1
 0110 E603              lda 3,X
 0112 A40F              and #15
 0114 2706              beq X4
 0116           X3:
 0116 3700              asr *__r0
 0118 3600              ror *__r1
 011A 4BFA              dbnza X3
 011C           X4:
 011C B600              lda *__r1
 011E A8FF              eor #-1
 0120 B700              sta *__r1
 0122 B600              lda *__r0
 0124 A800              eor #0
 0126 4E0000            mov *__r1,0
 0129           ;                               for(lk=0;lk<512;lk++)
 0129 6F07              clr 7,X
 012B 6F06              clr 6,X
 012D           L34:
 012D CD05EF            jsr _Delay1000
 0130 95                tsx
 0131           L35:
 0131 E607              lda 7,X
 0133 AB01              add #1
 0135 E707              sta 7,X
 0137 E606              lda 6,X
 0139 A900              adc #0
 013B E706              sta 6,X
 013D E607              lda 7,X
 013F B700              sta *__r1
 0141 E606              lda 6,X
 0143 B700              sta *__r0
 0145 5500              ldhx *__r0
 0147 650200            cphx #512
 014A 95                tsx
 014B 91E0              blt L34
 014D           ;                               Delay1000();
 014D           ;                               }
 014D           L32:
 014D           L29:
 014D E603              lda 3,X
 014F AB01              add #1
 0151 E703              sta 3,X
 0153 E602              lda 2,X
 0155 A900              adc #0
 0157 E702              sta 2,X
 0159 E603              lda 3,X
 015B B700              sta *__r1
 015D E602              lda 2,X
 015F B700              sta *__r0
 0161 5500              ldhx *__r0
 0163 650008            cphx #8
 0166 95                tsx
 0167 919E              blt L28
 0169           ;                       }
 0169           ;                       light_a=0xff;   
 0169 A6FF              lda #-1
 016B B700              sta 0
 016D           ;                                                       
 016D           ;                       }       
 016D CC05E9            jmp L8
 0170           L7:
 0170           ;  //8个LED中只有2个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约4秒。
 0170           ;      		else if(SerialBuff[0]=='2')
 0170 B600              lda *_SerialBuff
 0172 A132              cmp #50
 0174 2703              beq X20
 0176 CC02AA            jmp L38
 0179           X20:
 0179           ;      			{  SCISendN(10,"LED效果2 ");
 0179 45001F            ldhx #L40
 017C 89                pshx
 017D 8B                pshh
 017E A60A              lda #10
 0180 87                psha
 0181 CD0000            jsr _SCISendN
 0184 A703              ais #3
 0186 95                tsx
 0187           ;                          light_a=0xff;
 0187 A6FF              lda #-1
 0189 B700              sta 0
 018B           ;                           for(lk=0;lk<512;lk++)
 018B 6F07              clr 7,X
 018D 6F06              clr 6,X
 018F           L41:
 018F CD05EF            jsr _Delay1000
 0192 95                tsx
 0193           L42:
 0193 E607              lda 7,X
 0195 AB01              add #1
 0197 E707              sta 7,X
 0199 E606              lda 6,X
 019B A900              adc #0
 019D E706              sta 6,X
 019F E607              lda 7,X
 01A1 B700              sta *__r1
 01A3 E606              lda 6,X
 01A5 B700              sta *__r0
 01A7 5500              ldhx *__r0
 01A9 650200            cphx #512
 01AC 95                tsx
 01AD 91E0              blt L41
 01AF           ;                       Delay1000();
 01AF           ;               for(i=0;i<8;i++)
 01AF 6F03              clr 3,X
 01B1 6F02              clr 2,X
 01B3           L45:
 01B3           ;             		{if((ReSendStatusR & (1<<ReTestBit))==0)
 01B3 0A1643            brset #5,0x16,L49
 01B6           ;                               {
 01B6           ;                               light_a=(0xff)^(3<<i);
 01B6 6E0000            mov #0,*__r0
 01B9 6E0300            mov #3,*__r1
 01BC E603              lda 3,X
 01BE A40F              and #15
 01C0 2706              beq X6
 01C2           X5:
 01C2 3800              lsl *__r1
 01C4 3900              rol *__r0
 01C6 4BFA              dbnza X5
 01C8           X6:
 01C8 B600              lda *__r1
 01CA A8FF              eor #-1
 01CC B700              sta *__r1
 01CE B600              lda *__r0
 01D0 A800              eor #0
 01D2 4E0000            mov *__r1,0
 01D5           ;                               for(lk=0;lk<512;lk++)
 01D5 6F07              clr 7,X
 01D7 6F06              clr 6,X
 01D9           L51:
 01D9 CD05EF            jsr _Delay1000
 01DC 95                tsx
 01DD           L52:
 01DD E607              lda 7,X
 01DF AB01              add #1
 01E1 E707              sta 7,X
 01E3 E606              lda 6,X
 01E5 A900              adc #0
 01E7 E706              sta 6,X
 01E9 E607              lda 7,X
 01EB B700              sta *__r1
 01ED E606              lda 6,X
 01EF B700              sta *__r0
 01F1 5500              ldhx *__r0
 01F3 650200            cphx #512
 01F6 95                tsx
 01F7 91E0              blt L51
 01F9           ;                               Delay1000();
 01F9           ;                               }
 01F9           L49:
 01F9           L46:

⌨️ 快捷键说明

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