Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2系列013_iic_AT24C1024

一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
在這裏插入圖片描述
圖1

二,調整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
在這裏插入圖片描述
圖2

在這裏插入圖片描述
圖3

在這裏插入圖片描述
圖4

三,點擊Source Code標籤。(如下圖5所示)
在這裏插入圖片描述
圖5

四,編輯main.c 代碼如Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2系列013_iic_AT24C1024 (如下圖6所示)
在這裏插入圖片描述
圖6

五,Main.c 代碼:

/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin

  • Created: 週日 5月 3 2020
  • Processor: AT89C51RD2
  • Compiler: Keil for 8051
    */

#include “AT24CMN.h”

#define Buf_Max 50

uchar xdata Rec_Buf[Buf_Max];
uchar read=0x33, t= 0;
uchar uart1temp= 0x33;
uchar code table[]=" GOOD LUCK\r\n Kaillen Works wellcom YOU!\r\n";
char mmm[5];

void Uart1() interrupt 4
{
if(RI) //接收到數據的中斷
{
RI=0; //清除中斷標誌
uart1temp=SBUF;
if(t==Buf_Max) t= 0;
Rec_Buf[t]= uart1temp;
t++;
}
}

int main(void)//主函數
{
int adr=0x0054;
char *Number=“1679”;
SCON=0x50; //串口模式1,允許接收
TMOD=0x20; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率設定9600
TL1=0xfd; //波特率設定9600
TI=RI=0; //接收和發送標誌清零
TR1=1; //啓動定時器T1
IE=0x90; //允許串口中斷

ES = 1;                                       // 串口1中斷打開
EA = 1;                                       // 總中斷打開

WP= 0;
SA= 0;

while(1)	//程序循環發送
{
	while(!RI) {
		mprint(table);	  //共有十一個字符
		mprint("\r\n");	
		delayms(1000);		 //兩個字符串之家間隔一秒
		if(Rec_Buf[0]>0){
			mprint(Rec_Buf);	  //共有十一個字符
			mprint("\r\n");
			mZero(Rec_Buf);	
			t=0;
		} 
	    delayms(100);		 //兩個字符串之家間隔一秒		 //兩個字符串之家間隔一秒	
		mprint("寫入EEPROM: ");	 	
		mprint(Number);	 
		mprint("\r\n");
	    delayms(100);		 //兩個字符串之家間隔一秒		 //兩個字符串之家間隔一秒	

		WrToROM(Number,0x0044,4);
	    delayms(300);		 //兩個字符串之家間隔一秒

		SeilRd(mmm,0x0054,4);

	    delayms(100);		 //兩個字符串之家間隔一秒
		mprint("讀取EEPROM: ");
		mprint(mmm);	 
		mprint("\r\n");
	    delayms(1000);		 //兩個字符串之家間隔一秒	
	}
	delayms(100);		 //兩個字符串之家間隔一秒		
}

}
iic.h:

/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin

  • Created: 週日 5月 3 2020
  • Processor: AT89C51RD2
  • Compiler: Keil for 8051
    */

#ifndef _IIC_H
#define _IIC_H

#include “muart.h”
#include <INTRINS.H>

#define uchar unsigned char
#define uint unsigned int

//#define AddWr 0xa0
//#define AddRd 0xa1
//#define _Nop() nop() //定義空指令

/端口定義/
sbit Scl= P1^0; //模擬I2C時鐘控制位
sbit Sda=P1^1; //模擬I2C數據傳送位
sbit WP= P1^2;
sbit SA=P1^3;
/狀態標誌/
//bit ack;

void Start(void);
void Stop(void);
void Ask(void);
void NoAsk(void);
void Send(uchar Data);
uchar DatRead(void);
//uchar DatRead(uchar ack);

#endif

六,點擊構建工程按鈕,編譯工程。(如下圖7所示)
在這裏插入圖片描述
圖7

七,點擊窗口左下方仿真按鈕,可見虛擬IIC Deburg儀器和虛擬串口的信息顯示在屏。 (如下圖8,9,10所示)
在這裏插入圖片描述
圖8

在這裏插入圖片描述
圖9
在這裏插入圖片描述
圖10

八,選擇release,點擊構建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)
在這裏插入圖片描述
圖11

附件:https://download.csdn.net/download/kaillen/12425650
附件Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2系列013_iic_AT24C1024在已安裝Proteus8.9的計算機文件夾中打開即可
需要進一步瞭解,請加入QQ羣:976235464

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章