Proteus的安装和介绍及51单片机电路仿真

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.原理布图
2.PCB自动或人工布线
3.SPICE电路仿真

Proteus特点

1.互动的电路仿真,用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
2.仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

Proteus界面

在这里插入图片描述

Proteus元件库对应中文名称

百度文档百度文档中有完整的翻译表,我们找寻元器件时,可以对照翻译表来快速查询,提高工作效率
常用大类:
Analog ICs
模拟集成电路
capacitors
电容器
Connectors
接头
Data Converters
数据转换器
Debugging Tools
调试工具
Diodes
二极管
Inductors
电感器
Laplace Primitives
拉普拉斯模型
Memory Ics
存储器芯片
Microprocessor ICs
微处理器集成电路
Miscellaneous
杂类
Modelling Primitives
模型基元
Operational Amplifiers
运算放大器
Optoelectroni cs
光电介质cs
simulator Primitives
仿真器

Proteus 8的安装

1.下载Proteus 8,网盘中有汉化包
百度云盘:链接:https://pan.baidu.com/s/16nqVNHeETPOKWBz6ufYgtg 提取码:7531
2.在下载的文件夹中找到Setup,右击打开。
在这里插入图片描述
3.点击next
在这里插入图片描述
4.勾选I accept theterms of this agreement,然后点击Next
在这里插入图片描述
5.点击Next
在这里插入图片描述
6.点击Next
在这里插入图片描述
7.点击“BrowseFor Key File”
在这里插入图片描述
8.在弹出的界面中找到解压包下的Crack目录下的LICENCE.lxk点击打开。
在这里插入图片描述
9.、点击Install
在这里插入图片描述
10.点击是
在这里插入图片描述
11.点击Close
在这里插入图片描述
12.全部勾选后点击Next
在这里插入图片描述
13.点击Custom Typical为默认安装,安装目录默认在c盘
在这里插入图片描述
14.点击InstallationPath和Program Data Path下的Browse更改安装路径,建议安装到除C盘以外的磁盘,可在D盘或者其它盘新建一个相应的文件夹。然后点击Next。
在这里插入图片描述
15.点击Next
在这里插入图片描述
16.点击Next
在这里插入图片描述
17.点击Install
在这里插入图片描述
18.安装中
在这里插入图片描述
19.点击Import
在这里插入图片描述
20.点击Yes
在这里插入图片描述
21.点击Close
在这里插入图片描述
22.找到Crack文件夹,右击打开
在这里插入图片描述
23.选中其中的BIN和MODELS文件夹,鼠标右击选择复制
在这里插入图片描述
24.该软件文件夹在空白处,鼠标右击选择粘贴,覆盖文件
在这里插入图片描述
25.打开汉化包,复制文件
在这里插入图片描述
26.粘贴到目录文件,覆盖文件
在这里插入图片描述
27.安装完成

Proteus 51单片机的仿真

动态数据管的仿真

生成.h文件

#include <reg51.h>      //包含头文件

//延时函数

void delay(void)

{

  unsigned char i,j;

 for(i = 0; i < 500;i++)

 {

   for(j = 0;j < 500;j++);

 }

}

//主函数

void main(void)

{

  unsigned char i;

 unsigned char code Tab[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x82,0xf8,0x80,0x90};

         //定义数字0-9的段码表

 P2 = 0xfe;      //P2.0输出低电平,数码管电源导通

 while(1)

 {

    for(i = 0;i < 10;i++)    //循环10次。数码管循环显示数字0-9

   {

     P0 = Tab[i];    //P0口输出数字0-9对应的段码

   delay();    //延时

   }

 }

}

1.创建新工程
在这里插入图片描述
2.选取89c51
在这里插入图片描述
3.点否
在这里插入图片描述
4.新建文本
在这里插入图片描述
5.以.c形式保存
在这里插入图片描述
6.导入到工程
在这里插入图片描述
7.修改设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
8.编译
在这里插入图片描述
9.生成.h文件
在这里插入图片描述

Proteus模拟仿真

1.新建工程
在这里插入图片描述
2.点击下一步
在这里插入图片描述
3.从以下模块中构建模拟图
在这里插入图片描述
4.不创建pcb布局
在这里插入图片描述
5.下一步
在这里插入图片描述
6.完成
在这里插入图片描述
在这里插入图片描述
7.连出模拟电路图

在这里插入图片描述
8.在芯片中导出.h文件

