📄 main.lst
字号:
C51 COMPILER V8.08 MAIN 01/11/2008 17:22:57 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.obj
COMPILER INVOKED BY: d:\program files\Keil\C51\BIN\C51.EXE source\main.c BROWSE INCDIR(D:\Program Files\Keil\C51\INC\CHI
-PCON;.\UART.H) DEFINE(CC1110) DEBUG OBJECTEXTEND PRINT(.\main.lst) OBJECT(main.obj)
line level source
1
2 #include "iocc1110.h"
3 #define uint unsigned int
4 #define uchar unsigned char
5
6 #define ConversionNum 20
7 //定义控制灯的端口
8 sbit led1 = P1^0;
9 sbit led2 = P1^1;
10
11 void Delay(uint);
12 void initUARTtest(void);
13 void InitialAD(void);
14 void UartTX_Send_String(char *Data,int len);
15
16
17 uchar adcdata[]="0.000V";
18
19 /****************************************************************
20 *函数功能 :延时 *
21 *入口参数 :定性延时 *
22 *返 回 值 :无 *
23 *说 明 : *
24 ****************************************************************/
25 void Delay(uint n)
26 {
27 1 uint i;
28 1 for(i=0;i<n;i++);
29 1 for(i=0;i<n;i++);
30 1 for(i=0;i<n;i++);
31 1 for(i=0;i<n;i++);
32 1 for(i=0;i<n;i++);
33 1 }
34
35 /****************************************************************
36 *函数功能 :初始化串口1 *
37 *入口参数 :无 *
38 *返 回 值 :无 *
39 *说 明 :57600-8-n-1 *
40 ****************************************************************/
41 void initUARTtest(void)
42 {
43 1
44 1 SLEEP &= ~0x04; //晶振
45 1 while(!(SLEEP & 0x40)); //等待晶振稳定
46 1 CLKCON &= ~0x47; //TICHSPD128分频,CLKSPD不分频
47 1 SLEEP |= 0x04; //关闭不用的RC振荡器
48 1
49 1 PERCFG = 0x00; //位置1 P0口
50 1 P0SEL = 0x3c; //P0用作串口
51 1
52 1 U0CSR |= 0x80; //UART方式
53 1 U0GCR |= 11; //baud_e = 11;
54 1 U0BAUD |= 34; //波特率设为57600
C51 COMPILER V8.08 MAIN 01/11/2008 17:22:57 PAGE 2
55 1 UTX0IF = 1;
56 1 }
57
58
59 /****************************************************************
60 *函数功能 :初始化ADC *
61 *入口参数 :无 *
62 *返 回 值 :无 *
63 *说 明 :参考电压AVDD,转换对象是1/3AVDD *
64 ****************************************************************/
65 void InitialAD(void)
66 {
67 1 //P1 out
68 1 P1DIR = 0x03; //P1控制LED
69 1 led1 = 1;
70 1 led2 = 1; //关LED
71 1
72 1 ADCH &= 0X00; //清EOC标志
73 1 ADCCON3=0xbf; //单次中断参考电压为电源电压,对1/3 AVDD进行A/D转换
74 1 //12位分辨率
75 1 ADCCON1 = 0X30; //停止A/D
76 1
77 1 ADCCON1 |= 0X40; //启动A/D
78 1 }
79
80 /****************************************************************
81 *函数功能 :串口发送字符串函数 *
82 *入口参数 : data:数据 *
83 * len :数据长度 *
84 *返 回 值 :无 *
85 *说 明 : *
86 ****************************************************************/
87 void UartTX_Send_String(char *Data,int len)
88 {
89 1 int j;
90 1 for(j=0;j<len;j++)
91 1 {
92 2 U0DBUF = *Data++;
93 2 while(UTX0IF == 0);
94 2 UTX0IF = 0;
95 2 }
96 1 }
97
98
99 /****************************************************************
100 *函数功能 :主函数 *
101 *入口参数 :无 *
102 *返 回 值 :无 *
103 *说 明 :无 *
104 ****************************************************************/
105 void main(void)
106 {
107 1 uchar temp[2];
108 1 float num;
109 1 uchar i;
110 1 initUARTtest();
111 1 InitialAD();
112 1
113 1 adcdata[0] = 0x01;
114 1 adcdata[1] = 0x02;
115 1 adcdata[2] = 0xAA;
116 1 led1 = 1;
C51 COMPILER V8.08 MAIN 01/11/2008 17:22:57 PAGE 3
117 1
118 1 i = ConversionNum;
119 1 while(i>0)
120 1 {
121 2 if(ADCCON1>=0x80)
122 2 {
123 3 led1 = !led1; //转换完毕指示
124 3 adcdata[1] = ADCL;
125 3 adcdata[0] = ADCH;
126 3 ADCCON1 |= 0x40; //开始下一转换
127 3
128 3 temp[0] = adcdata[0]>>4; //数据处理
129 3 temp[1] = adcdata[1]>>4;
130 3 temp[1] |= adcdata[0]<<4;
131 3
132 3 num = (temp[0]*256+temp[1])/2047*5.00;
133 3
134 3 adcdata[0] = (char)num;
135 3 adcdata[2] = (char)(num*10%10);
*** ERROR C193 IN LINE 135 OF SOURCE\MAIN.C: '%': bad operand type
136 3 adcdata[3] = (char)(num*100%10);
137 3 adcdata[4] = (char)(num*1000%10);
138 3
139 3
140 3
141 3 ADCCON1 |= 0x40; //开始下一转换
142 3 UartTX_Send_String(adcdata,3); //串口送数
143 3
144 3 Delay(30000);
145 3 led1 = !led1;
146 3 Delay(30000);
147 3
148 3 i--;
149 3 } //20次转换
150 2 }
151 1 while(1); //程序停在这里 方便使用串口调试助手
152 1 }
153
C51 COMPILATION COMPLETE. 0 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -