📄 in_out.lst
字号:
C51 COMPILER V7.06 IN_OUT 03/12/2021 17:59:28 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE IN_OUT
OBJECT MODULE PLACED IN in_out.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE in_out.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89X51.H>
2 #define uchar unsigned char
3 #define uint unsigned int
4 uchar code SEG7[10]={0x03,0x9f,0x25,0x0d,0x99,
5 0x49,0x41,0x1f,0x01,0x09};
6 uchar data cnt[8];
7 uchar data pre_cnt[8];
8 sbit drv=P3^4;
9 bit set_flag;
10 bit out_flag;
11 bit keydown_flag;
12 /****************************/
13 void delay(uint k)
14 {
15 1 uint i,j;
16 1 for(i=0;i<k;i++){
17 2 for(j=0;j<60;j++)
18 2 {;}}
19 1 }
20 /**********************************************/
21 void scan_key(void)
22 {uchar i,m=0x01;
23 1 P3_6=0;P3_7=1;
24 1 for(i=0;i<8;i++)
25 1 {
26 2 SBUF=255-m;while(!TI);TI=0;
27 2 if(!P3_5)pre_cnt[i]++;
28 2 m<<=1;
29 2 }
30 1 //------------------------
31 1 for(i=0;i<8;i++)
32 1 {if(pre_cnt[i]>9)pre_cnt[i]=0;}
33 1 }
34 /************************************/
35 void dis_cnter(void)
36 {uchar i;
37 1 P3_7=1;P3_6=1;
38 1 for(i=0;i<8;i++)
39 1 {SBUF=SEG7[cnt[i]];while(!TI);TI=0;}
40 1 P3_7=0;
41 1 }
42 /**********************************************/
43 void dis_pre_cnter(void)
44 {uchar i;
45 1 P3_7=1;P3_6=1;
46 1 SBUF=SEG7[pre_cnt[0]]&0xfe;while(!TI);TI=0;
47 1 //----------------------------------------
48 1 for(i=1;i<8;i++)
49 1 {SBUF=SEG7[pre_cnt[i]];while(!TI);TI=0;}
50 1 P3_7=0;
51 1 }
52 /****************************************/
53 void cnter(void)
54 {uchar i;
55 1 for(i=0;i<7;i++)
C51 COMPILER V7.06 IN_OUT 03/12/2021 17:59:28 PAGE 2
56 1 {if(cnt[i]>9){cnt[i]=0;cnt[i+1]++;}}
57 1 //------------------------------------
58 1 if(cnt[7]>9){for(i=0;i<8;i++)cnt[i]=0;}
59 1 }
60 /***************************************************/
61 void pt_cnt(void)
62 {
63 1 if((cnt[0]==pre_cnt[0])&&(cnt[1]==pre_cnt[1])&&\
64 1 (cnt[2]==pre_cnt[2])&&(cnt[3]==pre_cnt[3])&&\
65 1 (cnt[4]==pre_cnt[4])&&(cnt[5]==pre_cnt[5])&&\
66 1 (cnt[6]==pre_cnt[6])&&(cnt[7]==pre_cnt[7]))
67 1 out_flag=1;
68 1 else out_flag=0;
69 1 //==========================
70 1 if(out_flag)drv=0;
71 1 else drv=1;
72 1 }
73 /********************************************/
74 void main(void)
75 { IE=0x84;
76 1 IT1=1;
77 1 while(1)
78 1 {P3_6=0;P3_7=1;
79 2 SBUF=0x00;while(!TI);TI=0;
80 2 if((P3&0x24)!=0x24)keydown_flag=1;
81 2 else keydown_flag=0;
82 2 //--------------------------
83 2 SBUF=0xfe;while(!TI);TI=0;
84 2 if(!P3_2)set_flag=!set_flag;
85 2 //=============================================
86 2 if(!set_flag){cnter();dis_cnter();pt_cnt();delay(100);}
87 2 else {scan_key();dis_pre_cnter();delay(10);}
88 2 //=============================================
89 2 if(keydown_flag)delay(300);
90 2 }
91 1 }
92 /************************************************/
93 void extern_int1(void) interrupt 2 using 1
94 {
95 1 cnt[0]++;
96 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 344 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 16 ----
IDATA SIZE = ---- ----
BIT SIZE = 3 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -