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

📄 test.lst

📁 ICC编译绝对可用M16的HD7279驱动测试程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
(0130)       while (digit[4]<2)               // 如果计数达到20000就停止 
(0131)       { 
(0132)          digit[0]++; 
    0110 91800069  LDS	R24,_digit
    0112 5F8F      SUBI	R24,0xFF
    0113 93800069  STS	_digit,R24
(0133)          if (digit[0]>9) 
    0115 E089      LDI	R24,0x9
    0116 90200069  LDS	R2,_digit
    0118 1582      CP	R24,R2
    0119 F5B8      BCC	0x0151
(0134)          { 
(0135)             digit[0]=0; 
    011A 2422      CLR	R2
    011B 92200069  STS	_digit,R2
(0136)             digit[1]++; 
    011D 9180006A  LDS	R24,_digit+1
    011F 5F8F      SUBI	R24,0xFF
    0120 9380006A  STS	_digit+1,R24
(0137)             if (digit[1]>9) 
    0122 E089      LDI	R24,0x9
    0123 9020006A  LDS	R2,_digit+1
    0125 1582      CP	R24,R2
    0126 F550      BCC	0x0151
(0138)             { 
(0139)                digit[1]=0; 
    0127 2422      CLR	R2
    0128 9220006A  STS	_digit+1,R2
(0140)                digit[2]++; 
    012A 9180006B  LDS	R24,_digit+2
    012C 5F8F      SUBI	R24,0xFF
    012D 9380006B  STS	_digit+2,R24
(0141)                if (digit[2]>9) 
    012F E089      LDI	R24,0x9
    0130 9020006B  LDS	R2,_digit+2
    0132 1582      CP	R24,R2
    0133 F4E8      BCC	0x0151
(0142)                { 
(0143)                   digit[2]=0; 
    0134 2422      CLR	R2
    0135 9220006B  STS	_digit+2,R2
(0144)                   digit[3]++; 
    0137 9180006C  LDS	R24,_digit+3
    0139 5F8F      SUBI	R24,0xFF
    013A 9380006C  STS	_digit+3,R24
(0145)                   if (digit[3]>9) 
    013C E089      LDI	R24,0x9
    013D 9020006C  LDS	R2,_digit+3
    013F 1582      CP	R24,R2
    0140 F480      BCC	0x0151
(0146)                   { 
(0147)                      digit[3]=0; 
    0141 2422      CLR	R2
    0142 9220006C  STS	_digit+3,R2
(0148)                      digit[4]++; 
    0144 9180006D  LDS	R24,0x6D
    0146 5F8F      SUBI	R24,0xFF
    0147 9380006D  STS	0x6D,R24
(0149)                      if (digit[4]>9) 
    0149 E089      LDI	R24,0x9
    014A 9020006D  LDS	R2,0x6D
    014C 1582      CP	R24,R2
    014D F418      BCC	0x0151
(0150)                      { 
(0151)                         digit[4]=0; 
    014E 2422      CLR	R2
    014F 9220006D  STS	0x6D,R2
(0152)                      } 
(0153)                   } 
(0154)                } 
(0155)             } 
(0156)          } 
(0157)          write7279(DECODE0,digit[0]); 
    0151 91200069  LDS	R18,_digit
    0153 E800      LDI	R16,0x80
    0154 D0C8      RCALL	_write7279
(0158)          if (digit[0]==0) 
    0155 90200069  LDS	R2,_digit
    0157 2022      TST	R2
    0158 F4E1      BNE	0x0175
(0159)          { 
(0160)             write7279(DECODE0+1,digit[1]); 
    0159 9120006A  LDS	R18,_digit+1
    015B E801      LDI	R16,0x81
    015C D0C0      RCALL	_write7279
(0161)             if (digit[1]==0) 
    015D 9020006A  LDS	R2,_digit+1
    015F 2022      TST	R2
    0160 F4A1      BNE	0x0175
(0162)             { 
(0163)                write7279(DECODE0+2,digit[2]); 
    0161 9120006B  LDS	R18,_digit+2
    0163 E802      LDI	R16,0x82
    0164 D0B8      RCALL	_write7279
(0164)                if (digit[2]==0) 
    0165 9020006B  LDS	R2,_digit+2
    0167 2022      TST	R2
    0168 F461      BNE	0x0175
(0165)                { 
(0166)                   write7279(DECODE0+3,digit[3]); 
    0169 9120006C  LDS	R18,_digit+3
    016B E803      LDI	R16,0x83
    016C D0B0      RCALL	_write7279
(0167)                   if (digit[3]==0) 
    016D 9020006C  LDS	R2,_digit+3
    016F 2022      TST	R2
    0170 F421      BNE	0x0175
(0168)                   { 
(0169)                      write7279(DECODE0+4,digit[4]); 
    0171 9120006D  LDS	R18,0x6D
    0173 E804      LDI	R16,0x84
    0174 D0A8      RCALL	_write7279
    0175 9180006D  LDS	R24,0x6D
    0177 3082      CPI	R24,2
    0178 F408      BCC	0x017A
    0179 CF96      RJMP	0x0110
(0170)                   } 
(0171)                } 
(0172)             } 
(0173)          } 
(0174)       } 
(0175)       dely_ms(150); 
    017A E906      LDI	R16,0x96
    017B E010      LDI	R17,0
    017C D110      RCALL	_dely_ms
