单片机实验教材修订版.2

上传人:枫** 文档编号:431688138 上传时间:2022-12-22 格式:DOC 页数:33 大小:1.98MB
返回 下载 相关 举报
单片机实验教材修订版.2_第1页
第1页 / 共33页
单片机实验教材修订版.2_第2页
第2页 / 共33页
单片机实验教材修订版.2_第3页
第3页 / 共33页
单片机实验教材修订版.2_第4页
第4页 / 共33页
单片机实验教材修订版.2_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《单片机实验教材修订版.2》由会员分享,可在线阅读,更多相关《单片机实验教材修订版.2(33页珍藏版)》请在金锄头文库上搜索。

1、Proteus软件使用简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,是目前较好的仿真单片机及外围器件的工具。下面以制作一个闪烁灯为例给出proteus的使用方法。1创建文件双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 7 Professional”进入Proteus ISIS集成环境,选择“File”“Creat New Design”命令,选择Default模板,单击OK并进行保存命名为“Led.DSN”,

2、 如图所示。创建文件2绘制电路图1)将所需元器件加入到对象选择器窗口。选择“Library”“Pick Device/Symbol”命令,弹出“Pick Devices”页面,在“Keywords”输入AT89C51,如图所示。 Pick Devices窗口单击“OK”,元件名出现在“DEVICES”列表中,如图所示。DEVICES窗口2)在“DEVICES”列表中选择AT89C51,在绘图区域单击鼠标左键摆放元件。3)同理摆放其它元件,如图所示。摆放元件4)使用左下角的旋转或反转命令,改变元件方向。也可用鼠标右键单击元件,进行旋转或反转。5)在左侧单击图标,列表框中显示可用的终端,单击“Po

3、wer”摆放电源终端,单击“Ground”摆放接地终端,如图所示。添加终端6)选中元件,单击鼠标左键,设置元件参数,7)布线,分别单击两个引脚,两个引脚之间会自动走线,也可以手动走线,连接走线后的电路如图所示 。连接走线3加载目标文件在AT89C51上双击鼠标左键,弹出Edit Component 窗口,点击Program File,添加目标程序在Keil中生成的HEX文件,如图。加载目标文件4运行仿真点击OK,单击ISIS编辑环境下方的启动仿真按钮,运行仿真,可观察到实验运行结果,如图9-17所示。运行仿真结果这四个按钮分别是启动仿真、单步运行仿真、暂停仿真和停止仿真。二、Keil C与Pr

4、oteus连接调试1正确安装Keil C与Proteus 及连调驱动。2设置Keil C的选项。在Keil C下创建一个项目,加入Keil C源程序。单击“Project 菜单/Options for Target”选项或者点击工具栏的“Option For Target”按钮,在弹出窗口上点击“Debug”按钮,选中对话框右栏上部的下拉菜单中的“Proteus VSM Monitor”,点击“Use”表明选中。出现如图所示。KeilC Vision3选项设置点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台

5、电脑的IP地址。在“Port”后面添加“8000”,如图(a)所示,点击“OK”按钮。将工程编译,进入调试状态。 a) b)选项设置a)Keil C 通信接口设置 b)Proteus选项设置3Proteus的设置打开Proteus ISIS,鼠标左键点击菜单“Debug”, 选中“use romote debuger monitor”,如图(b)所示,便可实现Keil C与Proteus连接调试。4Keil C与Proteus连接仿真调试在Keil C开发环境Debug下点击单步、断点、连续运行,可在Proteus上清楚地观察到电路中每一个引脚的电平变化及闪烁灯的亮灭变化。实验一 清零程序一、

6、 实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。二、 实验内容把60H7FH的内容清零。三、 实验程序框图开始R0 = 00H R1 = 60H00送到R1所存数据对应的地址单元R1=R1+1,R0=R0+1 NR0=20H Y 结束四、 实验步骤使用proteus仿真,观察各寄存器和存储单元的变化情况。五、 思考假使要把50H7FH中的内容改成FF,如何编制程序。源文件名:CLEAR.ASMORG 0030HCLEAR:MOV R0,#00HMOV R1,#60HCLEAR1: CLR A ;a = 0 mov a,#0MOV R1,AINC R1INC R0CJNE R0,#20H,C

7、LEAR1SJMP CLEAREND实验二 BCD码求和实验源代码:ORG00HMOVR7,#03HMOVR0,#30HMOVR1,#34HMOV30H,#68HMOV31H,#55HMOV32H,#98HMOV34H,#55HMOV35H,#23HMOV36H,#64HBCDA: MOV A,R7;取字节数至R2中 MOV R2,A ADD A,R0;初始化数据指针 MOV R0,A MOV A,R2 ADD A,R1 ;高位字节相加MOV R1,A CLR C ;为什么要加一个清除C?BCD1: DEC R0;调整数据指针 DEC R1 MOV A,R0 ADDC A,R1;按字节相加,带

8、进位的加法 addDA A;十进制调整 MOV R0,A;和存回R0中 DJNZ R2,BCD1;处理完所有字节 SJMP $END说明该实验完成的功能,分析程序。使用proteus仿真,观察各寄存器和存储单元的变化情况。实验三 多路开关状态指示1 实验内容AT89S51单片机的P1.0P1.3接四个发光二极管L1L4,P1.4P1.7接了四个开关K1K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。 2 电路原理图 3 系统板上硬件连线 (1 把“单片机系统”区域中的P1.0P1.3用导线连接到“八路发光二极管指示模块”区域中的L1L4端口上; (2

9、把“单片机系统”区域中的P1.4P1.7用导线连接到“四路拨动开关”区域中的K1K4端口上; 4 程序设计内容 (1 开关状态检测 对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管显示,可以采用JBP1.X,REL或JNBP1.X,REL指令来完成;也可以一次性检测四路开关状态,然后让其显示,可以采用MOVA,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示(高4位接开关)。 (2 输出控制 根据开关的状态,由发光二极管L1L4来指示,我们可以用SETBP1.X和CLRP1.X指令来完成,也可以采用把开关状态反映到低4

10、位,然后通过MOVP1,1111XXXXB方法一次指示。 5汇编源程序方法一ORG 00HSTART: MOV A,P1 ANL A,#0F0H RR A RR A RR A RR A ORL A,#0F0H MOV P1,A SJMP STARTEND 方法二ORG 00HSTART: JB P1.4,NEXT1 CLR P1.0 SJMP NEX1NEXT1: SETB P1.0NEX1: JB P1.5,NEXT2 CLR P1.1 SJMP NEX2NEXT2: SETB P1.1NEX2: JB P1.6,NEXT3 CLR P1.2 SJMP NEX3NEXT3: SETB P1.

11、2NEX3: JB P1.7,NEXT4 CLR P1.3 SJMP NEX4NEXT4: SETB P1.3NEX4: SJMP STARTEND实验步骤:1、使用proteus仿真,观察实验现象。 2、在开发板上下载程序,观察实验现象。实验四 子程序设计-BCD码转换为二进制单字节可存放两位压缩BCD码(099)B=D110D0(D1,D0为09)十位 个位单字节BCD码转换为二进制子程序入口:(R0)= 压缩BCD码的地址出口:(A)= 转换结果DSFR::MOV A,R0ANL A,#0F0H ;取十位数SWAP A ;变为标准BCD码MOV B,#10MUL AB ;(A)=D110

12、MOV R7,A ;D110暂存R7MOV A,R0ANL A,#0FH ;取个位ADD A,R7 ;A=D110D0RET1、实验内容四位压缩BCD码存在20H21H单元D=D3D2D1D0D=D31000+D2100+D110+D0 =(D310+D2) 100+D110+D0结果存放30H31HR0,R1赋初值调用DSFR子程序 ;求D310+D2A100结果存30H31H INC R0ACALL DSFR 结果加到30h31HDSFR子程序子程序设计要点:子程序一般为多次返复使用的程序段,一般应说明入口条件,DSFR子程序的入口条件是:被转换为二进制的单字节BCD码为间接寻址,间接寻址

13、寄存器为R0。要调用DFSR子程序必需先将压缩BCD码的存放地址赋与R0。而出口条件是指最后结果在哪儿存放。本子程序转换结果在ACC内。主程序调用子程序,在调试时一般要先调试子程序、再调试主程序。2、实验步骤使用proteus仿真,观察各寄存器和存储单元的变化情况。3.实验报告 1)写出主程序流程图、子程序流程图、程序清单 2)根据记录数据给程序加注解 3)调试心得实验五 数制转换子程序单字节二进制数转换为三位数的BCD码B=D2100D110+D0 单字节二进制数应转换为BCD子程序入口: (A)= 二进制数出口: (R0)= 十位数和个位数的地址DRFS:MOV B,#100DIV AB ;(A)= 百位数 MOV R0,A ; 存入RAM单元INC R0MOV A,#10XCH A,BDIV AB ;(A)= 十位、(B)= 个位SWAP AADD A,B ;个位、十位拼字MOV R0,A ;存入RAM

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号