📄 key.lst
字号:
C51 COMPILER V6.23a KEY 12/11/2007 13:18:32 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN .\obj\key.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE driver\key.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\key.lst) O
-BJECT(.\obj\key.obj)
stmt level source
1 /*
2 *********************************************************
3 *Header:
4 *File Name:
5 *Author: 陈培炜,杨帆
6 *Data;2007
7 *Function:
8 ********************************************************
9 */
10 #include <REG52.h>
11 #include "Lcd.h"
12 #include "key.h"
13
14 unsigned char ut = 50;
15 unsigned char dt = 30;
16 sbit keyu = P3^4;
17 sbit keyd = P3^3;
18 sbit keyc = P3^2;
19 /*
20 *********************************************************
21 *Header:
22 *File Name:
23 *Author: 陈培炜,杨帆
24 *Data;2007
25 *Function: 按键中断初始化
26 ********************************************************
27 */
28 void Ext0Initial(void)
29 {
30 1 IT0 = 1; // 设外部中断0为下降沿触发 //
31 1 // IE0 = 1; // 设置最高中断级别,其余自然级别排序 //
32 1 EX0 = 1; // 开中断0 //
33 1 }
34 /*
35 /*********************************************************
36 */
37 void Ext0Interrupt(void) interrupt 0 //按键中断程序
38 {
39 1 unsigned char flag = 0;
40 1 EX0 = 0; // 一般进中断就关中断,除非你需要被中断 //
41 1 // 中间功能函数//
42 1 if(keyc == 0)
43 1 DelayUS(10000); //去抖动
44 1 if( keyc == 0 )
45 1 {
46 2 cls();
47 2 while(1)
48 2 {
49 3 if(flag == 2)
50 3 {
51 4 flag = 0;
52 4 break;
53 4 }
54 3 else
C51 COMPILER V6.23a KEY 12/11/2007 13:18:32 PAGE 2
55 3 {
56 4 if( keyu == 0 ) //判断+按键是否按下
57 4 DelayUS(10000);
58 4 if( keyu == 0 )
59 4 {
60 5 if(flag == 0)
61 5 {
62 6 dt++;
63 6 if(dt == 100)
64 6 {
65 7 dt = 30;
66 7 }
67 6 }
68 5 else
69 5 {
70 6 ut++;
71 6 if(ut == 100)
72 6 {
73 7 ut = 50;
74 7 }
75 6 }
76 5 }
77 4
78 4 if( keyd == 0 ) //判断-按键是否按下
79 4 DelayUS(10000);
80 4 if( keyd == 0 )
81 4 {
82 5 if(flag == 0)
83 5 {
84 6 dt--;
85 6 if(dt == 0)
86 6 {
87 7 dt = 30;
88 7 }
89 6 }
90 5 else
91 5 {
92 6 ut--;
93 6 if(ut == 0)
94 6 {
95 7 ut = 50;
96 7 }
97 6 }
98 5
99 5 }
100 4
101 4 if( keyc == 0 ) //判断"位选"按键是否按下
102 4 DelayUS(10000);
103 4 if( keyc == 0 )
104 4 {
105 5 flag++;
106 5 }
107 4 }
108 3 disp2(dt,ut,flag); //显示设定的温度上下限值
109 3 }
110 2 cls();
111 2 }
112 1 EX0 = 1; // 一般出中断就开中断 //
113 1 }
114 /**********************************************************
115
116 *********************************************************/
C51 COMPILER V6.23a KEY 12/11/2007 13:18:32 PAGE 3
117
118
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 193 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 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 + -