单片机实验讲义_第1页
单片机实验讲义_第2页
单片机实验讲义_第3页
单片机实验讲义_第4页
单片机实验讲义_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及应用实验讲义1单片机原理及应用单片机原理及应用实实验验讲讲义义 单片机原理及应用实验讲义2目目录录第一章键盘监控使用简介.1第二章MCS-51 系列单片机实验 .16实验一 单片机实验箱的操作使用.16实验二 拆字实验.18实验三 拼字实验.20实验四 P1 口实验(一).24实验五 P1 口实验(二).26实验六 按键实验.28实验七 键控流水灯.30实验八 外部中断实验.32实验九 定时器实验.34实验十 简单 I/O 口扩展实验.37实验十一 A/D 转换实验.39实验十二 D/A 转换实验.42附录:实验报告的基本要求与书写格式.45参考文献.46单片机原理及应用实验讲义3

2、第一章第一章 键盘监控使用简介键盘监控使用简介一、一、 键盘简介键盘简介5103S 实验系统自带有一个 48 键盘,见图 11,其外形为注塑仿 PC 机键,键功能丰富;显示部分有 6 个 LED 显示,可使用户在脱离 PC 机的时候调试相当方便。1.键盘示意图键盘示意图7/R78/R89/R9A/ACCTV/MEEG/DLPRTEX/FV4/R45/R56/R6B/BRG/FSRW/ISCOMPSCAL1/R12/R23/R3C/PSWF1/LSEV/UNMOVESTEP0/R0F/PCHE/PCLD/SPF2/NXEC/EPDARMON图 11 键盘示意图2.键盘功能简介键盘功能简介(1)在

3、 32 个按键中,左边 16 个为数字键 0F,用于输入地址,数据或机器码。当前工作寄存器及 PC 值 DPTR 等也用数字表示,其名在数字键右下角,详见下表:名称R0R1R2R3R4R5R6R7DPLDPHABPSWSPPCLPCH代号0123456789ABCDEF(2)右边十六个功能键,这 16 个功能键作用分别是:TV/ME 进入 CRT 显示状态/程序存储器读写RG/FS片内 RAM、寄存器(读写)/偏移量计算F1/LS第一标志位/读上一个字节F2/NX第二标志位/读下一个字节EG/DL EPROM 写入键/删除第一个字节RW/IS外部数据存储器读写/插入一个字节EV/UN固化区内容

4、移入目标 RAM/保留单片机原理及应用实验讲义4EC/EPEPROM 查空/EPROM 内容与 RAM 内容比较PRTTV 状态下打印COMP程序/数据块比较MOVE 程序/数据块移动DARTV 状态下反汇编EX/FV全速运行/全速断点STEP单步MON返回监控SCALEPROM 低速写入/断点执行RESET系统硬件复位二、二、 键盘监控程序简介键盘监控程序简介1.键盘监控工作状态键盘监控工作状态用户可以通过 32 个键向本系统发出各种操作命令,大多数键有 2 个以上功能,而没有上下档键,实验系统到底进行什么操作,不仅与按什么键有关,也与当前实验系统所处的工作状态有关。 “工作状态”在操作中是

5、一个重要的概念,下面作有关介绍。1.1.待命状态 0在本状态时,显示器的最左端显示一个闪动的“P ”提示符,表示实验系统处于初始化状态,等待用户操作:1.在实验系统接通电源后,自动复位时处于待命状态 0;2.按 RESET 复位键后,使本机处于待命状态 0;3.在大多数情况下,按 MON 键,也可以使本机进入待命状态 0。待命状态 0 时,可以进行的操作有:(1)按任一数字键,进入待命状态 1,显示该键入数;(2)按 F1 标志键,进入仿真 2(即仿 EPROM) ,PC 值指向外部程序空间,LED 显示闪动的“H”;(3)按 F2 标志键,进入仿真 1(即仿 RAM) ,PC 值指向内部用户

6、程序空间,LED 显示闪动的“P”;(4)按 EC 键,检查 EPROM 内容是否是全 FFH;(5)按 EX 键,从 0000H 开始执行用户程序;单片机原理及应用实验讲义5(6)按 STEP 键,从 0000H 开始单步执行用户程序;(7)按 TV 键,进入 TV 屏幕态,显示器全暗。1.2.待命状态 1在本状态下,显示器显示一到四位数,数字之间没有间隔。若显示四位数字,则第一位会不断闪动,在待命状态 0 按数字键,本机便进入待命状态 1。在待命状态 1 时,可进入的操作有:1.按 ME 键,进入存储器的读写状态;2.按 RG 键,进入寄存器读写、特殊功能寄存器检查、8032 内部 RAM

7、 区读写状态;3.按 F1 键,进入标志态,出现闪动的“”表示首址;4.按 F2 键,进入标志态,出现闪动的“ ”表示末址;5.按 RW 键,进入外部数据存储器/口读写操作、片内 RAM 80HFFH 读写状态;6.按 EX 键,从显示地址开始连续执行用户程序;7.按 STEP 键,从显示地址开始单步执行用户程序;8.按 MON 键,返回待命状态 0。2.存储器读写状态存储器读写状态在状态 1 时按 ME 键,或当执行用户程序时遇到断点、单步执行、EPROM 编程写入出错等都会使实验系统进入该状态,本状态可进入如下操作:1.按 FS 键,进入相对偏移量计算;2.按 DL 键,进行删除操作,按键

8、一次删除一字节;3.按 IS 键,进行插入操作,按键一次插入一字节;4.按 LS 键,进入上一字节读写操作;5.按 NX 键,进入下一字节读写操作;6.按 STEP 键,以当前显示器内容作为地址,按键一次执行一条指令,即单步执行用户程序;7.按 EX 键,以当前显示器内容作为起始地址,连续执行用户程序(若退出,应按RESET 复位按钮) ;8.按 MON 键,返回待命状态 0(按 EX 键后,该命令无效) 。3.寄存器读写状态寄存器读写状态即在待命状态 1,按 RG 键,可进入如下操作: 键入 1 位地址,进入当前工作寄存器读写/检查状态:单片机原理及应用实验讲义61.显示代号 07,读写当前

9、工作寄存器 R0R7;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 键,返回待命

10、状态 0。4.外部数据存储器读写状态外部数据存储器读写状态即在待命状态 1,按 RW 键,可进入如下操作:1.键入 2 位地址,读写 8032 片内 RAM 80HFFH 内容;2.键入 4 位地址,外部数据存储器读写,I/O 读写;3.按 LS 键,读写上一字节内容;4.按 NX 键,读写下一字节内容;5.按 MON,返回待命状态 0。5.标志态标志态F(i)态)态在待命状态 1,即按数字键后,再按 F1 键,本机便进入标志态,标志态功能特别强。(1)F1 键功能:装入源程序首址,即把当前显示器内容作为源程序首址,并显示闪动“”标志符。(2)F2 键功能:装入源程序末址,即把当前显示器内容作

11、为源程序末址,并显示闪动的“ ”标志符。(3)在“ ”状态下,再键入的数,便是目标首址;F 标志态可进入的操作:1.按 MOVE 键,进入程序/数据块移动,其传送方向由初态决定。a.在“P”,实验系统内部 000HFEFFH 空间内部相互传送。b.在“P”态,实验系统内部数据/程序块传向外部用户数据存储空间。单片机原理及应用实验讲义7 按 COMP 键,进入程序比较,操作步骤如下:源首址,F1,源末址,F2 目标首址,COMP 按 EG 键,进入 EPROM 高速固化,操作步骤如下:源首址,F1,源末址,F2 目标首址,EG 按 EV 键,把固化区程序搬到程序区,其目标有两个:a.在“P ”态

12、,固化内容传向本系统内 0000FEFFH;b.在“P”态,固化区内容传向用户系统数据区 0000HFFFFH 空间。 按 EP 键,实验系统内部程序/数据或用户系统程序/数据区与固化区比较,其方向确定同 COMP 键,操作步骤如下:源首址,F1,源末址,F2,目标首址,EC 按 DAR 键,进入反汇编显示,源地址有 2 个,操作步骤如下:源首址,F1,源末址,F2,浮动地址,DAR(浮动地址可缺省)a.“P ”态,机内 0000HFFFFH,反汇编b.“H”态,进入反汇编打印源首址,F1,源末址,F2,浮动地址,PRT(浮动地址可缺省)三、三、 键盘监控程序操作说明键盘监控程序操作说明1.复

13、位命令复位命令RESET 键键在任何时刻按复位键 RESET,都会迫使实验系统进入初始状态(与通电复位作用一样),在 RST 为高的第二个周期执行内部复位,并且在 RST 变低前每一个周期重复执行内部复位。置用户堆栈指针为 07H使 8155、8255I/O 接口片复位使实验系统进入待命状态 0接复位键不会改变用户存储区的内容,也不会改变 8032 片内 RAM 区的内容及外部数据区的内容。2.返回待命状态返回待命状态MON 键键按 MON,可迫使实验系统进入待命状态。通常用 MON 键进行以下操作:清除已送入显示器的数字;退出其他操作。例如:退出存储器读写状态、寄存器读写状态等;单片机原理及

14、应用实验讲义8按 MON 键,不会影响用户的存储区、寄存器内容。3.程序存储器读写命令程序存储器读写命令ME、NX、LS 键键这一组命令是用来检查(读出)或更改(写入)内存单元,因此,可通过这些命令向实验系统送入程序和数据。先按 MON 键,使实验系统处于待命状态 0,然后送入 4 位表示要检查的程序存储器地址,再按 ME 存储器读写键,读出该单元的内容,实验系统便进入存储器读写状态。在程序存储器读写状态,显示器左边 4 位数字是内存单元的地址,右边 2 位是该单元的内容。光标(闪动的数字)表示等待修改(写入)的数字。程序存储器读写状态是键盘监控的一种重要状态,这时多数命令键都具有待命状态 1

15、不同的功能。请用户注意:程序存储读写状态的明显标志是:显示 6 位数字,光标在第五位或第六位闪动。在程序存储器读写状态,名功能键的功能用以下状态表示。使用 LS 或 NX 键可以读出上一个或下一个存储单元,同时光标自动移动到第五位。持续按 LS 或 NX 键在 1 秒以上,实验系统便开始对内存进行向上或向下扫描,依次显示各单元地址及内容,可以快速检查某一内存区的内容,或快速移动到要检查的单元,从而简化了操作。按 MON 键,可使实验系统退出存储器读写状态,返回待命状态。下面举例说明操作规程:单片机原理及应用实验讲义9按键显示说明MONTV40MEA 8NX1 2LSMONP.P.00000XX

