一、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仿真图片 结果图片 (有部分参考百度百科,和一些百度文献)