計算機模型機
1.png (36.88 KB, 下載次數: 87)
下載附件
2016-3-16 11:51 上傳
首先打開NEWest.DSN。在AT89C51器件上雙擊,在Program File: 路徑選中該文件夾中的new.hex文件。然后可以按仿真開始按鈕。大概經過5~10秒程序寫入完畢。然后將一些開關撥回。即將SW15,SW18,SW10,SW9撥至右邊。SW14撥至上邊。和U41連接的LOGICSTATE撥為0,和U45連接的LOGICSTATE撥至1。然后可以按動START上的LOGICSTATE。整個系統開始運行。 - #include "reg51.h"
- sbit OE =P2^7;
- sbit WE =P2^6;
- sbit CS2=P2^5;
- sbit CS1=P2^4;
- sbit CS0=P2^3;
- sbit t=P2^2;
- sbit WE_R=P2^1;
- sbit LDRAM=P2^0;
- sbit tr=P1^7;
- #define n 100
- void delay(void)
- {
- char i,j;
- for(i=0;i<n;i++)
- for(j=0;j<n;j++)
- {}
- }
- void init(void)
- {
- OE=1;
- WE=1;
- CS2=1;
- CS1=1;
- CS0=1;
- WE_R=1;
- LDRAM=1;
- t=0;
- }
- void main(void)
- {
- char c2[25]= {0x01,0x01,0x00,0x00,0x00,0x01,0x95,0x00,0x00,0x01,0x01,
- 0x01,0x01,0x02,0x00,0x00,0x01,0x01,0x00,0x01,0x00,0x07,0x00,0x07,0x06};
- // char c1[25]= {0x81,0xed,0xc0,0xe0,0xb0,0xa2,0x9a,0xe0,0x12,0xed,0xed,
- // 0xed,0xed,0x82,0xe0,0xa0,0xed,0xed,0xa0,0x80,0x20,0x0a,0xd1,0x0a,0x8a};
- char c1[25]= {0x81,0xed,0xc0,0xe0,0xb0,0xa2,0x9a,0xe0,0x10,0xed,0xed,
- 0xed,0xed,0x82,0xe0,0xa0,0xed,0xed,0xa0,0x80,0x20,0x0a,0xd1,0x0a,0x8a};
- char c0[25]= {0x10,0x82,0x48,0x04,0x05,0x06,0x01,0x0d,0x01,0x83,0x87,
- 0x8e,0x96,0x01,0x0f,0x15,0x92,0x94,0x17,0x01,0x18,0x01,0x81,0x10,0x11};
- char ram[11]={0x00,0x10,0x0a,0x20,0x0b,0x30,0x0b,0x40,0x00,0x00,0x01};
- char i;
- init();
- WE=0;
- for(i=0;i<=24;i++)
- {
- P1=i;
- t=!t;
- P0=c2[i];
- CS2=0;
- delay();
- CS2=1;
- P0=c1[i];
- CS1=0;
- delay();
- CS1=1;
- P0=c0[i];
- CS0=0;
- delay();
- CS0=1;
- t=!t;
- }
- WE=1;
- CS2=0;
- CS1=0;
- CS0=0;
- OE=0;
- P0=0x00;
- for(i=0;i<25;i++)
- {
- P1=i;
- t=!t;
- t=!t;
- delay();
- }
- P1=0x01;
- t=!t;
- t=!t;
- delay();
-
- P3=0;
-
- LDRAM=0;
- tr=0;
- for(i=0;i<11;i++)
- {
- P3=i;
- tr=!tr;
- tr=!tr;
- P3=ram[i];
- WE_R=0;
- delay();
- WE_R=1;
- }
-
- P3=0x00;
- tr=!tr;
- tr=!tr;
- LDRAM=1;
- while(1){}
- }
復制代碼
實驗結果:
微地址順序(八進制)
00 20
00 01 02 10
00 01 02 10 03 04 05 06
00 01 02 10 07 15
00 01 02 10 16 17 25
00 01 02 10 26
再跳轉到開始,重復執行
00 20
00 01 02 10
00 01 02 10 03 04 05 06
00 01 02 10 07 15
00 01 02 10 16 17 25
00 01 02 10 26
|