16、0000AX0000A80001XX0001120000A8P.待命状态 0。在待命状态 0,按 TV/ME 键,TV 有效进入屏幕系统,显示器全暗键入数字 4,退出 TV 态,返回 P.键入数字 0,进入待命状态 1。待命状态 1,按 ME 键,进入存储器读写状态,显示 0000H 单元的内容第五位数字闪动,表示此位可更改。按数字 A,对 0000H 进行写入,光标移到第六位。按数字 8,第六位被更改,光标移回第五位。按 NX 键,读出下一个单元 0001H.输入数字 12,按 1 键,第五位被更改,光标重新移到第六位。4.存储器的读写、特殊功能寄存器检查、片内存储器的读写、特殊功能寄存器检

17、查、片内 RAM 内读写命令内读写命令RG,NX,LX 键:键:对寄存及部分特殊功能寄存器读出,采用 1 位十六进制作为寄存器代码,片内 RAM、特殊功能寄存器用 2 位地址表示。单片机原理及应用实验讲义10代号存储器代号存储器代号存储器0R0A0P21R100 7F8032 片内 RAMA8IE2R280P0B0P33R381SPB8IP4R482DPLD0PSW5R583DPHE0ACC6R687PCONF0B7R788TCON8DPL89TMOD9DPH8ATL0AACC8BTH0BB8CTL1CPSW8DTH1DSP90P1EPCL98SCONFPCH99SBUF1.寄存器读写状态的标

18、志是:显示器上显示 3 个数字,左边第一位数字代表寄存器的代号,右边的 2 位数字代表该寄存器的内容。光标处于显示器的第 5 位到第 6位。2.若要对存储器的内容进行改写,可按相应的数字键,光标处于的数字即被更换,而光标随即往右移一位(若到了最右端,又重新回到起始位) 。3.特殊功能寄存器检查状态标志是:显示器上显示 4 个数字,左边第一位、第二位数字代表寄存器地址,右边的 2 位数字表示该寄存器的内容,中间两位是空格,光标在第五位。4.片内 RAM 区读写状态是:显示器上显示四个数字,左边两位是 RAM 区地址,右边两位是该地址的内容,中间两是空格。光标处于第 5 位与第 6 位之间。若要对

19、 RAM 区的内容进行改写,可按所需的数字键,光标所处的数字即被更换。单片机原理及应用实验讲义11按 NX 或 LS 键,可查看或改写下一或上一单元 RAM 区(按地址顺序排列)的内容。持续按 LS 或 NX 键的时间在 1 秒以上时,可实现块速查找。 按 MON 键,可以从寄存器、RAM 区读写状态返回待命状态 0。下面举例说明操作过程:按键 显 示说 明 MON 0RG/FS1 2NXMON7 FRG/FS1 2NX3 4 P.0001P.7F7F7F8080XX12XXXX12XX34待命状态 0。要检查 R0 寄存器,数字 0 是它的代号按 RG 键立即显示 R0 的内容,进入寄存器读

20、写状态。按数字键,光标移动,更改寄存器 R0 的内容。按 NX 键,自动读写出下一个寄存器,它的代号是 1,光标自动移动至第五位。返回待命状态。送入 RAM 区地址。按 RG 键,进入寄存器读写状态,显示以7F 为地址的内容 XX,光标在第五位。按数字键,7F 为地址的内容被更改,光标回到第五位。按 NX 键,自动读出下一地址内容,地址80 为特殊功能寄存器。按数字键,寄存器内容更改5.外部数据存储器、内部外部数据存储器、内部 RAM 读写命令读写命令 RW、NX、LS 键键用 RW 键可以对片外数据存储器、口或和、扩展的外部 8155RAM 的 256 个字节的检单片机原理及应用实验讲义12

21、查(读出)或更改(写入) 。对内部 RAM 读写,一般应先按 MON,使实验系统进入待命状态 0。然后输入所要访问的内部 RAM 的地址,实验系统便进入读写状态。a.外部数据存储器读写的状态标志是:显示器上显示 6 个数字,左边 4 位数字是存储单元地址,右边 2 位是该单元的内容,光标在第五位与第六位之间,表示等待修改单元内容。b.内部 RAM 读写的状态标志是:显示器上显示 4 个数字,左边 2 位数字是 RAM单元地址,右边 2 位是该单元的内容,光标在第五位与第六位之间,表示等待修改单元内容,中间 2 位是空格。下面举例说明操作过程:按键 显 示 说 明 单片机原理及应用实验讲义13

22、MON RW/IS 1 0 0 RW/IS 1 2 NX MON A RW/IS 12 NX P. P 1 0 0 1 0 0 0 1 0 0 0 1 0 0 1 P A A 0 A 0 A 1 X X 1 2 XXXX1 2 X X 待命状态 0。 待命状态 0,按 RW/IS 键无效。 输入 100,进入待命状态,第四位 0 可省略,但第三位 0 不能省略。 按 RW/IS 键,显示 1000H 数据单元内容,第五位光标闪动。 按 1 2 键,将内容写入 1000H 数据单元。 按 NX 键,读出下一个单元 1001H,光标重新移到第五位。返回待命状态 0。送入数字 A,进入待命状态 1。

23、RW/IS 键有效,未送入的数字被认为是0,显示 8032 RAM A0H 内容。按数字键 12,A0H 地址单元的内容被更改。按 NX 键,自动读出下一单元内容。 按 NX 或 LS 键,可查访更改下一个或上一个单元的内容。持续按 LS 或 NX 键的时间在 1 秒以上,可实现快速查找数据或 RAM 及口的内容。按 MON 键,可使实验系统返回待命状态 0。在 5103S 上 8155 作为外部 8 位地址的数据 RAM,地址为 00HFFH,I/O 口地址。6.插入和删除命令插入和删除命令IS、DL 键键这两个命令的功能是在调试机器码程序时,在存储程序的读写存储单元中插入或删除单片机原理及

24、应用实验讲义14某些指令或数据,而不必重新装整个程序,IS 和 DL 的作用是互补的,对用户极为方便。IS 和 DL 键仅对存储器读写状态有效,在其它状态,则具有其他功能。在存储器读写状态按 IS 键,将使从现行地址开始到 XFFFH 之间,所有单元的内容都向下移动一个字节,XFFFH 单元内容被 XFFEH 单元内容所代替,而 XFFFH 单元原来的内容将溢出而丢失,每按一次 IS 键,即整个存储区(移动区末地址为 XFFFH)移动一个字节但显示器上的地址不受影响,只不过显示数据的显示器这时应显示为 00,自第一次按IS 键后,紧跟着不管以后按多少次 IS 键,显示器都不受影响,但数据移动的

25、字节数和按IS 键的次数一致,也和被清零的单元一致。为了缩小插入,删除的影响范围,做到快速工作,本实验系统设定移动范围划分为8 个区域: 0000H1FFFH 2000H3FFFH 4000H5FFFH 6000H7FFFH 8000H9FFFH A000HBFFFH C000HDFFFH E000HFFFFH例:在 0000H1FFFH 中插入、删除,不影响 2000H 以上单元;在 6000H7FFFH 中插入删除,不影响上下区单元地内容。在 F2 态情况下:即输入数字后按 F2,则显示器上显示的内容为末址。例:若规定到 0FFFH,则插入、删除时不影响 1000H 以上单元内容,这对修改

26、程序带来极大的方便。下面举例说明 IS 键的操作过程:若源程序 0010H 后的内容为 10 11 12 13,1FFFH 后的内容为 FE FF 00 01。我们要求在 0010 后插入 AA,BB 两字节,也就是要把 0010H 单元后的内容后移两个字节,以便装入这两字节内容,其操作如下:按 键显 示说 明单片机原理及应用实验讲义15MON0011MEP.0011001111待命状态 0.送入地址 0011H。送入存储器读写状态。然后在 0011H 按两次 IS 键,将 0011H 和 0012H 两单元清零,原 0011H 单元内容往后移动,如下所示:未按 IS 时第一次按 IS 时第二

27、次按 IS 时显示0010 100010 100010 100011 110011 000011 000012 120012 110012 000013 130013 120013 110014 140014 130014 12现在便可向 0011H 和 0012H 单元,装入 AA 和 BB 两字节了。删除命令键 DLDL 删除命令键的作用与 IS 键相似,只是内存中数据块移动方向与 IS 键相反。IS 键是增址移动,DL 键是减址移动。每按一次 DL 键,便从现行地址到 XFFFH 间所以存储的内容减址移动一字节,现行地址单元的内容被现行地址+1 单元的内容所代替,而 XFFFH单元被自动

28、补零。同样可用 DL 键删除 0011H 和 0012H 单元的内容,操作如下:未按 DL 时第一次按 DL 时第二次按 DL 时显示0010 100010 100010 100011 AA0011 BB0011 110012 BB0012 110012 120013 110013 120013 130014 120014 130014 14由上所述,IS 和 DL 命令键,对内存是有影响的,所以操作时应注意,不要随意按。如果误按了一次 IS 键,则应立即按一次 DL 键(不要持续按),就可以补救,但原来在末址单元的数据被丢失了,这点请注意!反之,如果错按了一次 DL 键,则应立即按一次 IS

29、 键,单片机原理及应用实验讲义16再将原来的内容装入,现场就恢复了。7.执行程序命令执行程序命令EX 键键 执行键 EX 在待命 0,待命状态 1 和存储器写状态时有效。在待命状态 0 显示一个闪动“P.”按 EX 键,实验系统将按照用户 0000H 的地址开始执行程序;显示器显示“”执行标记。在待命状态 1(送入数字后的状态,数字后的 0 可省略) ,则按显示器上地址执行程序;在待命写状态,按显示器的现行地址执行程序。在其它状态,EX 键无效。用 EX 键执行用户程序,在程序中遇到断点时会停下来,并保护所有的寄存器,显示断点地址和该单元内容,并返回待命状态 1。这时 EX 键作为断点运行键。

30、 例 1:输入 FFC1,再按 EX 键,则执行“8”字循环程序。例 2:把上例中的“8”字循环程序移到以 0000H 为首址的内存:先在待命状态 0,输入源首址 FFC1H,后按 F1 标志键,再输入源末址 FFD2H,接着按 F2 标志键,再输入目标首址 0000H,然后按 MOVE 键,则程序已移到以 0000H 为首址的内存,并返回待命状态0。按 EX 键,LED 上显示“8”字循环。8.单步执行键单步执行键STEP 键键单步执行键在待命状态 0,待命状态 1 和存储器读写状态时有效.在待命状态 1,则按显示器上的地址单步执行;在存储器读写状态,按现行地址执行。按 STEP 键,实验系

31、统将依据上述三种情况,执行一条用户指令,续而显示 PC 和它的内容,进入待命状态 1,等待下一个命令。以下举例说明:(也可以“8”字循环为例。)2000 E4 START: CLR A2001 1120 START1: ACALL DELAY2003 80FC SJMP START12020 7A02 DELAY: MOV R2,#02H2022 DAFE DELAY1: DJNZ DELAY12024 04 INC A2025 22 RET 持续按单步键 1 秒以上,实验系统就进入跟踪执行状态,以每分钟 500 条指令的速度执行用户程序,同时显示程序的执行地址和此地址单元中的内容,因此可以监

32、视程序的运行路线,在松开按键时,便立即停止跟踪,此时显示器前四位为中止时的 PC 值,后两位为 PC 值所示地址的内容,并返回待命状态 1。查看累加器 A 的内容可得到循环的次数,这对检查延时循环程序特别有效。单片机原理及应用实验讲义17 按 ME 键,便进入存储器读写状态。按 MON 键,返回到待命状态 0。单步命令不会影响已设置的断点。9.全速断点运行全速断点运行FV 键键本机提供了断点方式运行 ROM 中的程序,为用户提供了检测用户 CPU 定时响应中断的速度或定时精度提供了方便,全速断点运行方式不适合于运行用户样机内 EPROM 中的程序,操作方法为:先送入断点地址,按下设置断点键 F

33、1,再按 FV 键,延时在这里就看不出来了,因为是全速运行,遇到断点停下来。运行的操作规程如下:按键显 示说 明RESET0 0 0 FF10 0 0 0FVMONP.000F00000000P.XX返回监控。输入断点地址。F1 标志。输入执行首址。按断点运行命令键。 遇见断点后可以再设断点,再按下FV;也可以返回监控测试现场,单步运行用户程序。这样几种运行方式交叉使用,加快程序的调试速度,若断点设置不正确或用户系统硬件、软件有故障,除按复位键外,其它键不会使实验系统返回键控,复位后,还会保持用户8032 RAM现场和I/O扩展口现场,但设置断点处的原内容被破坏,用户需予以恢复。例3:在例2中

34、000FH设断点,执行全速断点运行,操作如下:在待命状态0,输入000F再按F1标志键,然后输入执行首址0(后三个0可省) ,再按FV键,则程序运行到000FH地址停下。并显示000FH及该单元内容“23”,说明000FH以上程序正确无误。10. 计算机对转移偏移量计算机对转移偏移量FS 键键 单片机原理及应用实验讲义18FS 键命令的功能是用来计算 MCS51 指令系统中相对转移指令的操作数偏移量。FS 命令只在存储器读写状态有效。先在需要填入偏移量的单元上填入所要转移的(目标)地址的低字节,然后按 FS 键,该单元的内容立即转变成所要求的偏转量,也就是自动将偏移量填入,这时实验系统仍处于存

35、储器读写状态,用户可直接继续往下送入程序。下列举例说明操作过程:0000 80FE SJMP 0000H按键显 示说 明MON0ME8 0NX/00FSP.00000XX0000800001000001FE待命状态 0按 ME输入第一个机器码送入转移目标地址的低位字节 00按 FS,自动填入偏移量FE使用 FS 命令键进行偏移量的计算,因注意跳转“出界”的问题。当偏移量计算结果大7FH(+127)说明是往回跳转(减址),否则是往前跳转(增址) 。 第二章第二章 MCS-51 系列单片机实验系列单片机实验单片机原理及应用实验讲义19实验一实验一 单片机实验箱的操作使用单片机实验箱的操作使用一、一

36、、 实验目的实验目的1 掌握实验系统使用的基本方法。2 学习最基本的程序设计方法和手工汇编方法。二、二、 实验内容实验内容1 学习 DICE-5103H 单片机实验系统的基本操作使用。2 调试清零程序:将外部数据存储器 2000H-20FFH 单元的内容清零。三、三、 预习要求预习要求1 仔细阅读实验讲义第一章中的有关内容。2 看懂清零程序中每一条指令的作用,并学会手工汇编每一条指令。3 分析判断出各条指令执行后的结果,并将你的判断写在预习报告中。四、四、 实验要求实验要求1 仔细阅读实验讲义第一章中的有关内容并进行实际操作。2 用全速运行方式运行清零程序,检查 2000H-20FFH 单元中

37、执行程序前后的内容变化。3 认真填写实验报告(参考讲义附录) 。实验步骤中,要求简要写出使用实验箱进行实验的过程。五、五、 实验步骤实验步骤1 开启实验系统(1)打开实验箱;(2)取出电源线并插好;(3)打开实验箱电源;(4)实验箱显示器最左端显示一个闪动的“P ”提示符,表示实验系统处于初始化状态,等待用户操作。2 实验系统的基本操作练习参考实验讲义第一章的内容,进行实验系统的基本操作练习。学习:(1)程序存储器的读写;(2)片内 RAM、特殊功能寄存器的读写;(3)片外 RAM 的读写;单片机原理及应用实验讲义20(4)在存储器单元中插入和删除数据;(5)全速方式运行程序;(6)单步方式运

38、行程序;(7)断点方式运行程序;(8)计算相对转移偏移量。3 运行清零程序(1)将下面清零程序的机器码写入 0640H 单元开始的程序存储器中。 ORG 0640H0640 7800 SE01: MOV R0,#00H 0642 902000 MOV DPTR,#2000H0645 E4 LOO1:CLR A 0646 F0 MOVX DPTR,A 0647 A3 INC DPTR 0648 08INC R0 0649 B800F9 CJNE R0,#00H,LOO1064C 80FE LOOP:SJMP LOOP END(2)在片外 RAM 2000H-20FFH 单元中写入一些不为零的数据

39、,做好纪录。(1FFFH)= ;(2000H)= ;(2001H)= ;(20FEH)= ;(20FFH)= ;(2100H)= 。(3)用全速运行方式运行清零程序,检查程序运行后 2000H-20FFH 单元中内容的变化情况,并做好纪录。(1FFFH)= ;(2000H)= ;(2001H)= ;(20FEH)= ;(20FFH)= ;(2100H)= 。六、六、 思考题思考题假如要把 2000H-20FFH 单元中的内容改成 FFH,应如何修改程序?单片机原理及应用实验讲义21实验二实验二 拆字拆字实验实验一、一、 实验目的实验目的1 掌握汇编语言程序设计。2 掌握手工汇编和程序调试的方法

40、。二、二、 实验内容实验内容编写并调试程序:把外部数据存储器 2000H 的高位(高半字节)和低位(低半字节)拆开,高位送 2001H 单元的低位,低位送 2002H 单元的低位。2001H、2002H 单元的高半字节清零。三、三、 预习要求预习要求1 访问外部数据存储器采用什么指令?将其写在预习报告上。2 编写并汇编拆字程序。3 想出一种以上用于调试自己程序的调试方法,并将其写在预习报告中。四、四、 实验要求实验要求1 调试自己编写的拼字程序。2 认真填写实验报告。五、五、 实验步骤实验步骤1 开启实验系统参考实验一。2 程序的输入将预习时汇编好的拆字程序的机器码输入到程序存储器中。3 调试

41、程序调试程序就是通过运行程序来判断自己编写的程序是否正确,若不正确则找出错误加以修改,直到正确为止。在实验一中学过的全速执行、单步执行、设置断点后全速运行等是调试程序的基本手段,调试程序时,同学们应当充分发挥自己的聪明才智,创造性地、灵活地运用这些手段来调好自己的程序。下面仅仅给出用全速执行调试程序的方法,同学们还可以用其他的方法来调试。(1)在外部数据存储器 2000H、2001H、2002H 中写入适当的数据,并将其记录下来(注意:这些值是 16 进制的,数值后应加上后缀 H):(2000H)= ;(2001H)= ;(2002H)= 。(2)输入源程序首地址,再按 EX 键,则执行拆字程

42、序。运行完程序时,查看外部数据存单片机原理及应用实验讲义22储器 2000H、2001H、2002H 单元中的数据,并将其记录下来:(2000H)= ;(2001H)= ;(2002H)= 。分析此数据,判断自己编写的程序是否正确。如果程序不正确,分析错在哪里,并修改程序后再进行调试。(3)修改存储单元的内容,再次运行源程序。把外部数据存储器 2000H 单元的内容改为 A5H,运行完程序时,将2000H、2001H、2002H 单元中的数据记录下来:(2000H)= ;(2001H)= ;(2002H)= 。(4)用其他方法调试程序用自己想出的调试方法调试程序,将调试过程写在实验报告中。六、

43、六、 思考题思考题80C51 指令集中有无“程序结束”指令?上机调试时你是怎样实现“程序结束”功能?单片机原理及应用实验讲义23实验三实验三 拼字拼字实验实验一、一、 实验目的实验目的1 掌握汇编语言程序设计和调试方法。2 学习 Win51 仿真软件的基本使用方法。二、二、 实验内容实验内容编写并调试程序:把外部数据存储器 2000H、2001H 单元的低位(即低半字节)合并成一个字节(2000H、2001H 单元的低位分别位于低半字节和高半字节) ,然后将其送入2002H 单元。三、三、 预习要求预习要求1 我们学过的“原地踏步”指令是怎样的?将其写在预习报告上;2 编写拼字程序;3 想出一

44、种以上用于调试自己程序的调试方法,并将其写在预习报告中。四、四、 实验要求实验要求4 用 Win51 仿真软件调试自己编写的拼字程序;5 认真填写实验报告。五、五、 实验步骤实验步骤1 开启实验系统(1)打开实验箱,取出电源线并插好;取出串口电缆线,将串口插头插在计算机后面串口上,另一头插在实验箱右上方标有“CZ1”的九孔插座上;(2)打开实验箱电源;(3)打开计算机电源;2 Win51 仿真软件启动和联机双击桌面上 Win51 仿真软件的图标,屏幕显示 Win51 仿真软件的源文件窗口,中间显示版本信息,此时右下方状态栏显示“脱机就绪”。单击屏幕中间的“OK”按钮,状态栏中由“脱机就绪”变成

45、“联机就绪” ,说明联机成功。若对话框提示:“单片机未连上” ,此时应依次单击菜单栏:“O 设置、P 通讯口设定、COM1”确定,将通讯口设为 COM1,然后退出 Win51 仿真软件,再重新启动 Win51 仿真软件进行联机。3 汇编语言源程序的输入单击:“F 文件、N 建立新文件” ,将预习时编写的拼字程序输入,输入程序时,有时单片机原理及应用实验讲义24难免会输错一些字母、数字,甚至输漏了一些指令。很常见的错误是把数字数字 0 输成了字母字母O,如把 R0 输成 RO,P0 输成 PO,#0FH 输成#OFH,所以输完程序后一定要仔细核对一遍。程序的开头要有一条伪指令 ORG,末尾要有一