(0176)       send_byte(CMD_RESET);            // 清除显示 
    017D EA04      LDI	R16,0xA4
    017E D0B2      RCALL	_send_byte
(0177) 
(0178) //************************************************* 
(0179) //         下载数据但不译码指令测试 
(0180) //************************************************* 
(0181)       write7279(UNDECODE+7,0x49);         // 在第8位按不译码方式显示一字符'三' 
    017F E429      LDI	R18,0x49
    0180 E907      LDI	R16,0x97
    0181 D09B      RCALL	_write7279
(0182)       dely_ms(80); 
    0182 E500      LDI	R16,0x50
    0183 E010      LDI	R17,0
    0184 D108      RCALL	_dely_ms
(0183) 
(0184) //************************************************* 
(0185) //               循环左/右移测试 
(0186) //      "三"字向右运动3次,再向左运动3次 
(0187) //************************************************* 
(0188)       for (j=0;j<23;j++) 
    0185 2422      CLR	R2
    0186 92200068  STS	_j,R2
    0188 C00A      RJMP	0x0193
(0189)       { 
(0190)          send_byte(RTR_CYCLE);      // 循环右移23次 
    0189 EA02      LDI	R16,0xA2
    018A D0A6      RCALL	_send_byte
(0191)          dely_ms(12); 
    018B E00C      LDI	R16,0xC
    018C E010      LDI	R17,0
    018D D0FF      RCALL	_dely_ms
    018E 91800068  LDS	R24,_j
    0190 5F8F      SUBI	R24,0xFF
    0191 93800068  STS	_j,R24
    0193 91800068  LDS	R24,_j
    0195 3187      CPI	R24,0x17
    0196 F390      BCS	0x0189
(0192)       } 
(0193)       for (j=0;j<23;j++) 
    0197 2422      CLR	R2
    0198 92200068  STS	_j,R2
    019A C00A      RJMP	0x01A5
(0194)       { 
(0195)          send_byte(RTL_CYCLE);      // 循环左移23次 
    019B EA03      LDI	R16,0xA3
    019C D094      RCALL	_send_byte
(0196)          dely_ms(12); 
    019D E00C      LDI	R16,0xC
    019E E010      LDI	R17,0
    019F D0ED      RCALL	_dely_ms
    01A0 91800068  LDS	R24,_j
    01A2 5F8F      SUBI	R24,0xFF
    01A3 93800068  STS	_j,R24
    01A5 91800068  LDS	R24,_j
    01A7 3187      CPI	R24,0x17
    01A8 F390      BCS	0x019B
(0197)       } 
(0198) 
(0199) //********************************************* 
(0200) //      译码方式0及左移指令测试 
(0201) //********************************************* 
(0202)       for (j=0;j<16;j++) 
    01A9 2422      CLR	R2
    01AA 92200068  STS	_j,R2
    01AC C00E      RJMP	0x01BB
(0203)       { 
(0204)          send_byte(RTL_UNCYL);      // 不循环左移指令 
    01AD EA01      LDI	R16,0xA1
    01AE D082      RCALL	_send_byte
(0205)          write7279(DECODE0,j);      // 译码方式0指令,显示在第1位 
    01AF 91200068  LDS	R18,_j
    01B1 E800      LDI	R16,0x80
    01B2 D06A      RCALL	_write7279
(0206)          dely_ms(50); 
    01B3 E302      LDI	R16,0x32
    01B4 E010      LDI	R17,0
    01B5 D0D7      RCALL	_dely_ms
    01B6 91800068  LDS	R24,_j
    01B8 5F8F      SUBI	R24,0xFF
    01B9 93800068  STS	_j,R24
    01BB 91800068  LDS	R24,_j
    01BD 3180      CPI	R24,0x10
    01BE F370      BCS	0x01AD
(0207)       } 
(0208)       dely_ms(150); 
    01BF E906      LDI	R16,0x96
    01C0 E010      LDI	R17,0
    01C1 D0CB      RCALL	_dely_ms
(0209)       send_byte(CMD_RESET); 
    01C2 EA04      LDI	R16,0xA4
    01C3 D06D      RCALL	_send_byte
