📄 int0-count-255.lst
字号:
C51 COMPILER V8.02 INT0_COUNT_255 12/12/2006 21:13:19 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE INT0_COUNT_255
OBJECT MODULE PLACED IN INT0-count-255.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE INT0-count-255.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************/
2 /* */
3 /* ME500单片机开发系统演示程序 - INT0中断计数 */
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
33 /********************************************************
34 * *
35 * 延时函数 *
36 * *
37 ********************************************************/
38 void delay(uint ms)
39 // 延时子程序
40 {
41 1 uchar k;
42 1 while(ms--)
43 1 {
44 2 for(k = 0; k < 120; k++);
45 2 }
46 1 }
47
48 /********************************************************
49 * *
50 * 数据处理与显示函数 *
51 * *
52 ********************************************************/
53 void disp_count()
54 {
55 1 char n;
C51 COMPILER V8.02 INT0_COUNT_255 12/12/2006 21:13:19 PAGE 2
56 1
57 1 k5_count=count;
58 1
59 1 display[2]=k5_count/100; //数据处理
60 1 k5_count=k5_count%100;
61 1 display[1]=k5_count/10;
62 1 display[0]=k5_count%10;
63 1
64 1 if(display[2]==0) //高位为0,不显示
65 1 {
66 2 display[2]=0x0a;
67 2 if(display[1]==0)
68 2 display[1]=0x0a;
69 2 }
70 1
71 1 for(n=0;n<3;n++)
72 1 {
73 2 P0 =LEDData[display[n]] ; //显示段码
74 2 P2 =scan_bit[n]; //输出位码
75 2 delay(1);
76 2 P2 = 0xff; //关闭显示
77 2 }
78 1 }
79
80 /********************************************************
81 * *
82 * 主程序 *
83 * *
84 ********************************************************/
85 void main(void)
86 {
87 1 P0=0xff;
88 1 P1=0xff;
89 1 P2=0xff;
90 1
91 1 // IT0=0; //低电平触发
92 1 IT0=1; //下降沿触发
93 1 EA=1;
94 1 EX0=1;
95 1
96 1 while(1)
97 1 {
98 2 disp_count();
99 2 }
100 1 }
101
102 /********************************************************
103 * *
104 * INT0中断函数 *
105 * *
106 ********************************************************/
107 void counter(void) interrupt 0
108 {
109 1 uchar x;
110 1 EX0=0;
111 1 count++;
112 1
113 1 for(x=0;x<15;x++)
114 1 {
115 2 disp_count();
116 2 }
117 1 EX0=1;
C51 COMPILER V8.02 INT0_COUNT_255 12/12/2006 21:13:19 PAGE 3
118 1 }
119
120 /********************************************************/
121
122
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 208 ----
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 + -