📄 int1-count-255.lst
字号:
C51 COMPILER V8.02 INT1_COUNT_255 12/12/2006 21:01:40 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE INT1_COUNT_255
OBJECT MODULE PLACED IN INT1-count-255.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE INT1-count-255.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************/
2 /* */
3 /* ME500单片机开发系统演示程序 - INT1中断计数 */
4 /* */
5 /* 3位数码管显示 */
6 /* */
7 /* 版本: V1.0 (2006/11/20) */
8 /* 作者: gguoqing (Email: gguoqing@willar.com) */
9 /* 网站: www.willar.com(伟纳电子) www.mcusj.com(伟纳单片机世界) */
10 /* 时间: 2006/12/12 */
11 /* */
12 /*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved */
13 /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! */
14 /* */
15 /*******************************************************************/
16
17 #include < reg51.h >
18 #include <intrins.h>
19
20 #define uchar unsigned char
21 #define uint unsigned int
22
23 unsigned char code LEDData[ ] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,
24 0x82,0xF8,0x80,0x90,0xff};
25
26 unsigned char data display[3] = {0x00,0x00,0x00};
27
28 unsigned char code scan_bit[8] = {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
29
30 unsigned char count,k5_count=0 ;
31
32 sbit K1=P1^4;
33 sbit K2=P1^5;
34
35 /********************************************************
36 * *
37 * 延时函数 *
38 * *
39 ********************************************************/
40 void delay(uint ms)
41 // 延时子程序
42 {
43 1 uchar k;
44 1 while(ms--)
45 1 {
46 2 for(k = 0; k < 120; k++);
47 2 }
48 1 }
49
50 /********************************************************
51 * *
52 * 数据处理与显示函数 *
53 * *
54 ********************************************************/
55 void disp_count()
C51 COMPILER V8.02 INT1_COUNT_255 12/12/2006 21:01:40 PAGE 2
56 {
57 1 char n;
58 1
59 1 k5_count=count;
60 1
61 1 display[2]=k5_count/100; //数据处理
62 1 k5_count=k5_count%100;
63 1 display[1]=k5_count/10;
64 1 display[0]=k5_count%10;
65 1
66 1 if(display[2]==0) //高位为0,不显示
67 1 {
68 2 display[2]=0x0a;
69 2 if(display[1]==0)
70 2 display[1]=0x0a;
71 2 }
72 1
73 1 for(n=0;n<3;n++)
74 1 {
75 2 P0 =LEDData[display[n]] ; //显示段码
76 2 P2 =scan_bit[n]; //输出位码
77 2 delay(1);
78 2 P2 = 0xff; //关闭显示
79 2 }
80 1 }
81
82 /********************************************************
83 * *
84 * 主程序 *
85 * *
86 ********************************************************/
87 void main(void)
88 {
89 1 P0=0xff;
90 1 P1=0xff;
91 1 P2=0xff;
92 1
93 1 IT1=0; //低电平触发
94 1 EA=1;
95 1 EX1=1;
96 1
97 1 while(1)
98 1 {
99 2 if(K1==0)
100 2 {
101 3 IT1=0; //低电平触发
102 3 delay(20);
103 3 }
104 2 if(K2==0)
105 2 {
106 3 IT1=1; //下降沿触发
107 3 delay(20);
108 3 }
109 2
110 2 disp_count();
111 2 }
112 1 }
113
114 /********************************************************
115 * *
116 * INT1中断函数 *
117 * *
C51 COMPILER V8.02 INT1_COUNT_255 12/12/2006 21:01:40 PAGE 3
118 ********************************************************/
119 void counter(void) interrupt 2
120 {
121 1 uchar x;
122 1 EX1=0;
123 1 count++;
124 1
125 1 for(x=0;x<15;x++)
126 1 {
127 2 disp_count();
128 2 }
129 1 EX1=1;
130 1 }
131
132 /********************************************************/
133
134
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 232 ----
CONSTANT SIZE = 19 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -