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

📄 main.lis

📁 要用到开发工具SD-H08
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module main.c
                        .area text
 0000           _main::
 0000           ; /*-----------------------------------------------------*
 0000           ; *工 程 名:Prgframe.prj                                 *
 0000           ; *硬件连接:PTA.1接指示灯                                *
 0000           ; *程序描述:指示灯PTA.1闪烁                              *
 0000           ; *目    的:第一个freescale(Motorola) HC08系列MCU程序框架*
 0000           ; *说    明:提供Motorola MCU的编程框架,供教学入门使用   *
 0000           ; *注    意:如果延时不够长的话,会发觉灯不会闪烁,而是一 *
 0000           ; *         直亮,这是由于人的视觉的引起的。             *
 0000           ; *--------《嵌入式应用技术基础教程》教学实例-----------*/
 0000           ; /*[头文件]*/
 0000           ; /*[???]*/
 0000           ; #include "GP32C.h"                 //映像寄存器地址头文件
 0000           ; /*[指示灯所接引脚定义]*/
 0000           ; #define  light_a     PTA         //灯(Light)接在PTA口
 0000           ; #define  light_ctrla DDRA         //相应的方向寄存器
 0000           ; #define light_b      PTB
 0000           ; #define  light_ctrlb  DDRB
 0000           ; #define  light_pin   i         //灯所在的引脚
 0000           ; /*[全局变量声明]*/
 0000           ; unsigned char i;
 0000           ; int k,z;
 0000           ; /*[延时子函数声明]*/
 0000           ; void Delay1000(void);
 0000           ; /*[主函数]*/
 0000           ; void main()
 0000           ;   {  
 0000           ;      light_ctrla=0xff;
 0000 A6FF              lda #-1
 0002 B704              sta 0x4
 0004           ;      light_ctrlb=0x00;
 0004 3F05              clr 0x5
 0006 CC0280            jmp L3
 0009           L2:
 0009           ;      while(1)
 0009           ;   		{
 0009           ;   //8个LED中只有一个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约4秒。
 0009           ; 			if((light_b&0x03)==0x00)
 0009 B601              lda 0x1
 000B A503              bit #3
 000D 2703              beq X17
 000F CC00A8            jmp L5
 0012           X17:
 0012           ;      			{	for(i=0;i<8;i++)
 0012 3F04              clr *_i
 0014 202A              bra L10
 0016           L7:
 0016           ;      				{
 0016           ;      				   light_a=~(1<<light_pin);
 0016 6E0100            mov #1,*__r0
 0019 B604              lda *_i
 001B A407              and #7
 001D 2704              beq X2
 001F           X1:
 001F 3800              lsl *__r0
 0021 4BFC              dbnza X1
 0023           X2:
 0023 B600              lda *__r0
 0025 43                coma
 0026 B700              sta 0
 0028           ;                                  for(k=0;k<512;k++)             //延时0.25秒
 0028 3F03              clr *_k+1
 002A 3F02              clr *_k
 002C           L11:
 002C CD0284            jsr _Delay1000
 002F 95                tsx
 0030           L12:
 0030 5502              ldhx *_k
 0032 AF01              aix #1
 0034 3502              sthx *_k
 0036 5502              ldhx *_k
 0038 650200            cphx #512
 003B 95                tsx
 003C 91EE              blt L11
 003E           L8:
 003E 3C04              inc *_i
 0040           L10:
 0040 B604              lda *_i
 0042 A108              cmp #8
 0044 25D0              blo L7
 0046           ;                                  Delay1000();
 0046           ;                               }
 0046           ;                                  light_a=0xff;
 0046 A6FF              lda #-1
 0048 B700              sta 0
 004A           ;                                  for(k=0;k<512;k++)             //延时0.25秒
 004A 3F03              clr *_k+1
 004C 3F02              clr *_k
 004E           L15:
 004E CD0284            jsr _Delay1000
 0051 95                tsx
 0052           L16:
 0052 5502              ldhx *_k
 0054 AF01              aix #1
 0056 3502              sthx *_k
 0058 5502              ldhx *_k
 005A 650200            cphx #512
 005D 95                tsx
 005E 91EE              blt L15
 0060           ;                                  Delay1000();
 0060           ;                                  Delay1000();
 0060 CD0284            jsr _Delay1000
 0063 95                tsx
 0064           ;                               for(i=0;i<=8;i++)
 0064 3F04              clr *_i
 0066 2037              bra L22
 0068           L19:
 0068           ;      				{
 0068           ;      					light_a=~(0x80>>light_pin);
 0068 B604              lda *_i
 006A 6E0000            mov #0,*__r2
 006D 6E8000            mov #-128,*__r3
 0070 A40F              and #15
 0072 2706              beq X4
 0074           X3:
 0074 3700              asr *__r2
 0076 3600              ror *__r3
 0078 4BFA              dbnza X3
 007A           X4:
 007A 4E0000            mov *__r2,*__r0
 007D 4E0000            mov *__r3,*__r1
 0080 3300              com *__r1
 0082 3300              com *__r0
 0084 4E0000            mov *__r1,0
 0087           ;                                       for(k=0;k<512;k++)
 0087 3F03              clr *_k+1
 0089 3F02              clr *_k
 008B           L23:
 008B CD0284            jsr _Delay1000
 008E 95                tsx
 008F           L24:
 008F 5502              ldhx *_k
 0091 AF01              aix #1
 0093 3502              sthx *_k
 0095 5502              ldhx *_k
 0097 650200            cphx #512
 009A 95                tsx
 009B 91EE              blt L23
 009D           L20:
 009D 3C04              inc *_i
 009F           L22:
 009F B604              lda *_i
 00A1 A108              cmp #8
 00A3 23C3              bls L19
 00A5           ;                                       Delay1000();
 00A5           ;                               }
 00A5           ;                       }
 00A5 CC0280            jmp L6
 00A8           L5:
 00A8           ;      				
 00A8           ;   //8个LED中只有两个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约4秒。
 00A8           ; 			else if((light_b&0x03)==0x01)
 00A8 B601              lda 0x1
 00AA A403              and #3
 00AC A101              cmp #1
 00AE 2703              beq X18
 00B0 CC0145            jmp L27
 00B3           X18:
 00B3           ;      			{	for(i=0;i<8;i++)
 00B3 3F04              clr *_i
 00B5 202A              bra L32
 00B7           L29:
 00B7           ;      				{
 00B7           ;      					light_a=~(3<<light_pin);
 00B7 6E0300            mov #3,*__r0
 00BA B604              lda *_i
 00BC A407              and #7
 00BE 2704              beq X6
 00C0           X5:
 00C0 3800              lsl *__r0
 00C2 4BFC              dbnza X5
 00C4           X6:
 00C4 B600              lda *__r0
 00C6 43                coma
 00C7 B700              sta 0
 00C9           ;                                       for(k=0;k<512;k++)             //延时0.25秒
 00C9 3F03              clr *_k+1
 00CB 3F02              clr *_k
 00CD           L33:
 00CD CD0284            jsr _Delay1000
 00D0 95                tsx
 00D1           L34:
 00D1 5502              ldhx *_k
 00D3 AF01              aix #1
 00D5 3502              sthx *_k
 00D7 5502              ldhx *_k
 00D9 650200            cphx #512
 00DC 95                tsx
 00DD 91EE              blt L33
 00DF           L30:
 00DF 3C04              inc *_i
 00E1           L32:
 00E1 B604              lda *_i
 00E3 A108              cmp #8
 00E5 25D0              blo L29
 00E7           ;                                       Delay1000();
 00E7           ;                               }
 00E7           ;                                   light_a=0xff;
 00E7 A6FF              lda #-1
 00E9 B700              sta 0
 00EB           ;                                   for(k=0;k<512;k++)             //延时0.25秒
 00EB 3F03              clr *_k+1
 00ED 3F02              clr *_k
 00EF           L37:
 00EF CD0284            jsr _Delay1000
 00F2 95                tsx
 00F3           L38:
 00F3 5502              ldhx *_k
 00F5 AF01              aix #1
 00F7 3502              sthx *_k
 00F9 5502              ldhx *_k
 00FB 650200            cphx #512
 00FE 95                tsx
 00FF 91EE              blt L37
 0101           ;                                       Delay1000();
 0101           ;                               for(i=0;i<=8;i++)
 0101 3F04              clr *_i
 0103 2037              bra L44
 0105           L41:
 0105           ;      				{
 0105           ;      					light_a=~(0xc0>>light_pin);
 0105 B604              lda *_i
 0107 6E0000            mov #0,*__r2
 010A 6EC000            mov #-64,*__r3
 010D A40F              and #15
 010F 2706              beq X8
 0111           X7:
 0111 3700              asr *__r2
 0113 3600              ror *__r3
 0115 4BFA              dbnza X7
 0117           X8:
 0117 4E0000            mov *__r2,*__r0
 011A 4E0000            mov *__r3,*__r1
 011D 3300              com *__r1
 011F 3300              com *__r0
 0121 4E0000            mov *__r1,0
 0124           ;                                       for(k=0;k<512;k++)
 0124 3F03              clr *_k+1
 0126 3F02              clr *_k
 0128           L45:
 0128 CD0284            jsr _Delay1000
 012B 95                tsx
 012C           L46:
 012C 5502              ldhx *_k
 012E AF01              aix #1
 0130 3502              sthx *_k
 0132 5502              ldhx *_k
 0134 650200            cphx #512
 0137 95                tsx
 0138 91EE              blt L45
 013A           L42:
 013A 3C04              inc *_i
 013C           L44:
 013C B604              lda *_i
 013E A108              cmp #8
 0140 23C3              bls L41
 0142           ;                                       Delay1000();
 0142           ;                               }
 0142           ;                       }
 0142 CC0280            jmp L28
 0145           L27:
 0145           ; //8个LED中只有一个灯亮,亮灯顺序是从左到右,再从右到左,一个周期时间长度约8秒。
 0145           ; 			else if((light_b&0x03)==0x02)
 0145 B601              lda 0x1
 0147 A403              and #3
 0149 A102              cmp #2

⌨️ 快捷键说明

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