?? 1-wire.lst
字號:
C51 COMPILER V7.06 1_WIRE 03/29/2005 17:56:16 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 1_WIRE
OBJECT MODULE PLACED IN 1-wire.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE 1-wire.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-----------------------函數聲明,變量定義--------------------------------------------------------
2 #include <reg51.h>
3 sbit DQ=P1^0; // 將p1.0口模擬時鐘輸出
4
5 //--------------------------------------------------------------------------------------------------
6 // 函數名稱: delay
7 // 入口參數: N
8 // 函數功能:延時子程序,實現(16*N+24)us的延時
9 // 系統采用11.0592MHz的時鐘時,延時滿足要求,其它情況需要改動
10 //--------------------------------------------------------------------------------------------------
11 void delay(unsigned int N)
12 {
13 1 int i;
14 1 for(i=0;i<N;i++);
15 1 }
16 //--------------------------------------------------------------------------------------------------
17 // 函數名稱: Reset
18 // 入口參數: 無
19 // 返回deceive_ready
20 // 函數功能:復位
21 //--------------------------------------------------------------------------------------------------
22 unsigned char Reset(void)
23 {
24 1 unsigned char deceive_ready;
25 1 DQ=0; //拉低DQ線
26 1 delay(29); //延時至少480us~960us
27 1 DQ=1; //將DQ線設置位邏輯高
28 1 delay(3); //延時等待deceive_ready響應
29 1 deceive_ready=DQ; //采樣deceive_ready信號
30 1 delay(25); //等待時序結束
31 1 return(deceive_ready); //有deceive_ready信號時返回0,否則返回1
32 1 }
33 //--------------------------------------------------------------------------------------------------
34 // 函數名稱:read_bit
35 // 入口參數: 無
36 // 返回接收的數據
37 // 函數功能:讀一個bit子程序
38 //--------------------------------------------------------------------------------------------------
39 unsigned char read_bit(void)
40 {
41 1 unsigned char i;
42 1 DQ=0; //拉低DQ線開始時序
43 1 DQ=1; //升高DQ線 //延時至時序開始15us
44 1 for(i=0;i<3;i++); //延時15us
45 1 return(DQ); //返回DQ值
46 1 }
47 //--------------------------------------------------------------------------------------------------
48 // 函數名稱: write_bit
49 // 入口參數: bitval
50 // 函數功能:寫一個bit子程序
51 //--------------------------------------------------------------------------------------------------
52 void write_bit(unsigned char bitval)
53 {
54 1 DQ=0; //拉低DQ線開始時序
55 1 if(bitval==1)
C51 COMPILER V7.06 1_WIRE 03/29/2005 17:56:16 PAGE 2
56 1 DQ=1; //如果寫邏輯為高
57 1 delay(5); //延時
58 1 DQ=1; //升高DQ線
59 1 }
60 //--------------------------------------------------------------------------------------------------
61 // 函數名稱: write_byte
62 // 入口參數: val
63 // 函數功能:寫一個byte子程序
64 //--------------------------------------------------------------------------------------------------
65 void write_byte(unsigned char val)
66 {
67 1 unsigned char i,temp;
68 1 for(i=0;i<8;i++)
69 1 {
70 2 temp=val>>i; //將val位右移i位賦值給比temp
71 2 temp=temp&0x01; //取temp最低位
72 2 write_bit(temp);
73 2 delay(5); //延時至時序結束
74 2 }
75 1 }
76 //--------------------------------------------------------------------------------------------------
77 // 函數名稱: read_byte
78 // 返回接收的數據 value
79 // 函數功能:讀一個byte子程序
80 //--------------------------------------------------------------------------------------------------
81 unsigned char read_byte(void)
82 {unsigned char i,m,receive_data;
83 1 m=1;receive_data=0; //初始化
84 1 for(i=0;i<8;i++)
85 1 {
86 2 if(read_bit())
87 2 {
88 3 receive_data=receive_data+(m<<i);
89 3 } //每讀一位數據據,左移一位
90 2 delay(6); //延時至時序結束
91 2 }
92 1 return(receive_data); //返回value
93 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 152 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -