📄 int1.lst
字号:
C51 COMPILER V7.50 INT1 02/14/2008 12:22:13 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE INT1
OBJECT MODULE PLACED IN INT1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE INT1.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 * INT1中断计数 3位数码管显示 P1.4按键 为电平触发方式,按P3.3连续计数 *
3 * P1.5按键 为下降延触发方式,按P3.3加1计数 *
4 ********************************************************************************
5 * 日期: 2008-2-25 硬件: 数码管P0,数码管控制P2 *
6 * P1.4 按键,P1.5按键,为触发方式选择,P3.3接按键,为计数键 *
7 * 作者: 深圳志博电子有限公司 专业8051单片机教学站 *
8 * 邮箱: zty0012001@163.com *
9 * 网站: http://www.elecmcu.com http://www.elecmcu.com 更多例程请登陆网站 *
10 ********************************************************************************
11 * 硬件:此程序在本公司志博电子实验仪运行通过 *
12 ********************************************************************************
13 * 【版权】 Copyright(C)深圳志博电子有限公司 www.elecmcu.com All Rights Reserved *
14 * 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
15 ********************************************************************************/
16 #include < reg51.h >
17 #include <intrins.h>
18 #define uchar unsigned char
19 #define uint unsigned int
20 uchar const seg[11]={0x7f,0x44,0xbd,0xf5,0xe6,0xf3,0xfb,0x65,0xff,0xf7,0x00};
21 uchar dis[8]={0,0,0,0}; //设置显示缓冲存储器
22 unsigned char count,k5_count=0 ;
23 sbit K1=P1^4;
24 sbit K2=P1^5;
25 /********************************************************
26 * 延时函数 *
27 ********************************************************/
28 void delay(uint ms)
29 // 延时子程序
30 {
31 1 uchar k;
32 1 while(ms--)
33 1 {
34 2 for(k = 0; k < 120; k++);
35 2 }
36 1 }
37 /********************************************************
38 * 数据处理与显示函数 *
39 ********************************************************/
40 void disp_count()
41 {
42 1 char i=0;
43 1 char k=0;
44 1
45 1 dis[3]=count/100;
46 1 dis[4]=(count%100)/10;
47 1 dis[5]=count%10;
48 1 for (i = 0; i < 6; i++)
49 1 { //循环显示6位数据
50 2 switch (i)
51 2 {
52 3 case 0:
53 3 P0=0Xdf;
54 3 P1=P1|0X03;
55 3 break;
C51 COMPILER V7.50 INT1 02/14/2008 12:22:13 PAGE 2
56 3 case 1:
57 3 P0=0XBF;
58 3 P1=P1|0X03;
59 3 break;
60 3 case 2:
61 3 P0=0X7F;
62 3 P1=P1|0X03;
63 3 break;
64 3 case 3:
65 3 P0=0XFF;
66 3 P1=0xfe;
67 3 break;
68 3 case 4:
69 3 P0=0XFF;
70 3 P1=0XFd;
71 3 break;
72 3 case 5:
73 3 P0=0Xef;
74 3 P1=0xff;
75 3 break;
76 3 }
77 2 P2=seg[dis[i]];
78 2 delay(1);
79 2 }
80 1 }
81 /********************************************************
82 * 主程序 *
83 ********************************************************/
84 void main(void)
85 {
86 1 P0=0xff;
87 1 P1=0xff;
88 1 P2=0xff;
89 1 IT1=0; //低电平触发
90 1 EA=1;
91 1 EX1=1;
92 1 while(1)
93 1 {
94 2 if(K1==0)
95 2 {
96 3 IT1=0; //低电平触发
97 3 delay(20);
98 3 }
99 2 if(K2==0)
100 2 {
101 3 IT1=1; //下降沿触发
102 3 delay(20);
103 3 }
104 2 disp_count();
105 2 }
106 1 }
107 /********************************************************
108 * INT1中断函数 *
109 ********************************************************/
110 void counter(void) interrupt 2
111 {
112 1 uchar x;
113 1 EX1=0;
114 1 count++;
115 1 for(x=0;x<15;x++)
116 1 {
117 2 disp_count();
C51 COMPILER V7.50 INT1 02/14/2008 12:22:13 PAGE 3
118 2 }
119 1 EX1=1;
120 1 }
121 /********************************************************/
122
123
124
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 243 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 21 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 + -