📄 mian.lst
字号:
C51 COMPILER V8.08 MIAN 12/28/2007 14:03:47 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE MIAN
OBJECT MODULE PLACED IN mian.obj
COMPILER INVOKED BY: d:\program files\Keil\C51\BIN\C51.EXE source\mian.c BROWSE INCDIR(D:\Program Files\Keil\C51\INC\CHI
-PCON) DEFINE(CC1110) DEBUG OBJECTEXTEND PRINT(.\mian.lst) OBJECT(mian.obj)
line level source
1 #include <chipcon/iocc1110.h>
2 #include <string.h>
3
4 #define uint unsigned int
5 #define uchar unsigned char
6 #define FALSE 0
7 #define TURE 1
8
9 //定义控制灯的端口
10 sbit led1 = P1^0;
11 sbit led2 = P1^1;
12
13 void Delay(uint);
14 void initUARTtest(void);
15 void InitialAD(void);
16 void UartTX_Send_String(char *Data,int len);
17
18
19 uchar Recdata[30]="ChenDu WuXianLong TongXun";
20 uchar RFflag = 1;
21 uchar temp;
22 uint datanumber = 0;
23 uint stringlen;
24
25 /****************************************************************
26 *函数功能 :延时 *
27 *入口参数 :定性延时 *
28 *返 回 值 :无 *
29 *说 明 : *
30 ****************************************************************/
31 void Delay(uint n)
32 {
33 1 uint i;
34 1 for(i=0;i<n;i++);
35 1 for(i=0;i<n;i++);
36 1 for(i=0;i<n;i++);
37 1 for(i=0;i<n;i++);
38 1 for(i=0;i<n;i++);
39 1 }
40
41 /****************************************************************
42 *函数功能 :初始化串口1 *
43 *入口参数 :无 *
44 *返 回 值 :无 *
45 *说 明 :57600-8-n-1 *
46 ****************************************************************/
47 void initUARTtest(void)
48 {
49 1
50 1 SLEEP &= ~0x04; //晶振
51 1 while(!(SLEEP & 0x40)); //等待晶振稳定
52 1 CLKCON &= ~0x47; //TICHSPD128分频,CLKSPD不分频
53 1 SLEEP |= 0x04; //关闭不用的RC振荡器
54 1
C51 COMPILER V8.08 MIAN 12/28/2007 14:03:47 PAGE 2
55 1 PERCFG = 0x00; //位置1 P0口
56 1 P0SEL = 0x3c; //P0用作串口
57 1
58 1 U0CSR |= 0x80; //UART方式
59 1 U0GCR |= 11; //baud_e = 11;
60 1 U0BAUD |= 34; //波特率设为57600
61 1 UTX0IF = 1;
62 1
63 1 U0CSR |= 0X40; //允许接收
64 1 IEN0 |= 0x84; //开总中断,接收中断
65 1 }
66
67 /****************************************************************
68 *函数功能 :串口接收一个字符 *
69 *入口参数 : 无 *
70 *返 回 值 :无 *
71 *说 明 :接收完成后打开接收 *
72 ****************************************************************/
73 void USART0Rec(void) interrupt 2
74 {
75 1 URX0IF = 0; //清中断标志
76 1 temp = U0DBUF;
77 1 }
78
79
80
81
82 /****************************************************************
83 *函数功能 :串口发送字符串函数 *
84 *入口参数 : data:数据 *
85 * len :数据长度 *
86 *返 回 值 :无 *
87 *说 明 : *
88 ****************************************************************/
89 void UartTX_Send_String(char *Data,int len)
90 {
91 1 int j;
92 1 for(j=0;j<len;j++)
93 1 {
94 2 U0DBUF = *Data++;
95 2 while(UTX0IF == 0);
96 2 UTX0IF = 0;
97 2 }
98 1 }
99
100
101 /****************************************************************
102 *函数功能 :主函数 *
103 *入口参数 :无 *
104 *返 回 值 :无 *
105 *说 明 :无 *
106 ****************************************************************/
107 void main(void)
108 {
109 1 //P1 out
110 1 P1DIR = 0x03; //P1控制LED
111 1 led1 = 1;
112 1 led2 = 1; //关LED
113 1
114 1 initUARTtest();
115 1 stringlen = strlen(Recdata);
116 1 UartTX_Send_String(Recdata,stringlen); //AD
C51 COMPILER V8.08 MIAN 12/28/2007 14:03:47 PAGE 3
117 1
118 1 while(1)
119 1 {
120 2 if(RFflag == 1) //接收
121 2 {
122 3 led2=0; //接收状态指示
123 3 if((temp!= '#')&&(datanumber<=30))
124 3 {
125 4 if(temp != 0)Recdata[datanumber++] = temp;
126 4 temp = 0;
127 4 }
128 3 else
129 3 {
130 4 RFflag = 3; //收到结束标志
131 4 //或者已经达到收数上限
132 4 //进入发送状态
133 4 datanumber--;
134 4 led2 = 1; //关接收指示
135 4 }
136 3 }
137 2
138 2 if(RFflag == 3) //发送
139 2 {
140 3 led1 = 0; //发送状态指示
141 3 U0CSR &= ~0x40; //不能收数
142 3 UartTX_Send_String(Recdata,datanumber);
143 3 U0CSR |= 0x40; //允许收数
144 3 RFflag = 1; //
145 3 datanumber = 0; //指针归0
146 3 led1 = 1; //关发送指示
147 3 }
148 2
149 2 }
150 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 319 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 36 5
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 + -