?? main.lst
字號:
C51 COMPILER V7.06 MAIN 06/02/2010 14:14:53 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\obj\main.lst) OBJECT(.\obj\main.ob
-j)
stmt level source
1 /*-----------------------------------------------
2 名稱:IIC協議 PCF8591 AD/DA轉換
3 論壇:www.doflye.net
4 編寫:shifang
5 修改:無
6 內容:使用4路AD中的1路檢測外部模擬量輸入
7 ------------------------------------------------*/
8 #include <reg52.h>
9 #include "i2c.h"
10 #include "delay.h"
11 #include "display.h"
12
13 #define AddWr 0x90 //寫數據地址
14 #define AddRd 0x91 //讀數據地址
15
16 extern bit ack;
17 unsigned char ReadADC(unsigned char Chl);
18 bit WriteDAC(unsigned char dat);
19 /*------------------------------------------------
20 主程序
21 ------------------------------------------------*/
22 main()
23 {
24 1 unsigned char num=0;
25 1 Init_Timer0();
26 1
27 1
28 1 while (1) //主循環
29 1 {
30 2
31 2 num=ReadADC(0);
32 2 TempData[0]=dofly_DuanMa[num/100];
33 2 TempData[1]=dofly_DuanMa[(num%100)/10];
34 2 TempData[2]=dofly_DuanMa[(num%100)%10];
35 2 //主循環中添加其他需要一直工作的程序
36 2 DelayMs(100);
37 2 }
38 1 }
39 /*------------------------------------------------
40 讀AD轉值程序
41 輸入參數 Chl 表示需要轉換的通道,范圍從0-3
42 返回值范圍0-255
43 ------------------------------------------------*/
44 unsigned char ReadADC(unsigned char Chl)
45 {
46 1 unsigned char Val;
47 1 Start_I2c(); //啟動總線
48 1 SendByte(AddWr); //發送器件地址
49 1 if(ack==0)return(0);
50 1 SendByte(0x40|Chl); //發送器件子地址
51 1 if(ack==0)return(0);
52 1 Start_I2c();
53 1 SendByte(AddWr+1);
54 1 if(ack==0)return(0);
C51 COMPILER V7.06 MAIN 06/02/2010 14:14:53 PAGE 2
55 1 Val=RcvByte();
56 1 NoAck_I2c(); //發送非應位
57 1 Stop_I2c(); //結束總線
58 1 return(Val);
59 1 }
60 /*------------------------------------------------
61 寫入DA轉換數值
62 輸入參數:dat 表示需要轉換的DA數值,范圍是0-255
63 ------------------------------------------------*/
64 /*bit WriteDAC(unsigned char dat)
65 {
66 Start_I2c(); //啟動總線
67 SendByte(AddWr); //發送器件地址
68 if(ack==0)return(0);
69 SendByte(0x40); //發送器件子地址
70 if(ack==0)return(0);
71 SendByte(dat); //發送數據
72 if(ack==0)return(0);
73 Stop_I2c();
74 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 116 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
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 + -