单片机Proteus仿真实验指导书
PROTEUS教学实验系统(单片机E型)三合一综合实验指导书1.04

4B
1.2
蜂鸣器
实验系统的硬件布局
模块 2(数码管模块) 8 位数码管驱动电路 BCD 译码电路 8 路拨码开关 模块 6(IO 扩展) 8255 接口电路 3-8 译码器电路 串转并接口电路 并转串接口电路 模块 10(AD/DA) 并行 AD 并行 DA 串行 AD 串行 DA 模块 11 (按键、 LED) 模块 12(矩阵键盘) 8 路 LED 8 路独立按键 4*4 矩阵键盘 模块 3(1602 模块) 模块 4(电源模块) LCD1602 独立的 74LS373 独立的 74LS00 模块 0(MCU) 51/AVR/PIC 单脉冲、 矩形波、 +12V +5V、-5V、GND 模块 7(功能扩展) 有标配的模块, 也可以 供用户自己发挥 模块 8(12864 模块) LCD128*64
实验二十八 实验二十九 实验三十
LCD12864 液晶显示实验(KS0108) .................................... 86
35H
继电器控制实验..................................................... 88
36H
单片机播放音乐实验................................................... 90
1H 2H 3H 4H 5H 6H 7H 8H 9H 10H 11H 12H 13H 14H 15H 16H 17H 18H 19H 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 30H 31H 32H 33H 34H
I
PORTEUS 教学实验系统(单片机 E 型)实验指导书
单片机PROTEUS实验指导书

目录实验一I/O 口输出控制实验 (20)实验二I/O 口输入输出控制实验 (24)实验三中断程序设计练习 (34)实验四定时器、计数器实验 (32)Keil C51 集成开发环境介绍1、打开计算机,运行Keil C51 集成开发环境。
图1-1 第一次启动Keil C图1-2 Keil C μVision2 操作界面Keil C 软件菜单命令非常丰富,常用的菜单命令都有对应的快捷键和快捷图标,自己可以打开相应的菜单,熟悉各种命令。
2.选择“Project”-“New Project…”建立新的工程文件(注意工程文件放置的文件夹),输入文件名,选择“保存”。
图1-3 创建一个新工程图1-4 为新工程命名并保存3.工程保存后会弹出来一个器件选择窗口,这里需要选择单片机芯片类型。
器件选择的目的是告诉μVision2 最终使用的80C51 芯片的型号是哪一个公司的哪一个型号,因为不同型号的51 芯片内部的资源是不同的。
图1-5 器件选择窗口如果不知道自己需要使用什么型号的芯片,暂时选择“Atmel”下的“AT89C51”,然后在接下来的窗口中,选择“是”,加载芯片基本参数。
图1-6 选择AT89C51 芯片4.选择“File”-“New”或者点击新文件快捷图标,会打开一个文本编辑器窗口。
输入下列数据传送的程序,然后选择“File”-“Save…”,注意保存的时候给文件起名字以后,加个文件名后缀,Keil C 支持汇编语言及C 语言编程,它是依靠文件名后缀来判断文件是汇编语言还是C 语言格式的,如果是汇编语言,后缀为“.asm”,C 语言格式的,后缀为“.c”。
我们根据实验要求选择保存为汇编语言格式或C 语言格式。
注意此时程序中的一些代码和寄存器将会自动蓝色显示,方便观察。
图1-7 创建一个新文件图1-8 输入程序并保存文件5.选择“Project”-“Targets,Groups,Files…”,选择“Groups/Add Files”标签,首先点击下边窗口中的“Source Group 1”,然后选择下边的“Add Files to Group…”,在接下来的窗口中,首先选择你需要加入的文件的后缀名(默认是.c,我们可选择“Asm Sourcefile,即后缀为.asm”)。
单片机实验指导书(PROTUES实用)

单片机原理与接口技术实验指导书2009.10.28目录软件部分 (1)实验一赋值程序 (1)一实验目的 (1)二实验内容 (1)三程序流程图 (1)四实验步骤 (1)五参考程序 (1)实验二数据区传送程序 (3)一实验目的 (3)二实验内容 (3)三程序流程图 (3)四实验步骤 (3)五参考程序 (3)硬件部分 (5)实验一P1口亮灯实验 (5)一实验目的 (5)二实验内容 (5)三程序流程图 (5)四仿真电路 (6)五硬件实现电路 (6)六实验步骤 (7)七参考程序 (7)实验二P1口转弯灯实验 (8)一实验目的 (8)二实验内容 (8)三程序流程图 (8)四仿真电路 (8)五实验电路 (9)六实验步骤 (9)七参考程序 (9)附录一Keil Vison2使用入门 (11)附录二Protues使用入门 (13)附录三KeilC与Proteus连接调试 (15)软件部分软件实验中,涉及外部数据存储器扩展寻址操作,须按下图连接实验线路。
说明:1 将存储器单元的D0-D7与数据总线单元D0-D7相连;存储器单元的A0-A12与地址总线单元A0-A12相连。
2 存储器单元的WE/PGM与六位LED左下方单元的WR或IOWR相连。
3 存储器单元的CS1与六位LED右下方单元A15相连。
4 存储器单元的OE与六位LED左下方单元的RD或IORD相连实验一赋值程序一实验目的1 熟悉汇编指令2 掌握汇编语言程序设计的一般方法二实验内容编写程序实现存储块(2000H---20FFH)的赋值操作(如全为0FFH)。
三程序流程图图1 流程图四实验步骤1 编写程序并调试。
2 在实验箱上运行程序,并查看对应存储器和寄存器的内容。
五参考程序ORG 0000HLJMP MAINORG 0030HMAIN: MOV R0,#00HMOV DPTR,#2000HMOV A,#0FFHLOOP0:MOVX @DPTR,AINC DPTRINC R0CJNE R0,#00H,LOOP0;判断赋值是否完成LOOP1:SJMP LOOP1END实验二数据区传送程序一实验目的1 熟悉汇编指令2 掌握汇编语言程序设计的一般方法二实验内容编写程序实现内存块的移动操作(将20H单元开始的64字节数据移动到3000H开始的存储区)。
《单片机Proteus仿真C51参考程序实验》

班级:
学号:
姓名
实验二 定时计数器中断实验
一、实验目的
利用单片机的定时计数器和外部中断,实现 LED 流水灯轮流发光,流水时间以定时器 的方式来控制,利用计数器进行计数改变流水灯的状态,输入外部脉冲产生外部中断改变流 水灯的状态。
二、实验原理
1.在 Proteus 环境下建立如下仿真原理图,并保存为文件;
uchar t;while(x--)for(t=0;t<120;t++); }
班级:
学号:
姓名
void main() {
uchar i,j=0x01; while(1) {
P2=j; j=_crol_(j,1); delay_ms(100); } } 将以上程序补充完整,流水时间间隔为 100ms。 3.将.HEX 文件导入仿真图,运行并观察结果;
R11uF
200
29
R2 30
1k 31
PSEN ALE EA
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
21 22 23 24 25 26 27 28
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
2.在 Keil 环境下建立源程序并保存为.C 文件,生成.HEX 文件;
参考程序如下:
#include<reg51.h>
班级:
学号:
姓名
#include<intrins.h> #define uchar unsigned char #define uint unsigned int void delay_ms(uint x) {
实验指导书附录1__Proteus单片机仿真器系统概述

单片机原理与应用实验指导书附录1 Proteus 单片机仿真器系统概述1 PROTEUS简介●PROTEUS是英国LABCENTER公司研发的一款EDA软件。
●PROTEUS不仅可以做模拟电路、数字电路及数模混合电路的仿真,也可以做51、A VR、PIC、ARM等多种MCU的仿真。
●在PROTEUS中,可以实现从原理图设计、单片机编程、系统仿真到PCB的设计的一系列过程。
Proteus 是一个基于ProSPICE混合模型仿真器的,完整的嵌入式系统软、硬件设计仿真平台。
•ISIS——智能原理图输入系统,系统设计与仿真的基本平台。
•ARES ——高级PCB布线编辑软件。
•VSM------处理器仿真模型,提供交互式仿真系统——从概念到完成在Proteus中, 可以实现从原理图设计、单片机编程、系统仿真到PCB设计一系列过程。
真正实现了从概念到产品的完整设计。
ISIS原理图设计与仿真ARES线路板设计产品2 ISIS的基本操作及原理图的设计2.1 ISIS的界面Proteus ISIS的工作界面是一种标准的Windows界面,如图1-2所示。
包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。
2.2 ISIS的菜单PROTEUS的菜单符合WINDOWS的操作风格。
File菜单:包括常用的功能,如打开新的文件、加载设计、保存设计、导入/导出文件、打印等。
View菜单:包括是否显示网格、设置格点间距、缩放电路图能显示与隐藏各种工具等。
Edit菜单:包括撤消/恢复操作、查找、编辑、剪切、复制、粘贴器件等。
Library菜单:包括添加、创建元器件/图标及调用库管理。
Tool菜单:包括实时标注、实时捕捉及自动布线等。
Design菜单:包括编辑设计属性、编辑图纸属性、进行设计注释等。
Graph菜单:包括编辑图形、仿真图形和分析一致性等。
proteus教学实验系统(单片机e型)实验指导

目录(版本 1.03)第1章PROTEUS教学实验系统(单片机E型)简介及使用说明 (1)1.1 系统简介 (1)1.2 实验系统的硬件布局 (4)1.3 实验系统原理图 (5)1.4 实验板硬件图 (16)1.5 USB下载方式说明 (23)第2章硬件实验目录 (27)实验一I /O口输出实验—LED流水灯实验 (27)实验二I/O口输入/输出实验—模拟开关灯 (29)实验三8255并行I/O扩展实验 (31)实验四无译码的七段数码管显示实验 (33)实验五BCD译码的多位数码管扫描显示实验 (36)实验六独立式键盘实验 (38)实验七计数器实验 (40)实验八定时器实验 (42)实验九单个外部中断实验 (44)实验十中断嵌套实验 (46)实验十一矩阵键盘扫描实验 (49)实验十二串行端口并行输出扩充实验 (51)实验十三串行端口并行输入扩充实验 (53)实验十四单片机与PC之间串行通信实验 (55)实验十五双单片机通信实验 (58)实验十六I2C总线——AT24CXX存储器读写 (60)实验十七温度传感器DS18B20实验 (64)实验十八实时时钟DS1302实验 (66)实验十九A/D转换实验 (68)实验二十D/A转换实验 (70)实验二十一1602液晶显示的控制(44780) (72)实验二十二12864液晶显示的控制(KS0108) (74)实验二十三直流电机控制实验 (76)实验二十四步进电机控制实验 (78)实验二十五16X16阵列LED显示 (81)实验二十六直流电机测速实验 (83)实验二十七串行AD—TLC549实验 (85)实验二十八串行DA—TLC5615实验 (87)实验二十九继电器控制实验 (89)实验三十LCD 1602 IO方式驱动 (92)第3章软件仿真实验目录 (96)实验一可控硅驱动 (96)实验二光耦应用实验 (98)实验三单片机播放音乐实验 (100)实验四SD卡读写实验 (104)第1章PROTEUS教学实验系统(单片机E型)简介及使用说明1.1 系统简介【硬件特点】PROTEUS教学实验系统(单片机E型)是我公司陆续推出的PROTEUS教学实验系统第三版。
Proteus实验指导书单片机

Proteus 7 Professional 仿真单片机入门教程初学单片机时,拿着一块实验板发呆,电路也不懂、程序也不懂,只好慢慢弄,等弄懂了,实验板也差不多报销了。
而Proteus 正好可以解决这个问题,它功能强大,这里只讨论仿真MCU 的功能。
它可以在原理图上仿真,不用出PCB 板。
一、Proteus 6 Professional界面简介上图是启动后的画面。
下面简单介绍各部分的功能:1.原理图编辑窗口(The Editing Window):顾名思义,它是用来绘制原理图的。
蓝色方框内为可编辑区,元件要放到它里面。
注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。
2.预览窗口(The Overview Window):它可显示两个内容,一个是:当你在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。
3.模型选择工具栏(Mode Selector Toolbar):主要模型(Main Modes):1* 选择元件(components)(默认选择的)2* 放置连接点3* 放置标签(用总线时会用到)4* 放置文本5* 用于绘制总线6* 用于放置子电路7* 用于即时编辑元件参数(先单击该图标再单击要修改的元件)配件(Gadgets):1* 终端接口(terminals):有VCC、地、输出、输入等接口2* 器件引脚:用于绘制各种引脚3* 仿真图表(graph):用于各种分析,如Noise Analysis4* 录音机5* 信号发生器(generators)6* 电压探针:使用仿真图表时要用到7* 电流探针:使用仿真图表时要用到8* 虚拟仪表:有示波器等2D图形(2D Graphics):1* 画各种直线2* 画各种方框3* 画各种圆4* 画各种圆弧5* 画各种多边形6* 画各种文本7* 画符号8* 画原点等4.元件列表(The Object Selector):用于挑选元件(components)、终端接口(terminals)、信号发生器(generators)、仿真图表(graph)等。
《单片机原理》实验指导书proteus

