|
單片機(jī)驅(qū)動(dòng)SRAM6116外部ram芯片的一個(gè)proteus仿真的例子,仿真原理圖如下:
這個(gè)程序可以幫助我們熟悉單片機(jī)的外部ram操作的過程.
所有資料下載:
SRAM6116.rar
(30.82 KB, 下載次數(shù): 45)
2016-9-27 12:11 上傳
點(diǎn)擊文件名下載附件
源程序:
- #include "reg51.h"
- sbit P27=P2^7; //模擬8051的ALE引腳
- sbit P26=P2^6; //模擬8051的WR引腳
- sbit P25=P2^5; //模擬8051的RD引腳
- #define uint unsigned int
- #define uchar unsigned char
- void delay(uint); //函數(shù)聲明
- void main()
- {
- //uchar x=0;
- P27=0; //P27原本為1,故實(shí)際電路中加反相器
- P0&=0x06; //寫地址000 0000 0110到74LS373并進(jìn)行鎖存,共11位,這里的地址是任意選擇的。 注:這樣書寫的P0口作為普通I/O口
- P2&=0xF8;
- delay(20);
- P27=1;
- P26=0; //寫命令
- P0=0xD7; //通過數(shù)據(jù)口P0寫數(shù)據(jù)到SRAM
- delay(20);
- P26=1; //寫完成
- P27=0;
- P0&=0x06; //寫地址000 0000 0110到74LS373進(jìn)行鎖存 共11位
- P2&=0xF8;
- delay(20);
- P27=1;
- P25=0; //讀命令
- delay(20); //通過數(shù)據(jù)口P0讀取SRAM中的數(shù)據(jù)
- P25=1; //讀完成
- while(1);
- }
- void delay(uint i) //若i=10,則延時(shí)1ms=10*125*8us
- {
- uint j;
- while(i--)
- {
- for(j = 0; j < 125; j++);
- }
- }
復(fù)制代碼 |
|