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

下载本文档

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

文档简介

1、实验一 认识实验一、实验目的1、了解实验台的基本使用2、掌握单片机实验板、仿真器与实验台的连接方法3、掌握MCS-51仿真软件的使用4、对MCS-51单片机内部的工作寄存器、累加器A和RAM单元进行操作;5、输入数据传送指令并单步执行输入的指令。二、实验内容1、实验台的使用2、仿真系统连接3、仿真软件使用三、实验步骤:1、实验台的基本使用:(1)电源:+5V; (2)串行口; (3)微机2、仿真系统连接:(1)仿真头安装(2)单片机主板与扩展板连接(3)主板与仿真器的连接(4)仿真系统与实验台连接:电源、数据线3、仿真软件的使用:(1)仿真软件启动(2)仿真模式设置:a)仿真器 b)通信 c)

2、仿真头(3)数据观察及设置(SFR、寄存器、内RAM及外RAM等)a)复位后读出R0R7、A、PSW、B和SP的值,并填入下表。R0R7DPTRAPSWBSP初值b) 观察RS1和RS0对R0R7工作寄存器区的控制作用1)把R0R7修改成12H,读出内RAM 00H1FH中内容并填入表中第一行。2)使PSW=08H,把R0R7修改成33H,读出内RAM 00H1FH中内容并填入表中第二行。3)使PSW=10H,把R0R7修改成44H,然后读出内RAM 00H1FH中内容并填入表中第三行。4)使PSW=18H,把R0R7修改成55H,然后读出内RAM 00H1FH中内容并填入表中第四行。PSWR

3、0R70区00H07H1区08H0FH2区10H17H3区18H1FHc)练习对寄存器、内外RAM的数据设置操作。4、程序文件的建立、调试与执行(1)程序建立及编辑a)新建项目;b)新建程序文件;c)输入编辑源程序内容; ORG 0030HMAIN:MOV SP, #60HMOV A, #0FEHLOOP:MOV P1, ALCALL DELAYCPL ACC.0SJMP LOOPDELAY: MOV R5, #10REL1: MOV R6, #200REL2: MOV R7, #123REL3: DJNZ R7, REL3 DJNZ R6, REL2 DJNZ R5, REL1 RETEND

4、d)保存程序文件(设置文件名应带扩展名.ASM); e)保存项目文件(2)运行程序,观察现象(运行前需先用导线连接P1.0与LED1)。(3)程序调试:a)单步运行:在程序中LCALL指令前面加上;号,单步运行程序。b)设置断点:将LCALL指令前面加上;号去掉,在该指令上设置断点,并运行。c)运行观察及数据设置:调试程序过程中,需要随时观察内外RAM及SFR的状态,甚至是一些可寻址位的状态,必要时还要进行相关单元、位的数据设置。四、实验总结:1、本次实验的收获及疑难问题。实验 数据传送类指令练习一、实验目的1、进一步掌握MCS-51仿真软件的使用。2、熟悉8031/8051传送指令功能。二、

5、实验内容1、输入数据传送指令并单步执行输入的指令;2、练习数据传送指令的基本应用。三、实验步骤1、传送指令的功能1)输入如下程序:ORG 0030H0030H 74BBH MOV A,#0BBH0032H H MOV DPTR,#0070H0035H F0H MOVX DPTR,A0036H 7870H MOV R0,#70H0038H F6H MOV R0,A0039H 74CCH MOV A,#0CCH003BH D6H XCHD A,R0003CH 80F1H SJMP $ END2)观察DPTR、A、R0、内部RAM70H和外部RAM70H单元中内容并填入表中第一空行。3)单步执行完上

6、述程序,重新观察上述寄存器和存储单元中内容并填入表中第二空行。表1 程序执行前后有关寄存器和RAM单元内容对照表程序执行DPTRAR070H内RAM70H外RAM前后4)分析程序并把分析结果和运行结果进行比较。2、PUSH指令对堆栈的影响1)输入如下程序:ORG 0040HMOV A,#0AAHMOV PSW,#0CCHPUSH ACCPUSH PSW SJMP $END2)观察A、PSW、SP、07H、08H和09H单元中内容,并填入表表。表2 PUSH指令对堆栈的影响程序执行APSWSP堆栈区07H 08H 09H前后3)单步执行上述程序,重新观察上述寄存器和堆栈区中内容填入表中。4)分析

7、程序并把分析结果和实验结果进行比较,看两者是否相同。3、编写把A、PSW、DPTR中内容入栈保护并恢复的程序,并验证。4、编写将内RAM的30H、40H单元内容相互交换的程序,并验证。5、编程实现交换外RAM 1050H、1060H单元的数据,并运行验证。6、ROM区从SQR开始的10个单元中依次存放着09的平方值,内RAM的40H单元中有09之间的一个整数,试编程实现用查表的方法得到该数的平方值,并存入41H单元。四、实验总结:1、堆栈操作的原则是什么?在程序设计中需要保护和恢复数据时应注意什么?2、对内RAM、外RAM及ROM进行数据传送的指令,分别可使用如此寻址方式?实验 算术及逻辑运算

8、指令练习一、实验目的1、熟悉算术及逻辑运算类指令的功能。2、掌握算术及逻辑运算类指令对标志位的影响。3、掌握算术、逻辑运算指令的基本应用。二、实验内容1、求两个16位二进制数的和2、四位十进制数的加法3、算术、逻辑运算指令的基本应用三、实验步骤1、求两个16位数的和设30H和32H开头的两个单元分别存放有两个16位无符号二进制数(低8位在30H或32H单元,高8位在31H或33H单元),如下程序可以使两个数相加并把其和存放在30H和31H单元。ORG 0030HMOV R0,#30HMOV R1,#32HMOV A,R0ADD A,R1MOV R0,AINC R0INC R1MOV A,R0A

9、DDC A,R1MOV R0,ASJMP $END1)把被加数1122H和加数3344H分别送入CPU内部RAM的相应存储单元,即(31H)=33H、(30H)=44H、(33H)=11H、(32H)=22H。如表1所示。2)执行程序并观察31H和30H单元两数之和以及CY中进位位,填入表中相应栏目。3)把被加数和加数分别改为AABBH和CCDDH并送入相应存储单元,然后重新运行程序,并将运行结果填入到表中。表1 求和程序执行前后的结果第一遍执行程序第二遍执行程序CY十六进制数CY十六进制数程序执行前1122H3344HAABBHCCDDH程序执行后计算值4)手工计算上述两组加数和被加数,并填

10、入到表中相应栏目,检查计算值和程序运行值是否一致。2、四位十进制数的加法:设30H和32H开头的两个单元分别存放有两个四位十进制数的压缩BCD码(低8位在30H或32H单元,高8位在31H或33H单元),试编写程序求这两个十进制数的和,并将结果放在从34H单元开始的存储区(低8位在低地址单元)。使用表格中提供的数据执行程序,并将结果填入表中。表2 BCD数求和程序执行前后的结果第一遍执行程序第二遍执行程序CYBCD数CYBCD数程序执行前5656H3344HAABBHCCDDH程序执行后计算值3、分别编写实现如下功能的程序并运行、验证。(1)四个8位无符号二进制数求和。(源数据位于内RAM的连

11、续存储区,结果存储在源数据之后的存储区,低字节在低地址存储单元)(2)外RAM的1000H和2000H单元中分别放着一个8位无符号二进制数X和Y,计算3X+4Y,并将结果存入内RAM的30H单元和31H单元。(低8位位于30H单元)。(3)将两位十进制数的压缩BCD码转换成ASCII码。(源数据在内RAM 20H单元,结果存放在内RAM的31H单元开始的两个单元,低字节在31H单元)四、实验总结:1、算术加、减法指令如何影响PSW中的有关标志位?2、如何实现两个BCD数的减法?实验 P1口控制LED发光二极管一、实验电路(如图3.3.29所示)图3.3.29 P1口控制LED发光二极管二、实验

12、目的1、熟悉51系列单片机2、掌握AT89C51 P1口的使用方法3、掌握LED发光二极管的原理及使用方法4、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件LED.HEX三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板均采用+5V电压2、因J14为有极性排阻,故单片机扩展板一定要连接GND和+5V3、图中粗线部分为要求学生自己连线部分五、实验现象1、8个LED发光二极管循环显示(发光的移位),间隔时间为一秒。六、思考1、 将本实验的实验现象改为“不发光二极管循环移位”。2、 将本实验的实验现象改为“每隔0.5秒发光二极管循环

13、移位”。实验 数码管静态显示实验一、实验电路(如图3.3.32所示)图3.3.32 数码管静态显示电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口的使用方法3、掌握共阴数码管的原理及使用方法4、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件LEDGT.HEX三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板均采用+5V电压3、 图中粗线部分为要求学生自己连线部分五、实验现象数字09循环显示,延迟时间为1秒六、思考在共阴数码管上显示字母AF(不区分大小写 )实验 矩阵键盘实验一、实验电路(如图3.3.3

14、4所示)图3.3.34 矩阵键盘实验电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口、P2口的使用方法3、了解共阳数码管的原理及使用方法4、掌握矩阵键盘的原理及使用方法5、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件KEY.HEX三、实验器材1、多功能实验板2、单片机扩展板3、连接导线若干四、实验注意事项1、多功能实验板、单片机扩展板接+5V电压2、数码管为共阳数码管,公共端接+5V3、图中粗线部分为要求学生自己连线部分五、实验现象1、ENTER键为全亮键,ESC键为全灭键,其它数字键为按哪一位数字键,在数码管上显示其数字。实验 外部中断实验一、实验

15、电路(如图3.3.45所示)图3.3.45 外部中断实验电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口、P3口的使用方法3、了解键盘的原理及使用方法4、了解发光二极管的原理及使用方法5、掌握外部中断的原理及使用方法6、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件INT.HEX三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板接+5V2、因J14为有极性排阻,故单片机扩展板一定要连GND和VCC,否则发光二极管不亮3、图中粗线部分为要求学生自己连线部分五、实验现象正常情况下8个LED发光二极管循环显

16、示,延迟时间为1秒,当有按键按下即产生外部中断时,8个LED发光二极管全亮,延迟时间为2秒。六、思考请同学们自己试一下外部中断0。实验 定时器中断一、实验电路(如图3.3.46所示)图3.3.46 定时器中断电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口的使用方法3、掌握定时器、计数器的原理及使用方法4、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件INT.HEX三、实验器材1、单片机主板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机主板、单片机扩展板接+5V电压2、因J14为有极性排阻,故单片机扩展板一定要接GND和VCC,否则LED发

17、光二极管不亮3、图中粗线部分为要求学生自己连线部分五、实验现象LED发光二极管循环显示,延迟时间为1秒。六、思考将LED发光二极管的循环延迟时间设置的更长或更短。实验 数码管动态显示实验一、实验电路(如图3.3.33)图3.3.33 数码管动态显示电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口、P2口的使用方法3、学习驱动芯片ULN2003A的原理及使用方法4、学习驱动芯片74HC245的原理及使用方法5、掌握数码管(共阴、共阳两种)的原理及使用方法6、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件LEDDT.HEX三、实验器材1、多功能实验板2、单

18、片机扩展板3、连接导线若干四、实验注意事项1、多功能实验板、单片机扩展板均采用+5V电压2、因图中将74HC245的GND和VCC引脚隐藏,故学生自己连线时一定要将GND和VCC连上,否则芯片不工作3、图中粗线部分为要求学生自己连线部分五、实验现象1、显示数字16。六、思考1、显示其它数字和字符。实验 控制转移命令练习一、实验目的、要求:(1)熟悉控制转移指令的功能。(2)体会偏移量rel在指令中的含义,观察机器代码中rel的具体数值。二、实验仪器、材料:单片仿真机、PC机、导线、万用电表等三、实验内容:1、无条件转移指令练习2、有条件转移指令练习四、实验步骤:1、无条件转移指令练习:分析并验

