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

📄 ds1302.lis

📁 用avr的m16产生pwm波控制舵机的程序!
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 0098           ;   asm("nop");
 0098 0000              nop
 009A                   .dbline 69
 009A           ;   asm("nop");
 009A 0000              nop
 009C                   .dbline 70
 009C           ;   asm("nop");
 009C 0000              nop
 009E                   .dbline 71
 009E           ; T_PORT|=T_RST;                  //时钟信号低时拉高RST初始化
 009E D89A              sbi 0x1b,0
 00A0                   .dbline 72
 00A0           ; temp=addr;
 00A0 642F              mov R22,R20
 00A2                   .dbline 73
 00A2           ;   for(i=0;i<8;i++) 
 00A2 AA24              clr R10
 00A4 0FC0              xjmp L23
 00A6           L20:
 00A6                   .dbline 74
 00A6           ;   { 
 00A6                   .dbline 75
 00A6           ;       if(temp&(1<<i)) 
 00A6 01E0              ldi R16,1
 00A8 1A2D              mov R17,R10
 00AA 0E940000          xcall lsl8
 00AE 262E              mov R2,R22
 00B0 2022              and R2,R16
 00B2 11F0              breq L24
 00B4                   .dbline 76
 00B4           ;                T_PORT |=T_IO ;  
 00B4 D99A              sbi 0x1b,1
 00B6 01C0              xjmp L25
 00B8           L24:
 00B8                   .dbline 78
 00B8           ;       else 
 00B8           ;                T_PORT &=~T_IO ;
 00B8 D998              cbi 0x1b,1
 00BA           L25:
 00BA                   .dbline 79
 00BA 0000              nop
 00BC                   .dbline 80
 00BC 0000              nop
 00BE                   .dbline 81
 00BE DA9A              sbi 0x1b,2
 00C0                   .dbline 82
 00C0 DA98              cbi 0x1b,2
 00C2                   .dbline 83
 00C2           L21:
 00C2                   .dbline 73
 00C2 A394              inc R10
 00C4           L23:
 00C4                   .dbline 73
 00C4 8A2D              mov R24,R10
 00C6 8830              cpi R24,8
 00C8 70F3              brlo L20
 00CA                   .dbline 84
 00CA           ;     asm("nop");
 00CA           ;     asm("nop"); 
 00CA           ;       T_PORT |=T_CLK;             //时钟上升沿写入数据        
 00CA           ;       T_PORT &=~T_CLK;             //时钟拉低电平 
 00CA           ;   }
 00CA           ;    T_DDR&=~T_IO;
 00CA D198              cbi 0x1a,1
 00CC                   .dbline 85
 00CC           ; for(i=0;i<8;i++)
 00CC AA24              clr R10
 00CE 16C0              xjmp L29
 00D0           L26:
 00D0                   .dbline 86
 00D0           ;  { 
 00D0                   .dbline 87
 00D0           ;     k=(T_PIN&T_IO);
 00D0 49B3              in R20,0x19
 00D2 4270              andi R20,2
 00D4                   .dbline 88
 00D4           ;   if(k==T_IO)
 00D4 4230              cpi R20,2
 00D6 31F4              brne L30
 00D8                   .dbline 89
 00D8           ;       temp|=(1<<i);
 00D8 01E0              ldi R16,1
 00DA 1A2D              mov R17,R10
 00DC 0E940000          xcall lsl8
 00E0 602B              or R22,R16
 00E2 07C0              xjmp L31
 00E4           L30:
 00E4                   .dbline 91
 00E4           ;   else
 00E4           ;         temp&=~(1<<i);
 00E4 01E0              ldi R16,1
 00E6 1A2D              mov R17,R10
 00E8 0E940000          xcall lsl8
 00EC 202E              mov R2,R16
 00EE 2094              com R2
 00F0 6221              and R22,R2
 00F2           L31:
 00F2                   .dbline 92
 00F2 0000              nop
 00F4                   .dbline 93
 00F4 0000              nop
 00F6                   .dbline 94
 00F6 DA9A              sbi 0x1b,2
 00F8                   .dbline 95
 00F8 DA98              cbi 0x1b,2
 00FA                   .dbline 96
 00FA           L27:
 00FA                   .dbline 85
 00FA A394              inc R10
 00FC           L29:
 00FC                   .dbline 85
 00FC 8A2D              mov R24,R10
 00FE 8830              cpi R24,8
 0100 38F3              brlo L26
 0102                   .dbline 97
 0102           ;           asm("nop");
 0102           ;        asm("nop"); 
 0102           ;   T_PORT|=T_CLK;              //上升沿读出数据 
 0102           ;    T_PORT &=~T_CLK;             //时钟电平拉低 
 0102           ;   }
 0102           ;   T_DDR|=T_IO;
 0102 D19A              sbi 0x1a,1
 0104                   .dbline 98
 0104           ;   T_PORT&=~T_CLK; 
 0104 DA98              cbi 0x1b,2
 0106                   .dbline 99
 0106           ;   T_PORT&=~T_RST;             //禁止DS1302 
 0106 D898              cbi 0x1b,0
 0108                   .dbline 100
 0108           ;  return(temp);
 0108 062F              mov R16,R22
 010A                   .dbline -2
 010A           L19:
 010A 0E940000          xcall pop_gset3
 010E                   .dbline 0 ; func end
 010E 0895              ret
 0110                   .dbsym r k 20 c
 0110                   .dbsym r temp 22 c
 0110                   .dbsym r i 10 c
 0110                   .dbsym r addr 20 c
 0110                   .dbend
 0110                   .dbfunc e init_1302 _init_1302 fV
                        .even
 0110           _init_1302::
 0110                   .dbline -1
 0110                   .dbline 104
 0110           ; }
 0110           ; //1302初始化
 0110           ; void init_1302()
 0110           ; {
 0110                   .dbline 105
 0110           ; write_data(0x8e,0x00);      //关闭寄存器写保护
 0110 2227              clr R18
 0112 0EE8              ldi R16,142
 0114 7FDF              xcall _write_data
 0116                   .dbline 106
 0116           ; write_data(0x90,0x00);            //写充电寄存器
 0116 2227              clr R18
 0118 00E9              ldi R16,144
 011A 7CDF              xcall _write_data
 011C                   .dbline 107
 011C           ; write_data(0x80,0x00);      //秒寄存器停止位置0,时钟启动,初值设为0
 011C 2227              clr R18
 011E 00E8              ldi R16,128
 0120 79DF              xcall _write_data
 0122                   .dbline -2
 0122           L32:
 0122                   .dbline 0 ; func end
 0122 0895              ret
 0124                   .dbend
 0124                   .dbfunc e init_time _init_time fV
 0124           ;           year -> y+12
 0124           ;              d -> y+10
 0124           ;          month -> y+8
 0124           ;            day -> y+6
 0124           ;           hour -> y+4
 0124           ;            min -> R20
 0124           ;            sec -> R22
                        .even
 0124           _init_time::
 0124 0E940000          xcall push_gset2
 0128 422F              mov R20,R18
 012A 602F              mov R22,R16
 012C                   .dbline -1
 012C                   .dbline 111
 012C           ; }
 012C           ; 
 012C           ; void init_time(uchar sec,uchar min,uchar hour,uchar day,uchar month,uchar d,uchar year)
 012C           ; {
 012C                   .dbline 112
 012C           ;   write_data(0x80,sec);
 012C 262F              mov R18,R22
 012E 00E8              ldi R16,128
 0130 71DF              xcall _write_data
 0132                   .dbline 113
 0132           ;   write_data(0x82,min);
 0132 242F              mov R18,R20
 0134 02E8              ldi R16,130
 0136 6EDF              xcall _write_data
 0138                   .dbline 114
 0138           ;   write_data(0x84,hour);
 0138 2C81              ldd R18,y+4
 013A 04E8              ldi R16,132
 013C 6BDF              xcall _write_data
 013E                   .dbline 115
 013E           ;   write_data(0x86,day);
 013E 2E81              ldd R18,y+6
 0140 06E8              ldi R16,134
 0142 68DF              xcall _write_data
 0144                   .dbline 116
 0144           ;   write_data(0x88,month);
 0144 2885              ldd R18,y+8
 0146 08E8              ldi R16,136
 0148 65DF              xcall _write_data
 014A                   .dbline 117
 014A           ;   write_data(0x8a,d);
 014A 2A85              ldd R18,y+10
 014C 0AE8              ldi R16,138
 014E 62DF              xcall _write_data
 0150                   .dbline 118
 0150           ;   write_data(0x8c,year);
 0150 2C85              ldd R18,y+12
 0152 0CE8              ldi R16,140
 0154 5FDF              xcall _write_data
 0156                   .dbline -2
 0156           L33:
 0156 0E940000          xcall pop_gset2
 015A                   .dbline 0 ; func end
 015A 0895              ret
 015C                   .dbsym l year 12 c
 015C                   .dbsym l d 10 c
 015C                   .dbsym l month 8 c
 015C                   .dbsym l day 6 c
 015C                   .dbsym l hour 4 c
 015C                   .dbsym r min 20 c
 015C                   .dbsym r sec 22 c
 015C                   .dbend

⌨️ 快捷键说明

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