📄 pcf8591ad.lst
字号:
C51 COMPILER V7.05 PCF8591AD 02/16/2006 21:21:51 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE PCF8591AD
OBJECT MODULE PLACED IN PCF8591AD.OBJ
COMPILER INVOKED BY: C:\SiLabs\MCU\IDEfiles\C51\BIN\C51.exe PCF8591AD.C DB OE
stmt level source
1 //参考程序A: PCF8591AD.C PCF8591的AD转换实验.
2 /*芯片PCF8951共有四个A/D输入通道:AD0,AD1,AD2,AD3,分别与四个电位器(R1,R2,R3,R4)连接,用以调节电位器的输
-出电压。其中AD0通道既可测量电位器输出电压,也可用于测量从J1插座输入的外接电压,须用开关J2加以选择。J4插座提供由PCF8591输
-出的时钟方波信号。SAA1064驱动四个数码管显示一路AD转换后得到的数据。显示格式如下表:
3 通道号: AD转换结果(高四位) AD转换结果(低四位)
4 3 E 7
5 函数SLA_READ(char chip_select, char channel)中的channel就是通道号选择变量.channel=0到3.本程序选定channel=3
-(用户可修改),用小改刀调节R4,可观察到数码管上显示的数据的变化.*/
6 #include <c8051f020.h> // SFR declarations
7 #include <intrins.h>
8 #define WRITE 0x00 // 写位
9 #define READ 0x01 // 读位
10 #define CHIP_B 0x70
11 #define SMB_START 0x08 // (MT&MR)主收发器发送起始位成功.再将从机写地址送SMB0DAT
12 #define SMB_RP_START 0x10 // (MT & MR)主收发器重复发送起始位成功,再将从机读地址送SMB0DAT
13 #define SMB_MTADDACK 0x18 // (MT)主收发器发送从地址+W成功;收到 ACK
14 #define SMB_MTADDNACK 0x20 // (MT) 主收发器发送从地址+W成功;收到 NACK
15 #define SMB_MTDBACK 0x28 //(MT)主收发器发送数据字节成功;收到ACK.
16 #define SMB_MRADDACK 0x40 // (MR)主收发器发送从地址+R成功;收到 ACK.
17 #define SMB_MRDBACK 0x50 // (MR)主收发器接收数据成功;主机发送ACK
18 #define SMB_MRDBNACK 0x58 // (MR)主收发器接收数据成功;主机发送NACK
19 char COMWRITE; //保存从地址 + R/W 位,用在 中断服务函数中
20 char COMREAD;
21 unsigned char totalnumber,sendnumber,WORD;
22 unsigned char INTERRUPT[20],L;
23 unsigned char xdata channel=3; // channel保存AD通道变量,channel=0--3.
24 unsigned char xdata SENDMODE; // SENDMODE=1为写(SLA_SEND),SENDMODE=0为读(SLA_READ)
25 bit SM_BUSY; // 在收/发过程中,SM_BUSY被置1.中断服务完成后被清为另.
26 unsigned char wr_data[8]; //保存写入从器件的数据
27 unsigned char rd_data[8]; //保存从从器件中读出的数据
28 void SYSCLK_Init (void);
29 void SMBUS_ISR (void);
30 char SLA_READ(char chip_select, char channel);
31 //channel就是通道号选择变量.channel=0到3
32 void SLA_SEND(char chip_select, char *wr_data, char number);
33 //chip_select为从器件的写地址
34 char temp;
35 char Number[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //LED
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -