📄 text1.lst
字号:
C51 COMPILER V7.50 TEXT1 05/29/2006 10:28:18 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 Uart_Init(); //输出口初始化
13 sbit P25=0xA5; //P2.5位
14 sbit P26=0xA6; //P2.6位
15 sbit P27=0xA7; //P2.7位
16 void SelectChannel(uint c0809addr,uchar c0809data);
17 uchar GetResult( );//得到转换结果
18 void Delay() ; //延时子程序
19 main()
20 { Uart_Init(); //
21 1 P0=0XFF; //端口初始化为0xFF
22 1 P1=0XFF;
23 1 P2=0XFF;
24 1 P3=0XFF;
25 1 EX0=1; //开外部中断0
26 1 EA=1; //全局中断打开
27 1 cChannelIndex=0;
28 1 nCurrentAddr=ADC0809CH0;
29 1 SelectChannel(ADC0809CH0,cChannelIndex); //选择ADC0809通道0
30 1 Delay(); //调用延时程序
31 1 cChannelIndex++;
32 1 nCurrentAddr=ADC0809CH1;
33 1 SelectChannel(ADC0809CH1,cChannelIndex); //选择ADC0809通道1
34 1 Delay(); //调用延时程序
35 1 cChannelIndex++;
36 1 nCurrentAddr=ADC0809CH2;
37 1 SelectChannel(ADC0809CH2,cChannelIndex); //选择ADC0809通道2
38 1 Delay(); //调用延时程序
39 1 cChannelIndex++;
40 1 nCurrentAddr=ADC0809CH3;
41 1 SelectChannel(ADC0809CH3,cChannelIndex); //选择ADC0809通道3
42 1 Delay(); //调用延时程序
43 1 while(1);
44 1 }
45 Uart_Init()
46 {SCON = 0x52; /* 设置串行口控制寄存器SCON*/
47 1 TMOD = 0x21; /* 12M时钟时波特率为2400 */
48 1 TCON = 0x69; /* TCON */
49 1 TH1 = 0xf3; /* TH1 */
50 1 }
51 void Delay() //延时程序
52 { uint i;
53 1 for(i=0;i<200;i++);
54 1 }
55 void SelectChannel(uint c0809addr,uchar c0809data)
C51 COMPILER V7.50 TEXT1 05/29/2006 10:28:18 PAGE 2
56 {
57 1 *((uchar xdata *)c0809addr)=c0809data;
58 1 //选择ADC0809通道
59 1 }
60 void int0() interrupt 0 using 0
61 { cDigitalData[cChannelIndex]=GetResult();
62 1 printf("Got channel %d Result\n",cChannelIndex);
63 1 /*响应INT0后不断输出*/
64 1 }
65 uchar GetResult( )//得到转换结果
66 {uchar cResult;
67 1 cResult=*((uchar xdata *)nCurrentAddr);
68 1 return cResult; //返回转换后数字量
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 274 ----
CONSTANT SIZE = 23 ----
XDATA SIZE = 8 ----
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 + -