当前位置:文档之家› proteus和keil的仿真实验报告

proteus和keil的仿真实验报告

proteus和keil的仿真实验报告
proteus和keil的仿真实验报告

北京联合大学

《基于proteus和keil仿真》实验报

实验题目:基于ADC0808模数转换器的数字电压表

学院:信息学院专业:电子信息工程

班级:0808030301

组员:华永奇学号:2008080303107

组员:朱圣峰学号:2008080303137

组员:陈柏宇学号:2008080303113

组员:李冉学号:2008080303119

组员:张茜学号:2008080303104

一、实验任务:

利用单片机AT89C51与A/D转换器件ADC0808设计一个数字电压表,能够测量0~5V之间的直流电压值,并用4位数码管显示该电压值。

设计任务要求:

硬件设计:利用Proteus软件绘制原理图;

软件设计:利用Keil软件进行程序设计;

完成软硬件调试:Proteus和Keil联调,实现选题要求的功能;

二、实验设计:

1、硬件设计:

1.1

1.2 proteus

2、软件设计:

2.1 程序源代码:

#include

#define uchar unsigned char //宏定义

#define uint unsigned int

//定义管脚

sbit START=P3^2;

sbit OE=P3^0;

sbit EOC=P3^1;

sbit P07=P0^7;

sbit CLK=P3^4;

uchar data led[4];

uint data tvdata; //定义输出电压值变量

uchar code tv[]={0xf7,0xfb,0xfd,0xfe}; //led动态显示控制位选数组

