📄 t0.lst
字号:
C51 COMPILER V6.23a T0 04/06/2005 10:38:05 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE T0
OBJECT MODULE PLACED IN T0.OBJ
COMPILER INVOKED BY: C:\TOOLS\Keil\C51\BIN\C51.EXE T0.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*实验名称:定时中断0
2 功能:利用定时器,产生秒计数器,使数码管从000计到999
3 作者:http://www.mcuprog.com
4 05-02-01
5 */
6 #include <reg51.h>
7 //LCD的口线
8 sbit E=P3^5;
9 sbit RW=P3^6;
10 sbit RS=P3^7;
11 //8字LED的连接方法
12 //P0.7 P.06 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
13 // H G F E D C B A
14
15 unsigned char code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
16 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //数码管段码表
17 unsigned char js100ms,jsgw,jssw,t0100ms,t0sm;
18
19 void time0(void);
20
21 void main(void)
22 {
23 1 E=0; //取消LCD对LED的影响
24 1 RW=0;
25 1 RS=1;
26 1
27 1 js100ms=0x00;
28 1 jsgw=0x00;
29 1 jssw=0x00;
30 1 t0100ms=0x14;
31 1 t0sm=0x01; //从第一个LED开始显示
32 1 TH0=0xee;
33 1 TL0=0x00;
34 1 TMOD=0x01;
35 1 TR0=1;
36 1 IE=0x82;
37 1 while(1)
38 1 {}
39 1 }
40
41 void time0(void) interrupt 1
42 {
43 1 TH0=0xee;
44 1 TL0=0x00;
45 1 t0100ms--;
46 1 if(t0100ms==0x00)
47 1 {
48 2 t0100ms=0x14;
49 2 js100ms++;
50 2 if(js100ms==0x0a)
51 2 {
52 3 js100ms=0x00;
53 3 jsgw++;
54 3 if(jsgw==0x0a)
55 3 {
C51 COMPILER V6.23a T0 04/06/2005 10:38:05 PAGE 2
56 4 jsgw=0x00;
57 4 jssw++;
58 4 if(jssw==0x0a)
59 4 {jssw=0x00;}
60 4 }
61 3 }
62 2 }
63 1 t0sm++;
64 1 if(t0sm==0x04)
65 1 {t0sm=0x01;}
66 1 P0=0xff;
67 1 switch(t0sm)
68 1 {
69 2 case 0x01: { P2=0xdf;P0=ledcode[js100ms];}break;
70 2 case 0x02: { P2=0xef;P0=ledcode[jsgw]&0x7f;}break;
71 2 case 0x03: { P2=0xf7;P0=ledcode[jssw];}break;
72 2 default: break;
73 2 }
74 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 152 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -