?? zuopin.lis
字號:
.module zuopin.c
.area text(rom, con, rel)
0000 .dbfile K:\作品\新建文件夾\zuopin.c
0000 .dbfunc e delay_us _delay_us fV
.even
0000 _delay_us::
0000 .dbline -1
0000 .dbline 7
0000 ; // Target : M8
0000 ; // Crystal: 8.0000Mhz //8M晶振
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; void delay_us() //微秒延時程序(1us)
0000 ; {
0000 .dbline 8
0000 ; asm("nop");
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e delay _delay fV
0004 ; time -> R20,R21
.even
0004 _delay::
0004 00D0 rcall push_gset1
0006 A801 movw R20,R16
0008 .dbline -1
0008 .dbline 11
0008 ; }
0008 ; void delay(unsigned int time)
0008 ; {
0008 03C0 rjmp L4
000A L3:
000A .dbline 13
000A .dbline 13
000A FADF rcall _delay_us
000C .dbline 14
000C 4150 subi R20,1
000E 5040 sbci R21,0
0010 .dbline 15
0010 L4:
0010 .dbline 12
0010 ; while(time)
0010 4030 cpi R20,0
0012 4507 cpc R20,R21
0014 D1F7 brne L3
0016 X0:
0016 .dbline -2
0016 L2:
0016 00D0 rcall pop_gset1
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbsym r time 20 i
001A .dbend
001A .dbfunc e init_1820 _init_1820 fV
.even
001A _init_1820::
001A .dbline -1
001A .dbline 19
001A ; { delay_us();
001A ; time--;
001A ; }
001A ; }
001A ;
001A ; void init_1820() //初始化18b20
001A ; {
001A .dbline 20
001A ; PORTD|=0X80; //總線置1
001A 979A sbi 0x12,7
001C .dbline 21
001C ; delay(10);
001C 0AE0 ldi R16,10
001E 10E0 ldi R17,0
0020 F1DF rcall _delay
0022 .dbline 22
0022 ; PORTD&=~0x80; //總線置0
0022 9798 cbi 0x12,7
0024 .dbline 23
0024 ; delay(1200); // 延時等待
0024 00EB ldi R16,1200
0026 14E0 ldi R17,4
0028 EDDF rcall _delay
002A .dbline 24
002A ; DDRD&=~0x80;
002A 8F98 cbi 0x11,7
002C .dbline 25
002C ; PORTD|=0x80; //總線置1
002C 979A sbi 0x12,7
002E .dbline 26
002E ; delay(50);
002E 02E3 ldi R16,50
0030 10E0 ldi R17,0
0032 E8DF rcall _delay
0034 .dbline 27
0034 ; DDRD|=0x80;
0034 8F9A sbi 0x11,7
0036 .dbline 28
0036 ; PORTD|=0x80;
0036 979A sbi 0x12,7
0038 .dbline 29
0038 ; delay(200);
0038 08EC ldi R16,200
003A 10E0 ldi R17,0
003C E3DF rcall _delay
003E .dbline -2
003E L6:
003E .dbline 0 ; func end
003E 0895 ret
0040 .dbend
0040 .dbfunc e write_1820 _write_1820 fV
0040 ; i -> R20
0040 ; temp -> R22
.even
0040 _write_1820::
0040 00D0 rcall push_gset2
0042 602F mov R22,R16
0044 .dbline -1
0044 .dbline 32
0044 ; }
0044 ; void write_1820(unsigned char temp) //寫數據
0044 ; {
0044 .dbline 33
0044 ; unsigned char i=0;
0044 4427 clr R20
0046 .dbline 34
0046 ; for(;i<8;i++)
0046 0FC0 rjmp L11
0048 L8:
0048 .dbline 35
0048 ; {
0048 .dbline 36
0048 ; PORTD&=~0X80;
0048 9798 cbi 0x12,7
004A .dbline 37
004A ; if(temp&(1<<i)) //寫數據,從低位開始
004A 01E0 ldi R16,1
004C 142F mov R17,R20
004E 00D0 rcall lsl8
0050 262E mov R2,R22
0052 2022 and R2,R16
0054 11F0 breq L12
0056 .dbline 38
0056 ; PORTD|=0X80;
0056 979A sbi 0x12,7
0058 01C0 rjmp L13
005A L12:
005A .dbline 40
005A ; else
005A ; PORTD&=~0X80;
005A 9798 cbi 0x12,7
005C L13:
005C .dbline 41
005C 02E3 ldi R16,50
005E 10E0 ldi R17,0
0060 D1DF rcall _delay
0062 .dbline 42
0062 979A sbi 0x12,7
0064 .dbline 43
0064 L9:
0064 .dbline 34
0064 4395 inc R20
0066 L11:
0066 .dbline 34
0066 4830 cpi R20,8
0068 78F3 brlo L8
006A .dbline 44
006A ; delay(50);
006A ; PORTD|=0X80;
006A ; }
006A ; PORTD|=0X80;
006A 979A sbi 0x12,7
006C .dbline -2
006C L7:
006C 00D0 rcall pop_gset2
006E .dbline 0 ; func end
006E 0895 ret
0070 .dbsym r i 20 c
0070 .dbsym r temp 22 c
0070 .dbend
0070 .dbfunc e read_1820 _read_1820 fc
0070 ; n -> R20
0070 ; m -> R22
0070 ; i -> R10
.even
0070 _read_1820::
0070 00D0 rcall push_gset3
0072 .dbline -1
0072 .dbline 48
0072 ; }
0072 ;
0072 ; unsigned char read_1820() //讀數據
0072 ; {
0072 .dbline 49
0072 ; unsigned char m,i=0,n=0;
0072 AA24 clr R10
0074 .dbline 49
0074 4427 clr R20
0076 .dbline 50
0076 ; for(;i<8;i++)
0076 19C0 rjmp L18
0078 L15:
0078 .dbline 51
0078 ; {
0078 .dbline 52
0078 ; PORTD&=~0X80;
0078 9798 cbi 0x12,7
007A .dbline 53
007A ; delay(5);
007A 05E0 ldi R16,5
007C 10E0 ldi R17,0
007E C2DF rcall _delay
0080 .dbline 54
0080 ; PORTD|=0X80;
0080 979A sbi 0x12,7
0082 .dbline 55
0082 ; DDRD&=~0X80;
0082 8F98 cbi 0x11,7
0084 .dbline 56
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -