?? main.lst
字號:
C51 COMPILER V9.01 MAIN 07/28/2012 10:12:00 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************************
2 實驗名稱:ad
3 程序說明:本程序測試了ad
4 實驗平臺:stc15單片機開發板v1.0版
5 日期:2012-05-27
6 QQ: 259902530
7 www.stcstudy.com 61mcu.taobao.com 版權所有
8 ***********************************************************/
9 /*----------------------------------------
10 本測試程序使用了串口1進行AD數值輸出。
11 如果需要更換測試的通道,請改變ch的值。
12 可采用STC下載軟件自帶串口調試助手觀察
13 -----------------------------------------*/
14
15 #include "STC15F2K.h"
16 #include "UART.H"
17 #include <intrins.h>
18
19
20
21 uint GetADC;
22
23 #define URMD 0 //0:使用定時器2作為波特率發生器
24 //1:使用定時器1的模式0(16位自動重載模式)作為波特率發生器
25 //2:使用定時器1的模式2(8位自動重載模式)作為波特率發生器
26
27
28 #define ADC_POWER 0x80 //ADC電源控制位
29 #define ADC_FLAG 0x10 //ADC完成標志
30 #define ADC_START 0x08 //ADC起始控制位
31 #define ADC_SPEEDLL 0x00 //540個時鐘
32 #define ADC_SPEEDL 0x20 //360個時鐘
33 #define ADC_SPEEDH 0x40 //180個時鐘
34 #define ADC_SPEEDHH 0x60 //90個時鐘
35
36 void UAS(uint Data,uchar *p);
37 void Delay(uint n);
38 void InitADC();
39
40 uchar ch = 3; //ADC通道號
41
42 void main()
43 {
44 1
45 1 uchar tmp[]="0123456789";
46 1 uchar out[5]="0000";
47 1 P2=0x01;
48 1 InitADC(); //初始化ADC
49 1 IE = 0xa0; //使能ADC中斷
50 1 //開始AD轉換
51 1 InitUART(); //初始化串口
52 1 SendString("All OK now!!!\r\n\r\n") ;
53 1 while (1)
54 1 {
55 2 SendString("The ADC Num is: ");
C51 COMPILER V9.01 MAIN 07/28/2012 10:12:00 PAGE 2
56 2 SendData(tmp[ch]);
57 2 SendString(" - ") ;
58 2 UAS(GetADC,out);
59 2 SendString(out);
60 2 SendString("\r\n\r\n");
61 2 Delay(150);
62 2 ch++;
63 2 if(ch>5) ch=3;
64 2 }
65 1 }
66
67 /*----------------------------
68 ADC中斷服務程序
69 ----------------------------*/
70 void adc_isr() interrupt 5 using 1
71 {
72 1 ADC_CONTR &= !ADC_FLAG; //清除ADC中斷標志
73 1 GetADC=(ADC_RES<<2)| (ADC_RESL&0xFC);
74 1
75 1 ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
76 1 }
77
78 /*----------------------------
79 初始化ADC
80 ----------------------------*/
81 void InitADC()
82 {
83 1 P1ASF = 0xff; //設置P1口為AD口
84 1 ADC_RES = 0; //清除結果寄存器
85 1 ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;
86 1 Delay(2); //ADC上電并延時
87 1 }
88
89
90
91 void Delay(uint n)
92 {
93 1 uint x;
94 1
95 1 while (n--)
96 1 {
97 2 x = 5000;
98 2 while (x--);
99 2 }
100 1 }
101
102 void UAS(uint Data,uchar *p)
103 {
104 1 uchar a[]="0123456789";
105 1 *p=a[Data/1000];
106 1 *(p+1)=a[Data%1000/100];
107 1 *(p+2)=a[Data%100/10];
108 1 *(p+3)=a[Data%10];
109 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 395 ----
CONSTANT SIZE = 76 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 32
C51 COMPILER V9.01 MAIN 07/28/2012 10:12:00 PAGE 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 + -