《单片机原理》实验指导书.doc_第1页
《单片机原理》实验指导书.doc_第2页
《单片机原理》实验指导书.doc_第3页
《单片机原理》实验指导书.doc_第4页
《单片机原理》实验指导书.doc_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理实验指导书 山东华宇职业技术学院 实训中心电子教研室目 录第一章 认识单片机实验系统 .3第一部分 系统介绍 .3 第二部分 银环MCS51调试软件的使用.6 第三部分 键盘监控使用简介9第二章 软件实验15实验一 字处理程 15实验二 数据处理程序 17实验三 多分支程序 20实验四 脉冲计数(定时/计数器实验)22第三章 硬件实验26实验一 P1口实验 26*实验一 P1口实验 31实验二 P1口输入输出35实验三 P3.3输入 P1口输出38实验四 工业顺序控制 40实验五 简单I/O扩展实验一43实验六 简单I/O扩展实验一47实验七 定时器实验 49实验八 8255A可编程并行接口实验一52实验九 D/A转换实验 54实验十 A/D转换实验 60实验十一 存储器扩展实验 64附: 实验报告要求66 实验注意事项及要求67第一章 认识单片机实验系统第一部分 系统介绍一、整机介绍1、DICE型微机教学实验系统结构DICE型微机教学实验系统由电源、系统板、CPU板、可扩展的实验模板、微机串口通讯线、JTAG通讯线及通用连接线组成。二、系统特点DICE 型微机/单片机教学实验系统是启东计算机有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。系统具有以下特点:1、一体化设计,系统功能齐全,涵盖了微机/单片机教学实验课程的大部分内容。2、 实验模块化,适合计算机原理与接口教学。列举20多个软硬件实验程序,满足大纲要求。3、独立性强,自带CPU、键盘、LED显示,可独立运行;自带EPROM的读取、编程、比较和查空功能。4、 灵活的电源接口:配有PC机电源插座,可由PC提供电源。另外还配有外接开关电源,提供所需的+5V,12V,其输入为220V的交流电。5、 系统的联机运行模式:配有系统调试软件,系统调试软件分DOS版和WINDOWS版两种,均为中文多窗口界面。调试程序时可以同时打开寄存器窗口、内存窗口、变量窗口、反汇编窗口等等,极大地方便了用户的程序调试。该软件集源程序编辑、编译、链接、调试于一体,每项功能均为中文下拉菜单,简明易学。6、 系统的单机运行模式:系统在没有与计算机连接的情况下,自动运行在单机模式,在此模式下,用户可通过键盘输入运行程序(机器码)和操作指令,同时将输入信息及操作的结果在LED数码管上显示出来。7、 系统功能齐全,可扩展性强。本实验系统不仅完全能满足教学大纲规定的基本接口芯片实验,其灵活性和可扩展性(数据总线、地址总线、控制总线为用户开放)亦能轻松满足其课程设计、毕业设计使用等。三、实验系统资源分配1.CPU资源100%出借(栈顶资源共享)2.程序/数据资源分配:(1)仿真空间100%出借,目标系统程序与数据寻址能力均达64KB;(2)实验系统内部存贮器空间分配如下:空间地址器件选用用途与说明000H-0FFFH27512/27256监控管理空间000H-7FFFH62256(32KB)仿真实验空间8000H-0FEFH扩充空间用户自选空间E000H-0FDFFHTV空间用户自选空间(3)系统I/O地址具体分配如下:口地址扩展名称用途FF20H8155控制口写方式字FF21H8155A口字位口FF22H8155B口字形口FF23H8155C口键入口FF28H8155A口EP总线FF29H8155B口EP地址FF2AH8155C口EP控制FF2BH8255控制口写方式字四、系统安装使用1.插座定义CZ1 电源/通信插座引脚CZ2 打印机插座CZ3 通用键盘显示板CZ4 仿真接口TV/CRT 接口2.通用电路简介(1)译码电路:实验系统上配有74LS138一片,译码输出地址分别为8000H、9000H、A000H、B000H、C000H、D000H、E000H和F000H,供实验使用。(2)LED显示:实验系统上装有16只发光二极管及相应驱动电路。(3)逻辑电平开关电路:实验台上有8只开关K1-K8与之相对应的K1-K8引线线孔为逻辑电平输出端。开关向上拔相应插孔输出高电平“1”,向下拔相应插孔输出低电平“0”。(4)单脉冲电路:由74LS00和74LS04组成,两个引线插孔为正负单脉冲输出端。附近按钮AN为单脉冲,每按一次产生一个单脉冲。(5)计数器电路,该电路由1片74LS393组成。实验系统上为U30 T0-T7为分频输出插孔,另一个插孔T为脉冲输入端。该计数器在上电时由RESET信号清零。当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为8.0MHZ、4.0MHZ、2.0MHZ、1.0MHZ、500KHZ、250KHZ、125KHZ、62500HZ。(6)脉冲发生器电路:实验台上提供一8MHZ的脉冲源,为脉冲的输出端。3.实验系统使用(1)对于598H+“三合一”实验系统的51部分使用,先确认当前CPU卡为51CPU卡,然后把开关KB1-KB5拨向51.96一侧,通信选择开关K86拨向51位置,至于96/88部分使用,只需更换相应CPU卡,并把KB1-KB6拨向相应的位置。(2)在做硬件接口实验时,凡该单元留有八芯数据总线(D0-D7)插座的,须把该插座与系统数据总线接口BUS相连第二部分 银环MCS51调试软件的使用一、 Win51仿真软件使用入门。1.Win51仿真软件启动和联机双击“银环图标”,即可运行Win51仿真软件,屏幕显示Win51仿真软件的源文件窗口,中间显示版本信息,然后单击“OK”,底边状态栏由“脱机就绪”变成“联机就绪”,说明联机成功,否则对话框提示:“单片机未连上”,此时单击“确定”,实验系统和pc机处于脱机状态,然后用户根据连接硬件实际情况来设定COM1或COM2,设定方法如下:依次单击菜单栏:“O设置、p通讯口设定、COM1或COM2”确定,状态设定后,单击关闭按钮,退出Win51仿真软件环境,重新启动Win51仿真软件(重复以上操作)。该调试软件可以在脱机状态下对用户软件进行模拟调试。2.联机失败原因及解决办法(1)实验系统与pc机没有连接;(2)实验系统电源没有打开;(3)串口实际位置与软件设置不一致;(4)软件有病毒;(5)实验系统或pc机处于非正常状态。二、Win51仿真软件(一)主窗口顶部为菜单栏和工具栏,提供调试全部命令和功能中间部分为工作窗口区,提供软件调试、寄存器、标志位、存储器、堆栈等窗口。底部为状态栏,提示仿真软件所执行的操作。(二)菜单栏和工具栏命令简介工具栏使用:只移动鼠标,指向工具栏中选定的图标,即会提示该图标所执行的命令。1. F文件 F3打开文件单击菜单栏“F文件”或工具栏“打开”图标,弹出“打开文件”的对话框,然后单击“浏览”选择要装入的源文件,单击“确定”即可装入源文件。 F2存盘单击菜单栏“F2文件”或工具栏“保存图标”,即可原名存盘。 a换名存盘 N建立新文件分别单击“F文件”、“建立新文件”即可创建新文件,再选择换名存盘即可。 Q退出ALT+X依次单击“文件”、“退出”或单击“关闭按钮”即可退出Win51仿真软件调试环境。2.E编辑菜单栏菜单栏工具栏功能u恢复 CTRL+E恢复本行修改前的状态t裁剪 CTRL+X裁剪图标删除程序中选定的正文c复制 CTRL+c拷贝图标保留选定的正文,同时将它拷贝在裁剪板中p粘贴 CTRL+V粘贴图标将裁剪板中内容复制在光标处3.源文件编译打开源文件,依次单击“c编译”、“c编译F9”或编译图标,待中间出现编译通过信息窗后,按“确定”、“确定”,即完成源文件自动编译、装载目标代码功能,如编译出错,会提示错误信息,待修改源文件正确后,重新编译即可。4.D调试 打开调试窗口,依次单击“D调试”/“D反汇调试窗口”再单击“W切换反汇编”,反复单击可实现源程序与反汇编调试切换。 按依次单击“D调试”、“e复位”或工具栏“复位图标”,中止当前调试过程,将cpu复位。如果是自动单步或连续运行,则单击“停止图标”或按实验系统RESET复位键,中止程序运行。 R运行依次单击“D”调试、“R运行”、或“运行图标”程序则从当前pc指针起连续运行。 G执行到光标处依次单击“D调试”、“G执行到光标处”程序从当前pc指针一直执行到光标所在位置。 T跟踪执行依次单击“D调试”、“T跟踪执行”或“跟踪执行”图标,即可一步一步执行用户指令,碰到调用子程序,则进入子程序执行。 S单步执行依次单击“D调试”、“S单步执行”或“单步执行”图标,即可执行“宏单步”操作。 b设置断点移动光标,选定断点所在语句,依次单击“D调试”、“b设置断点”或“设置断点”图标即可。 c清除断点依次单击“D调试”、“c清除断点”或“取消断点”图标,即可清除所有断点。 v查找断点依次单击“D调试”、“V查找断点”,即可查找用户已设置断点个数、地址。 A自动单步执行依次单击“D调试”、“A自动单步执行”或“自动单步执行”图标,即可自动单步运行程序。5.M代码文件 单击“M代码文件”,弹出下拉菜单,可选择不同格式的代码文件装载或存盘。6.O设置 M设置仿真器状态依次单击“O设置”、“M设置仿真器状态”,根据弹出的对话框,可选择仿真cpu的类型和存储器所在位置(在仿真器中还是在用户板上)。 D数据类型选择依次单击“O设置”,D数据类型选择,弹出对话框,可选择要观察的数据类型有:ROM、RAM、CPU内存、BIT等。 P通讯口设定依次单击“O设置”、“P通讯口设定”,选择与仿真器连机的通讯口(COM1、COM2、COM3等)。第三部分 键盘监控使用简介一、键盘简介5103S实验系统自带有一个48键盘,其外形为注塑仿PC机键,键功能丰富;显示部分有6个LED显示,可使用户在脱离PC机的时候调试相当方便,其操作性能、可靠性远远优于国内同类产品。同时本厂系列产品的键盘布局完全一样,这样用户使时不致于换一种机型,再熟悉一套键盘,因此具有相当的连贯性和通用性。1. 键盘功能简介(1)在32个按键中,左边16个为数字键0-F,用于输入地址,数据或机器码。当前工作寄存器及PC值DPTR等也用数字表示,其名在数字键右下角,详见下表:名称R0R1R2R3R4R5R6R7DPLDPHABPSWSPPCLPCH代号0123456789ABCDEF(2)右边十六个功能键,这16个功能键作用分别是:TV/ME 进入CRT显示状态/程序存储器读写RG/FS 片内RAM、寄存器(读写)/偏移量计算F1/LS 第一标志键/读上一个字节F2/NX 第二标志键/读下一个字节EG/DL EPROM写入键/删除一个字节RW/IS 外部数据存贮器读写/插入一个字节EV/UN 固化区内容移入目标RAM/保留EC/EP EPROM查空/EPROM内容与RAM内容比较PRT TV状态下打印COMP 程序/数据块比较MOVE 程序/数据块移动DAR TV 状态下反汇编EX/FV 全速运行/全速断点STEP 单步MON 返回监控SCAL EPROM低速写入/断点执行RESET 系统硬件复位二、键盘监控程序简介1.键盘监控工作状态用户可以通过32个键向本系统发出各种操作命令,大多数键有2个以上功能,而没有上下档键,实验系统到底进行什么操作,不仅与按什么键有关,也与当前实验系统所处的工作状态有关。“工作状态”在操作中是一个重要的概念,下面作有关介绍。(1) 待命状态0在本状态时,显示器的最左键显示一个闪动的“P.”提示符,表示实验系统处于初始化状态,等待用户操作:1. 在实验系统中接通电源后,自动复位时处于待命状态0;2. 按RESET复位键后,使本机处于待命状态0;3. 在大多数情况下,按MON键,也可以使本机进入待命状态0。待命状态0时,可以进行的操作有: 按任一数字键,进入待命状态1,显示该键入数; 按F1标志键,进入仿真2(即仿EPROM),PC值指向外部程序空间,LED显示闪动的“H”; 按F2标志键,进入仿真1(即仿RAM),PC值指向内部用户程序空间,LED显示闪动的“P” 按EC键,检查EPROM内容是否是全FFH; 按EX键,从000H开始执行用户程序; 按STEP键,从000H开始单步执行用户程序; 按TV键,进入TV屏幕态,显示器全暗。(2) 待命状态1在本状态下,显示器显示到一到四位数,数字之间没有间隔。若显示四位数字,则第一位会不断闪动,在待命状态0按数字键,本机便进入待命状态1.在待命状态1时,可进入的操作有:1. 按ME键,进入存贮器的读写状态;2. 按RG键,进入寄存器读写、特殊功能寄存器检查、8032内部RAM区读写状态;3. 按F1键,进入标志态,出现闪动的“”表示首址;4. 按F2键,进入标志态,出现闪动的“”表示末址;5. 按RW键,进入外部数据存贮器/口读写操作、片内RAM 80H-FFH读写状态;6. 按EX键,从显示地址开始连续执行用户程序;7. 按STEP键,从显示地址开始单步执行用户程序;8. 按MON键,返回待命状态0.(3) 存贮器读写状态 在状态1时按ME键,或当执行用户程序时遇到断点、单步执行、EPROM编程写入出错等都会使实验系统进入该状态,本状态可进行如下操作:1. 按FS键,进入相对偏移量计算;2. 按DL键,进行删除操作,按键一次删除一字节;3. 按IS键,进行插入操作,按键一次插入一字节;4. 按LS键,进入上一字节读写操作;5. 按NX键,进入下一字节读写操作;6. 按STEP键,以当前显示器内容作为地址,按键一次执行一条指令,即单步执行用户程序;7. 按EX键,以当前显示器内容作为起始地址,连续执行用户程序(若退出,应按RESET复位按钮);8. 按MON键,返回待命状态0(按EX键后,该命令无效)。(3)寄存器读写状态 即在待命状态1,按RG键,可进行如下操作: 键入1位地址,进入当前工作寄存器读写/检查状态;1. 显示代号0-7,读写当前工作寄存器R0-R7;2. 显示代号8或9,检查数据指针DPTR,8显示DPL,9显示DPH;3. 显示代号A,检查累加器A的内容;4. 显示代号B,检查B寄存器的内容;5. 显示代号C ,检查程序状态字PSW的内容;6. 显示代号D,检查堆栈指针SP的内容,开机复位后SP为07H;7. 显示代号E或F,检查当前PC值,E显示PCL,F显示PCH; 键入2位地址,进入以下操作:1. 片内RAM区的检查、修改;2. 特殊功能寄存器的检查、修改;3. 按LS键,读写上一字节内容;4. 按NX键,读写下一字节内容;5. 按MON键,返回待命状态0。(4) 外部数据存贮器读写状态即在待命状态1,按RW键,可进入如下操作:1. 键入2位地址读写8032片内RAM 80H-FFH内容。2. 键入4位地址,外部数据存贮器读写,I/O读写。3. 按LS键,读写上一字节内容。4. 按NX键,读写下一字节内容。5. 按MON键,返回待命状态0.(5) 标志态F(i)态 在待命状态1,即按数字键后,再按F1键,本机便进入标志态,标志态功能特别强。F1键功能:装入源程序首址,即把当前显示器内容作为源程序末址,并显示闪动“”标志符。F2键功能:装入源程序末址,即把当前显示器内容作为源程序末址,并显示闪动“”标志符。在“”状态下,在键入的数,便是目标首址。F标志态可进入的操作:1. 按MOVE键,进入程序/数据块移动,其传送方向由初态决定。a. 在“P.”态,实验系统内部000H-FEFFH空间内部相互传送。b. 在“P.”态,实验系统内部数据/程序块传向外部用户数据存贮空间。 按COMP键,进入程序比较,操作步骤如下:源首址,F1,源末址,F2,目标首址,COMP 按EG键,进入EPROM高速固化,操作步骤如下:源首址,F1,源末址,F2,目标首址,EG 按EV键,把固化区程序搬到程序区,其目标有两个:a. 在“P.”态,固化内容传向本系统内000H-FEFFH;b. 在“P.”态,固化区内容传向用户系统数据区000H-FFFFH空间。 按EP键,实验系统内部程序/数据或用户系统程序/数据区与固化区比较,其方向确定同COMP键,操作步骤如下:源首址,F1,源末址,F2,目标首址,EC 按DAR键,进入反汇编显示,源地址有2个,操作步骤如下:源首址,F1,源末址,F2,浮动地址,DAR(浮动地址可缺省)a“P.”态,机内0000H-FFFFH,反汇编b.“H”态,进入反汇编打印源首址,F1,源末址,F2,浮动地址,PRT(浮动地址可缺省)第二章 软件实验实验一:字处理程序一、实验目的掌握汇编语言设计和调试方法,熟悉键盘操作。二、实验内容1.把2000H20FFH的内容清零。2.把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。3.把2000H.2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。三、实验程序框图1略(要求学生自己完成)2略(要求学生自己完成)3略(要求学生自己完成)四、实验步骤1.用连续或单步方式运行程序,检查200020FF中执行程序前后的内容变化。2.用连续或单步方式运行程序,检查2000H2002H中内容变化情况。3.单步或用断点方式运行程序,检查2002H内容变化情况。五、程序清单1清零 ORG 0640HSE01:MOV R0,#00H MOV DPTR,#2000HLOO1:CLR A MOVX DPTR,A INC DPTR INC R0 CJNE R0,#00H,LOO1LOOP:SJMP LOOP2.拆字 ORG 0660HSE02:MOV DPTR,#2000H MOVX A,DPTR MOV B,A SWAP A ANL A,#0FH INC DPTR MOVX DPTR,A INC DPTR MOV A,B ANL A,#0FH MOVX DPTR,ALOOP:SJMP LOOP3.拼字 ORG 0680HSE03:MOV DPTR,#2000H MOVX A,DPTR ANL A,#0FH SWAP A MOV B,A INC DPTR MOVX A,DPTR ANL A,#0FH ORL A,B INC DPTR MOVX DPTR,ALOOP:SJMP LOOP实验二:数据处理程序一实验目的熟悉指令系统,掌握程序设计方法。二实验内容1把R2.R3源RAM区首址内的R6.R7字节数据传送到R4.R5目的RAM区。2编写并调试一个排序子程序,其功能为用冒泡发将内容RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。3在2000H200FH的N个单元中填入零,运行本程序后检查2100H中是否为N。三实验程序框图12. 3. 略(要求学生自己完成)四实验步骤1在R2.R3中输入源首址(如0000H),R4.R5中输入目的地址(如2000H),R6.R7中输入字节数(如1FFFH),运行程序,检查0000H1FFFH中内容是否和2000H3FFFH中内容完全一致。2把8032中RAM 50H5AH中放入不等的数据,运行本实验程序后检查505AH中内容是否按从小到大排列。3在2000H200FH的N个单元中填入零,运行本程序后检查2100H中是否是几个单元数。五程序清单1 ORG 07BOHSE22:MOV DPL,R3 MOV DPH,R2 MOVX A,DPTR MOV DPL,R5 MOV DPH,R4MOVX DPTR,A CJNE R3,#0FFH,LO42 INC R2LO42: INC R3 CJNE R5,#0FFH,LO43 INC R4LO43: INC R5 CJNE R7,#00H,LO44 CJNE R6,#00H,LO45LOOP: SJMP LOOP NOPLO44:DEC R7 SJMP SE22LO45:DEC R7 DEC R6 SJMP SE222. ORG 09B0HQUE: MOV R3,#50HQUE1: MOV A,R3 MOV R0,A MOV R7,#0AH CLR 00H MOV A,R0QL2: INC R0 MOV R2,A CLR C MOV 22H,#R0 CJNE A,22H,QL3 SETB CQL3: MOV A,R2 JC QL1 SETB 00H XCH A,R0 DEC R0 XCH A,R0 INC R0QL1:MOV A,R0DJNZ R7,QL2JB 00H,QUE1LOOP: SJMP LOOP3. ORG 0AA0HL5800: MOV R0,#10H MOV R1,#00H MOV DPTR,#2000HL5811: MOVX A,DPTR CJNE A,#00H,L5816 INC R1L5816: INC DPTR DJNZ R0,L5811 MOV DPTR,#2100H MOV A,R1 MOVX DPTR,AL581E: SJMP L581E练习题:一.编制计算符号函数Y=SGN(X)的程序。设自变量X的值存入内RAM的30H单元,计算的结果Y存入内RAM40H的单元。二将内部RAM30H开始的连续的16个单元的数由小到大进行排序。实验三:多分支程序一、 实验目的掌握汇编语言的编程。二、 实验设备:DICE5103HD型单片机实验箱、8032CPU模块三、实验内容编写程序,根据送入的数据转移运行。四、 实验程序框图开始(20H)送AA+散转首址0字循环1字循环2字循环3字循环五、实验步骤在20H中分次送入00.01.02.03,每次运行程序后,观察数码管上数字循环情况。六、参考程序 ORG 0A10HMEMS:MOV A,20H MOV DPTR,#KKKK RL A JMP A+DPTRKKKK:AJMP MEMSP0 AJMP MEMSP1 AJMP MEMSP2 SJMP MEMSP3MEMSP0:MOV 20H,#0C0H LJMP SOX0MEMSP1:MOV 20H,#0F9H LJMP SOX0MEMSP2:MOV 20H,#0A4H LJMP SOX0MEMSP3:MOV 20H,#0B0H LJMP SOX0 ORG 0DA0HSOX0:MOV A,20H MOV R0,#22H MOV R1,#21H MOVX R0,A MOV A,#01HSOX1:MOVX R1,A MOV R2,#20H LCALL DELY RL A SJMP SOX1实验四:脉冲计数(定时/计数器实验)一、实验目的熟悉8032定时/计数功能,掌握初始化编程方法。二、实验设备:DICE5103HD型单片机实验箱、8032CPU模块三、实验内容把定时器0外部输入的脉冲进行计数,并送显示器显示。四、实验程序框图开始堆桟、定时/计数初始化开定时器取出TL0.TH0内容转换显示0送R4.R5.R616送位计数器R70送CYR2.R3右移一位2*(R4R5R6)+CY送R4R5R6(7-1)送R7(R7)=0?结束NY二转十进制子程序五、实验接线图六、实验步骤 用插针把8MHz插孔和T插孔连线,P3.4依次接T0T7或单步脉冲输出孔,执行程序,观察数码管上计数脉冲的速度及个数。七、参考程序 ORG 06E0HSE15:MOV SP,#53H MOV TMOD,#05H MOV TH0,#00H MOV TL0,#00H SETB TR0LO29:MOV R2,TH0 MOV R3,TL0 LCALL R0,#79H MOV R0,#79H MOV A,R6 LCALL PTDS MOV A,R5 LCALL PTDS MOV A,R4 LCALL PTDS LCALL SSEE SJMP LO29ZOY0:CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,#10HLO30:CLR C MOV A,R3 RLC A MOV R3,A MOV A,R2 RLC A MOV R2,A MOV A,R6 ADDC A,R6 DA A MOV R6,A MOV A,R5 ADDC A,R5 DA A MOV R5,A MOV A,R4 ADDC A,R4 DA A MOV R4,A DJNZ R7,LO30 RET ORG 0061HPTDS: MOV R1,A ACALL PTDS1 MOV A,R1 SWAP APTDS1:ANL A,#0FH MOV R0,A INC R0 RET ORG 0D50HSSEE:SETB RS1 MOV R5,#05HSSE2:MOV 30H,#20H MOV 31H,#7EH MOV R7,#06HSSE1:MOV R1,#21H MOV A,30H MOVX R1,A MOV R0,31H MOVX R0,A MOV DPTR,#DDFF MOVC A,A+DPTR MOV R1,#22H MOVX R1,A MOV A,30H RR A MOV 30H,A DEC 31H MOV A,#0FFH MOVX R1,A DJNZ R7,SSE1 DJNZ R5,SSE2 CLR RS1 RETDDFF:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH 第三章 硬件实验实验一 P1口实验一、实验目的:1学习P1口的使用方法。2学习延时子程序的编写和使用。3. 学习汇编语言编程方法与调试技巧。二、实验设备:DICE5103HD型单片机实验箱、8032CPU模块三、实验内容:1P1口亮灯实验:P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2. P1口转弯灯实验: P1.0开关接5V时,右转弯灯闪亮,P1.1开关接5V时,左移弯灯闪亮。 P1.0、 P1.1开关同时接5V或接地时,转弯灯均不闪亮。 四、实验原理: (1) P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。 (2)本实验中延时子程序采用指令循环来实现。五、实验原理图P1口亮灯实验 P1口转弯灯实验六、实验步骤:1. 执行程序1(T1_1.ASM)时:P1.0P1.7接发光二极管L1L8。2. P1.0接K1,P1.1接K2,P1.4P1.7接L1 L5 L9 L13连续进行本程序,应看到转弯灯正确闪亮,在用单步方式调试本程序时需修改延时子程序,以便观察。七、程序框图:开 始P1口初始化点亮1位发光二极管左移一位循 环P1口亮灯实验开 始关 灯只是P1.0高吗?标志位为1吗?延时,置标志位关 灯只是P2.0高吗?开左灯关右灯延时,置标志位延时,清标志位延时,清标志位关 灯标志位为1吗?开右灯关左灯P1口转弯灯实验八、参考程序:(一)P1口亮灯实验 ORG 0790HSE18: MOV P1,#0FFHLO34: MOV A,#0FEHLO33: MOV P1,A LCALL SE19 RL A SJMP LO33 ORG 07A0HSE19: MOV R6,#0A0HLO36: MOV R7,#0FFHLO35: DJNZ R7,LO35 DJNZ R6,LO36 RET(二) P1口转弯灯实验ORG 0C30HPX00: MOV P1,#0FFHPX03: MOV A,P1 MOV B,A ANL A,#03H CJNE A,#01H,PX01 JB 00H,PX04 CLR P1.4 CLR P1.5 SETB P1.6 SETB P1.7 MOV R2,#20H LCALL DELY SETB 00H LJMP PX03PX04: SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 MOV R2,#20H LCALL DELAY CLR 00H AJMP PX03PX01: CJNE A,#02H,PX02 JB 01H,PX05 SETB P1.4 SETB P1.5 CLR P1.6 CLR P1.7 MOV R2,#20H LCALL DELY SETB 01H LJMP PX03PX05: SETB P1.4SETB P1.5SETB P1.6SETB P1.7MOV R2,#20HLCALL DELYCLR 01HLJMP PX03PX02: SETB P1.4 SETB P1.5 SETB P1.6 SETB P1.7 LJMP PX03 ORG 0213HDELY: PUSH 02HDEL2: PUSH 02HDEL3: PUSH 02HDEL4: DJNZ R2,DEL4 POP 02H DJNZ R2,DEL3 POP 02H DJNZ R2,DEL2 POP 02H DJNZ R2,DELY RET*实验一 P1口实验一、实验目的:1学习P1口的使用方法。2学习延时子程序的编写和使用。二、实验设备:DICE5103HD型单片机实验箱、8032CPU模块三、实验内容:1P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。2P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。四、实验原理: P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。可以用第二个实验做一下实验。先按要求编好程序并调试成功后,可将P1口锁存器中置“0”,此时将P1做输入口,会有什么结果。再来看一下延时程序的实现。现常用的有两种方法,一是用定时器中断来实现,一是用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。若晶振为6.144MHZ,则一个机器周期为126.144us即10.512us。现要写一个延时0.1s的程序,可大致写出如下: MOV R7,#X (1) DEL1:MOV R6,#200 (2) DEL2:DJNZ R6,DEL2 (3) DJNZ R7,DEL1 (4)上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要10.256us,现求出X值:10.256+X(10.256+20010.256+10.256)=0.110指令(1) 指令(2) 指令(3) 指令(4)所需时间 所需时间 所需时间 所需时间X=(0.110-10.256)/(10.256+20010.256+10.256)=127D=7FH经计算得X=127。代入上式可知实际延时时间约为0.100215s,已经很精确了。五、实验原理图: P1口输出实验P1口输入实验六、实验步骤:执行程序1时:P1.0P1.7接发光二极管L1L8。执行程序2时:P1.0P1.7接平推开关K1K8;74LS273的O0O7接发光二极管L1L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSOCS7相应的片选地址请查看第一部分系统资源,以后不赘述)。七、程序框图: 循环点亮发光二极管通过发光二极管将P1口的状态显示八、参考程序:1、循环点亮发光二极管 ORG 4100HSTART: MOV A,#0FEHLOOP: RL A ; 左移一位,点亮下一个发光二极管 MOV P1,A LCALL DELAY;延时 0.1秒 JMP LOOPDELAY: MOV R1,#127 ; 延时0.1秒DEL1: MOV R2,#200DEL2: DJNZ R2,DEL2 DJNZ R1,DEL1 RET END2、通过发光二极管将P1口的状态显示 ORG 4100HSTART: MOV P1,#0FFH ;复位P1口为输入状态 MOV A,P1;读P1口的状态值入累加器A MOV DPTR,#0CFA0H ;将输出口地址赋给地址指针DPTR MOVX DPTR,A ;将累加器A的值赋给DPTR指向的地址 JMP START ;继续循环监测端口P1的状态 END实验二 P1口实验(二) 一、实验目的:1学习P1口既做输入又做为输出的使用方法。2学习数据输入、输出程序的设计方法。二、实验设备:DICE5103HD型单片机实验箱、8032CPU模块三、实验原理:P1口的使用方法这里不讲了。有兴趣者不妨将实验例程中的“SETB P1.0, SETB P1.1”中的“SETB”改为“CLR”看看会有什么结果。另外,例程中给出了一种N路转移的常用设计方法,该方法利用了JMP A+DPTR的计算功能,实现转移。该方法的优点是设计简单,转移表短,但转移表大小加上各个

温馨提示

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

评论

0/150

提交评论