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

📄 cycle.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                         .module cycle.c
                         .area vector(rom, abs)
                         .org 6
 0006 84C0              rjmp _Icp_timer1
                         .area lit(rom, con, rel)
 0000                 _tabel::
 0000 3F06              .byte 63,6
 0002 5B4F              .byte 91,'O
 0004 666D              .byte 'f,'m
 0006 7D07              .byte 125,7
 0008 7F6F              .byte 127,'o
 000A 777C              .byte 'w,124
 000C 395E              .byte 57,94
 000E 7971              .byte 'y,'q
 0010                   .dbfile D:\ICC-AVR\examples.sl\CYCLE\cycle.c
 0010                   .dbsym s tabel _tabel Ac[16:16]
                         .area data(ram, con, rel)
 0000                   .dbfile D:\ICC-AVR\examples.sl\CYCLE\cycle.c
 0000                 _ledbuff::
 0000                   .blkb 2
                         .area idata
 0000 3F3F              .byte 63,63
                         .area data(ram, con, rel)
 0002                   .dbfile D:\ICC-AVR\examples.sl\CYCLE\cycle.c
 0002                   .blkb 2
                         .area idata
 0002 3F3F              .byte 63,63
                         .area data(ram, con, rel)
 0004                   .dbfile D:\ICC-AVR\examples.sl\CYCLE\cycle.c
 0004                   .blkb 2
                         .area idata
 0004 3F3F              .byte 63,63
                         .area data(ram, con, rel)
 0006                   .dbfile D:\ICC-AVR\examples.sl\CYCLE\cycle.c
 0006                   .dbsym s ledbuff _ledbuff Ac[6:6]
                         .area text(rom, con, rel)
 0000                   .dbfile D:\ICC-AVR\examples.sl\CYCLE\cycle.c
 0000                   .dbfunc s delay_1ms _delay_1ms fI
                       ;              i -> R16,R17
                         .even
 0000                 _delay_1ms::
 0000                   .dbline 19{
                       ; /**********************************************
                       ;              http://www.sl.com.cn
                       ;       双龙电子公司----周期测量演示程序(ICCAVR)
                       ;                  作者:詹卫前
                       ;           1、学习定时器T1捕捉(捕获)中断的使用         
                       ; **********************************************/
                       ; #include <io8515.h>
                       ; #pragma interrupt_handler Icp_timer1:4   //   设置ICP中断
                       ;           /*   七段译码字形表     */        
                       ; const unsigned char tabel[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
                       ;           /*     显示缓冲区       */
                       ; unsigned char ledbuff[]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};
                       ; unsigned int oldcount;
                       ; unsigned int newcount;
                       ; /******************************
                       ;          1ms延时程序
                       ; ******************************/ 
                       ; void delay_1ms(void)
                       ; { 
 0000                   .dbline 21
                       ;  unsigned int i;
                       ;  for(i=1;i<1142;i++)
 0000 01E0              ldi R16,1
 0002 10E0              ldi R17,0
 0004 02C0              rjmp L5
 0006                 L2:
 0006                   .dbline 22
 0006                 L3:
 0006                   .dbline 21
 0006 0F5F              subi R16,255  ; offset = 1
 0008 1F4F              sbci R17,255
 000A                 L5:
 000A                   .dbline 21
 000A 0637              cpi R16,118
 000C E4E0              ldi R30,4
 000E 1E07              cpc R17,R30
 0010 D0F3              brlo L2
 0012                   .dbline 23}
                       ;     ;
                       ; }
 0012                 L1:
 0012 0895              ret
 0014                   .dbsym r i 16 i
 0014                   .dbfunc s display _display fI
                       ;              i -> R20
                         .even
 0014                 _display::
 0014 00D0              rcall push_gset1
 0016                   .dbline 28{
                       ; /******************************
                       ;       六路动态扫描显示电路
                       ; ******************************/ 
                       ; void display(void)
                       ; {
 0016                   .dbline 30
                       ;  unsigned char i;
                       ;  for (i=0;i<6;i++)
 0016 4427              clr R20
 0018 16C0              rjmp L10
 001A                 L7:
 001A                   .dbline 31
 001A                   .dbline 32
 001A 80E0              ldi R24,<_ledbuff
 001C 90E0              ldi R25,>_ledbuff
 001E E42F              mov R30,R20
 0020 FF27              clr R31
 0022 E80F              add R30,R24
 0024 F91F              adc R31,R25
 0026 2080              ldd R2,z+0
 0028 28BA              out 0x18,R2
 002A                   .dbline 33
 002A 01E0              ldi R16,1
 002C 142F              mov R17,R20
 002E 00D0              rcall lsl8
 0030 202E              mov R2,R16
 0032 2094              com R2
 0034 22BA              out 0x12,R2
 0036                   .dbline 34
 0036 E4DF              rcall _delay_1ms
 0038                   .dbline 35
 0038 01E0              ldi R16,1
 003A 142F              mov R17,R20
 003C 00D0              rcall lsl8
 003E 22B2              in R2,0x12
 0040 202A              or R2,R16
 0042 22BA              out 0x12,R2
 0044                   .dbline 36
 0044                 L8:
 0044                   .dbline 30
 0044 4395              inc R20
 0046                 L10:
 0046                   .dbline 30
 0046 4630              cpi R20,6
 0048 40F3              brlo L7
 004A                   .dbline 37}
                       ;   {
                       ;    PORTB=ledbuff[i];//将显示缓冲区数据送PORTB口
                       ;    PORTD=~(1<<i);   //开始显示
                       ;    delay_1ms();     //每一位显示保持一定时间
                       ;    PORTD|=(1<<i);   //关闭显示
                       ;   }
                       ; }
 004A                 L6:
 004A 00D0              rcall pop_gset1
 004C 0895              ret
 004E                   .dbsym r i 20 c
 004E                   .dbfunc s hextobcd _hextobcd fI
                       ;           temp -> R20
                       ;              i -> R22
                       ;          count -> R10,R11
                         .even
 004E                 _hextobcd::
 004E 00D0              rcall push_gset3
 0050 A02E              mov R10,R16
 0052 B12E              mov R11,R17
 0054                   .dbline 42{
                       ; /************************************
                       ;   将count十六进制数据转换为LED七段码
                       ; ************************************/
                       ; void hextobcd(unsigned int count)
                       ; {
 0054                   .dbline 44
                       ;   unsigned char i,temp;
                       ;   for (i=0;i<6;i++)
 0054 6627              clr R22
 0056 1FC0              rjmp L15
 0058                 L12:
 0058                   .dbline 45
 0058                   .dbline 45
 0058 2AE0              ldi R18,10
 005A 30E0              ldi R19,0
 005C 0A2D              mov R16,R10
 005E 1B2D              mov R17,R11
 0060 00D0              rcall mod16u
 0062 402F              mov R20,R16
 0064 512F              mov R21,R17
 0066                   .dbline 46
 0066 80E0              ldi R24,<_tabel
 0068 90E0              ldi R25,>_tabel
 006A 242E              mov R2,R20
 006C 3324              clr R3
 006E 280E              add R2,R24
 0070 391E              adc R3,R25
 0072 E22D              mov R30,R2
 0074 F32D              mov R31,R3
 0076 C895              lpm
 0078 80E0              ldi R24,<_ledbuff
 007A 90E0              ldi R25,>_ledbuff
 007C E62F              mov R30,R22
 007E FF27              clr R31

⌨️ 快捷键说明

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