uchar code a[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //led上显示段选数组,0~9,阴极管void delay(void) //延时程序

{

uint i;

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

for(i=0;i<100;i++); //对于12mhz单片机,10ms延时

}

void led_display(void) //数码管显示模块

{

uchar k,temp;

led[0]=tvdata%10; //个位

led[1]=tvdata/10%10; //十位

led[2]=tvdata/100%10; //百位

led[3]=tvdata/1000; //千位

for(k=0;k<4;k++) //利用for循环进行动态显示

{

P2=tv[k]; //位选信号赋值给P2口

temp=led[k]; // 段选信号赋值给临时变量temp

P0=a[temp]; // temp赋值给P0口

if(k==3) //点亮第四个数码管的小数点

{

P07 =1; //高位点亮

}

delay(); //延时

}

}

void main(void) //主控制模块

{

ET0=1; // 允许定时器中断

EA=1; //开启中断总开关

TMOD=0x02; //设置定时工作状态,定时器0工作在方式2

TH0=216; //在寄存器中装入初始值,

TL0=216;

TR0=1; //启动定时器0

while(1)

{

START=1; //启动转换

START=0;

while(EOC==0) ;//等待模数转换结束

OE=1; //输入高电平,打开输出三态门,输出数字量

tvdata=P1; //读取P1口的值给输出电压值变量

tvdata*=5000/255.000;//因为输出值在0~255之间,所以应该放大到0~5000

OE=0; //关闭三态门,禁止输出

led_display(); //LED上显示测得电压值

delay(); //延时

}

}

void t0(void) interrupt 1 using 0 //定时中断函数,使用寄存器组0,产生adc0808的驱动时钟脉冲

{

CLK=~CLK; //clk电平取反

}

三、联调结果

Proteus仿真单片机实例

引言 单片机体积小,重量轻,具有很强的灵活性而且价格便宜,具有逻辑判断,定时计数等多种功能,广泛应用于仪器仪表,家用电器,医用设备的智能化管理和过程控制等领域。以单片机为核心的嵌入式系统已经成为目前电子设计最活跃的领域之一。在嵌入式系统的中,开发板成本高,特别是对于大量的初学者而言,还可能由于设计的错误导致开发板损坏。利用Proteus我们可以很好地解决这个问题,由此我们可以快速地建立一个仿真系统。 2.Proteus介绍 Proteus是英国Labcenter Electro-nics公司开发的一款电路仿真软件,软件由两部分组成:一部分是智能原理图输入系统ISIS(Intelligent Schematic Input System)和虚拟系统模型VSM(Virtual Model System);另一部分是高级布线及编辑软件ARES(Adv-Ancd Routing And Editing Software)也就是PCB. 2.1 Proteus VSM的仿真 Proteus可以仿真模拟电路及数字电路,也可以仿真模拟数字混合电路。 Proteus可提供30多种元件库,超过8000种模拟、数字元器件。可以按照设计的要求选择不同生产厂家的元器件。此外,对于元器件库中没有的元件,设计者也可以通过软件自己创建。 除拥有丰富的元器件外,Proteus还提供了各种虚拟仪器,如常用的电流表,电压表,示波器,计数/定时/频率计,SPI调试器等虚拟终端。支持图形化的分析功能等。 Proteus特别适合对嵌入式系统进行软硬件协同设计与仿真,其最大的特点是可以仿真8051,PIA,A VR,ARM等多种系列的处理器。Protues包含强大的调试工具,具有对寄存器和存储器、断点和单步模式IAR C-SPY,Keil、MPLAB等开发工具的源程序进行调试的功能;能够观察代码在仿真硬件上的实时运行效果;对显示,按钮,键盘等外设的交互可视化进行仿真。 2.2 Proteus PCB Proteus 的PCB设计除了有自动布线仿真功能外,还集成了PCB设计,支持多达16个布线层,可以任意角度放置元件和焊接连线;集成了高智能的布线算法,可以方便地进行PCB设计。 3. 基于Protesus的简单数据采集系统。 3.1 软件的编写 本例题采用可调电阻调节电压值作为模拟信号的输入量,通过A/D转换芯片AD0808把模拟信号转换为数字量传送到单片机的P1口,并在P0口把转换的结果显示出来。 软件的编写可以在Keil C51 环境下进行,芯片的型号选择AT89C51,编写data.c文件,利用Keil C51进行编译,编译成功后生成data.hex文件。 3.2 绘制电路图 运行Proteus的ISIS,进入仿真软件的主界面,如图1所示。主界面分为菜单栏,工具栏,模型显示窗口,模型选择区,元件列表区等。

51单片机+proteus仿真PWM

#include unsigned char flag; unsigned int x; unsigned int y; #define time 800 void main() { EA=1; //开总中断 ET0=1; //定时器T0中断允许 TMOD=0x02; //使用定时器T0的模式2 TH0=0; //定时器T0的高8位赋初值 TL0=0; //定时器T0的高8位赋初值 TR0=1; //启动定时器T0 x=time; y=0; while(1)//无限循环等待中断 ; } /************************************************************** 函数功能:定时器T0的中断服务程序 **************************************************************/ void Time0(void) interrupt 1 using 0 //“interrupt”声明函数为中断服务函数 //其后的1为定时器T0的中断编号;0表示使用第0组工作寄存器{ if(flag==0) { TH0=256-y; //定时器T0的高8位重新赋初值 TL0=256-y; //定时器T0的高8位重新赋初

P1=1; if((--x)==0) { flag=1; x=time; if((--y)==0) { y=100; } } } if(flag==1) { TH0=y; //定时器T0的高8位重新赋初值 TL0=y; //定时器T0的高8位重新赋初 P1=0; if((--x)==0) { flag=0; x=time; if((--y)==0) { y=100; } } } }

根据Proteus的步进电机的设计仿真

目录 目录 (1) 摘要 (2) 第一章 Proteus绘制仿真原理图 (3) 1.1 Proteus简介 (3) 1.2 Proteus ISIS简介 (3) 第二章硬件电路设计 (4) 2.1 步进电机 (5) 2.1.1 步进电机简介 (5) 2.1.2 步进电机的特点 (5) 2.2 STC8951单片机 (6) 2.2.1 总述 (6) 2.2.2 性能 (6) 2.2.3 结构概览 (7) 2.2.4 芯片的引脚排列和说明 (8) 2.3 ULN2003A介绍 (10) 2.4 复位电路和时钟电路 (11) 2.5 整个电路的原理 (12) 第三章软件系统设计 (13) 3.1 电路流程图 (13) 第四章电路仿真 (13) 4.1 Proteus原理图绘制过程 (13) 4.2 仿真设置 (16) 第五章硬件电路的制作与调试 (19) 5.1焊接准备与注意事项 (19) 5.2单片机程序写入 (20) 5.3 硬件安装 (21) 5.4硬件调试 (22) 总结 (23) 参考文献 (24) 附录(程序) (25)

摘要 步进电机广泛应用在生产实践的各个领域。它最大的应用是在数控机床的制造中,因为步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以被认为是理想的数控机床的执行元件。本设计利用proteus仿真软件进行电路仿真,系统通过设置四个按键分别控制不进电机的起止、圈数、方向、不进速度,使用1602液晶显示以上参数。整个系统具有稳定性好,实用性强,操作界面友好等优点。本文应用单片机、步进电机驱动芯片、字符型LCD和键盘阵列,构建了集步进电机控制器和驱动器为一体的步进电机控制系统。二维工作台作为被控对象通过步进电机驱动滚珠丝杆在X/Y轴方向联动。文中讨论了一种以最少参数确定一条圆弧轨迹的插补方法和步进电机变频调速的方法。步进电机控制系统的开发采用了软硬件协同仿真的方法,可以有效地减少系统开发的周期和成本。最后给出了步进电机控制系统的应用实例。

单片机原理与应用—基于Proteus和KeilC课后答案复习题解答.doc

第 2 章 MCS-51 单片机结构及原理习题 1. MSC- 51 单片机部由哪些功能部件组成,各有什么功能? 答:以 80C51 单片机为例,其部功能部件有: 控制器:是对取自程序存储器中的指令进行译码,在规定的时刻发出各种操作所需的控制信 号,完成指令所规定的功能; 运算器:根据控制器发来的信号,执行算术逻辑运算操作; 存储器:包括程序存储和数据存储器; 定时器计数器: 2 个 16 位定时器 / 计数器,可对机器周期计数,也可对外部输入脉冲计数; 中断系统:可响应三个部中断源和两个外部中断源的中断请求;输入输出接口: 4 个 8 位并行 口和一个全双工串行口; 2. MSC- 51 单片机外部引脚的名称是什么?各有什么功能? 答: (1)电源及晶振引脚 VCC(40 脚 ) : +5V 电源引脚 VSS(20 脚 ) :接地引脚 XTAL1(19 脚 ) ;外接晶振引脚(置放大器输入端) XTAL2(18 脚 ) :外接晶振引脚(置放大器输出端) (2)控制引脚 RST/VPD(9)为复位 /备用电源引脚 ALE/PROG(30)为地址锁存使能输出/编程脉冲输入 PSEN(29):输出访问片外程序存储器读选通信号 EA/ VPP (31):外部ROM允许访问/编程电源输入 (3)并行 I/O 口引脚 P0.0 ~ P0.7 ( 39~ 32 脚)—— P0 口; P1.0 ~ P1.7 ( 1~ 8 脚)—— P1 口; P2.0 ~ P2.7 ( 21~ 28 脚)—— P2 口; P3.0 ~ P3.7 ( 10~ 17 脚)—— P3 口。 3. 51 系列单片机的封装有哪些类型?请说明每一种封装引脚之间的距离。 答: 51 系列单片机的封装有: 40 引脚双列直插封装( DIP—— dual in-line package ),引脚之间的距离是 100mil(2.54mm) ; 44 引脚方形扁平封装( QFP —— quad flat package )方式,引脚之间的距离是 2.54mm;44 引脚带引线的塑料芯片载体PLCC(Plastic Leaded Chip Carrier) 。 4.什么是复位?单片机复位电路有哪几种,工作原理分别是什么? 答:复位——使单片机恢复原始默认状态的操作。 单片机复位电路有: 上电复位电路,由电阻和电容构成,通过上电时,电容相当于短路而使 复位引脚在晶振有效的情况下保持 2 个机器周期的高电平;按钮开关复位电路,由两个电阻

单片机温度传感器proteus仿真

仿真程序仿真: LED_0 EQU 30H LED_1 EQU 31H LED_2 EQU 32H ADC EQU 35H TCNTA EQU 36H TCNTB EQU 37H H_TEMP EQU 38H L_TEMP EQU 39H FLAG BIT 00H H_ALM BIT P3.0 L_ALM BIT P3.1 SOUND BIT P3.7 CLOCK BIT P2.4 ST BIT P2.5 EOC BIT P2.6 OE BIT P2.7 ORG 00H SJMP START ORG 0BH LJMP INT_T0 ORG 1BH LJMP INT_T1 START:MOV LED_0,#00H

MOV LED_1,#00H MOV LED_2,#00H MOV DPTR,#TABLE MOV H_TEMP,#153 MOV L_TEMP,#77 MOV TMOD,#12H MOV TH0,#245 MOV TL0,#0 MOV TH1,#(65536-1000)/256 MOV TL1,#(65536-1000)/256 MOV IE,#8AH CLR C SETB TR0 WAIT:SETB H_ALM SETB L_ALM CLR ST SETB ST CLR ST JNB EOC,$ SETB OE MOV ADC,P1 CLR OE MOV A,ADC SUBB A,L_TEMP JC LALM MOV A,H_TEMP MOV R0,ADC SUBB A,R0 JC HALM CLR TR1 LJMP PROC1 LALM:CLR L_ALM SETB TR1 CLR FLAG LJMP PROC1 HALM:CLR H_ALM SETB TR1 SETB FLAG LJMP PROC1 PROC1:MOV A,ADC MOV B,#100 DIV AB MOV LED_2,A MOV A,B

直流电动机正反转proteus仿真设计-参考模板

直流电动机正反转Proteus仿真设计 引言 随着人民生活水平的提高,产品质量、性能、自动化程度等已经是人们选择产品的主要因素。其中,直流电动机正反转自动控制在生活中起了很大的作用,比如洗衣机的工作、遥控汽车的操作、DVD的应用等等,它在实际生活中给人们需求上提供了很大的方便与乐趣。不只是生活,它还在工业、农业、交通运输等各方面得到了广泛的应用,实现电动机正反转的控制是很多产品设计的核心问题。直流电动机显示出交流电动机不能比拟的良好启动性能和调速性能,比较广泛应用于速度调节要求过高,正反转频繁或多元同步协调运转的机械生产。因此,学会电动机正反转控制的原理是极其重要的。然而,在本直流电动机正反转仿真设计中,要借助Proteus软件、Keil软件和C语言的辅助进行仿真设计,通过仿真设计,让我们更清楚了解电动机正反转的原理和电路图,增强对直流电动机的认知。 在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。在本设计中,Proteus软件采用了电容、电阻、晶振、电动机、LED、开关、电动机等多种元件进行绘图,并基于80C51和ULN2003A进行电路图设计,充分展示Proteus软件元件库量大,掌握它的基本绘图操作。而对于Keil软件,采取创建工程,创建执行文件,利用C语言编写程序,生成hex文件,为Proteus 仿真提供驱动控制,实现直流电动机正反转的设计。 在本论文设计中,主要介绍直流电动机正反转原理,Proteus软件功能绘图、仿真调试,以及Keil软件功能、程序编写和仿真程序文件生成。让大家更清楚了解Proteus软件、Keil软件、C语言在直流电动机正反转仿真设计的应用。

单片机PROTEUS仿真100实例

《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例 第01 篇基础程序设计 01 闪烁的LED /* 名称:闪烁的LED 说明:LED按设定的时间间隔闪烁 */ #include #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { while(1) { LED=~LED; DelayMS(150); } } 02 从左到右的流水灯 /* 名称:从左到右的流水灯 说明:接在P0口的8个LED 从左到右循环依次点亮,产生走 马灯效果 */ #include #include #define uchar unsigned char #define uint unsigned int

//延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { P0=0xfe; while(1) { P0=_crol_(P0,1); //P0的值向左循环移动 DelayMS(150); } } 03 8只LED左右来回点亮 /* 名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/ #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { uchar i; P2=0x01; while(1) {

Proteus软件的单片机仿真(ATM)

摘要 基于Proteus软件的单片机自动取款机(ATM)仿真系统设计,硬件电路需要单片机开发板和12864液晶显示器,能够实现自动取款的全部功能。通过在在计算机上用C语言编程来将生成文件下载到单片机控制其它外围器件工作。但是在EDA新技术的引入使得系统的开发成本降低而且灵活性增强,在Proteus软件中都可以找到上述硬件元件,通过电路图连接完全可以实现仿真功能。在Keil软件环境下通过C语言编程,编译调试后生成单片机下载的HEX(十六进制)文件,硬件电路图是在Proteus 软件中进行建模。通过Proteus和Keil结合建立的虚拟系统实现联合仿真,单片机实时控制12864LCD实现汉字的显示,扫描键盘从而达到用户与ATM的信息交换,使得ATM系统设计变为现实。 ATM系统,是一个有数据库组成的应用系统。用户的初始信息通过E2PROM存放,这样免去了掉电丢失数据的弊端。系统功能有用户在ATM上提取现金、查询账户余额、修改密码、账户冻结、密码保护、自动存款及转账功能。可以仿真实现最基本的银行服务。 关键词:ATM;51单片机;Proteus;Keil;12864LCD;E2PROM;虚拟仿真

Abstract Automatic Teller Machine system is based on Proteus 51-microcontroller.Hardware circuit includes microcontroller developer board and 12864LCD display. All features of ATM can be well worked on it. Programming on PC then download created file to 51-microcontroller to control outer circuit. However, with the introduction of EDA, new technology, which lower the cost of system exploration and enhance flexibility. Programing with C language, compiling and debugging under the environment of Keil software,creating a HEX file which will be downloaded by microcontroller later. Hardware schematic diagrams are established with Proteus software. According to the combination of Proteus and Keil , making a virtual system , successfully achieve united simulation. Microcontroller controls 12864LCD to display Chinese words, scans keyboard to exchange information between customer and ATM, which makes virtual ATM system becoming reality. ATM system includes databases, which are used for the storage of customers’ initial information, leading to emerge from the disadvantage of data lost when power cuts. The functions of ATM are as follows: withdraw cash, search client and remaining modify password, client freezed, password protection, automatic deposit and transfer client. This system simulates to realize the bank’s fundamental services. Keywords:ATM;51microcontroller;Proteus;Keil;12864LCD;E2PROM;virtual simulation

(完整版)单片机原理及应用——基于Proteus和Keil_C 林立_张俊亮毕业论文

第一章习题 1.什么是单片机?单片机和通用微机相比有何特点? 答:单片机又称为单片微计算机,它的结构特点是将微型计算机的基本功能部件(如中央处理器(CPU)、存储器、输入接口、输出接口、定时计数器及终端系统等)全部集成在一个半导体芯片上。虽然单片机只是一个芯片,但无论从组成还是从逻辑功能上来看,都具有微机系统的定义。与通用的微型计算机相比,单片机体积小巧,可以嵌入到应用系统中作为指挥决策中心,是应用系统实现智能化。 2.单片机的发展有哪几个阶段?8位单片机会不会过时,为什么? 答:单片机诞生于1971年,经历了SCM、MCU、SOC三大阶段,早期的SCM 单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。然而,由于各应用领域大量需要的仍是8位单片机,因此各大公司纷纷推出高性能、大容量、多功能的新型8位单片机。 目前,单片机正朝着高性能和多品种发展,但由于MCS-51系列8位单片机仍能满足绝大多数应用领域的需要,可以肯定,以MCS-51系列为主的8位单片机,在当前及以后的相当一段时间内仍将占据单片机应用的主导地位。

3.举例说明单片机的主要应用领域。 答:单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:智能仪器单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(电压表、功率计,示波器,各种分析仪)。 工业控制 单片机具有体积小、控制功能强、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、数据采集系统、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应用控制系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。家用电器现在的家用电器广泛采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备和白色家电等。 网络和通信 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。医用设备领域

51单片机行列式键盘的应用proteus仿真+源程序

51单片机行列式键盘的应用proteus仿真本人喜好单片机设计,精通单片机编程和硬件电路设计,在空余之际编一些小程序与大家分享,有哪位路过,请多多指教,希望大家在一起能互相学习,互相进步。这里的程序已经测试通过。发表出来,一来可以帮助同样爱好单片机的朋友们,二来,希望能结交一些同道中人,共同学习。 源程序: #include #include void delayms(unsigned char ms); unsigned char data dis_digit; unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xff}; unsigned char data dis_index; void main() { P2=0xff; P1=0x00; dis_index=0; dis_digit=0x01; while(1) { P2=dis_code[dis_index]; P1=dis_digit; delayms(1); P1=0x00; dis_digit=_crol_(dis_digit,1); dis_index++; dis_index &=0x07; } } void delayms(unsigned char ms) { unsigned char i; while (ms--) {

for(i=0;i<120;i++); } } 仿真图:

如果您想做项目开发,或者是做课题,或者您只是有一个想法,亲联系我们,我们会尽最大努力帮您完成,您的需要就是我们奋斗的方向! 本人有给学生做课程设计的经验,欢迎亲们来本店咨询哦 淘宝店铺地址:https://www.doczj.com/doc/e711354017.html, ; https://www.doczj.com/doc/e711354017.html, QQ:1203026348;496617571 邮箱:1203026348@https://www.doczj.com/doc/e711354017.html, ;496617571@https://www.doczj.com/doc/e711354017.html, 电话:小陈:152******** 小张:158******** 阿里旺旺:tb3569_1968 ;zwjyln 我们拥有40G!!超大容量!!!是单片机入门者的首选经典资料!!! 您在单片机方面有任何问题,请及时和我们联系,我们会竭诚为您服务!! 承接单片机项目开发,同时包括软件开发和硬件开发。我们是一组拥有扎实的单片机基础知识的大学生,我们可以给您提供从项目开始到项目的完成整个过程的技术支持,其中包括原理图的设计、电路图的proteus软件仿真、程序的编写以及相关软件的使用等

Proteus仿真软件使用方法

实验八 Proteus仿真软件使用方法 1.实验目的: (1)了解Proteus仿真软件的使用方法。 (2)了解51单片机编程器Keil与Proteus仿真软件的联用方法。 2.实验要求: 通过讲授和操作练习,学会正确使用Proteus仿真软件及Keil编程及其联合调试。 3.实验内容: (1)Proteus 仿真软件介绍 Proteus 软件是由英国LabCenter Electronics 公司开发的EDA工具软件,由ISIS和ARES两个软件构成,其中ISIS是一款便捷的电子系统仿真平台软件,ARES是一款高级的布线编辑软件。它集成了高级原理布线图、混合模式SPICE电路仿真、PCB设计以及自动布线来实现一个完整的电子设计。 通过Proteus ISIS软件的VSM(虚拟仿真技术), 用户可以对模拟电路、数字电路、模数混合电路,以及基于微控制器的系统连同所有外围接口电子元器件一起仿真。 图8-1是Proteus ISIS的编辑窗口: 图8-1 ISIS的编辑界面 图中最顶端一栏是“标题栏”,其下的“File View Edit ……”是“菜单栏”,再下面的一栏是“命令工具栏”,最左边的一栏是“模式选择工具栏”;左上角的小方框是“预览窗口”,其下的长方框是“对象选择窗口”,其右侧的大方框是“原理图编辑窗口”。 选择左侧“模式选择工具栏”中的图标,并选择“对象选择窗口”中的P按钮,就会出现如图8-2的元器件选择界面:

图8-2 元器件库选择界面 在元器件列表框中点击你需要的器件类型(例如:电阻-Resistors,单片机芯片-MicroprocessorICs, LED-Optoelectronics)或在左上角的关键字(Keywords)框中输入你需要的器件名称的关键字(如:信号源 - Clock, 运放 - CA3140等),就会在图8-2中间的大空白框列出你所需的一系列相关的元件。此时,你可用鼠标选中你要的元件,则图8-2右上角的预览框会显示你所要元件的示意图,若就是你要的元器件,则点击OK按钮,该元器件的名称就会列入位于图8-1左侧的“对象选择窗口”中(参见图1左侧下方框)。 所需元器件选择好后,在“对象选择窗口”选择某器件,就可以将它放到图8-1中的“原理图编辑窗口”中(若器件的方向不合适,你可以利用图1左下角的旋转按钮来改变它)。将所要的元器件都选好后,将它们安放到合适的位置,就可以用连接线把电路连接好,结果存盘(请按规定的目录存盘,并记住其路径/目录/文件名[学号-实验序号])。 (2)51单片机编程器– Keil V3的使用 Keil编程器可用于MCS-51单片机软件编程与调试,它的工作界面如图8-3所示: Keil编程器是Keil Software Inc/Keil Electronic GmbH 开发的基于80C51内核的微处理器软件开发平台,可以完成从工程(Project)的建立和管理、程序的编译和连接、目标代码的形成、软件仿真等一套完整的软件开发流程。它与Proteus挂接,可以进行单片机应用系统的硬件仿真。 汇编语言编程方法: ①打开“File”菜单→选择新建“New...”→在弹出的文本框(Text1)中编写所需的汇编语言程序→程序写好后,保存(从File→Save As..→选择某目录,文件名.ASM, 存盘); ②打开“Project”菜单→选择新建工程“New Project...”→在弹出的窗口填写:工程名→保存(文件名的后缀是 .uv2 。此时图8-3的工程窗口中将建立Target1及 Source Group 1);

PROTEUS仿真100实例(完整资料).doc

【最新整理,下载后即可编辑】 《单片机C语言程序设计实训100例—基于8051+Proteus仿真》案例 第01 篇基础程序设计 01 闪烁的LED /* 名称:闪烁的LED 说明:LED按设定的时间 间隔闪烁 */ #include #define uchar unsigned char #define uint unsigned int sbit LED=P1^0; //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { while(1) { LED=~LED; DelayMS(150); }

02 从左到右的流水 灯 /* 名称:从左到右 的流水灯 说明:接在P0口的 8个LED从左到右循环依次点亮,产生走马灯效果*/ #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { P0=0xfe; while(1) { P0=_crol_(P0,1); //P0的值向左循环移动 DelayMS(150); } }

03 8只LED左右来回点亮 /* 名称:8只LED左右来回点亮 说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/ #include #include #define uchar unsigned char #define uint unsigned int //延时 void DelayMS(uint x) { uchar i; while(x--) { for(i=0;i<120;i++); } } //主程序 void main() { uchar i; P2=0x01; while(1) { for(i=0;i<7;i++) { P2=_crol_(P2,1); //P2的值向左循环移动 DelayMS(150); }

基于Proteus和_Keil的串行通信系统仿真

聊城大学 本科生毕业论文(设计)题目:基于Proteus和keil的串行通信 系统仿真 专业代码:交通运输(081201) 作者姓名:管国阳 学号: 单位:汽车与交通工程学院 指导教师: 2012年5月19日

原创性声明 本人郑重声明:所提交的学位论文是本人在导师指导下,独立进行研究取得的成果。除文中已经注明引用的内容外,论文中不含其他人已经发表或撰写过的研究成果,也不包含为获得聊城大学或其他教育机构的学位证书而使用过的材料。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人承担本声明的相应责任。 学位论文作者签名:日期 指导教师签名: 日期

摘要 本文主要是基于I2C技术,应用proteus和keil软件,设计虚拟I2C总线串行通信外围扩展。介绍了I2C串行通信的基本原理,I2C总线设计系统的优点,虚拟I2C总线技术,I2C总线与E2PROM,ADC/DAC,I/O接口等外围器件接线方法,时序,及其寻址方法。 关键词:I2C总线技术;串行通信;I2C总线虚拟技术;串行外围扩

Abstract This article is based on I2C technology, application Proteus keil software, designing virtual I2C bus serial communications peripherals expansion. It has Introduced the basic principles of I2C serial communication, Design of I2C bus system,virtual I2C bus, I2C bus and E2PROM, ADC / DAC, I / O ports and other peripheral device connection method, timing, and addressing methods. Key Words: I2C bus technology; serial communication; I2C bus virtual technology; serial peripheral expansion

Proteus电路仿真软件在电路设计方案中的应用

Proteus电路仿真软件在电路设计中的应用 摘要:随着现代计算机技术的迅速发展,使用EDA软件进行的电路设计与仿真已经成为现代电子技术系统设计的必然趋势,在实际电路设计中引入EDA技术能有效提高设计效率,该文介绍了Proteus软件的功能和特点,并结合了具体的例子说明了如何用Proteus实现EDA辅助设计与仿真。 关键词:EDA PROTEUS计算机辅助设计仿真 0引言 测井五公司技术研究室目前承担分公司各项科研工程和技术革新,在实际运行中涉及相关电路设计,电路的真实性需要成品验证,这种传统方法成本高风险大,实验周期长,根据实际需要和适用性,研究室引入了易用的小规模Proteus软件对设计电路进行仿真,提前对所设计电路进行仿真测试和评估,电路成品有很高的符合率,有效降低了设计成本和实验周期,以下简述Proteus电路仿真软件在实际电路设计中的应用,并以实例加以讲解。 1 Proteus简介 Proteus软件是英国Labcenter electronics公司的EDA工具软件,是一个电子设计的教案平台、实验平台和创新平台,涵盖了电工电子实验室、电子技术实验室、单片机应用实验室等的全部功能。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。该软件的特点是: ①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及Phil-lips公司的ARM(LPC系列)等。 ③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil、ADS等软件。 ④具有原理图绘制功能。能够进行SCH(原理图)和PCB(印刷板)电路的设计。 2 使用Proteus软件进行简单电路的仿真

创建基于DLL的Proteus仿真模型

创建基于DLL的Proteus VSM仿真模型 作者:silingsong 一、Proteus VSM仿真模型简介 在使用Proteus仿真单片机系统的过程中,经常找不到所需的元件,这就需要自己编写。Proteus VSM 的一个主要特色是使用基于DLL组件模型的可扩展性。这些模型分为两类:电气模型(Electrical Model)和绘图模型(Graphical Model)。电气模型实现元件的电气特性,按规定的时序接收数据和输出数据;绘图模型实现仿真时与用户的交互,例如LCD的显示。一个元件可以只实现电气模型,也可以都实现电气和绘图模型。 Proteus为VSM模型提供了一些C++抽象类接口,用户创建元件时需要在DLL中实现相应的抽象类。VSM模型和Proteus系统通信的原理如下图: 绘图模型接口抽象类: ICOMPONENT――ISIS内部一个活动组件对象,为VSM模型提供在原理图上绘图和用户交互的服务。 IACTIVEMODEL――用户实现的VSM绘图模型要继承此类,并实现相应的绘图和键盘鼠标事件处理。 电气模型接口抽象类: IINSTANCE――一个PROSPICE仿真原始模型,为VSM模型提供访问属性、模拟节点和数据引脚的服务,还允许模型通过仿真日志发出警告和错误信息。 ISPICECKT(模拟)――SPICE拥有的模拟元件,提供的服务:访问、创建和删除节点,在稀疏矩阵上分配空间,同时还允许模型在给定时刻强制仿真时刻点的发生和挂起仿真。 ISPICEMODEL(模拟)――用户实现的VSM模拟元件要继承此类,并实现相应的载入数据,在完成的时间点处理数据等。 IDSIMCKT(数字)――DSIM拥有的数字元件,提供的服务:访问数字系统的变量,创建回调函数和挂起仿真。

基于proteus和keil的单片机课程设计

2008年10fl 第5期(总第70期) 济南职业学院学报 JournalnfJinanVocationalCoRege Om.2008 No.5(SerialⅣ仉70) 基于Proteus和Keilfl匀单片机课程设计 宫亚梅 (常州信息职业技术学院机电工程系,江苏常州213164) 摘要:本文介.绍TProteus和Keil的功能特点,结合步进电机正反转实例,详细给出了两种软件在单片机课程设计中的具体应用。 关键词:Proteus;Keil;单片机;设计 中图分类号:TP391文献标识码:A文章编号:1673—4270(2008J05—0112—02 单片机应用技术是电类专业的一门重要课程,也是理论和实践结合性很强的一门课程,所以课程设计环节尤为萤要。课程设计环节的任务和目的是让每个学生亲自参与到其中的设计细节,提高单片机开发的能力。考虑到目前实验器材允设计过程中容易造成器件和仪器仪表的损坏,以及离开实验室学生得不到充分的锻炼,从而借助于Proteus和Keil进行课程设讯实践证明,这样可以很好地解决上述问题,节省设计成本,提高设计速度。 1Proteus和Keil简介 1.1Proteus简介 Proteus是一个完整的嵌入式系统软、硬件设计仿真平台,它包括原理图输入系统ISIS、带扩展的Prospice混合模型仿真器、动态器件库、高级图形分析模块和处理器虚拟系统仿真模型VSM。ISIS是Proteus系统的中心,具有超强的控制原理图设计环境。ProteusVSM最重要的特点是,它能把微处理器软件作用在处理器上,并和该处理器的任何模拟和数字器件协同仿真。仿真执行目标码就像在真正的单片机系统上运行,VSMCPU模型能完整仿真I/Ol=i、中断、定时器、通用外设口和其他与CPU有关的外设,甚至能仿真多个处理器。 1.2Keil简介 Keil是一个功能强大的开发平台,它包括项目管理器、CX51编译器、AX51宏汇编器、BL51/Lx51连接定位器、RTX51实时操作系统、Simulator软件模拟器以及Monitor51硬件目标调试器。它是一种集成化的文件管理编译环境,主要的功能特点为:编译C源程序、汇编源程序或混合语言源程序,链接和定位目标文件和库,创建HEX文件、调试目标程序等,是目前最好的5l单片机开发工具之一。Keil支持软件模拟仿真(Simulator)和用户目标板调试(Monitor51)两种工作模式,前者不需要任何单片机硬件即可完成用户程序仿真调试,后者利用硬件目标板中的监控程序可以直接调试目标硬件系统。 2应用举例 下面结合课程设计中四项八拍步进电机正反转电路的单片机实现,具体说明如何基于Proteus和Keil进行单片机仿真。电路的功能是,通过点击正反转按钮,让步进电机自如进行正反转的切换。 2.1硬件的实现 打开ProteusISIS编辑环境,通过对象选择按 收稿日期:2008—09一08 作者简介:宫亚梅(1979一),女,江苏姜堰人。常州信息职业技术学院机电工程系助教。 ?112? 万方数据

用PROTEUS对单片机进行仿真的方法与实例

用PROTEUS对单片机进行仿真的方法与实例 Proteus软件是英国Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计;ISIS模块用来完成电路原理图的布图和仿真。它可以进行模拟电路仿真、数字电路仿真,也可以进行单片机及其外围电路组成的系统的仿真;软件提供了各种虚拟仪器,如示波器、逻辑分析仪、信号发生器、电压表、电流表等。和其它仿真软件相比,Proteus ISIS最大特色是对单片机系统的仿真,目前支持的单片机类型有:68000系列、8051系列、ARM系列、AVR系列、PIC系列、Z80系列、HC11系列等。本文主要介绍Proteus 软件在单片机方面的仿真功能,即ISIS模块的用法。 在单片机学习开发的过程中,程序的调试是一个很重要的环节,要安装电路进行实验,而且电路在调试过程中往往要进行调整和改变,这不紧增加了费用和难度,而且也影响了学习和开发的进度,这也成了一些初学者学习的障碍。如果使用Proteus 软件就可以大大节省时间和开发费用,可以在软件仿真通过后再制作印刷电路板进行电路实验。 一、Proteus ISIS软件的工作环境和一些基本使用方法 下面通过一个流水灯的实例来说明Proteus的基本使用方法,使用的软件版本是Proteus.Professional 7.1 SP2。

流水灯使用AT89C51单片机,用P2口作输出口。先在Keil uVision编译器中输入下列程序: #include <reg51.h> void Delay1ms(unsigned int count)//延时子程序 { unsigned int i,j; for(i=0;i<count;i++) for(j=0;j<120;j++); } main() //主程序 { unsigned char LEDIndex = 0; bit LEDDirection = 1; while(1) { if(LEDDirection) P2 = ~(0x01<<LEDIndex); else P2 = ~(0x80>>LEDIndex); if(LEDIndex==7) LEDDirection = !LEDDirection; LEDIndex = (LEDIndex+1)%8;

相关主题
文本预览
相关文档 最新文档