《单片机原理及接口》实验指导书莆田学院信息工程学院2016年2月目录实验一仿真系统搭建 (1)实验二实验系统编程应用 (7)实验三流水灯实验 (9)实验四 LED数码管显示实验 (11)实验五键盘实验 (13)实验六中断系统实验 (15)实验七 51定时器实验 (17)实验一仿真系统搭建一、实验目的了解实验设备的软硬件组成,包括keil单片机仿真软件的安装、设置与使用,单片机仿真调试软件的安装、设置与使用,单片机仿真器的功能、结构与使用,51单片机实验板的电路结构、工作原理与使用。
熟悉使用keil单片机仿真软件、仿真调试软件和实验板进行协调工作的方法。
熟悉使用至少两种单片机仿真系统建立、设置、调试工作项目的方法。
二、实验原理整个实验系统由仿真调试软件(keil单片机仿真软件、伟福仿真调试软件)、单片机仿真头(伟福仿真器)和单片机最小板(51单片机实验板)组成或使用Proteus 仿真系统进行硬件仿真。
仿真软件进行项目的管理设置,仿真器进行软件的下载与单片机的仿真(IAP),实验板搭载建立各种外围电路。
主要掌握的软件有KEIL编程软件、Proteus硬件仿真软件和其他一些差用软件及硬件构造。
整个实验系统使用时,若使用硬件仿真,第一步安装KEIL软件,第二步安装星研系列仿真调试软件,第三步将仿真器的数据口和电源口连接微机及实验板,进行仿真器驱动安装。
第四步将仿真头插入实验板插座(注意仿真头三角箭头标注引脚为第一脚),开机调试。
若使用软件仿真,第一步安装KEIL软件,第二步安装Proteus硬件仿真软件,然后用Proteus硬件仿真软件进行电路构建,最后进行程序调试。
1、Keil软件的安装设置:启动后,点击Project菜单新建项目。
新建项目后,选择仿真单片机型号,并新建或加入程序文件。
编写加入C语言程序后就可以对项目进行设置,进而使用Project菜单进行编译、连接和调试运行等操作。
图1-7 项目设置项目的设置包括Target菜单中的单片机振荡频率,debug菜单中的仿真方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机Proteus仿真实验指导书目录1、Proteus软件使用方法 (3)2、实验一LED闪烁电路实验 (8)3、实验二数码管静态显示实验 (11)4、实验三数码管动态显示实验 (13)5、实验四外部中断实验 (15)6、实验五T0波形发生器实验 (17)7、实验六计数器实验 (19)8、实验七串口通信实验 (22)9、实验八I2C读写实验 (25)10、实验九AD转换实验 (30)Proteus软件使用方法Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。
Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。
通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。
本文中由于我们主要使用Proteus软件在单片机方面的仿真功能,所以我们重点研究ISIS模块的用法,在下面的内容中,如不特别说明,我们所说的Proteus软件特指其ISIS 模块。
在进行下面的操作前,我先说明一点:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。
这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0以后已经完全改过。
下面我们首先来熟悉一下Proteus的界面。
Proteus是一个标准的Windows窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示:如图中所示,区域①为菜单及工具栏,区域②为预览区,区域③为元器件浏览区,区域④为编辑窗口,区域⑤为对象拾取区,区域⑥为元器件调整工具栏,区域⑦为运行工具条。
下面我们就以建立一个和我们在Keil简介中所讲的工程项目相配套的Proteus工程为例来详细讲述Proteus的操作方法以及注意事项。
首先点击启动界面区域③中的“P”按钮(Pick Devices,拾取元器件)来打开“Pick Devices”(拾取元器件)对话框从元件库中拾取所需的元器件。
对话框如下图所示:在对话框中的“Keywords”里面输入我们要检索的元器件的关键词,比如我们要选择项目中使用的AT89C51,就可以直接输入。
输入以后我们能够在中间的“Results”结果栏里面看到我们搜索的元器件的结果。
在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及PCB参数。
这里有一点需要注意,可能有时候我们选择的元器件并没有仿真模型,对话框将在仿真模型和引脚一栏中显示“No Simulator Model”(无仿真模型)。
那么我们就不能够用该元器件进行仿真了,或者我们只能做它的PCB板,或者我们选择其他的与其功能类似而且具有仿真模型的元器件。
搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。
当我们已经将所需的元器件全部加入到文档中时,我们可以点击“OK”按钮来完成元器件的添加。
添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。
首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。
接着按相同的操作即可完成所有元器件的布置,接下来是连线。
事实上Proteus的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。
布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。
本例我们布线的结果如下图所示(仿真我们在上面的Keil操作介绍中的简单例子)。
因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。
除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。
事实上在Proteus 中单片机的晶振可以省略,系统默认为12MHz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。
下面我们来添加电源。
先说明一点,Proteus中单片机芯片默认已经添加电源与地,所以我们可以省略。
然后在添加电源与地以前,我们先来看一下上面第一个图中区域⑤的对象拾取区,我们在这里只说明本文中可能会用得到的以及比较重要的工具。
:(Selection Mode)。
选择模式,通常情况下我们都需要选中它,比如布局时和布线时。
:(Component Mode)。
组件模式,点击该按钮,能够显示出区域③中的元器件,以便我们选择。
:(Wire Label Mode)。
线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。
经常与总线配合使用。
:(Text Script Mode)。
文本模式,选中它能够为文档添加文本。
:(Buses Mode)。
总线模式,选中它能够在电路中画总线。
关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。
:(Terminals Mode)。
终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。
:(Virtual Instruments Mode)。
虚拟仪器模式,选中它我们能够在区域③中看到很多虚拟仪器,比如示波器、电压表、电流表等等。
关于它们的用法我们会在后面的相应章节中详细讲述。
好了,下面我们就来添加电源。
首先点击,选择终端模式,然后在元器件浏览区中点击POWER(电源)来选中电源,通过区域⑥中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。
放置并连接好线路的电路图一部分如下图:连接好电路图以后我们还需要做一些修改。
由上图我们可以看出,图中的R1电阻值为10k,这个电阻作为限流电阻显然太大,将使发光二极管D1亮度很低或者根本就不亮,影响我们的仿真结果。
所以我们要进行修改。
修改方法如下:首先我们双击电阻图标,这时软件将弹出“Edit Component”对话框(见下图所示的对话框),对话框中的“Component Referer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“Resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。
填写时需注意其格式,如果直接填写数字,则单位默认为Ω;如果在数字后面加上K或者k,则表示kΩ之意。
这里我们填入270,表示270Ω。
修改好各组件属性以后就要将程序(HEX文件)载入单片机了。
首先双击单片机图标,系统同样会弹出“Edit Component”对话框,如下图。
在这个对话框中我们点击“Program files”框右侧的,来打开选择程序代码窗口,选中相应的HEX文件后返回,这时,按钮左侧的框中就填入了相应的HEX文件,我们点击对话框的“OK”按钮,回到文档,程序文件就添加完毕了。
装载好程序,我们就可以进行仿真了。
首先来熟悉一下上面第一个图中区域⑦的运行工具条。
因为比较简单,我们只作一下介绍。
工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。
下面我们点击“Play”按钮来仿真运行,效果如下图所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。
如果我们已经观察到了结果就可以点击“Stop”来停止运行。
仿真实验一、led闪烁实验1.实验任务如图1所示:在P1.0端口上接一个发光二极管D1,使D1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。
图12.程序设计内容(1).延时程序的设计方法作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:如图1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒MOV R6,#20 1个 1 D1: MOV R7,#248 1个 1DJNZ R7,$ 2个2×248=496DJNZ R6,D1 2个2总时间:1+(1+496+2)×20=9981μs因此,上面的延时程序时间约为10.0ms。
由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。
如本实验要求0.2秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:DELAY: MOV R5,#20D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RET(2)输出控制如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。
3.程序框图如图2所示图24.汇编源程序ORG 0START: CLR P1.0LCALL DELAYSETB P1.0LCALL DELAYLJMP STARTDELAY: MOV R5,#20 ;延时子程序,延时0.2秒D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND5. C语言源程序#include <reg51.h>sbit L1=P1^0;void delay02s(void) //延时0.2秒子程序{unsigned char i,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}void main(void){while(1){L1=0;delay02s();L1=1;delay02s();}}6、实验步骤(一)、硬件设计A、在proteus中新建文件file →newdesign→选中default模版→ok,然后另存为*.DSN 文件B、选取元器件并添加到对象选择器中本实验中采用的元器件有:单片机AT89C51、发关二极管LED-RED、磁片电容CAP、点解电容CAP-ELEC,电阻RES、晶振CRYSTAL单击“P”按钮,弹出选取元器件对话框,在其左上角keywords栏中输入元器件名称比如AT89C51,则出现与关键字匹配的元器件列表,选中AT89C51所在行,单击ok边将该器件加入到isis对象选择器中C、画原理图首先,放置元器件,单击isis对象选择器的元器件名,鼠标指针移动到编辑区恰当位置单击然后,放置电源和地,单击选择工具栏中终端按钮,在isis对象选择器中单击power和ground分别在恰当位置放置D、再下一步就是电路图连线,系统支持自动捕捉和自动布线,只要用鼠标点击要连线的两端接下来要修改元器件属性,右键单击要修改属性的元器件,打开属性窗口,修改其值最后做电气检测,单击电气检测按钮,或Tools→electrial rule check(二)、软件设计A、单击source→add/REMOVE source files在对话框中选择代码生成工具ASM51,如果没有源程序,就单击新建,输入文件名单击source→新建文件的文件名,在编辑窗口编辑程序,然后存盘。