📄 main.lst
字号:
C51 COMPILER V7.08 MAIN 10/14/2008 21:38:40 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2
3 #define T0_INTERRUPT 1 //T0中断向量号
4 //共阳极数码管7段码
5 unsigned char seg[] = {0x3F,0x06}; //简化只显示0和1
6
7 unsigned char SegScan[] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF};//6个数码管控制
8
9 void Init_T0()
10 {
11 1 TMOD &= 0xF0;
12 1 TMOD |= 0x01; //16位定时器模式
13 1
14 1 TH0 = 0xFC;
15 1 TL0 = 0x18;
16 1
17 1 EA = 1; //开全局中断
18 1 ET0 = 1; //允许T0中断
19 1 TR0 = 1; //启动定时器
20 1 }
21
22 void Display() //扫描显示
23 {
24 1 static unsigned char i = 0;
25 1 P2 = SegScan[i];
26 1 P1 = 0xFF - seg[i%2]; //转换成共阴极数码管,seg[i%2]可以在其他函数进行更新
27 1 i++;
28 1 if(i>5) i = 0;
29 1 }
30
31 void main(void)
32 {
33 1 Init_T0();
34 1 while(1)
35 1 {
36 2 PCON |= 0x01;
37 2 }
38 1 }
39
40 void T0_Interrupt() interrupt T0_INTERRUPT
41 {
42 1 static unsigned char i = 0;
43 1 TH0 = 0xFC;
44 1 TL0 = 0x18;
45 1 i++;
46 1 TF0 = 0;
47 1 if(i == 3) //3毫秒扫描一次
48 1 {
49 2 Display();
50 2 i = 0;
51 2 }
52 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V7.08 MAIN 10/14/2008 21:38:40 PAGE 2
CODE SIZE = 104 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 ----
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 + -