一,打开文件(可以随文下载放置在文档中打开)。(如下图1所示)
图1
二,调整原理图大小,适合可视,另存工程文件。(如下图2,3,4所示)
图2
四,编辑main.c 代码如Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列014_iic_lcd1602 (如下图6所示)
图6
五,Main.c 代码:
/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin
#include “muart.h”
#include “iiclcd1602.h”
#define Buf_Max 50
uchar xdata Rec_Buf[Buf_Max];
uchar t= 0;
uchar uart1temp= 0x33;
uchar code table[]=" GOOD LUCK ";
void Uart1() interrupt 4
{
if(RI) //接收到数据的中断
{
RI=0; //清除中断标志
uart1temp=SBUF;
if(t==Buf_Max) t= 0;
Rec_Buf[t]= uart1temp;
t++;
}
}
void main()//主函数
{
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; // 总中断打开
init();
while(1) //程序循环发送
{
while(!RI) {
LClear();
delay(500);
ShowStr(1, 0, "Kaillen WorkWork", 12);
ShowStr(4, 1, "Wellcom YOU!", 12);
delay(5000);
LClear();
delay(500);
ShowStr(1, 0,"Code Made", 9);
ShowStr(2, 1, "---Ziegler Yin", 14);
delay(5000);
if(Rec_Buf[0]>0){
mprint(Rec_Buf);
mprint("\r\n");
mZero(Rec_Buf);
t=0;
}
}
delayms(100); //两个字符串之家间隔一秒
}
}
iic.h:
/* Main.c file generated by New Project wizard
*Coder: Ziegler Yin
#ifndef _IIC_H
#define _IIC_H
#include “muart.h”
#include
#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数据传送位
/状态标志/
//bit ack;
void mDelay(uchar c);
void Start(void);
void Start(void);
void Stop(void);
void Ask(void);
void NoAsk(void);
void Send(uchar Data);
uchar Read(void);
#endif
七,点击窗口左下方仿真按钮,可见iic_lcd1602的信息显示在屏。 (如下图8,9,10所示)
图8
八,选择release,点击构建工程按钮,编译工程生成Hex文件。(如下图11所示)
图11
附件:https://download.csdn.net/download/kaillen/12425720
附件Proteus8.9 VSM Studio Keil编译器仿真AT89C51RD2系列014_iic_lcd1602在已安装Proteus8.9的计算机文件夹中打开即可
需要进一步了解,请加入QQ群:976235464