(0210) 
(0211) //********************************************* 
(0212) //      译码方式1及右移指令测试 
(0213) //********************************************* 
(0214)       for (j=0;j<16;j++) 
    01C4 2422      CLR	R2
    01C5 92200068  STS	_j,R2
    01C7 C00E      RJMP	0x01D6
(0215)       { 
(0216)          send_byte(RTR_UNCYL);      // 不循环左移指令 
    01C8 EA00      LDI	R16,0xA0
    01C9 D067      RCALL	_send_byte
(0217)          write7279(DECODE1+7,j);      // 译码方式0指令,显示在第8位 
    01CA 91200068  LDS	R18,_j
    01CC EC0F      LDI	R16,0xCF
    01CD D04F      RCALL	_write7279
(0218)          dely_ms(50); 
    01CE E302      LDI	R16,0x32
    01CF E010      LDI	R17,0
    01D0 D0BC      RCALL	_dely_ms
    01D1 91800068  LDS	R24,_j
    01D3 5F8F      SUBI	R24,0xFF
    01D4 93800068  STS	_j,R24
    01D6 91800068  LDS	R24,_j
    01D8 3180      CPI	R24,0x10
    01D9 F370      BCS	0x01C8
(0219)       } 
(0220)       dely_ms(150); 
    01DA E906      LDI	R16,0x96
    01DB E010      LDI	R17,0
    01DC D0B0      RCALL	_dely_ms
(0221) 
(0222) //********************************************* 
(0223) //              消隐指令测试 
(0224) //********************************************* 
(0225)       k=0xff; 
    01DD EF8F      LDI	R24,0xFF
    01DE 93800067  STS	_k,R24
(0226)       for (j=0;j<6;j++) 
    01E0 2422      CLR	R2
    01E1 92200068  STS	_j,R2
    01E3 C010      RJMP	0x01F4
(0227)       { 
(0228)          k=k/2; 
    01E4 90200067  LDS	R2,_k
    01E6 9426      LSR	R2
    01E7 92200067  STS	_k,R2
(0229)          write7279(ACTCTL,k);      // 每隔一秒钟增加一个消隐位 
    01E9 2D22      MOV	R18,R2
    01EA E908      LDI	R16,0x98
    01EB D031      RCALL	_write7279
(0230)          dely_ms(100); 
    01EC E604      LDI	R16,0x64
    01ED E010      LDI	R17,0
    01EE D09E      RCALL	_dely_ms
    01EF 91800068  LDS	R24,_j
    01F1 5F8F      SUBI	R24,0xFF
    01F2 93800068  STS	_j,R24
    01F4 91800068  LDS	R24,_j
    01F6 3086      CPI	R24,6
    01F7 F360      BCS	0x01E4
(0231)       } 
(0232)       write7279(ACTCTL,0xff);         // 恢复8位显示 
    01F8 EF2F      LDI	R18,0xFF
    01F9 E908      LDI	R16,0x98
    01FA D022      RCALL	_write7279
(0233)       dely_ms(100); 
    01FB E604      LDI	R16,0x64
    01FC E010      LDI	R17,0
    01FD D08F      RCALL	_dely_ms
(0234)       send_byte(CMD_RESET);         // 清除显示 
    01FE EA04      LDI	R16,0xA4
    01FF D031      RCALL	_send_byte
(0235) 
(0236) //********************************************** 
(0237) //         段点亮指令和段关闭指令 
(0238) //********************************************** 
(0239)       for (j=0;j<64;j++) 
    0200 2422      CLR	R2
    0201 92200068  STS	_j,R2
    0203 C011      RJMP	0x0215
(0240)       { 
(0241)          write7279(SEGON,j);         // 将64个显示段逐个点亮 
    0204 91200068  LDS	R18,_j
    0206 EE00      LDI	R16,0xE0
    0207 D015      RCALL	_write7279
(0242)          write7279(SEGOFF,j-1);      // 同时将前一个显示段关闭 
    0208 91200068  LDS	R18,_j
    020A 5021      SUBI	R18,1
    020B EC00      LDI	R16,0xC0
    020C D010      RCALL	_write7279
(0243)          dely_ms(20); 
    020D E104      LDI	R16,0x14
    020E E010      LDI	R17,0
    020F D07D      RCALL	_dely_ms
    0210 91800068  LDS	R24,_j
    0212 5F8F      SUBI	R24,0xFF
    0213 93800068  STS	_j,R24
    0215 91800068  LDS	R24,_j
    0217 3480      CPI	R24,0x40
    0218 F358      BCS	0x0204
    0219 CE40      RJMP	0x005A
(0244)       } 
(0245)    } 

⌨️ 快捷键说明

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