📄 51
字号:
C51 COMPILER V8.09 EX74 07/12/2010 13:36:36 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE EX74
OBJECT MODULE PLACED IN ex74.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE ex74.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //独立式键盘的按键功能扩展:"以一当四"
2 #include<reg52.h> // 包含51单片机寄存器定义的头文件
3 unsigned char ID; //储存按键ID
4 sbit S1=P3^3; //位定义S1为P3.3
5
6 /**************************************************************
7 函数功能:延时子程序
8 **************************************************************/
9 void delay(void) //因为仅对一个按键扫描,所以延时时间较长约200ms
10 {
11 1 unsigned char i,j;
12 1 for(i=0;i<200;i++)
13 1 for(j=0;j<100;j++)
14 1 ;
15 1 }
16
17
18 /**************************************************************
19 函数功能:主函数
20 **************************************************************/
21 void main(void)
22 {
23 1 TMOD=0x02; //使用定时器T0的模式2
24 1 EA=1; //开总中断
25 1 ET0=1; //定时器T0中断允许
26 1 TR0=1; //定时器T0开始运行
27 1 TH0=256-200; //定时器T0赋初值,每200微妙来1次中断请求
28 1 TL0=256-200;
29 1
30 1 ID=0;
31 1 while(1)
32 1 {
33 2 switch(ID)
34 2 {
35 3 case 0: P1=0xfe;
36 3 break;
37 3 case 1: P1=0xfd;
38 3 break;
39 3 case 2: P1=0xfb;
40 3 break;
41 3 case 3: P1=0xf7;
42 3 break;
43 3 }
44 2 }
45 1 }
46 /**************************************************************
47 函数功能:定时器T0的中断服务子程序,进行键盘扫描
48 **************************************************************/
49 void intersev(void) interrupt 1 using 1
50 {
51 1 TR0=0; //关闭定时器T0
52 1 P3=0xff;
53 1 if(S1==0) //如果是按键S1按下
54 1 {
55 2 delay(); //延时20ms,软件消抖
C51 COMPILER V8.09 EX74 07/12/2010 13:36:36 PAGE 2
56 2 if(S1==0) //如果是按键S1按下
57 2 ID=ID+1;
58 2 while(!S1);
59 2 }
60 1 if(ID==4)
61 1 ID=0;
62 1
63 1 TR0=1; //启动定时器T0
64 1
65 1 }
66
67
68
69
70
71
72
73
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 107 ----
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 + -