📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 10/19/2006 19:33:15 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <stdio.h>
2 #include <absacc.h>
3 #include <intrins.h>
4 #include <./Atmel/at89x52.h>
5 #include "source.h"
6 void Enable_Int(unsigned char i);
7 void Disable_Int(unsigned char i);
8 main(void){
9 1 unsigned int i;
10 1 Enable_Int(0);
11 1 Enable_Int(1);
12 1 Enable_Int(2);
13 1 Enable_Int(3);
14 1 Enable_Int(4);
15 1 Enable_Int(5);
16 1 Enable_Int(6);
17 1 Enable_Int(7);
18 1 while(1){
19 2 i++;
20 2 if(i==0)Enable_Int(7);
21 2 if(i==0x7fff)Disable_Int(7);
22 2 }
23 1 }
24 void Int_Clr(unsigned char i){//清除扩展中断i
25 1 XBYTE[INT_CLR0+i]=1; //把清除i对应的地址写1
26 1 }
27 void Enable_Int(unsigned char i){//使能扩展中断i
28 1 unsigned char temp;
29 1 temp=XBYTE[INT_ENA]; //读出使能寄存器的状态
30 1 temp |=1<<i;//要对应的要使能比特写1
31 1 XBYTE[INT_ENA]=temp;//把temp值给使能寄存器的
32 1 }
33 void Disable_Int(unsigned char i){//禁止扩展中断i
34 1 unsigned char temp;
35 1 unsigned char mask;
36 1 mask=1<<i;
37 1 mask=~mask; //把要屏幕中断的比特设置0,其他比特为1
38 1 temp=XBYTE[INT_ENA];//读出使能寄存器的状态
39 1 temp &=mask;
40 1 XBYTE[INT_ENA]=temp;//把使能寄存器相应的比特设置为0
41 1 }
42 void int0() interrupt 0 {
43 1 unsigned char stat,i;
44 1 stat=XBYTE[INT_MASKED];
45 1 for(i=0;i<8;i++){
46 2 if(stat&(1<<i)){
47 3 Int_Clr(i);
48 3 }
49 2 }
50 1 }
51
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 220 ----
C51 COMPILER V7.06 MAIN 10/19/2006 19:33:15 PAGE 2
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -