ImageVerifierCode 换一换
格式:DOCX , 页数:92 ,大小:427.77KB ,
资源ID:3667112      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3667112.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验指导.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验指导.docx

1、单片机实验指导 LCA51软件快速入门完成一个单片机应用系统软件的设计,一般要经过软件流程设计,程序编写,程序编译,程序调试,程序修改,程序再编译再调试等反复的过程,直到软件按预期要求符合应用系统的需要。本章主要通过一个简单的示例程序,使用户对LCA51软件能快速上手。例子程序Demo51.asm实现的功能是在P1口输出周期性的方波。该程序仅是示例程序,可能没有什么实际价值。本章还讲述如何创建一个含有C51语言,汇编语言的工程化管理的例子。该例子仅让用户懂得如何使用工程,并嵌入汇编模块。所有例子程序都在LCA51所在的目录夹中。1启动LCA51用户双击桌面上的LCA51软件的图标,即可直接进入

2、本软件。软件的主界面如图2-1所示。第一次启动LCA51,用户需设置仿真机型号、状态和通讯端口。退出LCA51时,会自动保存用户最后一次的设置。用户选择“设置仿真机”菜单项,在弹出的对话框中,根据使用的仿真机型号,选择相应的类型。用户选择“设置通讯口”菜单项,在弹出的对话框中,选择相应的通讯串口和通讯波特率。最高通讯波特率由仿真机型号决定。点击测试串口按钮,检查通讯口是否可用。2程序编写选择“文件新文件”菜单项,将新建一个空的编辑窗口。用户在编辑窗口中输入如图4-1所示的程序。输入完毕,选择“文件另存为”菜单项,把该文件保存为Demo51.asm。因为编译器不支持长文件名,用户不能把该文件保存

3、在如“我的文档”之类的目录夹中,否则编译器将找不到该文件。用户可以直接选择“文件打开”菜单项打开该文件。源程序如下:; 系统晶振是 11.0592 MHz ORG 0000H AJMP START ORG 001BH ;T1中断入口地址 AJMP INT_T1 ORG 0100HSTART: MOV SP,#60H MOV TMOD,#10H ;置T1为方式1 MOV TL1,#00H ;延时50mS的时间常数 MOV TH1,#4BH MOV R0,#00H ;记录端口输出值 MOV R1,#20 ;记录定时器中断次数 SETB TR1 SETB ET1 SETB EA ;开中断 SJMP

4、$INT_T1: ;T1中断服务子程序 PUSH ACC ;保护现场 PUSH PSW PUSH DPL PUSH DPH CLR TR1 ;关中断 MOV TL1,#00H ;延时50mS常数 MOV TH1,#4BH SETB TR1 ;开中断 DJNZ R1,EXIT MOV R1,#20 ;延时一秒的常数 MOV A,R0 ;读取R2寄存器值 CPL A ;取反 MOV R0,A ;保存取反结果 MOV P1,A ;送P1口EXIT: POP DPH ;恢复现场 POP DPL POP PSW POP ACC RETI END3程序编译编译是检查源文件的语法错误,如果源文件没有语法错误

5、,编译器将生成源文件的目标代码,对于单汇编文件,编译产生的目标代码可以直接加载调试,对于高级语言的源文件,编译结束还要连接才能产生可加载的目标代码。用户选择“编译编译当前文件”菜单项,将编译当前活动窗口中的源文件,编译结果的信息显示在输出窗口中。用户可以根据输出窗口中错误信息直接定位到源文件的相应位置。4程序调试调试是检查源程序的逻辑错误。任何程序的错误都在所难免,语法错误可以通过编译器检查并修改,而逻辑错误必须通过调试,发现程序中和预期设想不相同的原因所在。对于部分逻辑错误,用户可以根据错误现象,直接找到错误的原因。但是,大多数逻辑错误却不太明白错误原因,这时,调试就尤其重要。用户可以使用单

6、步,断点,全速,变量察看等调试命令,跟踪程序的执行,直到找到错误原因。相关的调试方法和调试技巧,可以参考第三章。用户选择“调试加载调试”菜单项,加载当前活动窗口中的源文件所产生的目标文件到仿真机。加载完毕,用户选择 调试全速运行 菜单项,窗口左上角的图标开始不停变动。用户通过示波器可以观察到P1口的方波。如果没有观察到方波,可以使用第三章的调试方法,查找逻辑错误。5工程示例LCA51软件支持单文件方式和工程化管理两种模式。对于编写小型的程序,使用单文件方式就可以了。对于大型的项目,用工程管理,可以将程序分为几个独立的模块,分别编辑调试,对于某些和硬件关系较大的模块还可以使用汇编语言编写。各个模

7、块尽量做成功能独立的模块,这样方便模块的重用和程序的管理。LCA51软件支持工程的混合调试,用户可以跟踪进入不同的模块,还可以跟踪进入用户编写的汇编模块。51安装高级语言编译器使用高级语言调试前要保证安装好高级语言编译器。安装见高级语言安装一节。52创建工程/打开工程首先启动LCA51软件。第一次启动LCA51,用户需设置仿真机型号、状态和通讯端口。选择“工程新建”菜单项,将创建一个新工程。工程页面窗口打开。常用命令在工程右键菜单中。用户选择“工程打开”菜单项,可以打开已经存在的工程文件。53添加工程项目文件/删除工程项目文件选择“工程添加项目文件”菜单项,或者先选中工程页面窗口中工程文件,点

8、击右键,在右键菜单中选择添加项目文件菜单项。用户在弹出的对话框中添加工程项目文件。工程项目文件可以是任何类型的文件。但是只有扩展名为C、PLM、A51、OBJ的文件会被编译和连接。其它文件只是方便对工程的管理。如用户可以添加readme.txt之类的文件,用来描述该工程的具体功能等。用户选中要删除的项目文件,点击右键,在弹出的右键菜单中选择删除项目文件菜单项,就可以删除指定的项目文件。在工程例子中用户添加项目文件Demop511.C、Demop512.C、Demop513.A51到工程中。这些项目文件都在LCA51所在的目录夹中。54设置工程参数选择“工程设置”菜单项,在弹出的设置对话框中用户

9、设置高级语言编译器和连接器的各种参数。每个参数的含义见相关的高级语言编译器使用手册。在工程例子中按缺省设置。 55保存工程 选择“工程保存”菜单项,将当前的工程项目文件信息和工程参数保存到工程文件中。注意不要保存在长路径目录下。56编译/连接工程选择“编译编译并连接”菜单项,编译/连接当前的所有可以编译的项目文件。在编译连接通过后就可以加载调试了。第一部 软件实验 实验一 数据排序一、实验目的 1、了解数据排序的算法 2、掌握数据有序和无序的概念 3、学会将单片机与数学相结合二、实验说明有序的数列更有利于查找,本程序用“冒泡排序“法,给出一组随机数储存在所指定的单元里,将此数据排列顺序,使之成

10、为有序数列。其算法是将一个数与后面的每一个数相比较,如果后面的数大,则交换,如此操作下去,将所有的数都比较一遍,最大的数就会在数列的最后面。然后取第二个数,再进行下一轮比较,找出第二大数,循环下去,直至全部数据有序。三、实验流程图设置数据区长度设置数据区地址 清除交换标志 当前地址取数A 地址+1 当前地址取数B 否 A=B? 数据比较完 是 否 是 全部有序?设置交换标志 否 交换A、B数位置 是结束 实验二 二进制数转换成ASCII码 一、实验目的1、了解BCD码和ASCII码的区别2、掌握如何将BCD码转换成ASCII码3、掌握如何查表进行数值转换及快速计算二、实验说明 此实验主要了解数

11、值BCD码和ASCII码的区别,利用查表功能快速进行数值转换,进一步掌握数值的各种表达方式。现给出一个BCD数,将其转换成ASCII码:将累加器A的值拆为两个ASCII码,并存入Result开始的两个单元。 三、实验流程图给出要转换数BCD码 取出BCD码高四位 结束保存低位ASCII码查表得到ASCII码 查表得到ASCII码 实验三 内存块移动一、实验目的 1、了解内存的移动方法 2、加深对存储器读写的认识二、实验说明 块移动是单片机常用操作之一,多用于大量的数据复制和图像操作。本程序是给出起始地址,用地址加一方法移动块,将指定源地址和长度的存储块移动到指定目标地址为起始地址的单元中去。移

12、动3000H4000H,256字节。三、实验流程图设置块的源地址 源地址+1保存到目标地址否实验四 数据传送子程序一、实验目的掌握RAM中的数据操作。二、实验内容把(R2、R3)源RAM区首址内的(R6、R7)个字节数据,传送到(R4、R5)目的RAM区。三、实验流程图开始 源地址内容送A(A)送目标地址否实验五 查找相同数个数一、实验目的熟悉汇编语言编程。二、实验内容在7000H700FH单元中放入随机数,其中几个单元中输入零。在7000H700FH中查出有几个字节是零,统计“00”的个数再显示在数码管上。三、实验流程图否实验六 脉冲计数(定时/计数器实验)一、实验目的熟悉8031定时/计数

13、功能,掌握定时/计数初始化编程方法。二、实验内容对定时器0外部输入的脉冲进行计数,并送显示器显示三、实验流程图 二进制转十进制子程序是第二部分 硬件实验实验一 扩展存储器读写实验一.实验要求编制简单程序,对实验板上提供的外部存贮器(62256)进行读写操作。二.实验目的1学习片外存储器扩展方法。2学习数据存储器不同的读写方法。三.实验电路及连线 将P1.0接至L1。CS256连GND孔。四.实验说明1单片机系统中,对片外存贮器的读写操作是最基本的操作。用户藉此来熟悉MCS51单 片 机编程的基本规则、基本指令的使用和使用本仿真实验系统调试程序的方法。 用户编程可以参考示例程序和流程框图。本示例

14、程序中对片外存贮器中一固定地址单元进行读写操作,并比较读写结果是否一致。不一致则说明读写操作不可靠或该存储器单元不可靠,程序转入出错处理代码段(本示例程序通过熄灭一个发光二极管来表示出错)。读写数据的选用,本例采用的是55(0101,0101)与AA(1010,1010)。一般采用这两个数据的读写操作就可查出数据总线的短路、断路等,在实际调试用户电路时非常有效。 用户调试该程序时,可以灵活使用单步、断点和变量观察等方法,来观察程序执行的流程和各中间变量的值。2在I状态下执行MEM1程序,对实验机数据进行读写,若L1灯亮说明RAM读写正常。3也可进入LCA51的调试工具菜单中的对话窗口,用监控命

15、令方式读写RAM,在I状态执行SX0000 55,SPACE, 屏幕上应显示55,再键入AA,SPACE,屏幕上也应显示AA,以上过程执行效果与编程执行效果完全相同。注:SX是实验机对外部数据空间读写命令。4本例中,62256片选接地时,存储器空间为00007FFFH。五.实验程序框图六实验程序: ORG 0000H LJMP START ORG 0040HSTART: MOV SP,#60H MOV DPTR,#0000H ;置外部RAM读写地址 MOV A,#55H ;测试的数据一 MOV B,A MOVX DPTR,A ;写外部RAM MOVX A,DPTR ;读外部RAM XRL A,

16、B ;比较读回的数据 JNZ ERROR MOV A,#0AAH ;测试的数据二 MOV B,A MOVX DPTR,A MOVX A,DPTR XRL A,B JZ PASS ;测试通过ERROR: SETB P1.0 ;测试失败,点亮LED SJMP $PASS: CPL P1.0 ;LED状态(亮/灭)转换 MOV R1,#00H ;延时DELAY: MOV R2,#00H DJNZ R2,$ DJNZ R1,DELAY LJMP START ;循环测试 END_实验二 P1口输入、输出实验一.实验要求1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2.P1口做输入

17、口,接八个扭子开关,以实验机上74LS273做输出口,编写程序读取开关状态,将此状态,在发光二极管上显示出来。二.实验目的1.学习P1口的使用方法。2.学习延时子程序的编写和使用。三.实验电路及连线实验一时,P1.0-P1.7接L0-L7。实验二时,P1.0-P1.7接K0-K7,PO0-PO7接L0-L7。CS273接8300H。四.实验说明1.P1口是准双向口。它作为输出口时与一般的双向口使用方法相同。由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。因为内部上拉电阻阻值是20K40K,故不会对外部输入产生影响。若不先对它置高,且原来是低电平,则MOS管导通,读

18、入的数据是不正确的。2.延时子程序的延时计算问题对于程序 DELAY: MOV R0,#00H ;1个周期 DELAY1: MOV R1,#0B3H ;2561个周期 DJNZ R1,$ ;0B32562个周期 DJNZ R0,DELAY1 ;2562个周期查指令表可知 MOV Rn,#data指令需用一个机器周期,DJNZ 指令需用两个机器周期,而一个机器周期时间长度为1211.0592MHz,所以该段程序执行时间为:(0B325622562+2561+1)1211059200100.278mS五.程序框图: 主程序框图(一) 主程序框图(二) 六实验程序(一) ORG 0000H LJMP

19、 START ORG 0040HSTART: MOV SP,#60H MOV A,#0FEHROTATE: MOV P1,A ;写 P1口 RL A ;循环左移 LCALL DELAY ;延时 NOP SJMP ROTATEDELAY: ;延时子程序(1秒) MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2H DJNZ R2,$ DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET END实验程序(二): ORG 0000H LJMP START ORG 0040HSTART: MOV DPTR,#8300H ;并行输出口地址 M

20、OV P1,#0FFH ;因P1口是准双向口,所以把P1口作为 ;输入口时,应先置高电平.READ: MOV A,P1 ;读开关状态 MOVX DPTR,A ;把读入的数据输出 AJMP READ END实验三 P3口输出控制继电器实验一.实验要求利用P3.5输出高低,控制继电器的开合,实现对外部装置的控制。二.实验目的掌握继电器控制的基本方法和经验。三.实验电路及连线P3.5 接JD。R-MID接L1灯,R-CLOSE接GND。四.实验说明 现代自动控制设备中,都存在一个电子电路与电气电路的互相连接问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机,电磁铁,电灯等),另一方

21、面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全。电子继电器便能完成这一桥梁作用。 继电器电路中一般都要在继电器的线圈两头加一个二极管以吸收继电器线圈断电时产生的反电势,防止干扰。本电路的控制端为JD,当JD为高电平时,继电器不工作,当JD为低电平时,继电器工作,常开触点吸合。执行时,对应的LED将随继电器的开关而亮灭。五.实验程序框图主程序框图 六实验程序: ORG 0000H LJMP START ORG 0040HSTART: MOV SP,#60HJD: CPL P3.5 ;P3.5取反 LCALL DELAY ;延时 NOP SJMP JDDELAY: ;延时子

22、程序(1秒) MOV R0,#0AHDELAY1: MOV R1,#00HDELAY2: MOV R2,#0B2H DJNZ R2,$ DJNZ R1,DELAY2 DJNZ R0,DELAY1 RET END实验四 简单I/O实验(交通灯控制)一.实验要求以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),模拟交通灯管理。二.实验目的1.学习在单片机系统中扩展简单I/O接口的方法。2.学习数据输出程序的设计方法。3.学习模拟交通灯控制的方法。4.学习双色灯的使用。三.实验电路及连线PO0-PO3接DG1-DG4,PO4-P07接 DR1-DR4。CS273 接8300H。四

23、.实验说明1.因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始状态0为东西红灯,南北红灯。然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。最后循环至状态1。2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。五.实验程序框图:主程序框图六实验程

24、序 ORG 0000H LJMP START ORG 0040HSTART: MOV SP,#60H LCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLESTATUS0: ;南北红灯,东西红灯 MOV DPTR,#8300H MOV A,#0FH MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS

25、1: ;南北绿灯,东西红灯 MOV DPTR,#08300H MOV A,#5AH ;南北绿灯,东西红灯 MOVX DPTR,A MOV R2,#50 ;延时5秒 LCALL DELAY RETSTATUS2: ;南北绿灯闪转黄灯,东西红灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次FLASH: MOV A,#5FH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#5AH MOVX DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH MOV A,#0AH ;南北黄灯,东西红灯 MOVX DPT

26、R,A MOV R2,#10 ;延时1秒 LCALL DELAY RETSTATUS3: ;南北红灯,东西绿灯 MOV DPTR,#8300H MOV A,#0A5H MOVX DPTR,A MOV R2,#50 ;延时5秒 LCALL DELAY RETSTATUS4: ;南北红灯,东西绿灯闪转黄灯 MOV DPTR,#8300H MOV R3,#03H ;绿灯闪3次FLASH1: MOV A,#0AFH MOVX DPTR,A MOV R2,#03H LCALL DELAY MOV A,#0A5H MOVX DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FL

27、ASH1 MOV A,#05H ;南北红灯,东西黄灯 MOVX DPTR,A MOV R2,#10 ;延时1秒 LCALL DELAY NOP RETDELAY: ;延时子程序 PUSH 2 PUSH 1 PUSH 0DELAY1: MOV 1,#00HDELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延时 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END实验五 外部中断实验(急救车与交通灯)一.实验要求在实验四内容的基础上增加允许急救车优先通过的要求。有急救车到达时,两向交通信号为全红,以便让急救车通过。假定急

28、救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。本实验以按键为中断申请,表示有急救车通过。二.实验目的1.学习外部中断技术的基本使用方法。2.学习中断处理程序的编程方法。三.实验电路及连线PO0-PO3接DG1-DG4,PO4-P07接 DR1-DR4。CS273 接8300H。K7接P3.2。四.实验说明 中断服务程序的关键是:1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。2.必须在中断程序中设定是否允许中断重入,即设置EX0位。本例中使用了INT0中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但非其专用的寄存器。本例的INT0程序保护了PSW,AC

29、C,2等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中没有涉及这种情况。实验开始时K7应在H(高电平)端,要产生中断时先拨向L(低电平)端再拨回H端。五.实验程序框图 主程序框图六实验程序 ORG 0000H LJMP START ORG 0003H ;INT 0 中断入口地址 LJMP INT0 ORG 0040HSTART: MOV SP,#60H SETB EX0 ;INT 0 中断有效 SETB IT0 SETB EA LCALL STATUS0 ;初始状态(都是红灯)CIRCLE: LCALL STATUS1 ;南北绿灯,东西红灯 LCALL STATUS2 ;南北绿灯闪转黄灯,东西红灯 LCALL STATUS3 ;南北红灯,东西绿灯 LCALL STATUS4 ;南北红灯,东西绿灯闪转黄灯 LJMP CIRCLEINT0: PUSH PSW ;保护现场 PUSH 2 PUSH ACC MOV DPTR,#8300H MOV A,#0FH ;南北,东西都亮红灯 MOVX DPTR,A

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1