一、Proteus的介绍
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是比较好的仿真单片机及外围器件的工具。虽然国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。
二 、Proteus的安装
1.当你在google或百度等网址下载安装包并解压安装包后会出现一个setup。
2.双击点setup即进入安装界面,打开后它会有一个欢迎语句,欢迎来到Proteus…。接下来我们点击下一步,就会出现一个协议你需要同意那个协议才能继续安装,然后点击下一步。
3.会出现两句话:1.Use a locally installed license key 2.Use a licence key installed on a server 我们选择第一,然后点击下一步
4.然后出现一个Product Licence Key的弹框我们继续下一步。
5.在接下来的界面中,我们点击“Browse For Key File”;然后在你最初解压包的地方寻找Licence.lxk文件,后点击install,然后点击“是”,最后点击close。
6.然后三个选项都选,分别是1.合入以前版本的风格 2.导入以前版本的模板3.导入以前版本的库,然后进行下一步。
.然后会让我们选择安装的形式,我们选择custom(自定义安装)。
7.然后让我们选择安装路径,这里你可以自定义路径,保存D盘、E盘等某个文件夹中均可。
8.然后一直next直至结束。
9.最后我们把crack文件夹中的BIN和MODELS这两个文件加复制,粘贴在外面,最后就会变成这样:
三、Proteus中大部分元件英文及中文对照
四、Proteus一些简单的操作
首先建立一个工程
然后
然后工程就建立完成了
在左侧可以查找元件,P是元件库。
五、51单片机程序及图片展示
用C编写的51单片机程序
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit rs=P1^0;
sbit rw=P1^1;
sbit e=P1^2;
sbit FMQ=P2^3;
unsigned char year=20,month=4,day=24,week=5,sec=55,min=59,hour=7;
unsigned char DL_hour1=8;
unsigned char DL_min1=0;
unsigned char DL_hour2=8;
unsigned char DL_min2=45;
unsigned char DL_hour3=8;
unsigned char DL_min3=55;
unsigned char DL_hour4=9;
unsigned char DL_min4=40;
unsigned char DL_hour5=10;
unsigned char DL_min5=10;
unsigned char DL_hour6=10;
unsigned char DL_min6=55;
unsigned char DL_hour7=11;
unsigned char DL_min7=5;
unsigned char DL_hour8=11;
unsigned char DL_min8=50;
unsigned char DL_hour9=14;
unsigned char DL_min9=0;
unsigned char DL_hour10=14;
unsigned char DL_min10=40;
unsigned char DL_hour11=14;
unsigned char DL_min11=55;
unsigned char DL_hour12=15;
unsigned char DL_min12=40;
unsigned char DL_hour13=16;
unsigned char DL_min13=10;
unsigned char DL_hour14=16;
unsigned char DL_min14=55;
unsigned char DL_hour15=17;
unsigned char DL_min15=5;
unsigned char DL_hour16=17;
unsigned char DL_min16=50;
void LCD_YANSHI(unsigned int i)
{
while(i–);
}
void Lcd1602_W_C(unsigned char c)
{
LCD_YANSHI(500);
rs=0;
rw=0;
e=0;
P0=c;
e=1;
LCD_YANSHI(10);
e=0;
}
void Lcd1602_W_D(unsigned char dat)
{
LCD_YANSHI(500);
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
LCD_YANSHI(10);
e=0;
rs=0;
}
void Lcd1602_Init()
{
LCD_YANSHI(500);
Lcd1602_W_C(0x38);
Lcd1602_W_C(0x06);
Lcd1602_W_C(0x0c);
Lcd1602_W_C(0x01);
}
void DISPLAY();
void Timer_INIT();
void main()
{
Lcd1602_Init();
Timer_INIT();
while(1)
{
DISPLAY();
}
}
void Timer_INIT()
{
TMOD = 0x01; //选择工作方式1
TH0=0Xfc;
TL0=0X18; //1ms
EA = 1; //打开总中断
ET0 = 1; //打开定时器0中断
TR0 = 1; //启动定时器0
}
void DISPLAY()
{
Lcd1602_W_C(0x80+3);
Lcd1602_W_D(‘2’);
Lcd1602_W_D(‘0’);
Lcd1602_W_D(‘0’+year/10);
Lcd1602_W_D(‘0’+year%10);
Lcd1602_W_D(’/’);
Lcd1602_W_D(‘0’+month/10);
Lcd1602_W_D(‘0’+month%10);
Lcd1602_W_D(’/’);
Lcd1602_W_D(‘0’+day/10);
Lcd1602_W_D(‘0’+day%10);
//–显示时钟–//
Lcd1602_W_C(0xC0+4);
Lcd1602_W_D(‘0’+hour/10);
Lcd1602_W_D(‘0’+hour%10);
Lcd1602_W_D(’:’);
Lcd1602_W_D(‘0’+min/10);
Lcd1602_W_D(‘0’+min%10);
Lcd1602_W_D(’:’);
Lcd1602_W_D(‘0’+sec/10);
Lcd1602_W_D(‘0’+sec%10);
}
void time0() interrupt 1
{
static unsigned int j;
TH0=0Xfc;
TL0=0X18; //1ms
j++;
if(j1000) //1s
{
j=0;
sec++;
if(sec60) //秒满60清零
{
sec=0;
min++;
if(min60) //分满60清零
{
min=0;
hour++;
if(hour24)
{
hour=0;
day++;
week++;
if(week>7)
{
week=0;
}
if(((month1)||(month3)||(month5)||(month7)||(month8)||(month10)||(month12))
&&(day32)
)
{
day=1;
month++;
if(month13)
{
year++;
month=0;
}
}
if(((month4)||(month6)||(month9)||(month11))
&&(day31)
)
{
day=1;
month++;
}
if((((year%4)0)&&(month2))
&&(day30)
)
{
day=1;
month++;
}
if((((year%4)!=0)&&(month2))
&&(day==29)
)
{
day=1;
month++;
}
}
}
}
if((((hour==DL_hour1)&&(min==DL_min1))||
((hour==DL_hour2)&&(min==DL_min2))||
((hour==DL_hour3)&&(min==DL_min3))||
((hour==DL_hour4)&&(min==DL_min4))||
((hour==DL_hour5)&&(min==DL_min5))||
((hour==DL_hour6)&&(min==DL_min6))||
((hour==DL_hour7)&&(min==DL_min7))||
((hour==DL_hour8)&&(min==DL_min8))||
((hour==DL_hour9)&&(min==DL_min9))||
((hour==DL_hour10)&&(min==DL_min10))||
((hour==DL_hour11)&&(min==DL_min11))||
((hour==DL_hour12)&&(min==DL_min12))||
((hour==DL_hour13)&&(min==DL_min13))||
((hour==DL_hour14)&&(min==DL_min14))||
((hour==DL_hour15)&&(min==DL_min15))||
((hour==DL_hour16)&&(min==DL_min16)))&&(week<=5))
{
FMQ=0;
}
else
{
FMQ=1;
}
}
}
proteus仿真图片
结果图片
(有部分参考百度百科,和一些百度文献)