📄 sram_cpld.lst
字号:
C51 COMPILER V7.06 SRAM_CPLD 08/18/2005 18:44:02 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SRAM_CPLD
OBJECT MODULE PLACED IN Sram_cpld.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Sram_cpld.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*单片机通过cpld向sram写数据,然后通过cpld将数据从ram读出来*/
2
3
4 //SA13---SA18由373锁存器提供,373的所存控制信号由P3.5提供,373的输入数据由P0口提供。373为下降沿锁存
5 //SRAM每个页面有0X1FFF个单元,每个页面的地址从0X2000到0X3FFF。
6 #include<reg51.h>
7 #include<intrins.h>
8 #include<absacc.h>
9 #define unchar unsigned char
10 #define unint unsigned int
11 #define DisCmd XBYTE [0xC100] //7218控制字地址
12 #define DisData XBYTE [0xC000] //7218数据口地址
13 #define SRAMPage 0x00
14 unchar keynum;
15 sbit P3_5=P3^5;
16 //#define SRAM XBYTE[0x2000] //SRAM首地址
17 //unchar a[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
18 char distab[8]={0x13,0x13,0x14,0x00,0x12,0x12,0x0e,0x11} ; // 要显示的内容 hello-pp
19 char code ledtab[]={ 0xfb,0xb0,0xed,0xf5,0xb6,0xd7,0xdf,0xf0,
20 //0, 1, 2, 3, 4, 5, 6, 7
21 0xff,0xf7,0xfe,0x9f,0xcb,0xbd,0xcf,0xce,
22 //8 ,9 ,a ,b ,c ,d ,e ,f
23 0x80,0xbe,0x8b,0xee,0x84 };
24 //熄灭 H L P -
25
26 //***********************************************************************
27 void delay100us(void)
28 {
29 1 unchar n;
30 1 for(n=0;n<100;n++);
31 1
32 1 }
33
34 //***********************************************************************
35 void display()
36 {
37 1 unchar i;
38 1 DisCmd=0xb0; //采用软件译码
39 1 for(i=0;i<8;i++) //将distab中的数据送如7218
40 1 {
41 2 DisData=ledtab[distab[i]]; //查表转化并将字型送入7218
42 2 }
43 1
44 1 }
45 //***********************************************************************
46 SRAM_Initial(unchar Page) //SRAM初始化程序,向指定的页面写入8k字节
47 {
48 1 unchar n,k;
49 1 unchar xdata * SRAM;
50 1 SRAM=0x2000;
51 1 P3_5=0;
52 1 _nop_();
53 1 P3_5=1;
54 1 _nop_();
55 1 _nop_();
C51 COMPILER V7.06 SRAM_CPLD 08/18/2005 18:44:02 PAGE 2
56 1 P0=Page; //选中SRAM第一页
57 1 _nop_();
58 1 _nop_();
59 1 P3_5=0; //下降沿锁存页地址
60 1 for(n=0;n<20;n++)
61 1 {
62 2 for(k=0;k<0xff;k++)
63 2 {
64 3 *SRAM++=n;
65 3 }
66 2 delay100us();
67 2 }
68 1 }
69
70 //***********************************************************************
71 unchar SRAM_Read(unchar Page,int add) //从指定的页中,读出指定地址连续8个字节的值,送到distab保存
72 {
73 1 unchar xdata * SRAM;
74 1 //unchar n;
75 1 //SRAM=0x2000;
76 1 SRAM=0xA000;
77 1 P3_5=0;
78 1 _nop_();
79 1 P3_5=1;
80 1 _nop_();
81 1 _nop_();
82 1 P0=Page; //选中SRAM第一页
83 1 _nop_();
84 1 _nop_();
85 1 P3_5=0; //下降沿锁存页地址
86 1 SRAM=0xA000+add;
87 1 //for(n=0;n<8;n++)
88 1 //{
89 1 //distab[n]=*SRAM;
90 1 // SRAM++;
91 1 // }
92 1 return *SRAM;
93 1 }
94
95 //***********************************************************************
96 SRAM_Write(unchar Page,int add,unchar dataa) //从指定的页中,指定地址写入一个字节
97 {
98 1 unchar xdata * SRAM;
99 1 //SRAM=0x2000;
100 1 SRAM=0xA000;
101 1 P3_5=0;
102 1 _nop_();
103 1 P3_5=1;
104 1 _nop_();
105 1 _nop_();
106 1 P0=Page; //选中SRAM第一页
107 1 _nop_();
108 1 _nop_();
109 1 P3_5=0; //下降沿锁存页地址
110 1 SRAM=0xA000+add;
111 1 *SRAM=dataa;
112 1 }
113 //***********************************************************************
114 void intt0() interrupt 0
115 {
116 1 unchar i;
117 1 EX0=0; //关键盘中断,禁止相应其他按键
C51 COMPILER V7.06 SRAM_CPLD 08/18/2005 18:44:02 PAGE 3
118 1 keynum=P1; //从p1口读入键盘值
119 1 keynum=keynum&0x0f; //取低四位;
120 1 //keyprg(keynum);
121 1 if(keynum==0x0f)
122 1 {
123 2 for(i=0;i<8;i++)
124 2 distab[i]=SRAM_Read(0,i);
125 2 display();
126 2 }
127 1 if(keynum<10)
128 1 {
129 2 for(i=0;i<8;i++)
130 2 SRAM_Write(0,i,keynum);
131 2 }
132 1
133 1 EX0=1; //开中断
134 1 }
135
136 //***********************************************************************
137 void main(void)
138 {
139 1
140 1 display();
141 1 EX0=1;
142 1 EA=1;
143 1
144 1 while(1);
145 1
146 1 }
147
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 261 ----
CONSTANT SIZE = 21 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 9 ----
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 + -