|
51单片机外接ram芯片6264的仿真原理图:
仿真及程序下载:
数据存储器_RAM_6264.7z.rar
(17.21 KB, 下载次数: 132)
- #include <reg52.h>
- #include <intrins.h> //使用_nop_();
- #include <absacc.h> //绝对物理地址访问的头文件
- #define uchar unsigned char
- #define uint unsigned int
- uint RAMADDR //定义6264的地址
- #define RAM_6264 XBYTE[RAMADDR] //6264地址范围6000H-7FFFH
- ;uchar code sz[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
- 0x7d,0x07,0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71,0x00 };
- void delayms(uint t); //延时
- void display_cc(uint k); //共阳
- void display_ca(uint k); //共阴
-
- void main()
- {
- uchar temp;
- uint n,k=0;
- P0=0xff;
- P2=0x3f;
- RAMADDR=0x6000; //6264的首地址
- for(n=0;n<256;n++)
- {
- RAM_6264=n;
- RAMADDR++;
- delayms(1);
- }
- RAMADDR=0x6000; //6264首地址
- while(1)
- {
- for(n=0;n<10;n++)
- {
- temp=RAM_6264; //从6264读出数据
- //P1=temp;
- display_ca(temp);
- }
- RAMADDR++; //地址自增
- if(RAMADDR==0x6100) RAMADDR=0x6000;
- }
- }
- void delayms(uint t)
- {
- uchar k;
- while(t--)
- {
- for(k=0; k<125; k++);
- }
- }
- void display_cc(uint k)
- {
- uint x,y,b;
- b=1000;
- P3=0xfc;
- x=k/16;
- y=k%16;
- P1=~sz[x];
- P3=0xfd;
- while(b--);
- _nop_();
- b=1000;
- P3=0xfc;
- P1=~sz[y];
- P3=0xfe;
- while(b--);
- _nop_();
- P3=0xfc;
- }
- void display_ca(uint k)
- {
- uint x,y,b;
- b=1000;
- P3=0xff;
- x=k/16;
- y=k%16;
- P1=sz[x];
- P3=0xfe;
- while(b--);
- _nop_();
- b=1000;
- P3=0xff;
- P1=sz[y];
- P3=0xfd;
- while(b--);
- _nop_();
- P3=0xff;
- }
复制代码
|
|