📄 ram.lst
字号:
C51 COMPILER V7.06 RAM 01/02/2008 09:20:02 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE RAM
OBJECT MODULE PLACED IN RAM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RAM.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <stdio.h>
3 #include <absacc.h>
4
5 #define RAM(ADDR) XBYTE[ADDR]
6
7 typedef unsigned int uint;
8 typedef unsigned char uchar;
9
10 sbit CS=P1^4;
11 sbit CLK=P1^7;
12 sbit DIO=P1^6;
13 sbit KEY=P3^2;
14
15 uchar half_hign;
16 uchar half_low;
17
18 bdata uchar com_data;
19 sbit mos_bit=com_data^7;
20 sbit low_bit=com_data^0;
21
22 void delay_50us()
23 {
24 1 uchar i;
25 1 for (i=0; i<6; i++){;}
26 1 }
27
28 void delay_8us()
29 {
30 1 uchar i;
31 1 for (i=0; i<1; i++){;}
32 1 }
33 void delay_50ms()
34 {
35 1 uchar i,j;
36 1 for(j=0;j<50;j++)
37 1 for(i=0;i<125;i++){;}
38 1 }
39 void send(uchar sebuf)
40 {
41 1 uchar i;
42 1 com_data=sebuf;
43 1 CLK=0;
44 1 CS=0;
45 1 delay_50us();
46 1 for(i=0;i<8;i++)
47 1 {
48 2 delay_8us();
49 2 DIO=mos_bit;
50 2 CLK=1;
51 2 delay_8us();
52 2 com_data=com_data<<1;
53 2 CLK=0;
54 2 }
55 1 DIO=0;
C51 COMPILER V7.06 RAM 01/02/2008 09:20:02 PAGE 2
56 1 }
57 uchar receive(void)
58 {
59 1 uchar i,rebuf;
60 1 CLK=1;
61 1 delay_50us();
62 1 for(i=0;i<8;i++)
63 1 {
64 2 com_data=com_data<<1;
65 2 low_bit=DIO;
66 2 CLK=1;
67 2 delay_8us();
68 2 CLK=0;
69 2 delay_8us();
70 2 }
71 1 rebuf=com_data;
72 1 DIO =1;
73 1 CS=1;
74 1 return rebuf;
75 1 }
76 void reset(void)
77 {
78 1 DIO=1;
79 1 delay_50ms();
80 1 send(0xa4);
81 1 CS=1;
82 1 }
83 /* 7289显示程序 */
84 /* addr为显示位置 范围0~7 */
85 /* dat为现实内容 */
86 void display(uchar addr,uchar dat)
87 {
88 1 if(addr<0 || addr >7)
89 1 return;
90 1 send(0xc8 + addr);
91 1 delay_50us();
92 1 send(dat);
93 1 CS=1;
94 1 }
95 /* 发送双字节命令 */
96 void sendcommand(uchar addr,uchar dat)
97 {
98 1 send(addr);
99 1 delay_50us();
100 1 send(dat);
101 1 CS=1;
102 1 }
103 void main()
104 {
105 1 uchar dat;
106 1 uint i;
107 1 reset();
108 1 for(i=0x0000;i<0x8000;i++)
109 1 {
110 2 /* 对32KRAM的每一个字节进行测试 */
111 2 /* 先写入0xaa,然后看能否读出来 */
112 2 RAM(i + 0x8000) = 0xaa;
113 2 dat = RAM(i + 0x8000);
114 2 if(dat != 0xaa)
115 2 break;
116 2 /* 再写入0x55,然后看能否读出来 */
117 2 RAM(i + 0x8000) = 0x55;
C51 COMPILER V7.06 RAM 01/02/2008 09:20:02 PAGE 3
118 2 dat = RAM(i + 0x8000);
119 2 if(dat != 0x55)
120 2 break;
121 2 }
122 1 if(i == 0x8000) /* 没有问题则显示 P */
123 1 sendcommand(0x80,0x0e);
124 1 else /* 有问题则显示 E */
125 1 sendcommand(0x80,0x0b);
126 1
127 1 while(1);
128 1 }
129
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 246 ----
CONSTANT SIZE = ---- ----
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 + -