📄 oneled.lst
字号:
C51 COMPILER V7.20 ONELED 10/30/2004 11:18:07 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE ONELED
OBJECT MODULE PLACED IN oneLed.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE oneLed.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 /*#include <REG51.h>
2 sbit gate=P2^0;
3 void main(void)
4 {
5 unsigned int i,j;
6 while(1)
7 {
8 for(i=1000;i>0;i--);
9 for(j=1000;j>0;j--);
10 gate=!gate;
11 }
12
13 }
14
15 #include <AT89X51.H>
16 #include <stdio.h>
17 void CheckLED(void);
18 sbit LED0=P1^4;
19 sbit LED1=P1^5;
20 sbit LED2=P1^6;
21 sbit Beep=P1^7;
22
23 void main(void)
24 {
25 int x,y;
26 SCON = 0x50; //串口方式1,允许接收
27 TMOD = 0x20; //定时器1 定时方式2
28 TH1 = 0xE8; //11.0592MHz 1200 波特率
29 TL1 = 0xE8;
30 TI = 1;
31 TR1 = 1; //启动定时器
32 LED0=0;
33 while(1)
34 {
35 printf("您好!我叫Robot!我是一个会做算术的机器人!\n"); //显示
36 printf("请您输入两个int,X 和 Y\n"); //显示
37 scanf("%d%d",&x,&y); //输入
38 if (x < y)
39 printf("X<Y\n"); //当X 小于Y 时
40 else //当X 不小于Y 时再作判断
41 {
42 if (x == y)
43 printf("X=Y\n"); //当X 等于Y 时
44 else
45 printf("X>Y\n"); //当X 大于Y 时
46 }
47 }
48 }*/
49
50 #include <reg51.h>
51 //#include <absacc.h>
52 #include <intrins.h>
53 //#include <stdio.h>
54 //#include <string.h>
55 #include <stdlib.h>
C51 COMPILER V7.20 ONELED 10/30/2004 11:18:07 PAGE 2
56 //#include <ctype.h>
57 #define uchar unsigned char
58 #define uint unsigned int
59 #define Error 0xff
60 uint data counter;
61 uchar data uc0;
62 sbit LED0=P1^4;
63 sbit LED1=P1^5;
64 sbit LED2=P1^6;
65 sbit Beep=P1^7;
66 bit bdata flag;
67 void RcvDataBy232(void);
68 void InitSBUF(void);
69 void TranDataBy232(void);
70 void SendBuf();
71 void OpeningBeep(uchar OBN);
72 void DELAY(uint z);
73 void RestWatchdog(void);
74
75 /*********************************************************************
76 ------------ 主从多机串行中断服务程序 ------------------
77 -- 主机先发送地址帧,从机接收到地址帧后,先判断是否为键盘地址:是则接收
78 -- 主机发送过来的所有数据信息,否则返回.
79 *********************************************************************/
80 /*void SerialCom(void) interrupt 4 using 1
81 {
82 EA=0;
83 ES=0; /* 关串行中断
84 RcvDataBy232();
85 OpeningBeep(uc0);
86 SBUF=0x66;
87 TranDataBy232();
88 ES=1;
89 RI=0; TI=0; EA=1;
90 flag=1;
91 }*/
92
93 /****************************************
94 --------- 延时函数 ,大约1MS.-----------
95 ****************************************/
96 void DELAY(uint z)
97 {
98 1 uchar data l;
99 1 while((z--)>0)
100 1 {
101 2 for(l=0;l<31;l++) RestWatchdog(); /* 125 _nop_(); ; /* 125 _nop_(); */
102 2 }
103 1 }
104
105 void RestWatchdog(void)
106 {
107 1 _nop_();
108 1 _nop_();
109 1 _nop_();
110 1 }
111
112 void OpeningBeep(uchar OBN)
113 {
114 1 uchar data i;
115 1 for(i=0;i<OBN;i++)
116 1 {
117 2 Beep=0;
C51 COMPILER V7.20 ONELED 10/30/2004 11:18:07 PAGE 3
118 2 DELAY(150);
119 2 Beep=1;
120 2 DELAY(100);
121 2 }
122 1 }
123 /*******************************************
124 ---------- 初始化串行口来多机通信 ---------
125 *******************************************/
126 void InitSBUF(void)
127 {
128 1 TMOD=0x20; /* T/C1定义为方式2 */
129 1 TL1=0xfd; /* 9600时TH1,TL1=0xfd,1200时TH1,TL1=0XE8 */
130 1 TH1=0xfd;
131 1 // TL0=0xef; /* 初值为0X2AEF,定时值为50ms */
132 1 // TH0=0x2a;
133 1 PCON=0x0;
134 1 SCON=0x50; /* 串行口为方式1,SM2=1,TB8=0,RB8=0 */
135 1 /* SM0=0;*/
136 1 TR1=1; //ES=1; ; /*ET0=1; ES=1; TR0=1;*/
137 1 /* SM2=1;*/ PS=1;
138 1 RI=0; TI=0; EA=1;
139 1 }
140
141 /*****************************************************
142 -------从串行端口接收一字节数据,并存入UC0变量中------
143 *****************************************************/
144
145 /*void RcvDataBy232(void)
146 {
147 counter=0;
148 do{
149 counter++;
150 RestWatchdog();
151 if(counter>0x6ff)
152 { uc0=Error;goto rete1;} /* 1fff
153 RestWatchdog();
154 } while(RI==0);
155 uc0=SBUF;
156 flag=1;
157 OpeningBeep(uc0);
158 rete1:
159 RI=0;
160 }*/
161
162 /*****************************************************
163 -------从串行端口发送一字节数据,数据已存入SBUF中------
164 *****************************************************/
165 void TranDataBy232(void)
166 {
167 1 while(TI==0) ;
168 1 TI=0;
169 1 }
170
171 void SendBuf()
172 {
173 1 uchar data i=0x01;
174 1 do{ //发送数据
175 2 SBUF=i;
176 2 TranDataBy232();
177 2 i++;
178 2
179 2 }while(i<5); /* 如果主机返回成功信号则退出,否则重新发新/ * 初始化串行口*/
C51 COMPILER V7.20 ONELED 10/30/2004 11:18:07 PAGE 4
180 1 }
181
182 void main(void)
183 {
184 1 LED0=0;
185 1 OpeningBeep(3);
186 1 InitSBUF();
187 1 flag=0;
188 1 uc0=0;
189 1 while(1)
190 1 {
191 2 DELAY(255);
192 2 LED0=~LED0;
193 2 /***连续发* */
194 2 // SendBuf();
195 2 /**逐个发*/
196 2 while(RI)
197 2 {//RestWatchdog();
198 3 uc0=SBUF;
199 3 RI=0;
200 3 if(uc0==0x11)
201 3 uc0=0xee;
202 3 SBUF=uc0;
203 3 TranDataBy232();
204 3 if(uc0<9)
205 3 OpeningBeep(uc0);
206 3 else
207 3 OpeningBeep(1);
208 3 }
209 2
210 2 }
211 1 }
C51 COMPILER V7.20 ONELED 10/30/2004 11:18:07 PAGE 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -