📄 51
字号:
C51 COMPILER V8.09 DJS 07/12/2010 13:12:37 PAGE 1
C51 COMPILER V8.09, COMPILATION OF MODULE DJS
OBJECT MODULE PLACED IN djs.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE djs.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg51.h>
2 sbit Key_UP=P3^2;
3 sbit Key_DOWN=P3^3;
4 unsigned char KeyV,TempKeyV;
5 sbit P25=P1^5;//数码管第5位
6 sbit P26=P1^6;//数码管第6位
7 sbit P27=P1^7;//数码管第7位
8 sbit JDQ=P3^5;//I/O口
9
10 unsigned int js;
11 unsigned int ds;//倒计时初始时间
12 unsigned char jsflag;
13 static unsigned int i;
14 unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};
15
16 void Delay(unsigned int ii) //1MS
17 {
18 1 unsigned int jj;
19 1 for(;ii>0;ii--)
20 1 for(jj=0;jj<125;jj++)
21 1 {;}
22 1
23 1 }
24 void main()
25 {
26 1 EA = 1; //允许CPU中断
27 1 ET0 = 1; //定时器0中断打开
28 1 ET1=1; //定时器1中断打开
29 1 TMOD = 0x11; //设定时器0 1为模式1,16位模式
30 1 TH0=0xB8;
31 1 TL0=0x00; //设定时值为(20ms)
32 1 TH1=0xdc; //设定时值为(10ms)
33 1 TL1=0x00;
34 1 TR0 = 1;
35 1 TR1=1;
36 1 ds=999;
37 1 KeyV = 0;
38 1 TempKeyV = 0;
39 1 jsflag=0;
40 1 while(1);
41 1 }
42
43 //定时器0中断外理中键扫描和显示
44 void Key_Time0(void) interrupt 1 using 2
45 {
46 1 TH0=0xB8;
47 1 TL0=0x00; //设定时值为20000us(20ms)
48 1 if (!Key_UP)
49 1 KeyV = 1;
50 1 if (!Key_DOWN)
51 1 KeyV = 2;
52 1 if (KeyV!= 0) //有键按下
53 1 {
54 2 Delay(10); //延时防抖 按下10ms再测
55 2 if (!Key_UP)
C51 COMPILER V8.09 DJS 07/12/2010 13:12:37 PAGE 2
56 2 TempKeyV = 1;
57 2 if (!Key_DOWN)
58 2 TempKeyV = 2;
59 2 if (KeyV == TempKeyV) //两次值相等为确定接下了键
60 2 {
61 3 if (KeyV == 1){
62 4 jsflag=0;
63 4 if(ds==0){
64 5 ds=600;
65 5 }
66 4 js=js+1;
67 4 JDQ=0; //继电器吸合
68 4
69 4 if(js==50){
70 5 js=0;
71 5 ds=ds-1;
72 5
73 5 }
74 4 }
75 3 if(KeyV==2){
76 4 jsflag=1;
77 4 }
78 3 }
79 2 }
80 1 if(jsflag==1){
81 2 JDQ=1;
82 2 }
83 1 if(ds==0){
84 2 JDQ=1;
85 2 jsflag=1;
86 2 KeyV=0;
87 2 }
88 1 }
89 void disp_Time1(void) interrupt 3 using 3
90 { TH1=0xdc;
91 1 TL1=0x00;
92 1 P0=LEDDis[ds/100];
93 1 P25=0;
94 1 Delay(2);
95 1 P25=1;
96 1 P0=LEDDis[(ds%100)/10];
97 1 P26=0;
98 1 Delay(2);
99 1 P26=1;
100 1 P0=LEDDis[ds%10];
101 1 P27=0;
102 1 Delay(2);
103 1 P27=1;
104 1
105 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 347 ----
CONSTANT SIZE = 12 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
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 + -