1、MCS-51单片机实验指导书(测控及自动化专业)第一章 实验设备及仿真环境1.1 实验设备简介:本实验所用到的主要设备是DVCC-5286JH单片机仿真实验系统,它由仿真技术及模块化实验电路有机结合而成,可以支持MCS-51、MCS-96系列单片机原理与应用及8086/8088十六微机原理和接口技术等课程的教学实验。通过拨码开关的转换,可以很方便的进行各个仿真实验系统的转换。1.2 系统MCS-51仿真系统的工作模式及组成1、工作模式:(仿真工作模式)单片机系统一般由CPU、程序存储区、外部数据存储区、其他外围I/O接口等部分组成,我们应用的实验系统按仿真模式划分为:内程序内数据模式和内程序外
2、数据两种模式。2、系统组成:工作模式不同,其组成不同: 内程序内数据模式系统组成:CPU及其总线扩展区、程序存储区、外部数据存储区、8155接口(键盘和六位数码管显示器)、8255接口(EPROM 烧录及打印机)、通用外围电路。 内程序外数据模式系统组成:CPU及其总线扩展区、程序存储区、74LS138扩展的外围接口电路地址模块及通用外围电路。3、各部分地址范围通用外围电路: 程序存储区地址范围:0000h0FEFFh 外部数据存储区地址范围:0000h0FEFFh(内程序内数据模式) 74LS138译码地址及连线图:(内程序外数据模式,外部数据区无效)地址:Y0:80008FFFhY1:90
3、009FFFhY2:A000AFFFhY3:B000BFFFhY4:C000CFFFhY5:D000DFFFhY6:E000EFFFhY7:F000FFFFh图11 8155、8255接口地址及连线图:(系统内部给定,占用存储区一页地址,内程序内数据工作模式有效,字形口通过反相驱动器接共阴极数码管)8155控制口 FF20h 8255控制口 FF2Bh8155A口(字位口) FF21h 8255A口 FF28h8155B口(字型口) FF22h 8255B口 FF29h8155C口(键扫口) FF23h 8255C口 FF2Ah图12 逻辑电平开关电路图13 单脉冲发生电路图14 发光二极管显
4、示电路图15 时钟电路图16 继电器及驱动电路图17 直流电机及驱动电路图18 步进电机及驱动电路图19 串行显示电路图1101.4 系统硬件连线图1.3 仿真环境DVCC微机实验系统软件是在windows界面上运行的综合调试软件,采用窗口提示直接明了,对于习惯在windows界面上工作的用户运用起来相当方便。在桌面上点击DVCC8051快捷方式图标,即可运行本软件。系统菜单分为三类:文件编辑部分菜单、调试部分菜单、辅助部分菜单。系统工具栏分为三类:编辑工具栏、调试工具栏、实验指南工具栏下图为本软件的主界面:下面就各菜单功能介绍如下:1、 文件、编辑、查找菜单 我们所书写的完成某种特定功能的汇
5、编语言指令,是以文件的方式被执行操作的,这一文件被称为源文件,它以ASM为文件的后缀,并且在连接时还要产生几个其他的相关文件,因此本软件提供了文件、编辑、查找等菜单项,它们位于文件编辑部分菜单栏,它们的使用与其他软件基本一致。特殊说明:要求汇编源程序的路径不得含有汉字,文件名必须是英文或数字组成不得含有特殊字符,而且英文和数字的字数不得超过八个。在编辑工具栏对应有新建和打开两个快捷图标,新建时,系统打开一个文件名为新文件0的源文件编辑窗口,必须按照以上的规定,打开文件菜单将其另存为一个符合上述规定的文件名,并以ASM为文件的后缀;打开文件时一定要确认文件存储路径和文件名要符合上述规定,否则要将
6、文件名改成符合规定的路径和文件名;编辑文件时,助记符使用的字母和符号用在英文输入方式下输入。2、编译菜单 如下图示: 编译菜单可对当前正在编辑窗口的文档进行编译连接与装载(系统成功联机后),并出现相应的编译、连接的信息窗口,根据信息窗口提示的内容进行源程序检查与修改。编译编译当前文本,生成后缀为.OBJ的中间文本。在编译时,如果你所编辑的文件符合汇编语言的语法规则,系统在弹出的MESSAGE对话框中提示没有发现错误,否则提示相应的错误信息。必须改正语法错误并编译通过后才能进行下一步的操作。编译操作对应调试工具栏中的编译快捷方式图标。说明:编译通过的源文件并不能保证其执行结果的正确,只能说明其符
7、合汇编语言语法规则。编译连接编译并连接当前文本生成.ABS文件。编译连接是编译和连接的命令集合。其作用是:将所编辑文件中的指令助记符编译成机器码,并形成一个下传到下位机实验系统中的特定文件,这个文件是以ABS为扩展名的文件。说明:进行这一操作时,必须要保证源文件编译通过,否则系统会提示相关的错误信息。编译连接传送将编译连接完成的文件通过串行通讯方式下传至实验系统。对应调试工具栏中的调试快捷方式图标。说明:进行这一操作时,必须要保证源文件编译连接通过,否则系统会提示相关的错误信息。3、选项菜单 如下图示: 通过本菜单可选择各工具栏状态,同时系统设置选项可选择四种仿真工作模式,在选项下拉菜单中选择
8、系统设置选项,下图为仿真状态选项窗口:其中:仿真实验用到如下两种仿真工作模式。内程序,内数据:指程序和数据均在DVCC实验系统中。内程序,外数据:指程序在实验系统中,数据在用户系统中。说明:系统仿真工作模式在编辑窗口的最下面一行有明确的显示,如果在运行时发现异常,一定要仔细检查系统的仿真工作模式,因为仿真工作模式与下位机的系统组成密切相关。 4、动态调试菜单 如下图示:编辑完成的试验程序在编译、连接后就可进行调试,动态调试菜单包含调试窗口的一些常用命令,下面就各选项叙述如下:联接DVCC系统将随机提供的通信电缆线一头D型9芯插头插入DVCC实验系统J2插座,另一头插入PC机串行口COM1或CO
9、M2任选。接通DVCC实验系统电源,在DVCC实验系统显示“P.”的状态下,按PCDBG键,显示器全暗。上位机菜单上选择“联接DVCC系统“菜单项。联机正常,屏幕上出现:寄存器窗口、反汇编窗口。如出现“联机失败”提示,则表明DVCC实验系统和PC机连接不上,可检查电源线连接及PC机端口等是否有问题,拨码开关位置是否正确等。设当前行为断点选择该命令后,将当前光标所在行设为断点。设当前行为PC值执行该命令后,系统自动将当前光标所在地之设定为新的PC地址,蓝色光条自动跳到该处。执行到光标处从当前PC值开始,执行到当前光标所在的目标地址(对反汇编窗和编译连接传送成功的编辑窗口有效)。清除断点选择该命令
10、后,取消你所设置的断点地址,反汇编窗口红色光标条消失,表示原设置断点已取消。单步执行(tacein)单步执行一条程序,遇到子程序调用则步入子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。连续单步(in)选择该命令后,连续自动单步运行程序,遇到子程序调用则步入子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。单步执行(taceout)单步执行一条程序,遇到子程序调用则跳过子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。连续单步(out)选择该命令后,连续自动单步运行程序,遇到子程序调用则跳过子程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。连续执行从当前PC值开始连续
11、运行程序(对反汇编窗口和编译连接传送成功的编辑窗口有效)。说明:连续运行时会出现如下图示提示框表明程序已经死循环,按提示进行操作后,点击OK按钮恢复操作。5、窗口菜单 如下图示:选择该窗口的各不同选项可显示不同信息窗口窗口信息是仿真下位机的状态信息,可以通过不同的窗口信息来观察指令的运行结果是否正确,同时还提供了示波器、定时器初值计算、串口波特率计算等工具。 显示反汇编窗口 如下图示: 显示内部数据窗口 如下图示: 显示外部数据窗口 如下图示: 显示寄存器窗口 如下图示:以上四个窗口是调试过程中经常被用到的工具窗口,我们可以通过这几个窗口的数据信息,判断指令的运行结果是否正确。1.4 实验步骤
12、及各部分的具体操作1、 打开编译软件,建立汇编语言文件在DVCC8051系统中,汇编语言指令的执行是以“源文件”形式进行的,在一个“源文件”中,含有多条汇编语言指令,执行并完成某种特定的功能。因此,我们首先必须建立一个“指定名字”的源文件,具体操作如下:打开编译软件DVCC8051,点击“新建”图标,会弹出一个文件名为“新文件0”的汇编语言编辑窗体,首先点击“文件”菜单,选择“另存为”选项,这时会弹出一个“另存为”窗口,此时将我们要编辑的汇编语言“源文件”存储在E:新建一个以学号为名的文件夹内,源文件的文件名有要求:英文字母或数字而且不允许超过8各字符,默认保存类型扩展名为.ASM。2、 汇编
13、语言源文件及指令的编辑源文件的编辑:汇编语言源文件的编辑必须遵守固定的格式进行,源文件是由指令组成的,指令又分为伪指令和操作指令。源文件中必须要有的两条伪指令为:“ORG” 指令和“END”指令。“ORG 地址”标示以下指令在程序存储区的起始地址,“END”标示以上的多条指令结束,需要特别注意的是END指令录入后不要回车。指令的编辑:在源文件的编辑窗体内进行汇编语言指令的编辑,指令的录入必须选择输入法为英文状态,指令的书写格式必须遵守汇编语言规定,操作数或操作地址如果是以字母开始时,字母前要补0;每一行指令的注释在“指令”后,以“;”开始为注释内容,注释内容可以为汉字,指令注释的作用是帮助程序
14、员记忆和其他人理解程序含义,指令注释可有可无。编辑一行指令结束后回车编辑下一行。3、 源文件的编译、连接及下传一串儿指令组成的汇编语言源文件被编辑完成后,首先要进行“编译”,编译后系统会弹出一个MESSAGE对话框,如果存在编辑错误将会提示相应的错误类型及错误所在行,如果编译通过会提示:NO ERRORS FOUND。编译的作用主要是对指令格式进行查错,并将指令逐条编译成机器码系列。 编译通过后就可以进行连接和下传了。在连接下传前,先要打开下位机的电源(如需要进行硬件线路连接的实验内容在打开电源前先要进行线路连接)并将下位机调试为通讯状态,方法为:在监控状态(数码管闪烁P.)下按下位机键盘的
15、“PCDEBUG”键,此时下位机数码管全暗,下位机处于上下位机通讯状态。任何状态下按下下位机的“RESET”键,下位机就会复位为监控状态。连接和下传完成后在源文件编辑窗体的第一行会出现一个蓝色指示条,标明此时我们所编写的源文件指令机器码序列已经被下传到下位机的程序存储区的指定位置中,此时的“PC”指针正在指向蓝色指示条所指的指令,我们可以执行该指令了。4、 指令的执行及结果的观察指令的执行有多条命令,参考上述1.3 仿真环境动态调试菜单。结果的观察参考1.3 仿真环境窗口菜单5、 调试源程序可以运行并不表明你所编写的程序能够完成规定的任务,要想完成任务必须经过程序调试,而且,程序设计技巧的提高
16、都需要在实际调试中积累进行。DVCC8051编译软件提供了丰富的调试命令,请参考1.3 仿真环境中动态调试菜单。第二章 单片机软件设计基本实验实验一 实验设备的熟悉掌握及汇编语言基本指令的练习(四学时)1、实验目的:了解单片机原理实验所用到的实验设备及其使用方法。通过汇编语言基本指令的练习,灵活运用各类指令,熟练掌握编译软件的使用。2、实验内容:、跟随教师学习设备的简单使用,包括硬件实验箱及编译软件两方面内容:硬件包括:实验箱的各部分组成介绍及其与PC机的连接操作;软件包括:汇编语言文件的建立、编辑与存储。(ASM格式)汇编语言文件的编译、连接、运行、程序调试(指令的运行及结果的验证、单步运行
17、及连续运行的区别,断点的设置与清除,其他调试指令运用等)。 、实验练习示例: 编辑汇编语言文件名 lx.asm并保存到e盘,练习程序清单如下(数据传送类指令练习): 数据传送指令练习:(练习观察寄存器及内、外部数据区,着意外部数据区的范围,高页地址用于扩展键盘与显示器等) Org 1000hmov a,#15hmov b,#0e4hnopmov 20h,#34hmov a,20hmov a,21hnopmov a,#0c6hmov dptr,#0009hmovx dptr, amov a,#0e7hmov dptr,#0008hmovx a,dptrnopclr amov dptr,#0007
18、hmovc a,a+dptrnopend 位操作指令练习:(练习标号及设置意义,学会观察位地址及程序程序存储区)Org 1000hMov 20h,#03hMov c,00hMov 00h, cSetb 00hClr 00hSetb cClr 00hCpl 00hCpl cClr p1.0Clr p1.1Jc s1Setb p1.1Sjmp s2S1:setb p1.0S2:setb p1.2 nopEnd 比较跳转指令练习(练习标号及其设置意义,观察PSW及其相关位信息,单步运行观察程序运行过程,需要连接P1.0)Org 1000hMov a,#20hMov 22h,#23hS0:inc aC
19、jne a,22h,s0Setb p1.0Nopend 几种运行命令的比较练习org 1000hs:cpl p1.0lcall delaycpl p1.1lcall delaysjmp sDELAY:MOV R6,#0FFhDELY2:MOV R7,#0FFhDELY1:DJNZ R7,DELY1 DJNZ R6,DELY2 RETend 、学生自行练习教科书上的其他四类汇编语言指令及短程序,内容不限。算术运算类指令练习逻辑运算类指令练习控制转移类指令练习布尔处理类指令练习3、预习下一次软件实验:数据排序试验4、通过本实验得到的重要结论:、单片机指令的执行过程:完成特定任务的多条汇编语言指令被
20、编辑完成后,以软件或手工方式被编译成单片机可以识别的机器码,并按顺序存储在系统的程序存储区中,单片机CPU按顺序在程序存储区取指令并执行。、编译软件的作用:由于单片机CPU只能识别存储在程序存储区中的机器码,那么将指令变成机器码的过程就很重要,我们将这一过程称为编译。编译可以通过查找机器码表手工进行,也可以通过软件方式自动进行(即:将繁杂的极易出错的重复性的工作交给软件去作),而后者就是编译软件的一个重要作用之一。除此之外,编译软件还有一些其他作用,比如完成上下位机的通信、传送机器码到下位机程序存储器,监控下位机的状态(包括寄存器、内部数据存储器、外部数据存储器、程序存储器、程序执行状态等),
21、同时还提供了灵活的程序的调试命令,给使用者提供更大的方便。实验二 数据排序1、实验目的:通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。2、实验内容:编写并调试完成一个数据排序的小程序,其功能为用冒泡法将内部RAM中50H-5AH单元中存储的杂乱数据,按照从小到大的顺序重新进行排序。然后重新编写程序,再实现从大到小的排序。3、实验框图:NYYYN初始化队列指针R0及比较次数计数器R7送数据标志位00H=0,开始新一轮比较排序数据队列前数送A,后数送22H标志位00H置1,交换A与22H内容,调整队列指针R0比较次数R7-1=0?标志位00H=0?排序结束N
22、清标志位C比较A22H吗?4、实验程序示例:ORG 0100H mov 50h,#34h mov 51h,#98h mov 52h,#0f5h mov 53h,#0d3h mov 54h,#25h mov 55h,#78h mov 56h,#72h mov 57h,#18h mov 58h,#09h mov 59h,#69h mov 5ah,#88hDORDE1: CLR 00H MOV R0,#50HMOV R7,#0AHDORDE2: MOV A,R0INC R0MOV 22H,R0CLR CCJNE A,22H,DORDE3SJMP DORDE4DORDE3:JC DORDE4SETB
23、00HXCH A,R0DEC R0XCH A,R0INC R0DORDE4: DJNZ R7,DORDE2JB 00H,DORDE1DORDE5: SJMP DORDE5END5、实验报告:完成从大到小排序的程序框图,程序编写及调试调试过程。要写出实验结论或实验体会收获。实验三 汇编语言编写多位数加法程序1、 实验目的:通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。2、 实验内容:利用单字节加法指令,完成多位无符号十进制加法运算。要求完成6位数以上的加法。3、 程序框图:(4位加法) 存放被加数高位存R1,低位存R0存放加数高位存R3,低位存R2加数与被
24、加数低位相加结果进行BCD调整后存在R4中加数与被加数高位带进位相加结果进行BCD调整后存在R5中进位调整清进位标志c4、 程序示例:被加数以BCD码格式存放在R0、R1中,加数也以BCD码格式存放在R2、R3中,和值以BCD码格式存放在R4、R5、R6。(4位加法) org 1000hCLR Cmov r0,#88hmov r1,#34hmov r2,#78hmov r3,#96hmov a,r0add a,r2da amov r4,amov a,r1addc a,r3da amov r5,amov r6,#00hclr aaddc a,r6mov r6,anopend5、 实验报告:完成从
25、6位数加法程序框图,程序编写及调试调试过程,写出程序注释。要写出实验结论或实验体会收获。实验四 数据传送实验1、实验目的:熟练掌握外部数据的操作,提高汇编语言设计和调试方法。2、实验内容: 在外部数据区(RAM)2000H20FFH内传送数据00H0FFH。 将外部数据区(RAM)2000H20FFH内的数据块,传到任意起始地址的数据区内。 将外部数据区(RAM)2000H20FFH内的数据块,反序传到任意起始地址的数据区内。3、程序示例:(实验内容的前两项) org 1000hmov dptr,#2000hmov a,#00hs:movx dptr,ainc dptrinc acjne a,
26、#00h,snopmov r1,#20hmov r0,#00hmov r3,#35hmov r2,#47hmov r4,#0ffhs1:mov dph,r1mov dpl,r0movx a,dptrmov dph,r3mov dpl,r2movx dptr,ainc r0inc r2dec r4cjne r4,#0ffh,s1nopend4、 实验报告要求:独立编程调试完成反序传送程序,写出程序注释及程序框图。实验五 拆字、拼字程序1、 实验目的:通过本次试验,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。2、 实验内容:在外存储器7000h单元中送入一个指定的立即数
27、,然后将此立即数拆为高半字节和低半字节,并将高半字节存入7001h单元,将低半字节存入7000h单元。(以拆字程序为例)3、 程序框图:略4、 程序示例:ORG 0050H MOV A,#0E5HMOV DPTR,#7000HMOV DPTR,AMOV B,ASWAP AANL A,#0FHINC DPTRMOVX DPTR,AINC DPTRMOV A,BANL A,#0FHMOVX DPTR,ACWORD1: SJMP CWORD1END5、 要求学生自行完成拼字程序,实验内容为拆字程序的逆过程。6、 实验报告:要求学生标明程序注释,画出程序框图实验六 查表程序1、 实验目的:通过本次试验
28、,熟练掌握51单片机汇编语言指令系统,同时初步掌握汇编语言的程序设计方法。2、 实验内容:在程序中编写一张数据表,实现在数据表中查找到四位数据并存放在规定的内存单元内。规定:将要查找的四位数据在数据表中的位置信息存储在7Eh7bh单元中,根据此位置信息查表得到相应的表中数据,分别对应的6Eh6bh单元中。3、 实验程序框图(略)4、 实验程序示例 org 1000hmov 7eh,#00hmov 7dh,#02hmov 7ch,#03hmov 7bh,#04hmov r0,#7ehmov r1,#6ehmov r3,#04hmov dptr,#data1chabiao:mov a,r0movc
29、 a,a+dptrmov r1,adec r0dec r1djnz r3,chabiaosjmp $DATA1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH end5、 学生独立编写六位数据的查表程序,验证改变数据位置信息时查表得到数据的正确性。6、 编写实验报告,画出程序框图,写明程序注释,分析实验结果。实验七 外部中断计数1、 实验目的:通过本实验,使学生能够进一步领会中断的概念,学会外部中断的编程方法及中断应用。2、 实验内容:用单脉冲发生器输出(
30、/SP)作为外部中断源,编写程序实现对单脉冲发生器输出次数进行计数。并实现时、分、秒时钟进位表示。3、 程序框图及线路连接:、 实验框图:(简单计数) 等待中断终端初始化主程序开始中断服务开始关中断20H单元加1开中断返回、 实验线路:单脉冲发生单元的/SP插孔连接到总线扩展单元的P3.2插孔。P1.0插孔连接到交通灯演示单元的任意一个小灯插孔。4、 实验程序示例:(简单计数)org 0003hljmp zd0org 1000hmov sp,#53hsetb it0setb ex0setb eamov 20h,#00hsjmp $zd0:clr ea inc 20h cpl p1.0 setb
31、 ea retiend5、 实验报告:写出以时、分、秒进位表示的实验程序及其注释,画出实验框图,给出实验结果及简单的调试过程。实验八 定时/计数器实验1、 实验目的:了解掌握定时/计数器的工作原理,学会其使用编程方法。2、 实验内容:定时/计数器的初始化,定时器/计数器初值的计算,编写一段小程序实现时、分、秒时钟功能。3、 程序框图及线路连接:、 程序框图:(秒定时) 服务程序开始,关中断判断1秒是否到1秒时间到,取反P1.0重新初始化定时器T0开中断返回否主程序开始,置位P1.0初始化定时器T0,设置100mS设置中断次数初值,定时时间1S开中断等待中断到是、 线路连接:P1.0插孔连接到交
32、通灯演示单元的任意一个小灯插孔。4、 程序示例:(秒定时) org 000bhljmp zdt0org 1000hmov sp,#53hsetb p1.0mov 21h,#00hmov 20h,#0ahmov tmod,#01hmov th0,#3chmov tl0,#0b0hsetb tr0setb et0setb easjmp $zdt0:clr ea djnz 20h ,zda inc 21h mov 20h,#0ah cpl p1.0zda: mov th0,#3ch mov tl0,#0b0h setb ea reti end5、 实验报告:画出程序框图,写出程序清单及程序注释,写明
33、程序的运行结果。第三章 单片机硬件基本实验实验九 串行显示实验1、 实验目的:掌握串行口的工作原理及其方式0的编程方法。复习74LS164的基本工作原理及其驱动数码管显示的应用。2、 实验内容:完成串行口与74LS164的连线,完成两位数码管显示秒时钟功能的编程、调试工作。3、 程序框图及实验连线:、程序框图:(完成0-F不循环显示)略、实验连线图:4、 程序示例:(完成0-F不循环显示)org 000bhljmp zdt0org 1000hmov sp,#53hmov 21h,#00hmov a,21hmov dptr,#tabmovc a,a+dptrmov sbuf,amov sbuf,
34、amov 20h,#0ahmov tmod,#01hmov th0,#3chmov tl0,#0b0hsetb tr0setb et0setb easjmp $tab:db 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h db 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh zdt0:clr ea djnz 20h ,zda inc 21h mov 20h,#0ah mov a,21h mov dptr,#tab movc a,a+dptr mov sbuf,a mov r0,#20hdelay:djnz r0, delay mov a,#00
35、h movc a,a+dptr mov sbuf,a zda: mov th0,#3ch mov tl0,#0b0h setb tr0 setb ea reti end5、 实验报告:画出程序框图,写出程序清单及程序注释,写明程序的运行结果。实验十 简单I/O口扩展1、 实验目的:学习在单片机系统中扩展简单I/ O口的基本方法。2、 实验内容:74LS244开关输入扩展读取开关状态、74LS240输出扩展控制小灯。用74LS240扩展的I/O口实现简单的交通灯控制程序编程、调试。3、 实验连线:、 实验连线:图1 输入连线图图2 输出连线图图3 接口器件地址译码连线图(实际系统)4、 程序示例
36、:(输入、输出分开)Org 1000hmov dptr,#0a000hS:movx a,dptrNopnopsjmp SendOrg 1000hmov dptr,#0b000hmov a,#00hS:movx dptr,ainc asjmp Send5、实验报告:画出程序框图,写出程序清单及程序注释,写明程序的运行结果。实验十一 8155扩展并行显示口实验1、实验目的:了解掌握实验系统中通过8155接口芯片来扩展的六数码管显示器硬件连接, 并能够编程控制数码管的显示。同时了解键盘接口的连接。2、实验内容:编程控制六位数码管使其显示200904(程序示例),要求学生自行编写程序六位数码管循环显示
37、“F”每位显示时间约为0.5s。3、实验连线图: 4、程序示例: 8155B口地址:FF22H 8155A口地址:FF21H 8155C口地址:FF23Horg 1000hmov 7eh,#02hmov 7dh,#00hmov 7ch,#00hmov 7bh,#09hmov 7ah,#00hmov 79h,#04hmov r0,#7ehmov r2,#20hmov r3,#00hs:mov dptr,#0ff21hmov a,r2movx dptr,amov a,r0mov dptr,#data1movc a,a+dptrmov dptr,#0ff22hmovx dptr,as1:djnz r
38、3,s1dec r0clr cmov a,r2rrc amov r2,ajnz smov a,#0ffhmov dptr,#0ff22hmovx dptr,amov r0,#7ehmov r2,#20hmov r3,#00hsjmp sdata1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHend实验十二 A/D转换0809应用实验1、 实验目的:了解掌握ADC0809的工作原理及其在本系统中的扩展连接方式。2、 实验内容:将0809的IN0通道输入的模
39、拟量转换为数字量,并将转换结果在串行显示口进行显示。模拟量由W1提供,旋转W1就会改变模拟量的值,串行口显示值也会随之动态改变。3、 实验连线图:4、 程序示例: ORG 06D0HSTART: MOV A,#00HMOV DPTR,#9000HMOVX DPTR,AMOV A,#00H MOV SBUF,A MOV SBUF,AMOVX A,DPTR DISP: MOV R0,A ANL A,#0FH LP: MOV DPTR,#TAB MOVC A,A+DPTR MOV SBUF,A MOV R7,#0FH H55S:DJNZ R7,H55S MOV A,R0 SWAP A ANL A,#
40、0FH MOVC A,A+DPTR MOV SBUF,A MOV R7,#0FHH55S1:DJNZ R7,H55S1 LCALL DELAY AJMP STARTTAB:DB 0fch,60h,0dah,0f2h,66h,0b6h,0beh,0e0h DB 0feh,0f6h,0eeh,3eh,9ch,7ah,9eh,8eh DELAY:MOV R6,#0FFh DELY2:MOV R7,#0FFh DELY1:DJNZ R7,DELY1 DJNZ R6,DELY2 RET实验十三 D/A转换0832的应用实验1、 实验目的:了解掌握D/A转换芯片0832的工作原理及其在本系统中的扩展连接方
41、式。2、 实验内容:利用0832输出接LM324放大器,放大器输出一个从-5V开始逐渐升到0V再逐渐升至5V,再从5V逐渐降至0V,再降至-5V的锯齿波电压。3、 实验连线图:4、 程序示例:ORG 0740HHA6S:MOV SP,#53HHA6S1:MOV R6,#00HHA6S2:MOV DPTR,#8000HMOV A,R6MOVX DPTR,A MOV R2,#0BHLCALL DELAYINC R6CJNE R6,#0FFH,HA6S2HA6S3:MOV DPTR,#8000HDEC R6MOV A,R6MOVX DPTR,A MOV R2,#0BHLCALL DELAYCJNE
42、R6,#00H,HA6S3SJMP HA6S1DELAY:PUSH 02HDELAY1: PUSH 02HDELAY2: PUSH 02HDELAY3: DJNZ R2,DELAY3POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1POP 02HDJNZ R2,DELAYRETEND5、实验报告要求:实验学生自行编程完成输出为锯齿波和方波的实验,并在实验报告中写出程序及其注释。实验十四 简单交通灯控制1、 实验目的:提高编程技巧,掌握中断、定时器、串行显示的综合应用。2、 实验内容:编程控制红灯和绿灯,绿灯亮10秒后红灯亮20秒,同时显示灯亮的时间。3、 实验连线:p1.0插孔连接到任意红灯,p1.1插孔连接到任意绿灯。4、 程序示例:(单向交通灯红绿灯控制及时间显示)org 000bhljmp zdt0org 1000hmov sp,#53hsetb 78hmov r1,#00hmov r2,#02hsetb p1.0clr p1.1mov a,r1mov dptr,#tabmovc a,a+dptrmov sbuf,amov r0,#08hd:djnz r0,dmo