📄 w4.lst
字号:
C51 COMPILER V8.02 W4 07/21/2008 16:31:44 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE W4
OBJECT MODULE PLACED IN W4.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL\C51\BIN\C51.EXE W4.C BROWSE DEBUG OBJECTEXTEND
line level source
1 //单片机P1 口接8 只发光二极管,P3.2~P3.5 接有K1~K4 共四个按键,使用串行
2 //口编程,1)由PC 机控制单片机的P1 口,将PC 机送出的数以二进制形式显示在发光二极
3 //管上;2)按下K1 向主机发送数字0x55,按下K2 向主机发送数字0xAA,使显示转下一行。
4 #define uchar unsigned char
5 #include "string.h"
6 #include "reg51.h"
7 void SendData(uchar Dat)
8 { uchar i=0;
9 1 SBUF=Dat;
10 1 while(1){ if(TI)
11 2 { TI=0;
12 3 break;}}
13 1 }
14 void mDelay(unsigned int DelayTime)
15 { unsigned char j=0;
16 1 for(;DelayTime>0;DelayTime--)
17 1 { for(j=0;j<125;j++)
18 2 {;}
19 2 }
20 1 }
21 uchar Key()
22 { uchar KValue;
23 1 P3|=0x3e; //中间4 位置高电平
24 1 if((KValue=P3|0xe3)!=0xff)
25 1 { mDelay(10);
26 2 if((KValue=P3|0xe3)!=0xff)
27 2 { for(;;)
28 3 if((P3|0xe3)==0xff)
29 3 return(KValue);
30 3 }
31 2 }
32 1 return(0);
33 1 }
34 void main()
35 { uchar KeyValue;
36 1 P1=0xff; //关闭P1 口接的所有灯
37 1 TMOD=0x20; //确定定时器工作模式
38 1 TH1=0xFD;
39 1 TL0=0xFD; //定时初值
40 1 PCON&=0x80; //SMOD=1
41 1 TR1=1; //开启定时器1
42 1 SCON=0x40; //串口工作方式1
43 1 REN=1; //允许接收
44 1 for(;;)
45 1 { if(KeyValue=Key())
46 2 { if((KeyValue|0xfb)!=0xff) //K1 按下
47 3 SendData(0x55);
48 3 if((KeyValue|0xf7)!=0xff)
49 3 SendData(0xaa);
50 3 }
51 2 if(RI)
52 2 { P1=SBUF;
53 3 RI=0;
54 3 }
55 2 }
C51 COMPILER V8.02 W4 07/21/2008 16:31:44 PAGE 2
56 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 132 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -