📄 8led.lst
字号:
C51 COMPILER V8.02 8LED 02/28/2008 14:47:28 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 8LED
OBJECT MODULE PLACED IN 8led.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 8led.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <REG52.H>
2 #include<stdio.h>
3 sbit L1=P1^0;
4 sbit L2=P1^1;
5 sbit L3=P1^2;
6 sbit L4=P1^3;
7 sbit H1=P1^4;
8 sbit H2=P1^5;
9 sbit H3=P1^6;
10 sbit H4=P1^7;
11 sbit CS=P2^0;//使能端
12 unsigned char LED_Display[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};//0~4
13 void KeyScan(void);//
14 void delay10ms(unsigned char time);
15 void display(unsigned char k);
16 unsigned char key, temp;
17
18
19 void main(void) //主函数
20 { while(1)
21 1 {
22 2 CS=1;
23 2 KeyScan();
24 2 }
25 1 }
26
27
28 void KeyScan(void)//键盘扫描子程序
29 {
30 1 P1=0xff;
31 1 L1=0;
32 1 temp=P1;//读取P1口的值
33 1 temp&=0xf0;
34 1 if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
35 1 {
36 2 delay10ms(1);
37 2 switch(temp)
38 2 {
39 3 case 0x70:key=0;break;
40 3 case 0xb0:key=1;break;
41 3 case 0xd0:key=2;break;
42 3 case 0xe0:key=3;break;
43 3
44 3 }
45 2 display(key);
46 2 }
47 1
48 1 P1=0xff;
49 1 L2=0;
50 1 temp=P1;//读取P1口的值
51 1 temp&=0xf0;
52 1 if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
53 1 {
54 2 delay10ms(1);
55 2 switch(temp)
C51 COMPILER V8.02 8LED 02/28/2008 14:47:28 PAGE 2
56 2 { case 0x70: key=4;break;
57 3 case 0xb0: key=5;break;
58 3 case 0xd0: key=6;break;
59 3 case 0xe0: key=7; break;
60 3
61 3 }
62 2 display(key);
63 2 }
64 1
65 1
66 1
67 1 P1=0xff;
68 1 L3=0;
69 1 temp=P1;//读取P1口的值
70 1 temp&=0xf0;
71 1 if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
72 1 {
73 2 delay10ms(1);
74 2 switch(temp)
75 2 { case 0x70: key=8;break;
76 3 case 0xb0: key=9;break;
77 3 case 0xd0: key=10;break;
78 3 case 0xe0: key=11;break;
79 3 }
80 2 display(key);
81 2 }
82 1
83 1
84 1
85 1 P1=0xff;
86 1 L4=0;
87 1 temp=P1;//读取P1口的值
88 1 temp&=0xf0;
89 1 if(temp!=0xf0) //表示高四位有变化,即P1_3行上有键按下
90 1 {
91 2
92 2 delay10ms(1);
93 2 switch(temp)
94 2 { case 0x70: key=12;break;
95 3 case 0xb0: key=13;break;
96 3 case 0xd0: key=14;break;
97 3 case 0xe0: key=15;break;
98 3 }
99 2 display(key);
100 2 }
101 1
102 1 }
103
104
105 //延时函数
106
107 void delay10ms(unsigned char time)
108 {
109 1 unsigned int i;
110 1 while(time--)
111 1 {
112 2 for(i=0;i<125;i++)
113 2 {;}
114 2 }
115 1
116 1 }
117
C51 COMPILER V8.02 8LED 02/28/2008 14:47:28 PAGE 3
118 //LED显示
119 void display(unsigned char k)
120 { P0=LED_Display[k]; //P0的8位接LED
121 1
122 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 294 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 18 ----
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 + -