19、证下列转移指令的目标地址,并填写表格。(1)ORG 0000H转移指令目的地址计算值目的地址实际值LJMP MAINSJMP 0FCHLJMP MAINORG 1300HMAIN: MOV A, #00HSJMP 0FCHEND(2)ORG 0000HAJMP MAINORG 0120HMAIN:MOV A, #20HMOV DPTR, #1100HJMP A+DPTRORG 111EHLAT:PUSH ACC转移指令目的地址计算值目的地址实际值AJMP MAINJMP A+DPTRPUSH PSWPOP PSWPOP ACCSJMP $END2、有条件转移指令练习:编程并调试、运行验证。(1

20、)编写循环程序将内RAM低128字节内容清0。(2)编写程序将内RAM以30H为始址的数据块传送到以1000H为始址的外RAM区域,遇0终止。(3) 内RAM从40H单元开始的10H个单元中存放着若干8位带符号二进制数,编程分别统计出正、负数的个数,并存入50H、51H单元中。(4) 用子程序调用的方法实现两个数平方和运算,输入并单步执行该程序,并观察运行情况。五、实验报告要求:1、明确实验目的,写出调试正确的程序,说明操作过程,结合理论授课分析实验现象。2、说明第2题中各程序的运行验证方法。六、思考题:(1)如何计算相对地址偏移量?(2)在子程序调用和返回指令执行过程中,PC值如何变化?实验

21、 汇编语言程序设计(一)一、实验目的:1、练习常见的简单的分支、转移、循环程序结构的设计方法。2、练习常见的程序调试方法。3、练习伪指令的使用。二、实验内容:1、数据块移动2、数据查找3、极值查找三、实验步骤:1、编写程序将内RAM的40H单元中存放的压缩BCD码转换成ASCII码30H和31H单元中(高位在低地址单元。上机调试验证,观察运行结果。2、编写程序,将内RAM的30H40H单元存放的单字节无符号数传送到外RAM中以1000H为起始地址的存储区。输入程序完毕后,可以在内RAM的30H-40H随意数据,单步运行,观察结果。3、编写程序,查找内部RAM的20H-50H单元中是否有0AAH

22、这个数,如果有,将51H单元置为01H,如果没有,将51H单元置为00H。输入程序完毕后,可以在20H-50H随意数据,可以安排一个单元内容为0AAH,或者都不为0AAH,进行仿真,观察结果。4、在内部RAM30-5FH单元存放着一组无符号数,编写程序查找出这些无符号数的最大值,将结果存放于60H单元。编写完程序以后,在相关单元中输入一些数据,运行程序,观察实验结果。四、实验报告要求:1、画出程序流程图,并写出调试正确的程序。五、思考题:1、汇编语言程序如何调试?实验 汇编语言程序设计(二)一、实验目的:1、学习汇编语言程序设计方法2、熟悉程序调试技巧二、实验内容:1、循环程序设计及调试2、子

23、程序设计及调试三、实验步骤:1、循环程序设计与调试:外RAM的1000H1020H单元中存放着一些单字节无符号数,求和并将结果存放在外RAM的2000H单元开始的存储区(低字节数据在低地址单元)。程序编写、输入完毕后,在相关单元中随意输入一些数据,执行程序,观察程序执行过程和结果。2、子程序设计与调试:(1)在ROM中存放着十进制数09的平方值,试编程求三个09之间整数的平方和,并将结果存放在外RAM中1000H单元开始的存储区(低字节数据在低地址单元)。编写程序,并调试、运行,注意子程序的调用与返回及数据的保护与恢复。(2)编写子程序将内RAM中指定地址单元开始的指定字节数的数据传送到外RA

24、M的指定存储区域,并在主程序中调用它将内RAM中从30H单元开始的10字节数据传送到外RAM中1000H单元开始的存储区。编写程序,并调试、运行,注意子程序的调用与返回、数据的保护与恢复、参数传递。四、实验报告要求:1、画出各程序的流程图,并写出调试正确的程序。实验 液晶LCD实验一、实验电路(如图3.3.43)图3.3.43 液晶LCD电路原理图二、实验目的1、熟悉51系列单片机2、了解AT89C51 P1口、P2口的使用方法3、了解电位器的使用方法4、掌握液晶模块LCD的原理及使用方法5、学习AT89C51的编程、仿真、调试、编译、芯片烧录。对应文件LCD.HEX三、实验器材1、单片机多功

25、能实验板2、单片机扩展板3、连接导线若干四、实验注意事项1、单片机扩展板、单片机多功能实验板均采用+5V电压2、单片机多功能实验板接GND和VCC时一定不能接反,否则会烧毁LCD液晶模块3、图中粗线部分为要求学生自己连线部分五、实验现象1、显示“CS&S”字样。六、思考1、请同学们在液晶模块上显示“HOW ARE YOU”。实验 交通灯控制(定时器延时法)一、实验目的1. 进一步理解单片机内部定时器/计数器的工作原理和使用方法。2. 学习模拟交通灯控制的方法。3. 学习数据输出程序的设计方法。4. 学习中断处理程序的编程方法。二、实验内容用CPU的P1口输出控制信号,控制六个LED灯(红,绿,

26、黄),模拟交通灯管理。LED0、LED1、LED2分别表示南北方向红、黄、绿灯三、实验电路连接P10 - LED0 LED3、LED4、LED5分别表示东西方向红、黄、绿灯P11 - LED1 P12 - LED2 P13 - LED3 P14 - LED4 P15 - LED5四、实验说明l. 因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。假设一个十字路口为东西南北走向。初始为状态0。状态0:东西红灯,南北红灯;然后转入状态1:南北绿灯通车,东西红灯;过一段时间转入状态2:南北绿灯闪几次转黄灯亮,延时几秒,东西仍然红;再转入状态3:东西绿灯通车,南北红灯;过一段时间转入状态4

27、:东西绿灯闪几次转黄灯亮,延时几秒,南北仍然红灯;最后循环至状态1。2. 各用一组红、黄、绿色LED分别表示南北方向和东西方向。3. 由定时器来产生通车延时时间,时间长短1秒以上(由同学自己确定)。提示:内部计数器用作定时器时,是对机器周期计数。每个机器周期的长度是12个振荡器周期。因为实验系统的晶振是12MHZ,本程序定时器工作于方式1(16位方式)时,最大定时时间为:216*1s=65536s=65.536ms所以需要配合软件记数。如要延时2秒,则需要T0中断32次,所用时间为65536*32=s2s因此在T0中断处理程序中,要判断中断次数是否到32次,若不到32次,则只使中断次数加1,然

28、后返回,若到了32次,定时2秒时间到。 4. 用软件延时方法产生“闪”延时时间(参考硬件实验一)。五、实验仪器和设备PC机、WAVE软件、E2000/S仿真器+POD8X5X仿真头、MULT1A用户板、实验板、开关电源等。六、参考程序框图(见下页)开始设置T0时间常数0000H设置状态记数初值B=0置T0工作方式1,定时器通过P1口送初始状态(东西南北都是红灯)设置秒计数值R6=32(2秒)中断允许,定时开始动态停机等待中断T0中断入口保护现场并重新设置T0时间常数秒计数值R6减1是否到2秒?否 是重新设置秒计数值R6=32状态值B加1 是否状态1? 否 是 是否状态2?南北绿灯,东西红灯是 南北绿灯闪转黄灯亮,东西红灯 否主程序框图是否状态3? 是 南北红灯,东西绿灯否进入状态4,南北红灯,东西绿灯闪转黄灯亮 重设状态记数初值R2=0 恢复现场中断返回中断处理程序框图实验 循环程序与子程序调用一、实验目的1、掌握子程序的编写方法和调用过程1、2、掌握SJMP、AJMP、LJMP的使用方法3、掌握循环程序的编制二、实验设备DVCC仿真系统一套、计算机一台。三、实验内容1、在外部数据存储器0130H013FH和片内RAM 30H 3FH分别存放数据00H、01H0FH。2、在片内数据存储器20H23H中压缩BCD码拆成单字节BCD码依次存放到28H2FH中。四、实验步

温馨提示

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

评论

0/150

提交评论