📄 ext_int0.lst
字号:
C51 COMPILER V7.06 EXT_INT0 05/18/2008 14:17:14 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE EXT_INT0
OBJECT MODULE PLACED IN ext_int0.OBJ
COMPILER INVOKED BY: D:\Program Files\keil\C51\BIN\C51.EXE ext_int0.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
3 //功能描述:
4 // INTO按键为计数按键,数码管显示按键的次数 &
5 // 上电后数码管显示0,十进制显示 &
6 // 使用者可以进一步开发T1计数程序 &
7
8 //&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
9 //【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! &
10 //【声明】 作者: PIAE小组
11 /*
12
13 */
14
15 #include <reg52.h>
16 #include <intrins.h>
17 #include <ext_int0_def.h>
18
19 void INT0_Counter( void ) interrupt 0 using 1
20 {//INT0为计数按键
21 1 EA = 0;
22 1 Show_Data++; //计数单元加1
23 1 EA = 1;
24 1 }
25
26 void main(void)
27 {
28 1 CPU_init();
29 1 _nop_();
30 1 while(1)
31 1 {
32 2 NOPS;
33 2 ///////////////////////数码管显示程序/////////////////////////////////
34 2 led_seg7(1,Show_Data);
35 2 LED_RED = !LED_RED;
36 2 LED_GRE = !LED_GRE;
37 2
38 2 ///////////////////////数码管显示程序/////////////////////////////////
39 2 }//while 结束
40 1 }//main结束
41
42
43 void Delay(uchar delay_time)
44 {//延时程序
45 1 while(delay_time--)
46 1 {}
47 1 }
48
49
50 void CPU_init(void)
51 {//初始化CPU
52 1 IT0 = 1;//外部中断0负边沿触发
53 1 EX0 = 1;//打开外部中断0
54 1 EA = 1; //打开总中断
55 1 SJA1000_CS = 1;//片选无效
C51 COMPILER V7.06 EXT_INT0 05/18/2008 14:17:14 PAGE 2
56 1 }
57
58
59 void led_seg7(uchar from,uchar number) //from(1_4):数码管显示起始位置(从右到左),number:显示的数
60 {
61 1 uchar digit,temp_l;
62 1 uchar temp_h=0x7f;
63 1 temp_h = _cror_(temp_h,from-1); //确定从哪一位开始显示,即确定高四位
64 1 temp_h = temp_h & 0xf0; //取高四位
65 1 temp_l = P2 & 0x0f; //取P2的低四位
66 1 P2 = temp_h | temp_l; //设定P2口
67 1
68 1 if(number==0)
69 1 {
70 2 P0 = led[0];
71 2 Delay(5);
72 2 P0 = 0xff;
73 2 }
74 1 else
75 1 {
76 2 while(number)
77 2 {
78 3 digit = number%10 ;
79 3 number /= 10;
80 3 P0 = led[digit] ;
81 3 Delay(5);
82 3 temp_h = P2 & 0xf0; //取P2的高四位
83 3 temp_h = temp_h | 0x0f; //拼装 temp_h,进行位选
84 3 temp_h = _cror_(temp_h,1);
85 3 temp_h = temp_h & 0xf0; //取高四位
86 3 temp_l = P2 & 0x0f; //取P2的低四位
87 3 P0 = 0xff;
88 3 P2 = temp_h | temp_l; //设定P2口
89 3 }//while结束
90 2 }//else结束
91 1
92 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 144 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 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 + -