📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 10/21/2006 11:54:36 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 /*******************************************************************************
2 程序名称:RAM测试
3 硬件接法:16KB片外RAM接在0x8000~0xBFFF,MOVC和MOVX都可访问,详见电路图
4 运行效果:如果RAM通过测试,则指示灯常亮,否则指示灯不停闪烁
5 *******************************************************************************/
6
7
8 //包含头文件
9 #include <REG51.h>
10 #include <ABSACC.h>
11
12
13 //定义I/O
14 sbit LED = P1^1;
15
16
17 /*******************************************************************************
18 函数:Delay()
19 功能:延时0.01s~2.56s
20 参数:t>0时,延时(t*0.01)s
21 t=0时,延时2.56s
22 说明:定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率
23 *******************************************************************************/
24 void Delay(unsigned char t)
25 {
26 1 do
27 1 {
28 2 TH0 = 0xDC; //设置T0初值(定时10ms)
29 2 TL0 = 0x00;
30 2 TR0 = 1; //启动T0
31 2 while ( !TF0 ); //等待T0溢出
32 2 TR0 = 0; //停止T0
33 2 TF0 = 0; //清除溢出标志
34 2 } while ( --t != 0 ); //循环t次
35 1 }
36
37
38 /*******************************************************************************
39 函数:WriteRam()
40 功能:向RAM写入数据
41 参数:addr-起始地址
42 size-存储单元大小
43 c-要写入的数据
44 *******************************************************************************/
45 void WriteRam(unsigned int addr, unsigned int size, unsigned char c)
46 {
47 1 do
48 1 {
49 2 XBYTE[addr] = c;
50 2 addr++;
51 2 } while ( --size != 0 );
52 1 }
53
54
55 /*******************************************************************************
C51 COMPILER V7.06 MAIN 10/21/2006 11:54:36 PAGE 2
56 函数:CheckRam()
57 功能:检查RAM
58 参数:addr-起始地址
59 size-存储单元大小
60 c-核对的数据
61 *******************************************************************************/
62 bit CheckRam(unsigned int addr, unsigned int size, unsigned char c)
63 {
64 1 do
65 1 {
66 2 if ( CBYTE[addr] != c ) return 0;
67 2 addr++;
68 2 } while ( --size != 0 );
69 1 return 1;
70 1 }
71
72
73 //主函数
74 void main()
75 {
76 1 TMOD &= 0xF0;
77 1 TMOD |= 0x01;
78 1 WriteRam(0x8000,0x4000,0x5A);
79 1 if ( CheckRam(0x8000,0x4000,0x5A) )
80 1 {
81 2 LED = 0;
82 2 for (;;);
83 2 }
84 1 else
85 1 {
86 2 for (;;)
87 2 {
88 3 LED = 0;
89 3 Delay(30);
90 3 LED = 1;
91 3 Delay(30);
92 3 }
93 2 }
94 1 }
95
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 132 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -