📄 anjian1.lst
字号:
C51 COMPILER V7.06 ANJIAN1 11/05/2008 10:46:48 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ANJIAN1
OBJECT MODULE PLACED IN anjian1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE anjian1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /* 应用范例 3
2 标题:范例 3
3 版本:1.0//
4 Target: STC89C52RC
5 程序描述:这个程序说明如何利用延迟函数来判断按键的输入 .
6 */
7 #include <reg51.h>
8 #include <intrins.h>
9
10 #include<reg51.h>
11 #define uint unsigned int
12 #define uchar unsigned char
13 code seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
14 code bit_select[6] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
15 char counter[3] = {0,0,0};
16 uint x,y,z,a,b,c,d;
17 sbit key1 = P3^0;
18 sbit key2 = P3^1;
19 sbit key3 = P3^2;
20 sbit key4 = P3^3;
21 sbit FMQ = P3^4;
22 sbit JDQ = P3^5;
23 uchar key1_state,key2_state,key3_state,key4_state,key1_flog;
24 uchar flash,key_num;
25 /******************************
26 延迟子函数
27 *******************************/
28 void delay_400us(uchar i)
29 {
30 1 uchar a,b;
31 1 for(a=i;a>0;a--)
32 1 for(b=100;b>0;b--)
33 1 _nop_();
34 1 }
35 void delay(uchar i)
36 {
37 1 while(i)
38 1 i--;
39 1 }
40 /*********************************
41 显示函数
42 **********************************/
43 void display()
44 {
45 1 P0 = seven_seg[key_num];
46 1 P2 = bit_select[key1_state];
47 1 delay(100);
48 1 P0 = seven_seg[key_num];
49 1 P2 = bit_select[key1_state];
50 1 delay(100);
51 1 P0 = seven_seg[key_num];
52 1 P2 = bit_select[key1_state];
53 1 delay(100);
54 1 P0 = seven_seg[key_num];
55 1 P2 = bit_select[key1_state];
C51 COMPILER V7.06 ANJIAN1 11/05/2008 10:46:48 PAGE 2
56 1 delay(100);
57 1 P0 = seven_seg[key_num];
58 1 P2 = bit_select[key1_state];
59 1 delay(100);
60 1 P0 = seven_seg[key_num];
61 1 P2 = bit_select[key1_state];
62 1 delay(100);
63 1 }
64 /*************************************
65 判断按键子函数
66 *******************************************/
67 void get_key()
68 {
69 1 if(key1 == 0 )
70 1 {
71 2 delay_400us(25);
72 2 if(key1 == 0)
73 2 key1_state++;
74 2 if(key1_state == 6)
75 2 key1_state = 0;
76 2 flash = 1;
77 2 while(!key1);
78 2 }
79 1 if(key2 == 0)
80 1 {
81 2 delay_400us(25);
82 2 if(key2 == 0)
83 2 key_num++;
84 2 if(key_num == 10)
85 2 key_num = 0;
86 2 while(!key2);
87 2 }
88 1 if(key3 == 0)
89 1 {
90 2 delay_400us(25);
91 2 if(key3 == 0)
92 2 key_num--;
93 2 if(key_num == 0)
94 2 key_num = 9;
95 2 while(!key3);
96 2 }
97 1 if(key4 == 0)
98 1 {
99 2 delay_400us(25);
100 2 if(key4 == 0)
101 2 flash = 0;
102 2 while(!key4);
103 2 }
104 1 }
105 /************************************
106 主函数
107 ********************************************/
108 void main()
109 {
110 1 // timer0_init();
111 1 while(1)
112 1 {
113 2 get_key();
114 2 display();
115 2 }
116 1 }
C51 COMPILER V7.06 ANJIAN1 11/05/2008 10:46:48 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 251 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 ----
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 + -