46、条伪指令 END。 (注意:(注意:END 后按回后按回车即可,不能有空行,否则在编译时将提示车即可,不能有空行,否则在编译时将提示 END 处出错误。处出错误。 )输入完成后将程序统一保存在 D:stu 文件夹中,保存时用.ASM 为扩展名。接下去我们先根据要调试的程序设置数据类型(如本程序中可单击:“O 设置、D 数据类型选择、RAMDATA”确定,将数据类型设置为 RAMDATA) ,再对汇编语言程序进行编译,编译的主要作用是将汇编语言转换成单片机能够认识和执行的用二进制数表示的机器语言。如果前面输入程序时输错了一些字符,则编译后,屏幕上会给出出错的提示,如显示“编译:个错误编译:个错误

47、” ,错误信息栏中显示“ERROR#1,LINE#9” ,这是告诉你程序中有 1 个地方字符有错,而且错误位于程序中第 9 行。这时要修改错误后再重新编译,直到屏幕最上显示“编译:个错误编译:个错误”为止。4 调试程序*调试程序的基本手段调试程序的基本手段调试软件 Win51 提供了多种运行程序的方式或调试程序的手段,常用的有全速运行、单步执行、跟踪执行和设置断点运行等几种。(1)全速运行全速执行,单片机是一条接一条连续不断地执行指令。在全速运行状态下,单片机是连续不断地在执行指令,由于执行一条指令所需要的时间只有几微秒,所以我们是看不出单片机正在执行哪一条指令的。若想中止程序运行,可点击一下

48、工具栏上的“停止执行”按钮。对于调试顺序结构和分支结构的程序,比如算术运算程序,全速运行方式效率较高,可以很快将全部程序运行一遍,并能立刻得到程序的运行结果。但是采用这种调试手段,不便于及时了解每一条指令的运行情况。(2)单步执行单步执行程序是每次只执行一条指令就停下来,此时可以观察窗口中寄存器和变量值的变化情况。因此,采用单步运行方式,不仅可以及时地了解程序的运行状态,还能很好地控制程序的运行过程。但是,单步运行方式效率较低,尤其是对于调试长程序和循环程序。程序的单步运行方式与连续运行方式具有很强的互补性。(3)跟踪执行单步执行和跟踪执行都是每次执行一条指令。它们的区别是:遇到子程序时,跟踪

49、方单片机原理及应用实验讲义25式能进入子程序,而单步执行则不能跟踪进子程序。以实验四的程序为例,若使用跟踪执行,则执行调用子程序的指令 LCALL DELAY 后,能进入 DELAY 子程序,而单步执行则不能进入。同学们可以分别使用跟踪执行和单步执行,观察在执行调用子程序的指令 LCALL DELAY 后有什么不同。(4)断点的设置和清除要在某一条指令上设置断点,方法是:用鼠标点击该指令,使光标落在该指令上,然后选“调试设置断点”命令,则该指令处出现红色亮条,表示在该指令处设置了断点。若选“调试清除断点”命令,则清除已设置的断点。设置断点后全速运行程序也是调试程序的一种常用手段,全速运行时遇到

50、用户设置的断点,程序会停在断点处,这时可通过观察寄存器和变量的值,判断自己编写的程序是否有错,错在哪里。调试程序时,同学们应当灵活地运用上述各种基本手段,才能又快又好地调好自己的程序。下面给出单步执行调试程序的方法,同学们还可以用其他的方法来调试。(1)查看外部数据存储器 2000H、2001H、2002H 单元的内容 在屏幕左下方随机存储器数据窗口中单击鼠标后按回车,出现一对话框,在其中输入地址 2000、确定,就列出了从地址 2000H 开始的外部数据存储器中的内容,查看存储器窗口中 2000H、2001H、2002H 单元中的数据,将其记录下来(注意:这些值是 16 进制的,数值后应加上

51、后缀 H):(2000H)= ;(2001H)= ;(2002H)= 。(2)单步执行程序在具栏上选“调试单步执行”命令,从第一条指令开始单步运行程序,每执行一条指令后都观察寄存器窗口中 ACC、B、DPTR 中数值的变化,同时注意观察随机存储器数据窗口中 2000H、2001H、2002H 单元中数值的变化。运行完程序时,将2000H、2001H、2002H 单元中的数据记录下来:(2000H)= ;(2001H)= ;(2002H)= 。分析此数据,判断自己编写的程序是否正确。如果程序不正确,分析错在哪里,并打开程序加以修改后再进行调试。(3)修改存储单元的内容重新打开程序进行编译,把外部

52、数据存储器 2000H、2001H 单元的内容分别改为单片机原理及应用实验讲义26AAH、55H,再从第一条指令开始单步运行程序,观察寄存器窗口中 ACC、B、DPTR 中数值的变化,同时注意 2000H、2001H、2002H 单元中数值的变化。运行完程序时,将2000H、2001H、2002H 单元中的数据记录下来:(2000H)= ;(2001H)= ;(2002H)= 。(4)用其他方法调试程序用自己想出的调试方法调试程序,将调试过程写在实验报告中。单片机原理及应用实验讲义27实验四实验四 P1 口实验口实验(一一)一、一、 实验目的实验目的1 学习 P1 口的输出方法。2 学习延时子

53、程序的编写和使用。二、二、 实验内容实验内容P1 口做输出口,接 8 个发光二极管(LED) ,编写程序,使 8 个 LED 循环点亮。三、三、 预习要求预习要求1 根据图,要使 P1.0 所接的发光二极管 L1 亮可以用什么指令?将其写在预习报告中。2 编写本实验的程序。3 编写思考题中的程序。四、四、 实验要求实验要求1 调试自己编写的程序。2 认真填写实验报告。五、五、 实验说明实验说明1 流水灯是一种常见的装饰,常见于舞台等场合,最简单的流水灯就是各个灯依次发光。本实验实际上就是用单片机来实现流水灯。图中,P1 口的每一位都接有一个 LED,要实现流水灯功能,可以先让接在 P1.0 上

54、的发光二极管(L1)点亮,亮一秒后熄灭,然后再点亮接在 P1.1 上的发光二极管(L2) ,亮一秒后熄灭,如此下去 8 个 LED 依次点亮一遍后又从头开始。2 延时的实现。本实验中每个灯点亮后要持续一秒钟,这可以用延时子程序来实现,即点亮一个 LED后就调用延时一秒的子程序。下面给出一个延时 0.1 秒的子程序的例子。晶振为 6MHZ 时,一个机器周期为(12/6)s 即 2s。现要写一个延时 0.1s 的程序。可大致写为如下: MOVR7,#200 (1)DE1: MOVR6,#X (2)单片机原理及应用实验讲义28DE2: DJNZR6,DE2 (3) DJNZR7,DE1 (4)上面的

55、 MOV 指令需要一个机器周期,DJNZ 指令需要两个机器周期。现求出 X 值: ( X 4 + 2 + 4)200 + 2 = 0.110 6(s)指令(3) (2)(4)(1)所需时间需时间需时间 需时间求出 X=124。代入上式可知实际延时约 0.100402S,很精确了。这个程序利用 DJNZ 构成双重循环,实现了 0.1 秒的延时,要达到 1 秒的延时,一般需要三重循环。3 L1L8 为相应发光二极管驱动信号输入端,该输入端为低电平“0”时发光二极管点亮。六、六、 实验接线图及连线方法实验接线图及连线方法P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7L1L2L3L4

56、L5L6L7L8N1N8LED1R1R2R3R4R5R6R7R88032VCCLED8图实验四接线图连线方法:P1.0P1.7 接发光二极管 L1L8。注意!注意!在任何情况下禁止带电插拔任何接插件在任何情况下禁止带电插拔任何接插件七、七、 思考题思考题1 修改程序,使 8 个 LED 闪亮移位方向改变。2 修改程序,使 8 个 LED 闪烁点亮。单片机原理及应用实验讲义29实验五实验五 P1 口实验口实验(二二)一、一、 实验目的实验目的1 学习 P1 口既作为输入,又作为输出的使用方法。2 学习数据输入、输出程序的设计方法。二、二、 实验内容实验内容将拨动开关 K1K4 分别与 P1.0P

57、1.3 相接,在 P1.4P1.7 上接 4 个 LED(L1L4) ,编写程序,读取开关 K1K4 的状态,将此状态在发光二极管 L1L4 上显示出来。三、三、 预习要求预习要求1 要将 P1 口作为输入口,要先向 P1 口锁存器写入什么?用什么指令完成?将其写在预习报告中。2 编写本实验的程序。3 回答思考题中的问题,并编写相应的程序。四、四、 实验要求实验要求1 调试自己编写的程序。2 运行程序后,将 K1、K3 向下拨,K2、K4 向上拨,记录此时 L1L4 的亮灭状态: L4( ) ,L3( ) ,L2( ) ,L1( )3 认真填写实验报告。五、五、 实验说明实验说明1 P1 口为

58、准双向口,P1 的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1” ,该位才能作为输入。51 单片机中所有口锁存器在复位时均置为“1” ,如果后来在口锁存器写入过“0” ,在需要时就写入一个“1”使它再成为一个输入线。2 K1K4 为逻辑电平开关,向上拨相应插孔输出高电平“” ,向下拨相应插孔输出低电平 “” 。六、六、 实验接线图及连线方法实验接线图及连线方法单片机原理及应用实验讲义30图实验五接线图连线方法:P1.0P1.3 接拨动开关 K1K4;P1.4P1.7 接发光二极管 L1L4。注意!注意!在任何情况下禁止带电插拔任何接插件。在任何情况下禁止带电

59、插拔任何接插件。七、七、 思考题思考题若在读 P1 口引脚前将 P1.0P1.3 设为低电平,会出现什么现象?单片机原理及应用实验讲义31实验六实验六 按键实验按键实验一、一、 实验目的实验目的1 学习键盘的使用方法,学习软件去抖动的方法。2 进一步掌握延时子程序的编写方法。二、二、 实验内容实验内容将拨动开关 K1 与 P3.2 相接;实验箱上 P1 口做输出口,P1.0P1.7 分别与 8 个发光二极管 L1L8 相连。编写程序实现如下功能:把 P1 口当作按键计数器,程序刚运行时L1L8 全亮,表示计数器的初始值为 0,即二进制数的 0000 0000B;当“向下-向上”拨动一次开关 K

60、1 时,计数器的值加 1,L1 灭,表示二进制数 0000 0001B;第二次拨动开关K1 时,计数器的值又加 1,L2 灭,表示二进制数 0000 0010B,依此类推。注意,K1“向下-向上”拨动一次,计数器的值只能增加 1。三、三、 预习要求预习要求1 按键抖动的时间和按键稳定闭合时间各由什么因素决定?各为多长时间? 2 怎样用软件消除抖动,使 K1“向下-向上”拨动次,计数器的值只增加?3 编写本实验的程序。四、四、 实验要求实验要求1 调试自己编写的程序;2 运行程序后,将 K1“向下-向上”拨动 3 次后,记录此时 P1 口的计数值:_B3 在程序中去掉消除抖动的语句,观察没有这些

温馨提示

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

评论

0/150

提交评论