int01.lst
来自「可以熟悉51单片机中断机制 大大方便学习51单片机」· LST 代码 · 共 176 行
LST
176 行
C51 COMPILER V7.50 INT01 02/14/2008 12:16:04 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE INT01
OBJECT MODULE PLACED IN INT01.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE INT01.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 * INT1+0中断计数 6位数码管显示,6位数码管显示, *
3 *低三位数码管为显示外部中断INT0的计数值 *
4 *高三位数码管为显示外部中断INT1的计数值 硬件: 数码管P0,数码管控制P2 *
5 *P3.3接按键,高3位的计数触发, P3.2低三位的计数触发 *
6 ********************************************************************************
7 * 日期: 2008-2-25 硬件: 数码管P0,数码管控制P2 *
8 * P1.4 按键,P1.5按键,为触发方式选择,P3.3接按键,为计数键 *
9 * 作者: 深圳志博电子有限公司 专业8051单片机教学站 *
10 * 邮箱: zty0012001@163.com *
11 * 网站: http://www.elecmcu.com http://www.elecmcu.com 更多例程请登陆网站 *
12 ********************************************************************************
13 * 硬件:此程序在本公司志博电子实验仪运行通过 *
14 ********************************************************************************
15 * 【版权】 Copyright(C)深圳志博电子有限公司 www.elecmcu.com All Rights Reserved *
16 * 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
17 ********************************************************************************/
18 #include < reg51.h >
19 #include <intrins.h>
20 #define uchar unsigned char
21 #define uint unsigned int
22 uchar const seg[11]={0x7f,0x44,0xbd,0xf5,0xe6,0xf3,0xfb,0x65,0xff,0xf7,0x00};
23 uchar dis[8]={0,0,0,0}; //设置显示缓冲存储器
24 unsigned char count=0 ;
25 unsigned char count0,count1,temp=0 ;
26 sbit int_l=P1^4;
27 sbit int_e=P1^5;
28 /********************************************************
29 * 延时函数 *
30 ********************************************************/
31 void delay(uint ms)
32 // 延时子程序
33 {
34 1 uchar k;
35 1 while(ms--)
36 1 {
37 2 for(k = 0; k < 100; k++);
38 2 }
39 1 }
40 /********************************************************
41 * 数据处理与显示函数 *
42 ********************************************************/
43 void disp_count()
44 {
45 1 char i=0;
46 1 char k=0;
47 1 dis[0]=count1/100;
48 1 dis[1]=(count1%100)/10;
49 1 dis[2]=count1%10;
50 1 dis[3]=count0/100;
51 1 dis[4]=(count0%100)/10;
52 1 dis[5]=count0%10;
53 1 for (i = 0; i < 6; i++)
54 1 { //循环显示6位数据
55 2 switch (i)
C51 COMPILER V7.50 INT01 02/14/2008 12:16:04 PAGE 2
56 2 {
57 3 case 0:
58 3 P0=0Xdf;
59 3 P1=P1|0X03;
60 3 break;
61 3 case 1:
62 3 P0=0XBF;
63 3 P1=P1|0X03;
64 3 break;
65 3 case 2:
66 3 P0=0X7F;
67 3 P1=P1|0X03;
68 3 break;
69 3 case 3:
70 3 P0=0XFF;
71 3 P1=0xfe;
72 3 break;
73 3 case 4:
74 3 P0=0XFF;
75 3 P1=0XFd;
76 3 break;
77 3 case 5:
78 3 P0=0Xef;
79 3 P1=0xff;
80 3 break;
81 3 }
82 2 P2=seg[dis[i]];
83 2 delay(1);
84 2 }
85 1 }
86 /********************************************************
87 * 主程序 *
88 ********************************************************/
89 void main(void)
90 {
91 1 P0=0xff;
92 1 P1=0xff;
93 1 P2=0xff;
94 1 IT0=0; //低电平触发
95 1 // IT0=1; //下降沿触发
96 1 IT1=0; //低电平触发
97 1 // IT1=1; //下降沿触发
98 1 PX0=1;
99 1 EA=1;
100 1 EX1=1;
101 1 EX0=1;
102 1 while(1)
103 1 {
104 2 if(!int_l)//触发方式选择为电平触发
105 2 {
106 3 IT0=0;
107 3 IT1=0;
108 3 }
109 2 if(!int_e)//触发方式选择为电平触发
110 2 {
111 3 IT0=1;
112 3 IT1=1;
113 3 }
114 2 disp_count();
115 2 }
116 1 }
117 /********************************************************
C51 COMPILER V7.50 INT01 02/14/2008 12:16:04 PAGE 3
118 * INT0中断函数 *
119 ********************************************************/
120 void counter0(void) interrupt 0
121 {
122 1 uchar x;
123 1 EX0=0;
124 1 count0++;
125 1
126 1 for(x=0;x<10;x++)
127 1 {
128 2 disp_count();
129 2 }
130 1 EX0=1;
131 1 }
132 /********************************************************
133 * INT1中断函数 *
134 ********************************************************/
135 void counter1(void) interrupt 2
136 {
137 1 uchar x;
138 1 EX1=0;
139 1 count1++;
140 1
141 1 for(x=0;x<10;x++)
142 1 {
143 2 disp_count();
144 2 }
145 1 EX1=1;
146 1 }
147 /********************************************************/
148
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 329 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 23 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?