单片机实验指导书(1).doc_第1页
单片机实验指导书(1).doc_第2页
单片机实验指导书(1).doc_第3页
单片机实验指导书(1).doc_第4页
单片机实验指导书(1).doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机实验指导书(1) 1第一章MedWin软件及仿真器概述第一节软件及仿真器安装1安装点击文件setup.exe安装或打开光盘MedWinV3chinesesetup.exe执行安装。 安装MedWinV3程序有以下步骤a)运行setup.exe安装MedWin V3(图1)图1安装向导图2MedWin V3安装位置b)选择安装位置(建议安装到默认位置)(图2)除非在安装时有特殊需求,建议使用默认安装位置。 这样可以在版本升级时原有的信息能被继续使用。 c)选择开始菜单文件夹(图3)默认为Manley建议使用默认的文件夹。 图3程序开始菜单中的文件夹图4安装完成d)创建快捷方式根据个人习惯在桌面和快速运行栏创建快捷方式。 e)安装MedWin V3开始安装MedWinV3。 f)安装结束(图4),选择是否运行MedWin V32适用范围本说明适用于万利电子有限公司的Insight系列仿真器ME-52HU,ME-52HP,SE-52HU2和SE-52HP。 3设置仿真器MedWin集成开发环境对仿真器的硬件控制是通过执行菜单命令设置|仿真器设置实现的。 仿真器设置功能通过对仿真器CPU选择,仿真时钟选择,仿真器控制选项,程序存储器映像和数据存储器映像进行的。 用户在设置这些功能时,应将仿真器的各项设置与目标系统的要求一致或尽量接近。 a)仿真CPU选择MedWin是基于Insight系列仿真器硬件的集成开发环境,集成环境所有窗口显示的数据都是被仿真对象真实数据的体现,是完全真实的。 在实际仿真时,应合理选择仿真CPU,使其与目标CPU型号、功能最为接近。 b)仿真器时钟选择ME-52HU,SE-52HU,ME-52HP,SE-52HP仿真器提供12MHz,24MHz,11.0592MHz和22.1184MHz四种仿真器内置时钟源,以及仿真头组件时钟或目标系统上的有源时钟五个选项供选择。 当选择仿真器内部时钟提供仿真CPU时,时钟信号还通过仿真头送到目标系统的时钟引脚(XTAL1和XTAL2)上,此时用户需将仿真头上的跳线开路(拔出),以免仿真头组件上的振荡器时钟与仿真器内部时钟产生信号叠加。 当选择仿真头组件或目标系统时钟时,需在仿真头组件时钟或目标系统时钟中取其一者 1、短路仿真头组件上的跳线,并在组件上振荡器小板的插孔内插入合适的晶体振荡器,此时仿真头组件时钟提供给仿真CPU同时也提供给目标系统。 2、将仿真头上的跳线开路,仿真器的时钟与目标系统的振荡器,此时目标系统应是有源时钟!该试验系统采用此种形式,振荡时钟频率为6MHz4编译工具设置MedWin集成开发环境系统默认使用万利电子有限公司的汇编器A51.EXE和连接器L51.EXE,支持汇编语言编写的程序开发,如果使用其它外部编译工具,需要对外部编译工具的路径和程序进行设置。 系统默认的汇编器和连接器这是MedWinV3环境的初始默认选项,用户只使用汇编作为编程语言时,建议选择此选项。 (图5)图5系统默认的汇编器580C51系列仿真器包装及附(件图6)仿真器主机1台3ME-52HP(绿色)电源适配器MS-1001只通讯电缆打印口连接电缆1根仿真头组件振荡器选件1只地线夹1只AT89C2051仿真转换适配器1只仿真电缆100毫米扁平电缆1根200毫米扁平电缆1根图6仿真器部件图7连接打印口电缆6连接和测试 1、连接通讯电缆到计算机的LPT口将25芯并行通讯电缆和电源插头插入仿真器的LPT插座和电源插座,如图7根据仿真频率和目标系统的具体情况,选择200毫米或100毫米的扁平电缆分别与仿真器和仿真头组件连接,如图8图8连接仿真头将仿真头组件插入目标系统CPU插座,并将地线夹与目标系统地线相连,如图94图9连接仿真器与目标系统 2、将MS-100电源适配器插入市电插座,并接通220V交流电源此时仿真器上的电源指示LED(Power)和监控状态LED(Moni)亮,运行状态LED(Run)闪烁后灭,说明仿真器硬件已经正常工作 3、运行MedWin V3软件,执行选项|设备驱动管理器命令,在对话框中点击所选择驱动(图10)。 图11通讯端口选择图10设备驱动管理器对话框图 4、执行选项|通讯设置命令,选择合适的通讯端口并确定(图11) 5、MedWin V3的状态行出现通讯端口:仿真器信息和时钟信息正常时,状态栏内的通讯端口指示灯为黄色(与仿真器上的Moni LED对应),时钟指示灯为绿色,表示仿真器时钟正常(图12)图12仿真器状态栏如果第5步操作正常,表示仿真器已经能够正常工作。 2软件使用第二节软件使用说明软件开发流程基本可分为以下几个步骤1.新建项目2.新建文件3.编译/汇编、产生代码或产生代码并装入4.进入调试以下将就这几个方面进行介绍51项目管理建立项目新建项目命令项目管理|新建项目67图13项目管理菜单图14选择编译工具在新建项目前,确信已经设置了工作目录和编译工具。 使用MedWinV3开发调试一个新的项目必须从新建项目开始,执行新建项目命令后进入新建项目向导(图13)。 使用新建项目向导第一步选择编译工具。 对于开发8051MCU,MedWinV3支持OMF格式文件或通过添加UBROF编译工具插件,支持UBROF格式文件(图14)。 第二步:根据提示输入项目名、项目别名、项目位置、项目头文件路径和项目描述(图15)。 a)项目名必须使用大小写英文字母和数字和下划线作为项目名,输入的项目名将作为项目文件(mpf)的文件名以及存放项目内容的目录名。 图15项目设置b)项目别名可以使用所有字符和中文字符,项目别名可以在项目管理器中作为项目名显示。 项目别名可以以中文简单形象地表示项目的含义、特点、功能等。 c)项目位置默认项目建立在当前选择的工作目录下,通过下拉选项支持多工作目录下的项目管理,或点击“浏览”将项目建立到指定的目录。 d)项目描述用于记录项目用途、建立时间,软硬件版本,创建者信息的项目描述。 第四步:添加或导入文件到源文件组、头文件组和库文件组(图16)。 如果没有已建好的文件时,直接点击完成按钮,新建项目完成。 如果已经存在文件则进行a)添加文件不改变被添加文件的位置,将选择的文件添加到项目管理器。 b)导入文件将被导入的文件复制到项目工作目录,并将被复制的文件添加到项目管理器。 8图16添加文件c)显示新建项目信息(图17)。 图17项目信息打开项目如果使用已经存在的项目使用打开项目,可以直接打开已经存在的项目(图18)。 命令项目管理|打开项目图18打开已存在项目关闭项目命令项目管理|关闭项目关闭当前激活的项目,如果项目中激活的文件发生修改将出现文件修改提示框。 2文件管理新建文件命令项目管理|新建文件新建文件名可使用字符az,AZ,下划线“_”和数字19文件名9文件类型汇编语言程序或C语言程序,我们选择汇编语言。 图19新建文件点击完成按钮,新建文件完成。 或者继续使用向导做相应设置。 添加文件命令项目管理|添加文件功能只将被添加文件的路径加入到文件管理器,不改变被添加文件的原始位置。 如果被添加的文件不在当前项目的工作目录,添加文件后也不会将文件复制到当前工作目录。 团队编程时的公用文件,通常采用添加文件方式加入文件管理器(图20)。 图20添加已经存在文件3编译/汇编、产生代码或产生代码并装入修改文件对打开后的文件进行修改编译/汇编使用项目管理编译/汇编(图13),对当前文件编译/汇编,MedWin集成开发环境用外汇编命令对当前文件编译。 错误信息关联文件经过编译/汇编后的结果显示于消息窗口,出现错误信息与文件关联,在消息窗口中错误之处双击鼠标左键或键入回车,即可将错误与文件关联。 如果有错,可进入产生代码操作,如果有错误,修改文件后再进行编译/汇编。 10产生代码命令项目管理|产生代码功能1如果源文件组中参与构建的文件没有编译或汇编,操作将对文件逐一进行编译或汇编。 2如果头文件组中文件发生修改,操对参与构建的所有文件进行编译或汇编。 3对于已经构建完成的项目,如果其中部分文件发生修改,操作只对修改的文件进行编译或汇编。 4如果编译汇编结果正确,将对所产生的OBJ文件进行连接,产生代码。 产生代码并装入命令项目管理|重新产生代码并装入功能1产生代码操作对源文件组中参与构建的文件逐一编译或汇编。 2如果编译汇编结果正确,将对所产生的OBJ文件进行连接,产生代码。 3如果第2项连接结果正确,将产生的代码下装到仿真器的仿真存储器。 4调试(图21)程序复位命令调试|程序复位功能复位程序计数器,复位目标系统硬件。 返回监控命令调试|返回监控功能终止程序运行,返回监控状态。 运行到光标处命令调试|运行到光标出处功能运行程序到当前光标处。 源程序窗口和反汇编窗口下有效。 跟踪命令调试|跟踪功能源程序窗口状况下,执行一条源程序语句,如果语句是调用函数或调用程序指令,则进入被调用函数或调用程序。 反汇编窗口状况下,执行一条汇编程序指令,如果是调用子程序指令,则进入被调用子程序。 单步命令调试|单步功能源程序窗口状况下,执行一条源程序语句,如果语句是调用函数或子程序指令,则全速越过被调用函数或子程序。 反汇编窗口状况下,执行一条汇编程序指令,如果是调用程序指令,则全速运行被调用的程序。 全速运行命令调试|全速运行功能全速运行程序,如果遇到程序地址断点、外部信号断点或返回监控命令(ESC),程序终止运行。 1112图21调试菜单图22查看窗口为了配合调试,我们可以查看一些单元的内容,有查看菜单、仿真器状态菜单、断点菜单等等。 下面介绍一个查看菜单的功能查看菜单(图22)寄存器命令查看|寄存器功能激活/关闭寄存器窗口。 特殊功能寄存器命令查看|特殊功能寄存器功能激活/关闭特殊功能寄存器窗口。 反汇编窗口命令查看|反汇编窗口功能打开反汇编程序代码窗口。 IData命令查看|IDATA功能打开间接寻址的片内数据区IData窗口。 使用r0/r1指令访问。 Data命令查看|DATA功能打开直接寻址的片内数据区Data窗口。 地址低128字节与IData的数据相同,高128字节为特殊功能寄存器SFR空间XData命令查看|XDATA功能打开片外数据区XData窗口。 使用MOVX指令访问。 PData命令查看|PDATA功能打开片外页面方式访问的数据区PData窗口。 使用MOVXri指令访问。 Code命令查看|CODE功能打开程序代码窗口。 Bit命令查看|BIT功能打开位寄存器Bit。 位地址0127为Data空间20H2FH内容,高128255为特殊功能寄存器SFR可寻址的位。 13第二章MCS51系列单片机实验1)位操作指令练习1.实验目的:学习并掌握5103S单片机开发系统操作方法,熟练仿真环境和用法。 2.实验内容:万利仿真器开发环境Medwin使用练习。 3.实验仪器:PC机一台,万利仿真器一套及其开发环境。 4.实验步骤: 一、实验前准备: (1)安装Medwin开发环境,并设置其相应的驱动。 (2)打开Medwin开发环境,连接状态标志为绿色,说明开发环境与仿真器连接成功。 如未成功,检查连接、驱动程序设置等是否正确。 二、程序输入练习首先在Medwin下新建一项目,并新建一后缀名为asm的文件(汇编源文件),并添加入项目中。 按规定的格式输入以上程序(只输源程序部分)。 三、程序运行和控制:1.程序的编译、产生代码并装入:输入源程序完毕后,可在“项目管理”窗口中点击“编译/汇编”选项,如程序无输入错误、语法错误等,编译完成。 在消息窗口中,产生编译成功信息。 如有错误,则消息窗口中指出错误所在行及错误类型,请重新修改源程序。 编译成功后,在“项目管理”窗口中点击“产生代码并装入”选项,对编译无误后产生的OBJ文件进行连接,并把代码装入仿真器。 代码装入仿真器后,即可实行仿真。 可在反汇编窗口中查看编译产生的机器码,并与上述程序中对照。 记录你认为能说明问题的检查结果。 2.程序的全速、断点、单步等执行方式:为提高调试程序的运行速度,程序采用全速断点运行方式。 练习设置及取消设置程序断点。 比较单步及跟踪两种程序运行方式的不同。 3.查看单片机各种资源状态及内容在“察看”窗口中可以查看单片机内部及程序变量等各种资源,在单步或程序断点运行中可以实时观察单片机SFR、内外RAM、程序变量等内容,可以很方便的观测程序的运行状况。 将观测的结果记录下来以便和程序分析结果相比较。 4.单步执行程序,验证程序的转移情况,检查相应单元的内容,与你分析的情况相比较。 单步或断点运行程序,写出(A)=,(P1)=,(CY)=5.计算各跳转指令偏移量,程序通过软件编译后,与自己计算的值进行比较。 实验参考程序如下:14源程序ORG2400H MOV P1,#74H MOV20H,#31H MOV30H,#6OH CPL05H MOV C,OOH ANL C,O1H MOV A,#OFDH M2:ADD A,20H JC M1M4:INC30H M1:SETB P1.0M3:ADD A,P1JNC M2ANL C,/ACC.3JB ACC.2,M3ORL C,ACC.7JCM4SJMP$检查单元P120H30H20H CY CY AA,CY30H P1A,CYCYCY内容2)算数运算指令练习1.实验目的:通过常用指令的练习,进一步理解并掌握MCS-51单片机的指令系统。 2.实验内容:算数运算指令及循环指令的练习。 3.实验仪器:5103开发系统一台,稳压电源一台,万历仿真器一套。 4.实验步骤: (1).参考程序ORG2300H MAIN:MOV SP,#60H MOV R0,#31H MOVR0,#22H DEC R0MOVR0,#33H MOV R1,#21H MOVR1,#44H DEC R1MOVR1,#55H MOV R2,#02H ACALL DA JCOVER MOV22H,#00H AJMPTEND OVER:MOV22H,#01H TEND:SJMP$DA:CLR CDAL:MOV A,R0ADDC A,R1DA A MOVR1,A INC R015INC R1DJNZ R2,DAL RET此程序为双字节十进制加法程序。 采用子程序结构编写。 程序运行前,加数,被加数及运算结果,在内部RAM中分配如下:程序开始,加数的首地址以RO为指针,被加数的首地址以R1为指针,每一字节存放二位BCD数(属压缩的BCD数)。 (2).手工计算出偏移量,察看是否和软件汇编结果一致。 (3).分析程序,对程序中给定的被加数和加数进行计算。 (4).运行程序,检查(20H),(21H),(22H)三个单元的内容,与计算的结果相比较。 (5).你自己改变一下被加数和加数,再运行程序,检查结果,验证是否正确。 22H21H20H存放加数及结果31H30H存放加数进位高位字节低位字节高位字节低位字节16实验二数据排序 一、实验目的1了解数据排序的简单算法。 2了解数列的有序和无序概念。 二、实验内容八个随机无符号数存于内部RAM的30H为起始地址的八个单元,将此组数据排序,使之成为有序数列。 编写程序进行调试 三、实验说明有序的数列更有利于查找。 本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。 再进行下一轮比较,找出第二大数据,直到全部数据有序。 四、实验仪器和设备PC机、MedWin软件。 五、参考程序ORG0000H LJMP0030H ORG0030H MOV R0,#30H MOV A,R0MOV R1,A MOVR1,#06H INC R1MOVR1,#04H INC R1MOVR1,#01H INC R1MOVR1,#02H INC R1MOVR1,#05H INC R1MOVR1,#07H INCR1MOVR1,#03H SORT:MOV A,R0MOV R1,A MOV R2,#07H MOV A,R2MOV R5,A CLRF0DECR5MOV A,R117LOOP:MOV R3,A INCR1CLR C MOV A,R1SUBB A,R3JNC LOOP1SETB F0MOV A,R3;XCH A,R1DECR1XCH A,R1INCR1LOOP1:MOV A,R1DJNZ R5,LOOP JBF0,SORT END18实验三P1口应用试验1.实验目的:学习并掌握单片机开发系统操作方法,练习P1口应用。 2.实验内容: (1)万利仿真器开发环境Medwin使用练习。 (2)练习单片机对端口操作的方法和延时的方法。 3.实验仪器:PC机一台,万利仿真器一套及其开发环境。 4.试验要求8个LED指示灯从左到右,然后从右到左依次循环显示程序代码如下led1bit P1.0;第一个数码管对应的引脚led2EQU P1.1;第二个数码管对应的引脚led3EQU P1.2;第三个数码管对应的引脚led4EQU P1.3;第四个数码管对应的引脚led5EQU P1.4;第五个数码管对应的引脚led6EQU P1.5;第六个数码管对应的引脚led7EQU P1.6;第七个数码管对应的引脚led8EQU P1.7;第八个数码管对应的引脚org00h;程序开始ljmp main;跳转到主程序org030h;主程序从30H开始main:mov sp,#30h;初始化堆栈,这一条语句不能放到初始化程序里;否则程序不能正确返回,为什么?lcall rest;调用初始化程序,进行初始化lcall pro_led;调用LED显示程序ljmp main;返回开始rest:mov a,#00h;初始化程序,首先将累加器清零mov b,#00h;累加器B也请零mov p0,#0;所有P0口置低位,禁止数码管显示mov p1,#0ffh;P1口高位,LED也不显示mov p2,#255;P2口也高位,禁止数码管显示,;将立即数写成#255(后面没有H)表示十进制,;如果写成#0FFH(后面有个H)表示十六进制,;如果十六进制高位大于9,必须在前面加上0ret;子程序返回pro_led:;LED显示程序开始setb led8;熄灭第一个LED clr led1;显示后一个LED lcall delay;延时setb led1;进入第二个循环,熄灭第二个LED clr led2;显示第一个LED lcall delay;如此反复,直到所有的LED都循环过setb led2clr led3lcall delay19setb led3clr led4lcall delay setb led4clr led5lcall delaysetb led5clr led6lcall delaysetb led6clr led7lcall delaysetb led7clr led8lcall delayagain:;开始另外一种显示方式setb led1;清除第7个LED clr led8;点亮第8个LED lcall delaysetb led8;清除第7个LED clr led7;点亮第8个LED lcall delay;延时,然后如此循环setb led7clr led6lcall delaysetb led6clr led5lcall delaysetb led5clrled4lcalldelaysetb led4clrled3lcalldelaysetb led3clrled2lcalldelaysetbled2clrled1lcalldelay20ret;返回;*delay:push psw;保护PSW寄存器clr psw.3;setb psw.4;重新设置寄存器组别mov r0,#2;延时常数mov r1,#250;延时常数mov r2,#2;延时常数dl1:djnz r0,dl1;延时循环1mov r0,#250;dl2:djnz r1,dl1;延时循环2mov r0,#240;mov r1,#248;dl3:djnz r2,dl1;这是第三个循环nop;这个用来修正演示精度pop psw;恢复PSW寄存器ret;延时子程序返回end问题1若延时功能由定时器来实现,试改写程序。 问题2请改写以上程序,使之完成功能相同(结合移位指令,转移指令)。 硬件电路图如图所示21实验四交通信号灯的控制一实验目的(一)掌握MCS-51单片机内部定时器/计数器的工作原理和方式。 (二)掌握定时器/计数器的初始化编程方法。 (三)学习定时/计数器中断的处理方法。 二实验说明(一)在一条主干道上A和一条支路B相交的十字路口上,各设一组红、黄、绿信号灯,管理车辆的通行。 正常情况下,信号灯(亮)应按下述顺序和时间间隔循环操作干道AA绿A黄A红A红支路BB红B红B绿B黄12s1s12s1s(二)要求在主干道A为红灯,支路B为绿灯期间,一旦干道A上有三辆车待行,则应立即使B黄、A红,亮一秒后,则应A绿、B红,亮12秒以放行干道上的待行车辆,随后转入正常次序循环运行。 三实验内容(一)用两组红,黄,绿LED指示灯模拟干道A和支路B上的信号灯,用微动开关的按下次数模拟干道A上待行车辆数,按照下图连接好电路。 (二)选用8051单片机内部的T0做定时器,工作于方式1,以提供信号灯各组态所需的时间间隔。 用P1.0P1.5通过驱动电路74LS07输出,T1做计数器,工作于方式2,以纪录微动开关的按下次数。 当按下次数达到预定值时,则产生中断要求。 在中断服务程序中按要求放行A道上的车辆。 注按下图连接P1.01P1.12P1.23P1.34P1.45P1.568031P3.51512A74LS0734B74LS0756C74LS0798D74LS071110E74LS071312F74LS07LEDLEDLEDLEDLEDLEDVCC (三)读懂所附实验参考程序,分析其功能及结构,并加以注释。 (四)翻译成目标程序,输入并运行该程序,观察LED指示灯的转换顺序及各组态的持续时间。 (五)按动微动开关,观察信号灯的变化。 (六)改变有关参数,以便延长或缩短某组态的持续时间,并作实验记录。 四、实验报告要求 (一)程序清单(机器码、注释),画出程序流程图。 22(二)改变有关参数,以改变各组态持续时间的数据表格。 (三)讨论以下思考题: 1、具体到本实验电路和控制程序,按动微动开关,必须是三次才产生中断吗? 五、实验参考程序ORG0000H LJMP MAIN ORG2300H RRREQU0F6H GREQU0DEH YREQU0EEH RGEQU0F3H RYEQU0F5H C0U EQU0FDH MAIN:MOV SP,#60H MOV TMOD,#61H SETBEA MOV P1,#RRR LCALL DIS MGR:MOV P1,#GR LCALLD12S MYR:MOV P1,#YR LCALLDIS MRG:MOV P1,#RG MOV TH1,#C0U MOV TL1,#C0U MOV R7,#0F0H CLRPSW.5SETB ET1SETB TR1DL12:LCALLD50JBC PSW.5,ALT DJNZ R7,DL12ALT:CLR ET1CLR TR1MRY:MOV P1,#RY LCALLDIS LJMPMGR ORG2400H D50:MOV TMOD,#61H MOVTH0,#3CH23MOV TL0,#0B0H SETBTR0DD:JBC TF0,TRE AJMPDD TRE:RET DIS:MOV R6,#14H D10:ACALLD50DJNZ R6,D10RET D12S:MOV R5,#0CH D11:ACALL DISDJNZ R5,D11RET ORG001BH LJMPTINT ORG2500H TINT:CLR TR0CLR TR1MOV P1,#RY SETB PSW.5MOV R7,#01H SETBTR0RETI END24实验五A/D和D/A转换器正逆变换实验 一、实验目的: (一)了解ADC0809芯片的工作原理,DAC0832的内部功能结构和它们的使用方法。 (二)掌握A/D和D/A转换器与8051单片机的接口方法。 (三)掌握实现A/D和D/A转换的程序设计方法。 (四)了解A/D和D/A正逆变换过程,及数字电压表的原理。 二、实验内容8051启动ADC,ADC转换完成后,由EOC向8051发出中断请求。 在中断服务程序中读取数据,一方面将数据送Pl口以显示其二进制数据,一方面送DAC转换成模拟量输出。 通过一定的数据处理,在仿真器软件中相应的地址单元读取转换的3位BCD数,实现直接十进制的量程读取。 (一)请按附图所示连好电路。 (二)根据上述要求,试编写主程序(包括初始化,循环启动A/D,等待中断)。 (三)分析所附中断服务程序的结构、功能。 (四)为了更直观的读取试验结果,测量A/D转换器输入端电压Vx。 需要将A/D转换后得数据经过如下变换,特此说明:最大量程显示5.OOV,在5103S右边三位LED数字显示器上显示Vx的值(十进制)。 读数Vx经A/D转换后的数据为单字节,其值范围是0255本实验以250(FAH)为满量程,相当于5.OOV显示,该二进制数据(即A/D转换结果)包括50的个数即为Vx的伏值数,其余数中包含有5的个数就是Vx的1/10位的十进制数,最后剩下的余数乘以2后,则为Vx的1/100位的十进制数。 转换的结果放在79H-7BH中,高位字节存放显示结果的高位。 (五)输入程序井运行1.把输入电压Vx调至零,观察LED指示灯显示结果及RAM中转换的结果,测量D/A输出值是否为零?(想想调整测量方法)测AOUT输出。 2.将Vx调至5.OOV,观察各显示及D/A输出值,并调整之以满足要求。 3.在O5.OOV之间,再给Vx设置9个数,分别加以调整,测量并记录结果。 (六)附实验参考程序ADST EQW9000H DACTEQW8000H DTMEQU40H ORG0000H LJMP MAIN ORG0003H LJMPADSN ORG2300H MAINMOV SP,#60H MOV R0,#79H;显示缓冲区清零MOVR7,#06H MO:MOVR0,#lOH INCRO25DJNZ R7,MO NOPNOP MOVR1,#DTM SETBITO SETBEXO SETBEA Ml:MOV DPTR,#ADST MOV A,#00H MOVXDPTR,A;启动A/D NOPSJMP M1ORG2400H ADSNMOVDPTR,#ADST MOVXA,DPTR MOVR1,A CPLA MOVPl,A CPLA MOVDPTR,#DACT MOVXDPTR,A CJNE A,#OFAH,BG SJMPLIT BGJC LITMOV A,#OFAH LIT:ACALL CONVRETI CONV:MOVR0,#7BH MOVR0,#OOH MOVB,#32H DIVAB MOVR0,A XCHA,B MOVB,#05H DIVAB DECRO MOVR0,A MOVA,B ADDA,B DECR0MOVR0,A RET26 三、实验要求 (一)实验前做好预习,对实验的内容和步骤,要详细阅读,以便做到心中有数,保证实验能有条不紊的进行。 (二)作好指令的复习,对实验中所涉及到的指令的功能,要加深理解和掌握,同时耍学会查机器码。 (三)实验前要认真分析有关的实验参考程序。 根据本实验每一步提出的具体要求,画好记录数据表格,准备实验中填写,同时写好每条指令的机器码,准备实验中键入机器。 (四)实验报告要求:1.对所有的实验参考程序的每条指令加以注释,并写出机器码。 2.填好每一步程序执行后要检查的有关单元的内容。 3.对实验中出现的故障,做好记录。 分析故障原因,说明解决办法。 4.写出通过本实验所得的心得体会。 27实验六工业顺序控制 一、实验目的:通过工业顺序控制程序的简单编程,中断的使用,掌握一定单片机编成技巧。 二、实验预备知识:在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,像注塑机工艺过程大致按“和模注射延时开模产伸产退”顺序动作,用单片机最易实现。 二、实验内容8051的P1.OP1.6控制注塑机的七道工序,现利用控制七只发光二极管的点亮,低电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,高电平启动。 P3.3为外部故障输入模拟开关,低电平报警,P1.7为报警声音输出,设定六道工序只有一位输出,第七道工序三位有输出。 电路请参考试验指导书附录。 熟读程序,根据程序中初始化设定的内容,并利用现有的程序(如延时子程序)完成工业顺序控制程序的设计,补全第二到第七道工序的控制,并编写出中断服务程序。 程序流程图及部分程序已给出,同学只需补全所缺的程序即可。 有兴趣的同学也可重新编写程序。 但须注意,程序中的任何错误将使实验无法完成。 请同学仔细检查程序,无误后再将其编译成机器码进行试验。 有条件的同学可课前利用软件对程序进行调试,确保试验成功。 单片机管脚资源的使用请参考试验连线图。 28 六、实验步骤按图接好连线。 执行程序,把K1接到高电平,观察发光二极管情况,确定工序执行是否正常,然后把K2置为低电平,看是否有声音报警,恢复中断1,报警停,又从刚才报警时一道程序执行下去。 可用单步、单步跟踪、非全速断点、全速断点、连续执行功能调试软件,直到符合自己程序设计要求为止。 七、思考修改程序,使每道工序中有多位输出。 八、程序清单ORG0000H LJMPMAIN ORG0013H LJMPP016ORG0190H MAIN:;写出对相应SFR的初始化P012:MOVP1,#7EH:第一道工序POl0:MOVP1,#7FH ORLP3,#OOH PO1l:JNB P3.4,P011:开工吗?ORL IE,#84H ACALLPOlB;写出第27道工序。 SJMP P012ORG01E7H29;写出中断服务程序ORG0220H P019:MOVR2,#1OH ACALLDELY:延时1RET POlA:MOVR2,#06H ACALLDELY:延时2(注延时程序可自行编写。 )RET P01B:MOVR2,#3OH ACALLDELY:延时3RET ORG0253H DELY:PUSH02H DEL2:PUSH02H DEL3:PUSH02H:延时DEL4:DJNZ R2,DEL4POP02H DJNZ R2,DEL3POP02H DJNZR2,DEL2POP02H DJNZR2,DELY RET30实验七单片机串行通讯实验 一、实验目的 (一)学习串行口工作方式的设置方法及特点,学习波特率的产生及设置方法,了解串行口工作在方式l下发送数的帧格式结构。 (二)学习串行口工作在方式1和方式2下,双机通讯的通讯软件设计方法,掌握奇偶校验及查错等技术在通讯中的应用。 二、实验仪器:5103S单片开发机一台WD-5直流稳压电源一台双踪示波器一台,万利仿真器,PC机。 三、实验内容: (一)串行口工作在方式1下,用示波器观察串行口的TXD端输出数据的帧格式。 (二)用两台5103S单片机试验箱进行双工通讯。 四、实验步骤: (一)用示波器观察发送数据波形:15103S单片机接+5v电源(黑线接地,红线接+5v),检查无误后打开电源。 2.按下图连好电路。 3实验参考程序a程序地址机器码源程序2FFDH758780MOV PCON,#80H3000H759840MOV SCON,#40H3003H758920MOVTMOD,#20H3006H758D72MOVTH1,#72H3009H758B72MOVTL1,#72H300CH D28E SETBTR1300EH903050LOOP0MOVR1,#50H3011H7806MOVR0,#06H3013H E0LOOP1MOVA,R13014H F599MOV SUBF,A3016H3099FD JNBTI,$3019H C299CLR TI301BH A3INCR1301ch D8F5DJNZR0,LOOP1301EH8O EESJMP LOOPO31b流程图:4.键入上述程序机器码,计算波特率。 5.给内部RAM50H55H单元写入OlH,0lH,01H,0lH,OlH,OlH六个数。 6.执行程序。 7.调整示波器(输入幅度,稳定度,时基等),使屏幕上出现稳定波形(起码显示一帧波形)。 8.画出此波形,根据时基及观察到的数据位宽度,计算波特率与理论计算值相比较。 9.你自己再任意改变六个发送数据,改变波特率为300重复上述步骤,验证结果。 (二)双机双工通迅:事先在甲机内部RAM50H55H填入六个待发数据,格式为OXH,甲乙两台单片机串行口工作于方式2。 进行全双工通讯,每帧l1位,可编程第9位数据为奇偶检验用的补偶位。 甲机:每发送一帧信息J乙机对接收数据进行奇偶校验,若补码正确,则乙机向甲机发出OOH信息,表示接收无误;若奇偶检验错误,则乙机向甲机发出FFH信息,表示接收有错误,即要求甲机把原数再发一次,直至数据发送至接收方达正确为止。 甲机发六个数据后停止发送。 乙机:接收甲机发送的数据,并进行奇偶校验,发送相应的回答信息(OOH或FFH给甲机,当接收到第六个数据后,程序停止。 步骤如下:1.实验线路连线如图:32注输入程序时两机必须单独工作,发送数据时才能连接。 2.实验参考程序:A.流程图(学生自己画出B.参考程序:a.甲机发送主程序:ORG OOOOH LJMPMAINORG0023H LJMPINTS ORG3200H MAIN:MOV SP,#6OH MOVPCON,#8OH MOVSCON,#9OH MOVR0,#50H MOVR2,#OOH MOVRl,#7EH COO:MOVR1,#OOH DECRl CJNE R1,#78H,COO SETBEA SETBES MOVA,R0MOV C,P MOVTB8,C MOVR1,A MOVSBUF,A JNBPSW.5,$DS:SJMP DSb.甲机中断服务程序:ORG3250H INTS:JB SCON.0,LOOP1CLR SCON.1SJMP ENDT LOOP1:CLR SCON.O MOVA,SBUF33CJNEA,#OOH,LOOP2INCR0INCR2INCR1CJNE R2,#06H,LOOP2SETBPSW.5CLR ESENDT:RETI LOOP2:MOVA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论