📄 99.lst
字号:
C51 COMPILER V7.08 99 03/07/2009 16:53:06 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE 99
OBJECT MODULE PLACED IN 99.OBJ
COMPILER INVOKED BY: f:\Keil\C51\BIN\C51.EXE 99.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2
3 unsigned char code dis_code[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; // 5,6,7,8,9,off
4 unsigned char code DATA[]={0,1,2,3,4,5,6,7,8,9}; //要显示的数字
5 unsigned char disp_temp,i,j; //要显示的位变量
6 //unsigned char data dis_buf[8]; // dis_buf 显于缓冲区基地址
7 unsigned char code BIT_TAB[]={0x01,0x02};
8 //unsigned char data dis_index; // 显示索引, 用于标识当前显示的数码管和缓冲区的偏移量
9
10 void main()
11 { TMOD = 0x01; // 00000001B 定时计数器0工作在方式1,16位定时器/计数器
12 1 TH0 = 0xfc;
13 1 TL0 = 0xfc; // 预置初值 FC17H=64535D, 216-64535=1001us=1ms
14 1 IE = 0x82; // 10000010B T0溢出中断允许
15 1 TR0 = 1; // 启动T0
16 1 while(1); // 循环等待中断
17 1 }
18
19 void timer0() interrupt 1 // 定时器0中断服务程序, 用于数码管的动态扫描
20
21 {
22 1 TH0 = 0xfc;
23 1 TL0 = 0xfc; // 感觉此处(及上)应该是0x18,而不是17,分析如下
24 1
25 1 //P2 = 0x00; // 先关闭所有数码管
26 1 for(disp_temp=0;;disp_temp++)
27 1 {
28 2 P2=dis_code[DATA[disp_temp]];//P2为段码扫描,
29 2 P1=BIT_TAB[disp_temp]; //P1.0--P1.1为片选
30 2 if(disp_temp==9)
31 2 disp_temp=0;
32 2 }
33 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 65 ----
CONSTANT SIZE = 22 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 ----
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 + -