流水灯(电路和汇编)-Proteus和Keil仿真演示实例知识讲解

合集下载

流水灯实验·

流水灯实验·

实验一发光二极管流水灯实验一、实验要求利用单片机及8个发光二极管等器件,制作一个单片机控制的流水灯系统。

单片机的P0.0~P0.7接有8个发光二极管,运行程序,则8个发光二极管进行流水灯操作,流水灯从上到下依次点亮,反复循环。

二、实验目的1.掌握单片机最小系统的构成。

2.掌握P0口作为基本I/O口使用时,外部电路的连接方法。

3.如何控制I/O口来驱动LED发光二极管。

4.学会用PROTEUS 设计电路原理图,并进行仿真的方法。

5.学会使用Keil C编程。

三、实验步骤(一)电路原理图设计1.启动PROTEUS ISIS仿真工具。

参照实验指导书P24页2.5节的方法,设计电路原理图。

2.在元器件模式下,单击选取元器件,在Keywords一栏中输入元器件名称,如AT89C51,双击所匹配的元器件,便可将其加入到对象选择器中。

本实验需要选取的元器件有单片机AT89C51、发光二极管LED-BIRG、瓷片电容CAP、电解电容CAP-ELEC、电阻RES、上拉排阻RESPACK-8、晶振CRYSTAL、按钮BUTTON、双极性晶体管ST5771-1。

3.按图一电路原理图,在编辑区放置相应元器件,单击选择终端模式,放置电源和地,并连线。

4.设置元器件参数值,本实验中晶振X1频率为12MHz,瓷片电容C1、C2的值为30pF,电解电容C3的值为10uF,电阻R1为470,R2、R3的值为10K,电阻R4~R11的值为470,单片机AT89c51的时钟频率12MHz。

5. 设计完成电路后,单击电气检测按钮,会出现检查结果窗口,若有错,会给出详细的说明。

如没有错,将设计保存到自己的工作目录中。

(二)编写源程序,并生成.HEX文件。

1.启动KEIL Uvision4。

2. 按照实验指导书P50页4.1节的方法输入源程序并生成.HEX文件。

(注意:程序设计时考虑到实验学习板上的电路的设计,要使P2.7 = 0; 关闭液晶使能位,防止液晶数据口输出干扰P0口; 使P3.7 = 0, 选通WS 系列实验板的LED 流水灯的电源控制端)(三)仿真回到PROTEUS ISIS环境,并按照实验指导书P60页4.2节的方法加载.HEX文件进行仿真。

Proteus虚拟仿真案例---流水灯制作

Proteus虚拟仿真案例---流水灯制作

Proteus虚拟仿真案例-——流水灯制作一、原理图设计1.打开proteus,新建文件2.选择元器件(1)选择单片机芯片左侧快捷菜单栏里按下,按下P,在“关键字”栏中输入“8951”,选择AT89C51(2)选择晶振:输入crystal,选择CRYSTAL(3)选择电容:输入22p,左边类别中选择Capacitors,右边选择CERAMIC22P(4)选择电阻:输入10k,左边类别中选择Resistors,右边选择RESISTORS库的3WATT10K(5)选择led:输入led,左边类别中选择Optoelectronics,右边选择led—yellow(6)选择按钮:输入button,选择USERDVC库的BUTTON(7)选择好的元器件如图所示3.放置器件振荡电路:(1)放置AT89C51单片机:在DEVICES栏中选中AT89C51,然后在绘制区放置到合适的位置(2)放置晶振,隐藏text属性(菜单-模板—设置设计默认值—显示隐藏文本不勾选)(3)分别将晶振的两脚与AT89C51的19、18脚相连(4)放置两个22p的电容,一端与晶振相连,另一端互连(5)放置地节点(左侧快捷菜单栏里按下—-GROUND),与两个电容相连复位电路:a.放置电源节点(左侧快捷菜单栏里按下——POWER)b.放置地节点c.放置电容,电阻,电阻一端接地,一端与电容相连,电容一端接+5V电源d.AT89C51第9脚接电阻、电容中间e.放置按钮,接电容两端f.右击按钮——编辑属性——元件参考:BUTTON,并取消“本元件不用于PCB制版”g.修改C3电容的值:右击——编辑属性—-Capacitance改为10u绘制流水灯:a.放置电阻、led,右击led——编辑属性——隐藏元件值,连接电阻和ledb.使用块复制,复制7组电阻和ledc.放置电源,分别与D1—D8的一端连接d.总线绘制:左侧选择“总线模式”,绘制一条总线,连接P1口与R2-R9e.使用属性分配工具进行快速网络标号:按下a,出现属性分配窗口,“字符串”框输入“net=D#”,单击P0口的8条线,进行编号,再次按下a,出现属性分配窗口,“字符串”框输入“net=D#”,单击R2—R9的8条线,进行编号f.批量修改R2-R9的值:按下a,出现属性分配窗口,“字符串”框输入“VALUE=100”,确定二、系统仿真1.编写源代码(1)菜单——源代码——添加/删除源文件—-new——文件名输入pmd。

