📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 05/29/2006 12:18:40 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include<stdio.h>
3 #define ADC0809CH0 0xDFEF8 //0809通道0地址
4 #define ADC0809CH1 0xDFEF9 //0809通道1地址
5 #define ADC0809CH2 0xDFEFA //0809通道2地址
6 #define ADC0809CH3 0xDFEFB //0809通道3地址
7 #define uchar unsigned char //uchar代表单个字节无符号数
8 #define uint unsigned int //uint无符号字
9 xdata uint cChannelIndex;
10 xdata uchar cDigitalData[4]=0;
11 xdata uint nCurrentAddr;
12 bit BusyFlag=0; //忙标志位 1为忙状态
13 Uart_Init(); //输出口初始化
14 void SelectChannel(uint c0809addr,uchar c0809data);
15 uchar GetResult( );//得到转换结果
16 void Delay(); //延时程序
17 main()
18 { Uart_Init(); //
19 1 P0=0XFF; //端口初始化为0xFF
20 1 P1=0XFF;
21 1 P2=0XFF;
22 1 P3=0XFF;
23 1 EX0=1; //开外部中断0
24 1 EA=1; //全局中断打开
25 1 cChannelIndex=0;
26 1 nCurrentAddr=ADC0809CH0;
27 1 BusyFlag=1; //置忙标志
28 1 SelectChannel(ADC0809CH0,cChannelIndex); //选择ADC0809通道0
29 1 while(BusyFlag); //等待转换完成
30 1 cChannelIndex++;
31 1 nCurrentAddr=ADC0809CH1;
32 1 BusyFlag=1; //置忙标志
33 1 SelectChannel(ADC0809CH1,cChannelIndex); //选择ADC0809通道1
34 1 while(BusyFlag); //等待转换完成
35 1 cChannelIndex++;
36 1 nCurrentAddr=ADC0809CH2;
37 1 BusyFlag=1; //置忙标志
38 1 SelectChannel(ADC0809CH2,cChannelIndex); //选择ADC0809通道2
39 1 while(BusyFlag); //等待转换完成
40 1 cChannelIndex++;
41 1 nCurrentAddr=ADC0809CH3;
42 1 BusyFlag=1; //置忙标志
43 1 SelectChannel(ADC0809CH3,cChannelIndex); //选择ADC0809通道3
44 1 while(BusyFlag); //等待转换完成
45 1 while(1);
46 1 }
47 Uart_Init()
48 {SCON = 0x52; /* 设置串行口控制寄存器SCON*/
49 1 TMOD = 0x21; /* 12M时钟时波特率为2400 */
50 1 TCON = 0x69; /* TCON */
51 1 TH1 = 0xf3; /* TH1 */
52 1 }
53 void SelectChannel(uint c0809addr,uchar c0809data)
54 {
55 1 *((uchar xdata *)c0809addr)=c0809data;
C51 COMPILER V7.50 TEXT1 05/29/2006 12:18:40 PAGE 2
56 1 //选择ADC0809通道
57 1 }
58 uchar GetResult( )//得到转换结果
59 {uchar cResult;
60 1 cResult=*((uchar xdata *)nCurrentAddr);
61 1 return cResult; //返回转换后数字量
62 1 }
63 void Delay() //延时程序
64 { uint i;
65 1 for(i=0;i<200;i++);
66 1 }
67 void int0() interrupt 0 using 0
68 { cDigitalData[cChannelIndex]=GetResult();
69 1 BusyFlag=0; //忙标志清0
70 1 //printf("Got channel %d Result\n",cChannelIndex);
71 1 /*响应INT0后输出*/
72 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 264 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 8 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -