流水灯(电路和汇编)-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)运行Keil软件;
2)分别使用顺序结构和循环结构实现流水灯程序;
3)编译并调试,观察运行结果。
1)使用循环结构设计程序有哪些特点?
2)编写循环程序要注意什么?
2、熟悉Protues软件的基本操作
3)运行调试,在Keil中控制调试状态,在Protues中观察实验现象。
1)联合调试有何意义?
2)如何配置联合调试?
3)两个软件是如何联动的?
1)找到Protues软件;
2)如果已安装,运行并练习其基本操作;
3)如果需要,下载安装包自行安装。
1)你知道Protues软件是干什么的吗?
2)你学会它的基本操作了吗?
3、练习Keil与Protues的联合调试
1)参照课本附录C进行联合调试的相关配置;
2)绘制流水灯实验的Protues仿真电路图,注意关联单片机目标文件;

proteus基本操作与8051最小系统搭建(流水灯)

proteus基本操作与8051最小系统搭建(流水灯)

Proteus基本操作与8051最小系统利用Proteus平台搭建一个“8051最小系统”的仿真电路(流水灯为例)一、Proteus基本操作(一)启动Proteus仿真软件:双击“isis”图标,出现isis操作页面。

(二)搭建单片机系统仿真电路:分“器件选取”、“器件放置”和“电路连接”三大步来操作。

〖第一步器件选取〗:isis操作页面的左侧中下部分是电路和器件操作的导航区域,器件选取前“Devices”栏目下为空,器件选取操作的目的是将从器件库中分拣出需要的器件,这些器件排列在“Devices”栏目下。

A:先选择“器件和仪器工具栏”的“放大器符号样”图标(该工具栏的第一个图标),再单击“P”键即弹出“Pick Devices”窗口。

Pick Devices窗口左侧可以输入器件类型名称,或者选择器件类型,窗口中部即出现相应类型的器件,若鼠标选中器件,窗口右侧会出现该器件的引脚图和封装图。

B:在Pick Devices窗口中,先选中器件,后点击窗口右下脚的“确定”按钮,即将器件排列在“Devices”栏目下了。

或者直接双击被选的器件,也能收到同样的操作结果。

C:对于电源、地、输入和输出端等特殊器件,不在“Pick Devices”窗口中选取而在“Pick Terminals”窗口中选取。

只要选择“器件和仪器工具栏”的“输入输出符号样”图标(该工具栏的第八个图标),即变“Devices”栏目为“Terminals”栏目,“Terminals”栏目下已经将电源、地、输入和输出端等特殊器件列出了一部分,如还要增加时,单击“P”键即弹出“Pick Terminals”窗口供选取。

〖第二步器件放置〗:isis操作页面的中右侧是搭建硬件电路系统原理图和显示系统运行状态的区域。

器件放置前或选择“New Design”文件后,器件放置区域同导航区一样栏目内容为空,器件放置操作是把导航区的器件排列在放置区的适当位置,以便于搭建硬件电路系统原理图。

如何用keil与proteus模拟仿真流水灯

如何用keil与proteus模拟仿真流水灯

方法/步骤
将proteus安装根文件中的VDM51.dll 文件放到keil安装根文件目录 C51/BIN中,如图所示。
方法/步骤
左图表示了本步骤的内容,以图片内装目录中的安装设置文件 TOOLS,并将红框内容填入,注意, 前缀“TDRV9”视你自己文件情况而 定,主要不跟前面的“TDRV1~8”重 复就行。
参考资料:单片机应用技术项目式教程:Proteus仿真+实训电路
《单片机应用技术项目式教程:Proteus仿真+实训电路》是2019年8月1日北京理工大学出版社 出版的图书,作者是迟忠君、赵明。
参考资料:单片机应用项目式教程——基于Keil和Proteus
《单片机应用项目式教程——基于Keil和Proteus》是2019年7月机械工业出版社出版的图书, 作者是张志良。
方法/步骤
左图表示了本步骤的内容,以图片内 容为准。
方法/步骤
打开keil软件,点击目录栏project, 在子菜单中点击红框选中内容新建一 个项目(project)。
方法/步骤
左图表示了本步骤的内容,以图片内 容为准。
方法/步骤
在新弹出子窗口中随便起个名字,然 后点保存,又弹出一个窗口,点击 “Ateml”,在它的子栏中选择 “AT89C51”,在又弹出的窗口中点 击否。
参考资料:单片机系统设计、仿真与应用:基于Keil和Proteus仿真平台
《单片机系统设计、仿真与应用:基于Keil和Proteus仿真平台》是2011年西安电子科技大学出 版社出版的图书,作者是贺敬凯。
感谢观看
参考资料:51单片机应用设计与仿真-基于LeilC与Proteus
《51单片机应用设计与仿真:基于Leil C与Proteus》的读者对象为有C语言基础的51单片机初 学者,也可作为单片机工程师学习Proteus仿真软件和51单片机C语言编程的参考资料。重点阐 述了51单片机原理、Keil C环境下用C语言编写和调试51单片机应用程序的方法、Proteus仿真 软件的使用方法、51单片机系统扩展 、51单片机应用系统设计及仿真。

[附]单片机Proteus仿真-流水灯

[附]单片机Proteus仿真-流水灯
2.3 编译源代码生成目标代码
1)编译器设置 单击菜单【Source】(源代码)→【Define Code Generation Tools】,设置结果如图
2)编译源程序,生成目标代码文件 单击菜单【Source】(源
代码)→【Bulid All】(编译全部)。如果出现错误则修改;无
错误则生成目标代码“.HEX”文件。
基于PROTEUS的单片机仿真
嵌入式系统与接口技术
北京理工大学光电学院 2018-9-10
1
基于PROTEUS的单片机仿真
基于PROTEUS的单片机仿真
循环点亮发光二极管程序仿真
说明:要点亮一个发光二极 管,必须在其两端加上足够 的电压,一般为5V,而且二 极管必须要正向接法,同时 还要加上限流电阻。 【例】用51系列单片机的I/O 口点亮发光二极管。
3.1 添加目标代码到电路 2)选择要添加的目标代码文件,单击“打开”按钮,目标代码 就添加到了电路中。
最后按 “确定”
22
基于PROTEUS的单片机仿真
3 单片机电路的仿真与调试
3.2 电路调试
全速启动仿真
23
基于PROTEUS的单片机仿真
3 单片机电路的仿真与调试
3.2 电路调试
Led灯点亮 24
由上图可知,若要使灯点亮,
根据发光二极管点亮条件,只
要P2.0引脚输出为低电平即可,
即P2.0=0。
2
基于PROTEUS的单片机仿真
1 单片机电路的建立
1.1 51系列单片机应用电路图(流水灯)
3
基于PROTEUS的单片机仿真
1 单片机电路的建立
1.2 元器件的选取
在桌面上选择【开始】→【程序】→“Proteus 7 Professional”,单击蓝色图标“ISIS 7 Professional” 打开应用程序。ISIS Professional的编辑界面如图

基于单片机(c语言控制的)流水灯程序设计及proteus仿真图

基于单片机(c语言控制的)流水灯程序设计及proteus仿真图
}
*///依次闪烁10次后,循环点亮
/* #include<reg51.h>
#include<intrins.h>
#define uint unsigned int
void delay(uint z);
void main()
{
while(1){
P1=0xf0;
delay(1000);
P1=0x0f;
delay(1000);
}
}
void delay(uint z)
{uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
*/ //4个一组,每隔0.5秒交替闪烁点亮
二、总体的连线图(proteus)
三、对应的各种仿真:
1.//1~8号灯依次闪烁
2.//8~1号灯依次闪烁
void delay(int n)
{while(n--);}
main()
{
int i;
while(1)
{
for(i=0;i<8;i++)
{
P1=ledtab[i];
delay(20000);
} //1~8号灯依次闪烁
for(i=0;i<8;i++)
{
P1=ledtab[7-i];
delay(2000);
} //8~1号灯依次闪烁
}
}
*/
/*#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

用Proteus学习51单片机之流水灯

用Proteus学习51单片机之流水灯

⽤Proteus学习51单⽚机之流⽔灯
最近刚做好⼀个站,基于rails 3,教程为主,⼤家捧场看看,谢谢!
其实学单⽚机实在是应该去买⼀块学习板的,我原本是买了⼀块的,结果学了段时间,⼜去弄别的东西了,这次来北京,想继续学习,⼜忘记带了……BS⼀下⾃⼰。

单⽚机不做实验肯定是不⾏的,刚好近段时间,⼀直有在⽤Proteus来模拟电路,⽽Proteus最强⼤的地⽅,是模拟单⽚机,不想再买⼀块学习板,所以,就⽤Proteus来暂时代替学习板吧。

我的学习环境:
Keil 8.18
Proteus 7.6
Windows 7
原来看的书,忘记了⼤半,所以只好再从头看起咯。

看的书是郭天详写的《51单⽚机C语⾔教程——⼊门、提⾼、开发、拓展全攻略》
第⼀个实验是流⽔灯,原理图如下:
为了简单,没有使⽤单个的LED灯,⽽是利⽤了10个⼀组的LED灯。

⽤Proteus模拟可以不⽤接晶振,芯⽚电源,挺⽅便的。

要让单⽚机运⾏程序的话,⾸先在单⽚机上单击右键,然后选择要运⾏的HEX⽂件就成了
书⾥还介绍了74HC573锁存器,当然,在这实验中实际没什么作⽤,不过我也⽤了⼀下,即相当于加了个开关,开关合上类就能变化,否则不能,具体请看图,HEX⽂件⼀样。

流⽔灯很简单,就不多记录了。

模拟程序及源程序下载:
Technorati 标签: ,,,,,。

第二讲 Keil软件及流水灯设计

第二讲 Keil软件及流水灯设计

连接程序
Keil软件的使用 软件的使用
新建工程 就相当于 建房子打 地基, 地基,将 一些准备 工作做好。 工作做好。
工程中添 文件: 加C文件: 文件 相当于将 从电脑城 买来的电 脑在家里 安装好, 安装好, 比如接上 电源、 电源、网 线等
流水灯实验
VCC
第二讲 keil软件及流水灯 软编译系统基础知识
2
Keil软件使用方法 Keil软件使用方法
3
流水灯实验
编译原理
编 译 器
Keil编译器 Keil编译器 将一种语言 翻译为另一 种语言 将c语言代码翻译 为多种目标代码, 为多种目标代码, hex、obj等文件 如hex、obj等文件
事件分析
把一段英文翻译成中文的步骤 识别句子的单个单词 分析句子的语法结构
编译 变量类型分配 语法检查
根据句子的含义初步翻译
优化
对译文进行修饰
生成目标文件
写出最后的译文
目标程序转变为机器码
翻译出来的某段句子在整篇文章中是一部分 需要整理成全篇的文章
装入程序
装订或者作者签名等步骤,正式定稿 装订或者作者签名等步骤,
R1
R2
R3
R4
R5
R6
R7
R8
LED1
LED2
LED3
LED4
LED5
LED6
LED7
LED8
N1
N2
N3
N4
N5
N6
N7
N8
L1
L2
L3
L4
L5
L6
L7
L8
P1.0
P1.1
P1.2
P1.3
P1.4

流水灯仿真 原理图与程序(汇编+C语言)

流水灯仿真 原理图与程序(汇编+C语言)

简单流水灯仿真(入门级实验)实验介绍:简单流水灯实验是通过单片机控制几个发光二极管(常见控制8个)的点亮状态,形成一个流动的效果,所以称为流水灯实验。

流水灯实验是闪烁灯实验的进阶,也属于入门级实验。

流水灯效果在普遍应用于路边的广告牌以及各式的霓虹灯。

实验目的:该实验的主要目的是通过流水灯效果的控制,熟悉单片机I/O接口的使用。

学习移位指令(汇编语言:RR、RL,C语言:_crol_、_cror_)的使用方法。

仿真原理图:在仿真软件Proteus中绘制仿真仿真原理图如上图所示。

(注意事项:在仿真过程中,电阻R2~R9的大小要合适,太大LED将无法点亮。

仿真时如果想使用P0口,则需要添加上拉电阻。

注意发光二极管的极性,如果发光二极管接反了,则无法点亮。

)程序HEX代码如下::03000000020832C1:0C083200787FE4F6D8FD75810702081DF0:10080000E4FFFEE4FDFC0DBD00010CBC03F8BDE8F7:0C081000F50FBF00010EEF64644E70E7AE:01081C0022B9:10081D0075A0FEAFA07801EF08800123D8FDF5A0EB:05082D0012080080EE3E:00000001FF程序HEX使用方法:1)新建txt文档2)将HEX代码复制到txt文档中,保存3)将该txt文档另存为“程序名.hex”,例如:pro.hex 4)在仿真软件中打开即可实现仿真。

汇编语言代码以及C语言代码如下:汇编语言代码1(移位方法):ORG 0HJMP MAINORG 30HMAIN:MOV A,#0FEHX1:MOV P2,ACALL DELAYRL AJMP X1DELAY:MOV R2,#20X3:MOV R3,#40X2:MOV R4,#250DJNZ R4,$DJNZ R3,X2DJNZ R2,X3RETEND汇编语言代码2(直接赋值方法):ORG 0HJMP MAINORG 30HMAIN:MOV P2,#0FEHCALL DELAYMOV P2,#0FDHCALL DELAYMOV P2,#0FBHCALL DELAYMOV P2,#0F7HCALL DELAYMOV P2,#0EFHCALL DELAYMOV P2,#0DFHCALL DELAYMOV P2,#0BFHCALL DELAYMOV P2,#7FHCALL DELAYJMP MAINDELAY:MOV R2,#20X3:MOV R3,#40X2:MOV R4,#250DJNZ R4,$DJNZ R3,X2DJNZ R2,X3RETEND注意:对于指令“MOV A,#0FEH”中,“#”后面的数字“0”不可以省略。

实验七 流水灯(Keil与Protenus联合)

实验七  流水灯(Keil与Protenus联合)

实验七流水灯一、实验目的1.了解单片机P0口的功能及使用方法;2.掌握在µVision环境中设计调试P0口应用程序的方法;3.学习运用程序控制P0口实现8个LED发光二极管的流水灯控制。

二、实验仪器和设备Keil软件;Proteus软件;THKSCM-2综合实验装置;三、实验原理及实验内容使用单片机P0口实现8个LED发光二极管的流水灯控制。

1.硬件设计在桌面上双击图标,打开ISIS 7 Professional窗口。

单击菜单命令“File”→“New Design”,新建一个DEFAULT模版,保存文件名为“流水灯.DSN”。

在器件选择按钮中单击“P”按钮,或执行菜单命令“Library”→“Pick Device/Symbol”,添加如表7-1所示的元件。

注意:在ISIS中,单片机的型号必须与在Keil中选择的型号完全一致。

表7-1 流水灯所用的元件在ISIS原理图编辑窗口中放置元件,在单击工具箱中的“元件终端”图标,在对象选择器中单击“POWER”和“GROUND”放置电源和地。

放置好元件后,布好线。

左键双击各元件,设置相应元件参数,完成电路图的设计,如图7-1所示。

图7-1 流水灯电路图2.程序设计流水灯又称为跑马灯,可使用循环移位指令实现。

(1)程序流程流水灯程序流程如图7-2所示。

(2)汇编源程序ORG 0000HMAIN: MOV P0,#0FFH ;初始化P0、P1、P2口为髙电平MOV P1,#0FFHMOV P2,#0FFHMOV A,#0FEH ;[FE]的二进制码为11111110置为0的引脚就会点亮MAIN2:MOV P0,AACALL DELAY ;调用延时子程序RL A ;累加器内容左移一位AJMP MAIN2 ;跳转到主程序入口MAIN2DELAY:MOV R7,#10 ;延时1sDE1: MOV R6,#200DE2: MOV R5,#284DJNZ R5,$DJNZ R6,DE2DJNZ R7,DE1RETEND图7-2 流水灯程序流程3.调试与仿真安装VDM Server,使Keil和Protenus能联合调试程序。

  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停止运行命令等运行程序观察结果。

相关文档
最新文档