?? zuopin.lis
字號:
0084 ; m=(PIND&0X80); //讀數據,從低位開始
0084 60B3 in R22,0x10
0086 6078 andi R22,128
0088 .dbline 57
0088 ; if(m)
0088 29F0 breq L19
008A .dbline 58
008A ; n|=(1<<i);
008A 01E0 ldi R16,1
008C 1A2D mov R17,R10
008E 00D0 rcall lsl8
0090 402B or R20,R16
0092 06C0 rjmp L20
0094 L19:
0094 .dbline 60
0094 ; else
0094 ; n&=~(1<<i);
0094 01E0 ldi R16,1
0096 1A2D mov R17,R10
0098 00D0 rcall lsl8
009A 202E mov R2,R16
009C 2094 com R2
009E 4221 and R20,R2
00A0 L20:
00A0 .dbline 61
00A0 00E5 ldi R16,80
00A2 10E0 ldi R17,0
00A4 AFDF rcall _delay
00A6 .dbline 62
00A6 8F9A sbi 0x11,7
00A8 .dbline 63
00A8 L16:
00A8 .dbline 50
00A8 A394 inc R10
00AA L18:
00AA .dbline 50
00AA 8A2D mov R24,R10
00AC 8830 cpi R24,8
00AE 20F3 brlo L15
00B0 .dbline 64
00B0 ; delay(80);
00B0 ; DDRD|=0X80;
00B0 ; }
00B0 ; return (n);
00B0 042F mov R16,R20
00B2 .dbline -2
00B2 L14:
00B2 00D0 rcall pop_gset3
00B4 .dbline 0 ; func end
00B4 0895 ret
00B6 .dbsym r n 20 c
00B6 .dbsym r m 22 c
00B6 .dbsym r i 10 c
00B6 .dbend
00B6 .dbfunc e temperature_read _temperature_read fV
00B6 ; tempture -> <dead>
00B6 ; teml -> R22
00B6 ; temh -> R20
00B6 ; i -> R20
.even
00B6 _temperature_read::
00B6 00D0 rcall push_gset2
00B8 .dbline -1
00B8 .dbline 67
00B8 ; }
00B8 ; void temperature_read() //讀取溫度值
00B8 ; {
00B8 .dbline 70
00B8 ; unsigned char tempture;
00B8 ; unsigned char i,temh,teml;
00B8 ; init_1820(); //復位18b20
00B8 B0DF rcall _init_1820
00BA .dbline 71
00BA ; write_1820(0xcc); // 發出轉換命令
00BA 0CEC ldi R16,204
00BC C1DF rcall _write_1820
00BE .dbline 72
00BE ; write_1820(0x44); //啟動溫度轉換
00BE 04E4 ldi R16,68
00C0 BFDF rcall _write_1820
00C2 .dbline 73
00C2 ; delay(400);
00C2 00E9 ldi R16,400
00C4 11E0 ldi R17,1
00C6 9EDF rcall _delay
00C8 .dbline 74
00C8 ; init_1820();
00C8 A8DF rcall _init_1820
00CA .dbline 75
00CA ; write_1820(0xcc); //發出讀命令
00CA 0CEC ldi R16,204
00CC B9DF rcall _write_1820
00CE .dbline 76
00CE ; write_1820(0xbe); //讀數據
00CE 0EEB ldi R16,190
00D0 B7DF rcall _write_1820
00D2 .dbline 77
00D2 ; teml=read_1820();
00D2 CEDF rcall _read_1820
00D4 602F mov R22,R16
00D6 .dbline 78
00D6 ; temh=read_1820();
00D6 CCDF rcall _read_1820
00D8 402F mov R20,R16
00DA .dbline 79
00DA ; UDR=teml;
00DA 6CB9 out 0xc,R22
00DC .dbline 80
00DC ; delay(150);
00DC 06E9 ldi R16,150
00DE 10E0 ldi R17,0
00E0 91DF rcall _delay
00E2 .dbline 81
00E2 ; UDR=temh;
00E2 4CB9 out 0xc,R20
00E4 .dbline 82
00E4 ; for(i=0;i<100;i++) //延時等待
00E4 4427 clr R20
00E6 04C0 rjmp L25
00E8 L22:
00E8 .dbline 83
00E8 04EF ldi R16,500
00EA 11E0 ldi R17,1
00EC 8BDF rcall _delay
00EE L23:
00EE .dbline 82
00EE 4395 inc R20
00F0 L25:
00F0 .dbline 82
00F0 4436 cpi R20,100
00F2 D0F3 brlo L22
00F4 .dbline -2
00F4 L21:
00F4 00D0 rcall pop_gset2
00F6 .dbline 0 ; func end
00F6 0895 ret
00F8 .dbsym l tempture 1 c
00F8 .dbsym r teml 22 c
00F8 .dbsym r temh 20 c
00F8 .dbsym r i 20 c
00F8 .dbend
00F8 .dbfunc e uart0_init _uart0_init fV
.even
00F8 _uart0_init::
00F8 .dbline -1
00F8 .dbline 91
00F8 ; delay(500);
00F8 ; }
00F8 ; //UART0 initialize
00F8 ; // desired baud rate: 9600
00F8 ; // actual: baud rate:9615 (0.2%)
00F8 ; // char size: 8 bit
00F8 ; // parity: Disabled
00F8 ; void uart0_init(void) //初始化uart
00F8 ; {
00F8 .dbline 92
00F8 ; UCSRB = 0x00; //disable while setting baud rate
00F8 2224 clr R2
00FA 2AB8 out 0xa,R2
00FC .dbline 93
00FC ; UCSRA = 0x00;
00FC 2BB8 out 0xb,R2
00FE .dbline 94
00FE ; UCSRC = BIT(URSEL) | 0x06;
00FE 86E8 ldi R24,134
0100 80BD out 0x20,R24
0102 .dbline 95
0102 ; UBRRL = 0x33; //set baud rate lo
0102 83E3 ldi R24,51
0104 89B9 out 0x9,R24
0106 .dbline 96
0106 ; UBRRH = 0x00; //set baud rate hi
0106 20BC out 0x20,R2
0108 .dbline 97
0108 ; UCSRB = 0x18;
0108 88E1 ldi R24,24
010A 8AB9 out 0xa,R24
010C .dbline -2
010C L26:
010C .dbline 0 ; func end
010C 0895 ret
010E .dbend
010E .dbfunc e main _main fV
.even
010E _main::
010E .dbline -1
010E .dbline 101
010E ; }
010E ;
010E ; void main(void) //主函數
010E ; {
010E .dbline 102
010E ; delay(1000);
010E 08EE ldi R16,1000
0110 13E0 ldi R17,3
0112 78DF rcall _delay
0114 .dbline 103
0114 ; DDRD=0Xff;
0114 8FEF ldi R24,255
0116 81BB out 0x11,R24
0118 .dbline 104
0118 ; PORTD=0Xff;
0118 82BB out 0x12,R24
011A .dbline 105
011A ; uart0_init();
011A EEDF rcall _uart0_init
011C 01C0 rjmp L29
011E L28:
011E .dbline 107
011E CBDF rcall _temperature_read
0120 L29:
0120 .dbline 106
0120 FECF rjmp L28
0122 X1:
0122 .dbline -2
0122 L27:
0122 .dbline 0 ; func end
0122 0895 ret
0124 .dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -