|
一,打開文件(可以隨文下載放置在文檔中打開)。(如下圖1所示)
1.png (869.48 KB, 下載次數(shù): 74)
下載附件
2020-5-16 04:07 上傳
圖1
二,調(diào)整原理圖大小,適合可視,另存工程文件。(如下圖2,3,4所示)
2.png (234.6 KB, 下載次數(shù): 68)
下載附件
2020-5-16 04:07 上傳
圖2
3.png (245.66 KB, 下載次數(shù): 59)
下載附件
2020-5-16 04:07 上傳
圖3
4.png (279.25 KB, 下載次數(shù): 68)
下載附件
2020-5-16 04:07 上傳
圖4
三,點(diǎn)擊Source Code標(biāo)簽。(如下圖5所示)
5.png (152.73 KB, 下載次數(shù): 79)
下載附件
2020-5-16 04:07 上傳
圖5
四,編輯main.c 代碼如Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2系列013_iic_AT24C1024 (如下圖6所示)
6.png (164.84 KB, 下載次數(shù): 76)
下載附件
2020-5-16 04:07 上傳
圖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) //接收到數(shù)據(jù)的中斷
{
RI=0; //清除中斷標(biāo)志
uart1temp=SBUF;
if(t==Buf_Max) t= 0;
Rec_Buf[t]= uart1temp;
t++;
}
}
int main(void)//主函數(shù)
{
int adr=0x0054;
char *Number="1679";
SCON=0x50; //串口模式1,允許接收
TMOD=0x20; //T1工作模式2
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率設(shè)定9600
TL1=0xfd; //波特率設(shè)定9600
TI=RI=0; //接收和發(fā)送標(biāo)志清零
TR1=1; //啟動(dòng)定時(shí)器T1
IE=0x90; //允許串口中斷
ES = 1; // 串口1中斷打開
EA = 1; // 總中斷打開
WP= 0;
SA= 0;
while(1) //程序循環(huán)發(fā)送
{
while(!RI) {
mprint(table); //共有十一個(gè)字符
mprint("\r\n");
delayms(1000); //兩個(gè)字符串之家間隔一秒
if(Rec_Buf[0]>0){
mprint(Rec_Buf); //共有十一個(gè)字符
mprint("\r\n");
mZero(Rec_Buf);
t=0;
}
delayms(100); //兩個(gè)字符串之家間隔一秒 //兩個(gè)字符串之家間隔一秒
mprint("寫入EEPROM: ");
mprint(Number);
mprint("\r\n");
delayms(100); //兩個(gè)字符串之家間隔一秒 //兩個(gè)字符串之家間隔一秒
WrToROM(Number,0x0044,4);
delayms(300); //兩個(gè)字符串之家間隔一秒
SeilRd(mmm,0x0054,4);
delayms(100); //兩個(gè)字符串之家間隔一秒
mprint("讀取EEPROM: ");
mprint(mmm);
mprint("\r\n");
delayms(1000); //兩個(gè)字符串之家間隔一秒
}
delayms(100); //兩個(gè)字符串之家間隔一秒
}
}
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時(shí)鐘控制位
sbit Sda=P1^1; //模擬I2C數(shù)據(jù)傳送位
sbit WP= P1^2;
sbit SA=P1^3;
/*狀態(tài)標(biāo)志*/
//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
六,點(diǎn)擊構(gòu)建工程按鈕,編譯工程。(如下圖7所示)
7.png (193.51 KB, 下載次數(shù): 66)
下載附件
2020-5-16 04:07 上傳
圖7
七,點(diǎn)擊窗口左下方仿真按鈕,可見虛擬IIC Deburg儀器和虛擬串口的信息顯示在屏。 (如下圖8,9,10所示)
8.png (240.53 KB, 下載次數(shù): 54)
下載附件
2020-5-16 04:07 上傳
圖8
9.png (259.66 KB, 下載次數(shù): 77)
下載附件
2020-5-16 04:07 上傳
圖9
10.png (265.32 KB, 下載次數(shù): 67)
下載附件
2020-5-16 04:07 上傳
圖10
八,選擇release,點(diǎn)擊構(gòu)建工程按鈕,編譯工程生成Hex文件。(如下圖11所示)
11.png (220.18 KB, 下載次數(shù): 73)
下載附件
2020-5-16 04:07 上傳
圖11
附件Proteus8.9 VSM Studio Keil編譯器仿真AT89C51RD2系列013_iic_AT24C1024在已安裝Proteus8.9的計(jì)算機(jī)文件夾中打開即可
需要進(jìn)一步了解,請(qǐng)加入QQ群:976235464
|
評(píng)分
-
查看全部評(píng)分
|