[整理版]proteus仿真单片机实例

合集下载

Proteus仿真51单片机

Proteus仿真51单片机
51单片机 Proteus仿真
一 概述
Proteus软件是英国Labcenter electronics公司出版的 EDA工具软件。它不仅具有其它EDA工具软件的仿真功
能,还能仿真单片机及外围器件。它是目前最好的仿真单
片机及外围器件的工具。
第一个实验
用proteus实 现这个实验
用 开关K0 控制 灯L0 的亮/灭。 取一根连接线连接P10和L0,另取一根连接线连接P11和K0,打 开实验箱电源。
4. 仿真并查看结果

单击
开始仿真,单击
19
停止仿真。
U1
XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17
(3)放置电源和地

切换到“终端模式”下,选择电源和接地,POWER、 GROUND,放置到原理图编辑窗口中了,并右键编辑属性,
标号栏选择为VCC、GND。
(4)元器件之间的连线

单击鼠标左键,移动鼠标,靠近连接点时,可以完成自动连
线。ESC键或者单击鼠标的右键来放弃画线。
U1
19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17

8051单片机C语言程序设计Proteus仿真实训100例

8051单片机C语言程序设计Proteus仿真实训100例

《基于8051+Proteus仿真》案例第01 篇基础程序设计01 闪烁的LED/* 名称:闪烁的LED说明:LED按设定的时间间隔闪烁*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit 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<reg51.h>#include<intrins.h>#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<reg51.h>#include<intrins.h>#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);}for(i=0;i<7;i++){P2=_cror_(P2,1); //P2的值向右循环移动DelayMS(150);}}04 花样流水灯/* 名称:花样流水灯说明:16只LED分两组按预设的多种花样变换显示*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};uchar code Pattern_P2[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff};//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<120;i++);}}//主程序{uchar i;while(1){ //从数组中读取数据送至P0和P2口显示for(i=0;i<136;i++){P0=Pattern_P0[i];P2=Pattern_P2[i];DelayMS(100);}}}05 LED模拟交通灯/* 名称:LED模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮,红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

基于proteus的51单片机仿真实例九、51单片机的最小工作系统

基于proteus的51单片机仿真实例九、51单片机的最小工作系统

基于proteus的51单片机仿真实例九、51单片机的最小工作系统1、前面我们已经利用proteus和keil c51建立了第一个仿真实例,并通过仿真运行验证了我们的实例的正确性。

现在我们已经了解了proteus和keil c51的基本操作。

2、但是毕竟是初学单片机,对于我们前面编写的程序所实现的功能可就是一头雾水,不知所云了。

那么接下来我们就了解一下51单片机的知识吧3、先来简单说说怎么学习单片机。

前面已经说过,单片机是一种软件和硬件紧密结合的技术,对于一个单片机应用系统来说,硬件电路是单片机系统运行的基础和保障,软件程序是单片机系统的灵魂。

相对于人来说,人的身体、四肢是一个硬件系统,大脑就是软件系统,只有通过大脑发出指令,身体的各个部分才会做出相应的动作,但是如果手被绑住了,大脑即使发出让手去拿一个杯子的指令,手也无法完成这个指令。

所以软件和硬件需要相互结合才能够去完成一项任务。

1)就像我们新买了一台电视机一样,买回来后我们会首先了解一下这个电视机的功能特点,看一下遥控器的说明书,给电视机加上电源和天线(或有线电视信号线),然后按照说明书的使用方法来一步一步熟悉和操作电视机。

单片机的学习也一样,我们接触到一种单片机后,首先要了解这种单片机的功能和性能特点,然后才能进行相应的开发设计。

怎么来了解一种单片机呢?单片机厂家提供的数据手册是第一手也是最准确的资料。

但是很多数据手册是英文的,对于我们很多人来说,看起来会比较吃力。

不过幸运的是,现在很多资料都已经被翻译过来了。

我们到网上搜索一下,会搜索到很多的中文数据手册和应用实例,所以网络现在已经成为我们学习的一个非常重要的工具和平台了。

2)单片机的结构是十分复杂的,我们打开一个单片机的数据手册,会发现前面里面到处充斥着结构图和理论知识的介绍,相信对于一个新手来说,看数据手册不到10分钟就想放弃。

但是很多人说,这些是最基础的,必须要理解和掌握。

确实,这些东西我们必须精通,但是是不是一开始就要完全精通这些呢?大可不必。

实验一:单片机仿真初步(二)-Proteus的使用

实验一:单片机仿真初步(二)-Proteus的使用

实验一:单片机仿真初步(二)-Proteus的使用用来仿真的单片机电路,如下图所示:电路的核心是单片机A T89C52,晶振X1和电容C1、C2构成单片机时钟电路,单片机的P1口接8个发光二极管,二极管的阳极通过限流电阻接到电源的正极。

特别注意:下面文中所有值为1K的电阻都修正成100 可以考虑把红色发光二极管换成黄色发光二极管一、新建一个设计。

单击“File”中“New Design……”,在Proteus中打开了一个空白的新电路图纸。

二、将需要用到的元器件加载到对象选择器窗口。

单击对象选择器按钮如图所示:弹出“Pick Devices”对话框,在“Category”下面找到“Mircoprocessor ICs”选项,鼠标左键点击一下,在对话框的右侧,我们会发现这里有大量常见的各种型号的单片机。

找到AT89C52,双击“AT89C52”。

这样在左侧的对象选择器就有了A T89C52这个元件了。

如果知道元件的名称或者型号我们可以在“Keywords”输入AT89C52,系统在对象库中进行搜索查找,并将搜索结果显示在“Results”中,如下图所示:在“Results”的列表中,双击“A T89C52”即可将AT89C52加载到对象选择器窗口内。

晶振CRY:无极性电容CAP:有极性电容CAP POL:红色发光二极管LED-RED:电阻RES经过前面的操作我们已经将A T98C52、晶振等元件加载到了对象选择器窗口内。

在对象选择器窗口内鼠标左键点击“AT89C52”会发现在预览窗口看到AT89C52的实物图,且绘图工具栏中的元器件按钮处于选中状态。

我们在点击“CRYSTAL”、“LED-RED”也能看到对应的实物图,按钮也处于选中状态,如图所示:三、将元器件放置到图形编辑窗口。

在对象选择器窗口内,选中A T89C52,如果元器件的方向不符合要求可使用预览对象方向控制按钮进行操作。

如用按钮对元器件进行顺时针旋转,用按钮对元器件进行逆时针旋转,用按钮对元器件进行左右反转,用按钮对元器件进行上下反转。

8051单片机Proteus仿真实例3(原理图+C程序)

8051单片机Proteus仿真实例3(原理图+C程序)
while(key==0);
}
}
}
void timer_0() interrupt 1
{
doorbell=~doorbell;
p++;
if(p<400)
{
TH0=(8192-700)/32;
case 1: transmit('B');break;
case 2: transmit('C');break;
}
delay(10);
}
}
void serial() interrupt 4
{
if(RI==1)
{
RI=0;
if(SBUF>=0&&SBUF<=9)
P0=led_code[SBUF];
else P0=0x00;
ET0 = 1;
TR0 = 1;
P2=0x01;
while(1);
}
void timer_0() interrupt 1
{
TH0 = 0x3C;
TL0 = 0xB0;
count++;
if(count==10)
{
P2=_crol_(P2,1);
count=0;
}
}
6.继电器
原理图:
程序:
#include <reg51.h>
1.单片机之间通过串口进行通信
原理图:
程序:
#include <reg51.h>
sbit key=P1^0;
unsigned char code led_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

单片机c语言程序设计实例100例--基于805i+proteus仿真

单片机c语言程序设计实例100例--基于805i+proteus仿真

以下是一个基于8051单片机和Proteus仿真环境的C语言程序设计实例:实例1:点亮LED灯
在这个例子中,我们将使用C语言编写一个简单的程序来控制8051单片机的一个I/O引脚,使其驱动一个LED灯。

c代码:
要使用Proteus进行仿真,你需要按照以下步骤操作:
1. 打开Proteus软件,创建一个新的设计工程。

2. 在元件库中搜索并添加相应的8051单片机型号(如AT89C51)和LED 元件到工作区。

3. 根据实际硬件连接,正确配置单片机的引脚和LED的连接。

4. 右键单击单片机元件,选择“Edit Component”打开编辑窗口。

5. 在“Program File(s)”区域,点击右侧的浏览按钮,选择你的C语言源文件(如上述的main.c)。

6. 点击“OK”关闭编辑窗口,然后点击工具栏上的“Play”按钮开始仿真。

在仿真过程中,你应该能看到LED灯被点亮,这表明你的C语言程序已经在Proteus环境中成功运行。

以上只是一个基础的例子,实际的"单片机C语言程序设计实例100例--基于8051+Proteus仿真"会包含更复杂和多样化的应用场景,包括定时器/计数器
应用、中断处理、串口通信、ADC/DAC转换、液晶显示等等。

每个实例都会详细介绍程序设计思路、代码实现以及如何在Proteus中进行仿真调试。

通过这些实例的学习和实践,你可以逐步掌握8051单片机的C语言编程技巧和Proteus仿真环境的使用方法。

Proteus单片机仿真实验内容

Proteus单片机仿真实验内容

实验1 PROTUES环境及LED闪烁实验1.实验任务做一个闪烁灯:在P1.0端口上接一个发光二极管D1,使D1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒,重复循环。

2.电路原理图3.程序设计内容(1)延时程序的设计方法作为单片机的指令的执行的时间是很短,数量大多是微秒级。

实验要求的闪烁时间间隔为0.2秒,所以在执行某一指令时,需要插入延时程序,来达到实验的要求。

延时子程序如下:DELAY: MOV R5, #20D1: MOV R6, #20D2: MOV R7, #248DJNZ R7, $DJNZ R6, D2DJNZ R5, D1RET(2)输出控制如上图所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。

实验2 外部中断实验1.实验任务设计一个交通灯正常工作程序,并在有意外情况发生的情况下,能自动中断进入到中断服务程序运行,进行紧急事故处理,处理完成后能回到正常工作程序继续运行。

如原理图所示,P1接一位数码管用于显示时间,P2端口接东西方向和南北方向红绿灯,P3.2接一个按钮用于模拟一个外部中断源,当正常工作时,东西方向绿灯亮8秒,然后南北方向绿灯亮9秒;当模拟中断源发出中断信号时,东西和南北红灯亮5秒后返回正常工作程序。

(注:这里数码管选用了共阳极的数码管)数码管的段选码如下表所示:2.电路原理图3.程序设计内容(1)从proteus库中选取元器件:单片机AT89C51、磁片电容CAP、电解电容CAP-ELEC,晶振CRYSTAL、电阻RES、数码管7SEG-COM-CAT-GRN,按钮BUTTON,发光二极管等。

(2)设计延时程序。

实验3 T0波形发生器实验1.实验任务(1)首先用AT89C51单片机定时器/计数器0的定时功能构成一方波发生器,实现周期为400us的方波输出,如图所示,P3.5,p3.7是两个波形输出端,分别输出反相波形,两路波形输入虚拟示波器的A通道和B通道,用示波器观察方波的周期是否是400us。

PROTEUS的单片机教学与应用仿真

PROTEUS的单片机教学与应用仿真

结论
它可以帮助学生们更好地理解单片机的工作原理和编程方法,同时也可以帮 助他们提高解决实际问题的能力。因此,PROTEUS单片机教学与应用仿真的实用 性和推广价值不容忽视。
结论
展望未来,随着科技的不断发展和PROTEUS软件的进一步升级和完善,相信 PROTEUS单片机教学与应用仿真将在更多的领域得到应用,同时也会为单片机人 才的培养和发展带来更多的机遇和挑战。
五、实验结果分析
实验过程: 1、在PROTEUS中搭建电路:选用AT89C51单片机芯片,连接8个LED灯和一个 按键开关,并设置相应的输入输出端口。
五、实验结果分析
2、编写程序:使用C语言编写程序,通过循环控制P1口输出高低电平,实现 LED灯的依次点亮和熄灭。同时,程序中加入按键开关的输入判断,以便手动控 制LED灯的显示状态。
四、应用场景
2、硬件开发:在单片机应用项目开发过程中,使用PROTEUS可以进行电路设 计和仿真,减少硬件调试的难度,提高开发效率。
四、应用场景
3、软件测试:通过在PROTEUS中搭建单片机外围电路,可以测试和验证单片 机的程序功能是否正确实现。
四、应用场景
4、产品设计:在产品研发阶段,使用PROTEUS进行单片机电路设计与仿真, 可以缩短产品开发周期,提高产品的可靠性和稳定性。
教学案例
教学案例
下面以一个简单的LED闪烁实验为例,介绍PROTEUS单片机教学案例的具体实 施过程:
1、实验题目:LED闪烁实验
1、实验题目:LED闪烁实验
2、实验目的:通过单片机控制LED的亮灭,实现LED的闪烁效果 3、实验原理:利用单片机的IO口控制LED的亮灭状态,通过循环实现LED的 闪烁效果
参考内容
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[整理版]proteus仿真单片机实例
用器和存储器、断点和单步模式Proteus一部分是智能原理图输入系统引言Keil C51 运行可提供单片机体积小Proteus进行编译,编译成功后生成30的多种元件库,超过 ISIS,重量轻,进入仿真软件的主界面,如图等多种系列的处理器。

IAR C-SPY,Keil,具有很强的灵活性而且价格便宜,具有逻辑判断,定时计数等多ISIS(Intelligent Schematic Input System)8000data.hex,也可以仿真模拟数字混合电路。

种模拟、数字元器件。

可以按照设计的要求选择、MPLAB文件。

Protues 等开发工具的源程序进行调试的功包含强大的调试工具,具有对寄存1 所示。

主界面分为菜单栏,工具3.2 绘制电路图,编写和虚拟系统模型 data.c文件,能;能够观察代码在仿真硬件上的实时运行效果;对显示,按钮,键盘等外设的交互可视化不同生产厂家的元器件。

此外,对于元器件库中没有的元件,设计者也可以通过软件自己创VSM(Virtual Model System)利栏,模型显示窗口,模型选择区,元件列表区等。

种功能,广泛应用于仪器仪表,家用电器,医用设备的智能化管理和过程控制等领域。

以单;另一部分是高级布线及编辑软件 ARES(Adv-Ancd Routing 进行仿真。

建。

,nd Editing Software) 片机为核心的嵌入式系统已经成为目前电子设计最活跃的领域之一。

在嵌入式系统的中,开除拥有丰富的元器件外, 2.2 Proteus PCB 也就是PCB. ProteusProteus 2.1 Proteus VSM还提供了
各种虚拟仪器,如常用的电流表,电压表,的PCB设计除了有自动布线仿真功能外,还集成了的仿真 Proteus可以仿真模拟电路及发板成本高,特别是对于大量的初学者而言,还可能由于设计的错误导致开发板损坏。

利用示波器,计数数字电路PCB设计,支持多达/定时/频率计,16个布线层,可以任意角度放置元件和焊接连线;集成了高智能的布线算法,可以方便地进行SPI调试器等虚拟终端。

支持图形化的分析功能等。

ProteusProteus我们可以很好地解决这个问题,由此我们可以快速地建立一个仿真系统。

特别适合对嵌入式系统进行软硬件协同设计与仿真,其最大的特点是可以仿真PCB设计。

3. 基于Protesus的简单数据采集系统。

8051 2.Proteus, PIA3.1 ,介绍AVR软件的编写, ARMProteus 是英国本例题采用可调电阻调节电压值作为模拟信号的输入量,通过Labcenter Electro-nics公司开发的一款电路仿真软件,软件由两部分组成A/D转换芯片:AD0808把模拟信号转换为数字量传送到单片机的P1口,并在P0口把转换的结果显示出来。

软件的编写可以在Keil C51 环境下进行,芯片的型号选择AT89C51
ADC0808图1 ISIS启动界面芯片,一个四位七段数码显示器,一个可变电阻,详见表通过左侧的工具栏区的 P(从库中选择元件)命令,在1。

表Pick devices1 元器件清单芯片,窗口中选择系统所需元器件,还可以选择元件的类别,生产厂家等。

本例所需主要元器件有:AT89C51
选择元器件后连接图2所示电路。

“Program可以直接在图电路连接完成后,选中2 电路原理图
File”“Clock栏中选择已经生成的Freque Microproccessor ICsAT89C51ncy”后进行频率设定,设定单片机的单击鼠标左键,打开data.hex类的芯片的引脚与实际的芯片基本相同,文件,把在“EditKeil Component”电路,复位电路可以省略。

编写的程序导入时钟对话窗口如图频率为Proteus12MHz3 ,然后唯一的差别是隐去了所示,。

在单击“OK”按钮保存设计。

至此,就可以进行单片机的仿真。

GND和VCC引脚,系统默认的是把它们分别连接到地和 +5V直流电源。

故在电路连线时可以不考虑电源和地的连接。

为了快速进行仿真,系统所需的时钟
图 3 单片机属性的设定 3.3 Proteus仿真结果单片机的仿真结果图如图4,模拟信号经A/D转换后,结果送入单片机,再在数码管上显示;通过调节可调电阻的阻值,可以得到不同的显示结果。

仿真结果表明,系统达到了预先的设计要求。

在仿真的过程中每个管脚旁边会出现一个小方块,红色的方快表示高电平,蓝色的表示低电平。

通过方快颜色的变化可以很方便地知道每个管脚电平的变化,从而能对系统的运行有更直观的了解,这对程序的调试有很大的帮助。

图4 仿真结果 4(结束语本文结合一个简单的数据采集系统详细说明了Proteus在单片机开发中的应用。

可以看出,Proteus功能十分强大,能仿真各种数字模拟电路,且操作简单,使用方便。

能快速地进行单片机仿真,加快系统开发的过程,降低开发成本。

相关文档
最新文档