int0.lst
来自「c8051f020单片机的例程」· LST 代码 · 共 80 行
LST
80 行
C51 COMPILER V7.06 INT0 07/29/2008 09:23:21 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE INT0
OBJECT MODULE PLACED IN int0.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE int0.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <c8051f020.h> /*SFR定义*/
2 sbit led=P3^7;
3 void PORT_Init()
4 { XBR0 = 0x04; //urat0 配置到p0.0 p0.1
5 1 XBR1=0x04; //int0 配置到p0.2
6 1
7 1 P3MDOUT=0Xff;
8 1 P0MDOUT=0Xff;
9 1 XBR2=0X40;
10 1
11 1 }
12 void SYSCLK_Init()
13 {
14 1 unsigned int i;
15 1 OSCXCN=0X67; //0X67=0110,0111
16 1 for(i=0;i<256;i++); //等待>1ms
17 1 while(!(OSCXCN&0X80)); //等待XTLVLD变为1
18 1 OSCICN=0X88; //时钟失效监测器,选择外部时钟源作为系统时钟
19 1 }
20 void UART0_Init()
21 {
22 1 SCON0=0x50; //串口方式1
23 1 TMOD=0X20; //选用定时器1作为波特率发生器
24 1 TH1=0xF4; //波特率为4800
25 1 TL1=0xF4;
26 1
27 1 TF1=0;
28 1 TR1=1; //定时器启动
29 1 PCON=0X00; //波特率不乘2
30 1 TI0=1;
31 1
32 1 }
33 void main (void) {
34 1
35 1 WDTCN = 0xde; /*关看门狗*/
36 1 WDTCN = 0xad;
37 1 SYSCLK_Init();
38 1 PORT_Init();
39 1 UART0_Init();
40 1 EX0=1; // 外部中断允许
41 1 IT0=1; // 下降沿触发
42 1 PX0=1; // 优先级最高
43 1 EA=1; // 全局中断允许
44 1 while (1) { }
45 1
46 1
47 1 }
48 void fint0 (void) interrupt 0
49 {
50 1 led=!led;// led状态取反
51 1 SBUF0=0Xff;//向上位机发送ff
52 1 while(TI0==0);
53 1 TI0=0;
54 1 }
C51 COMPILER V7.06 INT0 07/29/2008 09:23:21 PAGE 2
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 102 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?