在这里插入图片描述
在这里插入图片描述
9.开始运行仿真
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
proteus软件仿真 部分文件原创~~ 资料很全~~学习中各个过程的难题都有例子 文件头—————————————————————————————————————————必要 #include #define uint unsigned int #define uchar unsigned char 移位函数——————————————————————————————————————————走马灯 #include temp=_cror_(temp,1); 数码管数字代码———————————————————————————————————————从0到15 正 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; 反 uchar code table[]={ 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90}; 延时函数——————————————————————————————————————————z毫秒 #define uint unsigned int #define uchar unsigned char void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } 定时器0使用——————————————————————————————————————工作方式1 TMOD=0x11; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; void time0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; } 定时器1使用———————————————————————————————————————工作方式1 TMOD=0x11; TH1=(65536-50000)/256; TL1=(65536-50000)%256; EA=1; ET1=1; TR1=1; void time1() interrupt 3 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; } 外部中断0使用————————————————————————————————————————检测下降沿 EA=1; EX0=1; IT0=1; TCON=0x01; 数码管显示数字函数——————————————————————————————————————只显示百十个,可以扩展 void display(uchar bai,uchar shi,uchar ge) { P0=0xff; wela=1; P0=0xfe; wela=0; dula=1; P0=table[bai]; dula=0; delay(1); P0=0xff; wela=1; P0=0xfd; wela=0; dula=1; P0=table[shi]; dula=0; delay(1); P0=0xff; wela=1; P0=0xfb; wela=0; dula=1; P0=table[ge]; dula=0; delay(1); } 控制液晶—————————————————————————————————限16*2小液晶 sbit rs=P3^5; sbit e= P3^4 ; sbit wela=P2^7; sbit dula=P2^6; uchar love1[]={"i say love."}; uchar love2[]={"i love you."}; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } int write_com(uchar com) { P0=com; rs=0; e=1; delay(5); e=0; } int write_date(uchar date) { P0=date; rs=1; e=1; delay(5); e=0; } init() { wela=0; dula=0; e=0; write_com(0x38); write_com(0x0e); write_com(0x06); write_com(0x01); write_com(0x80); } 串口通信——————————————————————————————————————————波特率 9600 TMOD=0x20; TH1=0xfd; //9600 TL1=0xfd; PCON=0x00; SCON=0x50;//方式1 EA=1; ES=1; TR1=1; ES=0; SBUF=**; while(!TI); TI=0; ES=1; void ser() interrupt 4 { **=SBUF; RI=0; } IIC总线的应用————————————————————————————————————————————————EEPROM上测试 sbit sck=P2^1; sbit sda=P2^0; sbit ACC7=ACC^7; sbit ACC0=ACC^0; void delay(int z) { uchar i,j; for(i=z;i>0;i--) for(j=110;j>0;j--); } void deluy() {;;} void start() { sda=1; deluy(); sck=1; deluy(); sda=0; deluy(); } void stop() { sda=0; deluy(); sck=1; deluy(); sda=1; deluy(); } respond() { uchar i; sck=1; while(sda!=0&&i<250)i++; sck=0; deluy(); } void write_byte(uchar date) { uchar i,temp; temp=date; for(i=0;i<8;i++) { temp=temp<<1; sck=0; deluy(); sda=CY; deluy(); sck=1; deluy(); } sck=0; deluy(); sda=1; deluy(); } uchar read_byte() { uchar i; sck=0; deluy(); sda=1; deluy(); for(i=0;i<8;i++) { ACC<<=1; sck=1; deluy(); ACC0=sda; sck=0; } return ACC; } write_date(uchar add,uchar date) { start(); write_byte(0xa0); respond(); write_byte(add); respond(); write_byte(date); respond(); stop(); } read_date(uchar add) { uchar k; start(); write_byte(0xa0); respond(); write_byte(add); respond(); start(); write_byte(0xa1); respond(); k=read_byte(); stop(); return k; } DS18b28的应用—————————————————————————————————————————————一些寄存器可以按需修改 bit DS18B20_init() { bit flag; DQ=1; for(time=0;time<2;time++); DQ=0; for(time=0;time<200;time++); DQ=1; for(time=0;time<10;time++); flag=DQ; for(time=0;time<200;time++); return (flag); } void writecom(uchar com) { uchar i; for(i=0;i<8;i++) { DQ=1; _nop_(); DQ=0; DQ=com&0x01; for(time=0;time<10;time++); DQ=1; for(time=0;time>=1; } for(time=0;time<4;time++); } uchar readdat() { uchar i,dat; dat=0; for(i=0;i>=1; _nop_(); DQ=1; for(time=0;time<2;time++); if(DQ==1) dat|=0x80; else dat|=0x00; for(time=0;time<8;time++); } return(dat); } void get_temp() { DS18B20_init(); writecom(0xCC); writecom(0x44); for(time=0;time<100;time++); DS18B20_init(); writecom(0xCC); writecom(0xBE); } void main() { uchar i,tl,th; uchar zhen,xiao; while(1) { get_temp(); tl=readdat(); th=readdat(); zhen=(th*256+tl)/16; xiao=(tl%16)*10/16; } } AD转换——————————————————————————————————————————————ADC0804,其他不适用,temp 0~255之间 关键是接口 sbit wr=P3^6; sbit rd=P3^7; sbit cs=P3^2; void init() { cs=0; } void start() { wr=1; wr=0; wr=1; } void huoqu () { uchar temp; temp=0; start(); rd=0; temp=P1; rd=1; retrn temp; } DA转换—————————————————————————————————————————————关键是接口 sbit wr=P3^6; sbit da=P3^2; init() { da=0; } start() { wr=1; wr=0; wr=1; } 键盘的使用—————————————————————————————————————————4X4 含消抖效果 uchar key; void scan(void) { uchar scode,rcode; P3=0xf0; if((P3&0xf0)!=0xf0) { delay(5); if((P3&0xf0)!=0xf0) { scode=0xfe; while((scode&0x10)!=0) { P3=scode; if((P3&0xf0)!=0xf0) { rcode=(P3&0xf0)|0x0f; key=(~scode)+(~rcode); switch(key) { case 0x11:key=0;break; case 0x21:key=1;break; case 0x41:key=2;break; case 0x81:key=3;break; case 0x12:key=4;break; case 0x22:key=5;break; case 0x42:key=6;break; case 0x82:key=7;break; case 0x14:key=8;break; case 0x24:key=9;break; case 0x44:key=10;break; case 0x84:key=11;break; case 0x18:key=12;break; case 0x28:key=13;break; case 0x48:key=14;break; case 0x88:key=15;break; default : key=16;break; } } else scode=(scode<<1)|0x01; } } } else key=16; }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值