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

📄 common.lis

📁 AVRmega28L的串口发送数据程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 009C           ; }
 009C           ; 
 009C           ; 
 009C           ; 
 009C           ; 
 009C           ; 
 009C           ; //*********************************************************************/ 
 009C           ; //*函数名:delay()
 009C           ; //*函数功能:延时函数
 009C           ; //*函数说明:无返回值  t为一个延时的时间
 009C           ; //*设计者: yu  日期:2007-10-20
 009C           ; //**********************************************************************/
 009C           ; void delay(int t)
 009C           ; {
 009C                   .dbline 92
 009C           ;     int i,j ;
 009C           ;     for(i=0;i<t;i++)
 009C 4427              clr R20
 009E 5527              clr R21
 00A0 0AC0              xjmp L10
 00A2           L7:
 00A2                   .dbline 93
 00A2 6627              clr R22
 00A4 7727              clr R23
 00A6 02C0              xjmp L14
 00A8           L11:
 00A8                   .dbline 93
 00A8           L12:
 00A8                   .dbline 93
 00A8 6F5F              subi R22,255  ; offset = 1
 00AA 7F4F              sbci R23,255
 00AC           L14:
 00AC                   .dbline 93
 00AC 6017              cp R22,R16
 00AE 7107              cpc R23,R17
 00B0 DCF3              brlt L11
 00B2           L8:
 00B2                   .dbline 92
 00B2 4F5F              subi R20,255  ; offset = 1
 00B4 5F4F              sbci R21,255
 00B6           L10:
 00B6                   .dbline 92
 00B6 4017              cp R20,R16
 00B8 5107              cpc R21,R17
 00BA 9CF3              brlt L7
 00BC                   .dbline -2
 00BC           L6:
 00BC 0E940000          xcall pop_gset2
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbsym r i 20 I
 00C2                   .dbsym r j 22 I
 00C2                   .dbsym r t 16 I
 00C2                   .dbend
 00C2                   .dbfunc e led_on_off _led_on_off fV
 00C2           ;       led_flag -> R16
                        .even
 00C2           _led_on_off::
 00C2                   .dbline -1
 00C2                   .dbline 101
 00C2           ;     for(j=0;j<t;j++);
 00C2           ; }
 00C2           ; 
 00C2           ; //////////////////////////////////////////////////////////
 00C2           ; /*led_on_off()
 00C2           ; /*LED的开和关闭
 00C2           ; */
 00C2           ; void led_on_off(BYTE led_flag)
 00C2           ; {
 00C2                   .dbline 103
 00C2           ;     //设置PC0口为输出0,点亮LED
 00C2           ;     if(led_flag==1)
 00C2 0130              cpi R16,1
 00C4 39F4              brne L16
 00C6                   .dbline 104
 00C6           ;     {
 00C6                   .dbline 105
 00C6           ;         PBO.B4=0 ;
 00C6 88B3              in R24,0x18
 00C8 8F7E              andi R24,239
 00CA 88BB              out 0x18,R24
 00CC                   .dbline 106
 00CC           ;         PBD.B4=1 ;
 00CC 87B3              in R24,0x17
 00CE 8061              ori R24,16
 00D0 87BB              out 0x17,R24
 00D2                   .dbline 107
 00D2           ;     }
 00D2 06C0              xjmp L17
 00D4           L16:
 00D4                   .dbline 110
 00D4                   .dbline 111
 00D4 88B3              in R24,0x18
 00D6 8061              ori R24,16
 00D8 88BB              out 0x18,R24
 00DA                   .dbline 112
 00DA 87B3              in R24,0x17
 00DC 8061              ori R24,16
 00DE 87BB              out 0x17,R24
 00E0                   .dbline 113
 00E0           L17:
 00E0                   .dbline -2
 00E0           L15:
 00E0                   .dbline 0 ; func end
 00E0 0895              ret
 00E2                   .dbsym r led_flag 16 c
 00E2                   .dbend
 00E2                   .dbfunc e led_response _led_response fV
 00E2           ;              i -> R20,R21
 00E2           ;              t -> R22,R23
                        .even
 00E2           _led_response::
 00E2 0E940000          xcall push_gset2
 00E6 B801              movw R22,R16
 00E8                   .dbline -1
 00E8                   .dbline 117
 00E8           ;     //设置PC0口为输出1,关闭LED
 00E8           ;     else 
 00E8           ;     {
 00E8           ;         PBO.B4=1 ;
 00E8           ;         PBD.B4=1 ;
 00E8           ;     }
 00E8           ; }
 00E8           ; 
 00E8           ; void led_response (int t)
 00E8           ; {
 00E8                   .dbline 119
 00E8           ;  int i;
 00E8           ;  for(i = 0;i < t;i++)
 00E8 4427              clr R20
 00EA 5527              clr R21
 00EC 0CC0              xjmp L22
 00EE           L19:
 00EE                   .dbline 120
 00EE                   .dbline 121
 00EE 01E0              ldi R16,1
 00F0 E8DF              xcall _led_on_off
 00F2                   .dbline 122
 00F2 06E9              ldi R16,150
 00F4 10E0              ldi R17,0
 00F6 D0DF              xcall _delay
 00F8                   .dbline 123
 00F8 0027              clr R16
 00FA E3DF              xcall _led_on_off
 00FC                   .dbline 124
 00FC 06E9              ldi R16,150
 00FE 10E0              ldi R17,0
 0100 CBDF              xcall _delay
 0102                   .dbline 125
 0102           L20:
 0102                   .dbline 119
 0102 4F5F              subi R20,255  ; offset = 1
 0104 5F4F              sbci R21,255
 0106           L22:
 0106                   .dbline 119
 0106 4617              cp R20,R22
 0108 5707              cpc R21,R23
 010A 8CF3              brlt L19
 010C                   .dbline -2
 010C           L18:
 010C 0E940000          xcall pop_gset2
 0110                   .dbline 0 ; func end
 0110 0895              ret
 0112                   .dbsym r i 20 I
 0112                   .dbsym r t 22 I
 0112                   .dbend
 0112                   .dbfunc e SPI_MasterInit _SPI_MasterInit fV
                        .even
 0112           _SPI_MasterInit::
 0112                   .dbline -1
 0112                   .dbline 129
 0112           ;   {
 0112           ;     led_on_off(ON);           //点亮LED灯
 0112           ;     delay(150);
 0112           ;     led_on_off(OFF);           //关闭LED灯
 0112           ;     delay(150);    
 0112           ;   }
 0112           ; }
 0112           ; 
 0112           ; void SPI_MasterInit(void)
 0112           ; {
 0112                   .dbline 131
 0112           ; /* 设置MOSI 和SCK 片选为输出,其他为输入 */
 0112           ; PORTB |= (1<<PB3) | (1<<PB4) | (1<<PB5) | (1<<PB6); 
 0112 88B3              in R24,0x18
 0114 8867              ori R24,120
 0116 88BB              out 0x18,R24
 0118                   .dbline 132
 0118           ; DDRB = (1<<DDB2)|(1<<DDB1)|(1<<DDB0);
 0118 87E0              ldi R24,7
 011A 87BB              out 0x17,R24
 011C                   .dbline 134
 011C           ; /* 使能SPI 主机模式,设置时钟速率为fck/16 */
 011C           ; SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
 011C 81E5              ldi R24,81
 011E 8DB9              out 0xd,R24
 0120                   .dbline -2
 0120           L23:
 0120                   .dbline 0 ; func end
 0120 0895              ret
 0122                   .dbend
 0122                   .dbfunc e SPI_MasterTransmit _SPI_MasterTransmit fV
 0122           ;          cData -> R16
                        .even
 0122           _SPI_MasterTransmit::
 0122                   .dbline -1
 0122                   .dbline 137
 0122           ; }
 0122           ; void SPI_MasterTransmit(char cData)
 0122           ; {
 0122                   .dbline 138
 0122           ; PORTB &=~ (1<<PB0); //强制接收方进入从模式
 0122 C098              cbi 0x18,0
 0124                   .dbline 139
 0124           ; SPCR |= (1<<MSTR); // MSTR有时会被清零,这里强制进入主机模式
 0124 6C9A              sbi 0xd,4
 0126                   .dbline 141
 0126           ; /* 启动数据传输 */
 0126           ; SPDR = cData;
 0126 0FB9              out 0xf,R16
 0128           L25:
 0128                   .dbline 143
 0128           L26:
 0128                   .dbline 143
 0128           ; /* 等待传输结束 */
 0128           ; while(!(SPSR & (1<<SPIF)));
 0128 779B              sbis 0xe,7
 012A FECF              rjmp L25
 012C                   .dbline -2
 012C           L24:
 012C                   .dbline 0 ; func end
 012C 0895              ret
 012E                   .dbsym r cData 16 c
 012E                   .dbend

⌨️ 快捷键说明

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