Keil与Proteus联合仿真

Keil与Proteus联合仿真

Keil(uVison)与Proteus联合仿真说明(以流水灯C51程序为例)
一、安装KeiluVision3,并完成破解。

二、安装Proteus7.8,并完成破解。

三、再安装vdmagdi.exe。

四、联合仿真(以流水灯C51程序为例)
1.解压缩“流水灯C51.rar”,进入文件夹,如下所示。

2.进入文件夹,双击“流水灯.DSN”,出现如下界面:
单击Debug菜单,选中use Remote Debug Monitor,如下图所示
3.进入文件夹,双击led.Uv2,如下所示:
单击上图中圈出的“Target1”,单击鼠标右键,出现下图
再单击上图中圈出的options for ‘Target1’,出现的界面上,选中Output标签页,选中Create Hex File(如下图)。

选中Debug标签页,选中use,Proteus VSM Simulator
此设置,系统会保存,只需设置一遍(创建新的工程,需要做类似设置)。

4.单击工具栏按钮,完成编译(检查是否有语法错误!)。

若无误,单击工具栏
按钮启动程序(程序等待执行),再单击按钮Run程序。

观察Proteus
界面,流水灯是否动态如流水般移动闪烁。

正常运行后,若要退出程序,先单击按钮Halt程序,再单击按钮,即可退出联合仿真运行。

以后,只修改软件,只需执行上面的编译、执行步骤,前面的设置系统会保存,不必每次设置。

keil+proteus流水灯实验

keil+proteus流水灯实验
v,查了一下也可以直接改成5v。
下面的这个东西就不用说了吧,开关运行按钮。
下面这个就是结果了。
5,程序
#include "reg51.h"
#include "intrins.h" //该文件包含—crol—(。。。)的函数原型
void mdelay(unsigned int delaytime)//延时程序
流水灯实验《仅供参考》
1
必须的两个软件,没有的自己去下了。太大了没办法传。 2
Keil软件
,,
别忘记设置这些参数。
在creat HEX Fi上打狗。。。打钩,嘿嘿,这是proteus中需要的文件。
3
Proteus软件,照图放一下就ok了。最小系统随便一搜就知道了。Crystal,找晶振使用(双击该属性12MHZ),cap电容(两个30pf,一个10uf),resistor电阻的(8个1k的,一个10k)的),AT89c52,switch开关。
各位都是聪明人,智商都是高高的。相信你一定可以的。
while(1)//死循环。相当于for(;;)
{
P3|=0x3c;
{
while((P3|0xfb)!=0xff)//判断按下的开关
{P1=outdata;
outdata=_crol_(outdata,1); //循环左移命令—crol—()
mdelay(1000);
}
P1=0xff;
}
}
}
6,完事。
{
unsigned int j=0;//无符号整数j
for(;delaytime>0;delaytime--)//for循环
{
for(j=0;j<125;j++)//125*delaytime为所延迟的时间

实训报告单片机流水灯

实训报告单片机流水灯

一、实验目的1. 熟悉单片机的基本原理和组成,掌握51单片机的编程方法。

2. 理解单片机I/O口的使用,学会利用单片机控制LED灯的流水灯效果。

3. 提高动手实践能力,培养团队协作精神。

二、实验环境1. 实验设备:51单片机开发板、LED灯、面包板、电源、连接线等。

2. 实验软件:Proteus仿真软件、Keil uVision5集成开发环境。

三、实验原理流水灯实验是单片机入门级实验之一,通过控制单片机的I/O口输出高低电平,使LED灯依次点亮,形成流水灯效果。

实验中,利用单片机的定时器产生定时中断,每隔一定时间改变I/O口的输出状态,实现LED灯的流水灯效果。

四、实验步骤1. 打开Proteus软件,新建一个工程项目,添加51单片机开发板和LED灯等元件,绘制电路图。

2. 打开Keil uVision5,新建一个C51工程项目,选择对应的单片机型号。

3. 编写程序:(1)初始化I/O口:将P0口设置为输出模式,将P1口设置为输出模式。

(2)设置定时器:选择合适的定时器,设置定时时间,使其产生定时中断。

(3)编写中断服务程序:在中断服务程序中,改变I/O口的输出状态,实现LED灯的流水灯效果。

(4)编写主程序:在主程序中,启动定时器,进入中断服务程序。

4. 编译程序,生成HEX文件。

5. 将生成的HEX文件导入Proteus软件,运行仿真实验。

6. 观察实验现象,检查LED灯的流水灯效果是否正常。

五、实验结果与分析1. 实验现象:在Proteus软件中,LED灯依次点亮,形成流水灯效果。

2. 实验分析:通过设置定时器,每隔一定时间改变I/O口的输出状态,实现LED 灯的流水灯效果。

实验过程中,可以调整定时器的定时时间,改变流水灯的速度。

六、实验总结1. 本实验使我们对单片机的基本原理和组成有了更深入的了解。

2. 通过编写程序,掌握了51单片机的编程方法,提高了编程能力。

3. 实验过程中,我们学会了利用单片机控制LED灯,实现了流水灯效果。

第4讲 Proteus硬件仿真(单片机控制LED流水灯)

第4讲 Proteus硬件仿真(单片机控制LED流水灯)
Proteus7.x 是目前最好的模拟单片机外围器件的工具。 可以仿真 51 系列、AVR,PIC 等常用的 MCU 及其外围电路(如 LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件, 部分IIC 器件等等)。 无需任何硬件实验系统,就能仿真调试单片机系统。
其功能特点 (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真
※ 生动的仿真显示:用色点显示引脚的数字电平,导线以不 同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、 按钮)的使用可以使仿真更加直观、生动;
※ 高级图形仿真功能(ASF):基于图标的分析可以精确分
析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、
噪声、失真、傅立叶频谱分析等,还可以进行一致性分析;
4
四大功能模块
(3)独特的单片机协同仿真功能(VSM) ※ 支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、
PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、 MSP430等,CPU类型随着版本升级还在继续增加,如即将支持 CORTEX、DSP处理器;
12
Proteus的使用-跑马灯实例学习
双击“AT89C52”,则可将“AT89C51”添加至对象选择器窗 口。 同样方式:选择
发光二极管LED-YELLOW 瓷片电容CAP 电解电容器CAP-ELEC 电阻RES 晶振CRYSTAL 按钮BUTTON
13
Proteus的使用-跑马灯实例学习
②放置元器件 放置元器件至图形编辑
点击“Start/Stop Debug ,然后按 Proteus的仿真按钮,观察结果
20

用单片机控制8位LED灯的流水点亮及其PROTEUS仿真

用单片机控制8位LED灯的流水点亮及其PROTEUS仿真

⽤单⽚机控制8位LED灯的流⽔点亮及其PROTEUS仿真⽤单⽚机控制8位LED灯的流⽔点亮及其PROTEUS仿真摘要:LED灯的流⽔控制可以由多种⽅式实现,这⾥选⽤80c51系列单⽚机作为CPU,采⽤函数型指针的⽅式编程,⽤Proteus进⾏电路图绘制和仿真,⽤keil进⾏编译和虚拟写⼊,得到了理想的仿真效果。

Abstract: LED lights from a variety of water control can be achieved, 80c51 chosen here as a series of single-chip CPU, the use of functional programming guide way, using Proteus for drawing circuit diagrams and simulation, carried out using keil compiler and virtual write, be an ideal simulation of the effect.1引⾔1.1 AT89C51简介AT89C51是⼀种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,⾼性能CMOS8位微处理器,俗称单⽚机。

AT89C2051是⼀种带2K字节闪烁可编程可擦除只读存储器的单⽚机。

单⽚机的可擦除只读存储器可以反复擦除100次。

该器件采⽤ATMEL⾼密度⾮易失存储器制造技术制造,与⼯业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯⽚中,ATMEL的AT89C51是⼀种⾼效微控制器,AT89C2051是它的⼀种精简版本。

AT89C单⽚机为很多嵌⼊式控制系统提供了⼀种灵活性⾼且价廉的⽅案1.2 Proteus简介Proteus(海神)的ISIS是⼀款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并⽀持单⽚机,元件库齐全,使⽤⽅便,是不可多得的专业的单⽚机软件仿真系统。

3 第三章 Keil软件的使用及流水灯的设计 (1)

3 第三章 Keil软件的使用及流水灯的设计 (1)

VCC P0. 0 P1=0xfe;//1111 1110 0000 P1=0xff;//1111 1111 P0.1P1=0x00;//0000 P0.2 P0.3 由于单片机P1 P0.4 P0.5 口的8个引脚 P0.6 可以同时输出 P0.7 PSEN 不同的电平, ALE 所以可以控制 EA P2.7 不同的发光二 P2.6 P2.5 极管处于不同 P2.4 的亮灭状态。 P2.3 P2.2 P2.1 P2. 0
#include<reg51.h> #define uint unsigned int sbit led1=P1^0; uint i,j; void main() { while(1) { led1=0; for(i=1000;i>0;i--) for(j=110;j>0;j--); led1=1; for(i=1000;i>0;i--) for(j=110;j>0;j--); }
#include<reg51.h> #define uint unsigned int sbit led1=P1^0;
void delay1s();
void main() { while(1) { led1=0; delay1s(); led1=1; delay1s(); }}
void delay1s() {uint i,j; for(i=1000;i>0;i--) for(j=110;j>0;j--);}
1 0
+5V
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 24 22 21
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

流水灯(电路和汇编)-P r o t e u s和K e i l仿真演示实例
示例要求:
在80C51单片机的P2口连接8个发光二极管指示灯,编程实现流水灯的控制,轮流点亮指示灯。

在KEIL 51中编程序,形成HEX文件;在PROTEUS中设计硬件,下载HEX文件,运行看结果。

第1篇:PROTEUS电路设计
1、打开PROTEUS的ISIS软件,如图1所示。

新建电路图文件,将文件保存到E:\projectio (新建文件夹projectio)下面,文件基本名为io,扩展名默认。

选择元
图1 ISIS窗口图
2、在component mode模式下单击选择元件按钮P,打开元件选择对话框,如图2所示。

图2 元件选择窗口
在元件选择对话框的keywords窗口中输入元件关键字可换搜索元件,找到元件后,双击元件则可选中元件,添加元件到图3的device列表栏。

在这里依次添加元件单片机80C51、电阻RES、电容CAP、按键BUTTON、晶振CRYSTAL、发光二极管LED-RED,如图3所示。

图3 添加元件的device列表栏
3、选择devices元件列表中的元件放到工作窗口,注意放置在工作窗口合适的位置,在元件放置时可对元件进行移动、旋转等操作;如图4所示。

电源(POWER)与地(GROUND):(右键-放置-终端里选)。

图4 放置元件图4、连接导线,如图5所示。

连接后存盘。

图5 连接元件图
5、在Keil软件中设计软件程序,形成HEX文件(具体过程见第2篇Keil软件编程)。

保存软件项目到电路文件相同的文件夹E:\projectio下。

6、在PROTEUS电路图中,单击单片机80C51芯片,选中,再次单击打开单片机80C51的属性对话框,在属性对话框中的program file框中选择下载到80C51芯片中的程序。

这里是同一个文件夹下面的shili.hex文件。

如图6所示。

图6 下载程序到单片机
7、单击仿真运行按钮play,运行程序。

可通过LED二极管看到相应的结果。

如图7所示。

图7 仿真结果图
第2篇:Keil软件编程
1、运行KEIL51软件,出现图1所示KEIL 51主界面。

图1 KEIL 51主界面
首先用Project菜单下的New Project命令建立项目文件,过程如下:
(1)选择Project菜单下的New Project命令,弹出如图2所示的Create new Project对话框。

(2)在Create New Project对话框中选择新建项目文件的位置(与PROTEUS电路图文件同一个文件夹下E:\projectio),输入新建项目文件的名称,例如,项目文件名为shili,单击【保存】按钮将弹出如图3所示的Select Device for Target ‘Target 1’对话框,用户可以根据使用情况选择单片机型号。

Keil uVision2 IDE几乎支持所有的51核心的单片机,并以列表的形式给出。

选中芯片后,在右边的描述框中将同时显示选中的芯片的相关信息以供用户参考。

图2 Create New Project对话框
图3 Select Device for Target ‘Target 1’对话框
(3)这里选择atmel公司的AT89c51。

单击【确定】按钮,这时弹出如图4所示的Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框,C语言开发选择【是】,汇编语言开发选择【否】。

单击后,项目文件就创建好了。

项目文件创建后,在主界面的左侧的项目窗口可以看到项目文件的内容。

这时只有一个框架,紧接着需向项目文件中添加程序文件内容。

图4 Copy Standard 8051 Startup Code to Project Folder and Add File to Project确认框
2、给项目添加程序文件
当项目文件建立好后,就可以给项目文件加入程序文件了,Keil uVision2支持C语言程序,也支持汇编语言程序。

这些程序文件可以是已经建立好了的程序文件,也可以是新建的程序文件,这里我们新建的汇编程序文件后再添加。

(1) 选择文件菜单上的new命令,出现新建文本窗口,如图5所示。

图5 新建文本窗口
在文本编辑窗口中输入程序。

存盘,假设文件名为chengxu.asm。

注意汇编程序文件扩展名为.asm,这时默认路径为工程文件夹。

参考程序如下:
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV A, #01H
LOOP: MOV P2, A
LCALL DELAY
RL A
SJMP LOOP
SJMP $
DELAY: MOV R2, #0FFH
DELAY1: MOV R3, #0FFH
DJNZ R3, $
DJNZ R2, DELAY1
RET
END
(2)添加文件到项目中。

在项目管理器窗口中,展开Target1项,可以看到Source Group1子项。

右击Source Group1,在出现菜单中选择Add Files to Group ‘Source Group1’命令。

出现添加文件的窗口,加程序chengxu.asm如到项目中。

如图6所示。

注意文件类型要选择为*.a*。

图6 添加程序文件到项目
3、编译、连接项目,形成目标文件
当把程序文件添加到项目文件中,并且程序文件已经建立好存盘后,就可以进行编译、连接,形成HEX 目标文件(只在keil 51中软件仿真可以不形成目标文件)。

(1)选择Project菜单下的Built Target命令(或快捷键F7) 编译、连接当前项目,编译、连接时,如果程序有错,则编译不成功,并在下面的信息窗口给出相应的出错提示信息,以便用户进行修改,修改后再编译、连接,这个过程可能会重复多次。

如果没有错误,则编译、连接成功,并且在信息窗口给出提示信息。

如图7所示。

图7 编译、连接后的显示图
(2)如果要做硬件下载可硬件仿真,则要形成HEX目标文件,须先对输出选项进行相应的设置,设置后再进行编译连接。

方法如下:右击项目管理器窗口的Target1项,在右键菜单中选择下面的Options for Target ‘Target 1’命令,在Options for Target ‘Target 1’对话框选择Output选项卡,在该选项卡选中Create HEX File选项,选择生成HEX文件,然后按(1)操作进行编译连接。

如图8所示。

图8 Options for Target ‘Target 1’ 对话框
4、运行调试观察结果(本示例不需要的步骤)
当项目编译、连接成功后,就可以运行它来观察结果。

先用Debug菜单下的Start/Stop Debug Session命令(快捷键Ctrl+F5)启动调试过程,启动后可用Debug菜单下Go连续运行命令、Step单步运行、Stop running停止运行命令等运行程序观察结果。

相关文档
最新文档