单片机实验指导非官方.docx
- 文档编号:10198755
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:29
- 大小:24.61KB
单片机实验指导非官方.docx
《单片机实验指导非官方.docx》由会员分享,可在线阅读,更多相关《单片机实验指导非官方.docx(29页珍藏版)》请在冰豆网上搜索。
单片机实验指导非官方
单片机原理与应用实验指导书
田军营李忠利
河南科技大学机电工程学院
目录
第一部分实验系统简介
一、实验系统的结构组成1
二、学生实验进行介绍1
三、MCS51单片机实验电路板的若干说明2
四、使用软件举例说明2
第二部分具体实验说明并指导
实验一软件设计与调试5
实验二时钟实验9
实验三模数和数模转换实验11
第三部分学生实验报告
实验一软件设计与调试(2学时)16
实验二时钟实验(2学时)18
实验三模数和数模转换实验(2学时)20
第四部分附录
第一部分实验系统简介
本部分的主要内容包括实验系统包含的主要设备,它们在实验中可能或必须的连接方式,学生实验的进行方式等。
该部分内容是学生实验前必读的内容。
在学生进行第一个实验时,实验教师还将对该部分内容进行适当的讲解和对学生进行询问测试。
一、实验系统的结构组成
如图1.1所示,实验系统的硬件由一条串行通信线将一台个人计算机和一块MCS51单片机实验电路板连接起来共同构成。
学生可以在个人计算机上编辑和调试实验程序,之后,利用各自的串行口,通过串行通信线,将最终的学生实验程序目标代码下载到MCS51单片机实验电路板上运行,以产生实验现象和实验结果。
对应于上述硬件的实验软件主要包含两个模块:
实验程序的编辑编译调试模块和下载模块。
实验程序的编辑编译调试模块主要用于学生实验程序的编辑、编译和调试,下载模块主要用于将学生实验程序在编辑编译过程中生成的单片机十六进制目标代码文件(.HEX)下载到MCS51单片机实验电路板上,以便运行和学生观察实验现象和实验结果。
具体可用于实验的实验软件有多种选择,本实验指导书建议:
⒈实验程序的编辑编译调试模块可在下面所列软件选择其一:
*Lope;
*C51;
*Proteus平台以及它携带的MCS51系列单片机的编辑编译调试工具。
⒉下载模块选择Easy51Pro即可满足要求。
二、学生实验进行介绍
在图1.1的硬件系统上,学生可以按图1.2指示的方法对实验系统进行使用并完成具体实验。
第一步,学生应首先检查MCS51单片机实验电路板上的电源是否断开,这样做的目的在于在进行实验线路的连接的过程中保证MCS51单片机实验电路板处于无电状态,避免MCS51单片机实验电路板的损坏。
在确认MCS51单片机实验电路板的电源被断开后,学生应根据实验的具体要求完成实验线路的连接,而后仔细检查实验线路,并报实验指导教师验收后接通MCS51单片机实验电路板电源。
第二步,学生在实验系统上首先要进行实验程序的编辑,编辑好的实验程序必须通过编译,即实验程序在编译过程中无任何错误时,系统才能生成实验程序的单片机十六进制目标代码文件,此时学生才能进行实验程序的调试在实验程序调试过程中若发现实验程序存在错误,需要对实验程序源代码进行再编辑修改,那么,修改后的源代码同样需要经编译通过后才能进行调试。
一个编译后通过的实验程序所对应的单片机十六进制目标代码文件,不仅可以用于调试,也可以被下载到MCS51单片机实验电路板上运行,只不过,一个未经调试的程序如果包含错误,它对应的单片机十六进制目标代码文件在MCS51单片机实验电路板上的运行结果无法预测。
三、MCS51单片机实验电路板的若干说明
MCS51单片机实验电路板所包含的基本单元如图1.3所示。
这些单元中的电子元器件除电源等对学生理解实验意义影响不大的线路已被事先连好外,其它与学生实验密切关联的信号、数据和控制等线未作任何处理,由学生根据具体实验的需要完成相应连接。
在具体连接手段上,可以使用单线一条条连接,也可以在搞清楚每条线的意义情况下用排线连接。
四、使用软件举例说明
使用软件以Lope为例进行说明。
当Lope进入后,首先出现图1.4所示的界面。
对于本实验指导书所涉及的实验,界面所示的条件即满足要求,按“确认”按钮进入系统。
Lope系统的功能菜单见图1.6。
学生可以轻易地使用“文件”菜单的功能新建、存储或另存自己的实验源代码文件(.asm),使用“编译”菜单的功能完成对已编辑好的源代码文件进行编译,如果出错,还可以通过“编辑”菜单中提供的功能对源代码文件进行修改、复制等操作。
(参照“学生实验进行介绍”部分内容)当编译成功后,系统将生成源代码文件对应的单片机十六进制目标代码文件,该文件只是将学生实验源代码文件中的.asm后缀改为.hex作为自己的名字而已,编译不成功,该单片机十六进制目标代码文件不能正确生成。
成功编译后生成的单片机十六进制目标代码文件可以通过图1.6所示的下载工具操作下载到MCS51单片机实验电路板上。
具体方法是先利用“擦除器件”功能擦除原来MCS51单片机实验电路板中单片机内的内容,而后通过“打开文件”功能将前面系统生成的单片机十六进制目标代码文件打开,而后再利用“写器件”操作将它的内容写入MCS51单片机实验电路板的单片机中。
写完后,一般单片机程序就开始自动执行。
第二部分具体实验说明并指导
本部分分具体实验指导和学生实验报告两部分内容。
在具体实验指导中,本实验指导书根据具体实验的具体细节给出本实验学生应学习过的课本参考章节和参考内容、实验提示、程序参考等。
在学生实验报告中,主要给出学生实验报告中必须包含的内容。
该部分内容学生可以独立地打印出来,根据具体实验的情况,自行填写相关内容,实验结束一个星期后上交到实验教师处批改存档。
具体实验指导和学生实验报告的相关内容分别由它们内容所在页的页眉指示。
实验一软件设计与调试
一、实验学时:
2学时
二、实验目的:
熟悉和掌握实验系统的使用方法;理解单片机的结构特征和工作原理。
三、实验内容:
1、阅读与理解给定实验程序;
2、熟悉和掌握软件调试的基本方法(编辑,修改,编译,跟踪,下载等);
3、通过跟踪调试熟悉51单片机的内部资源(RAM/寄存器/IO)及单片机的工作原理。
四、实验前要求:
做本实验前要求学生完成课本关于MCS51单片机指令部分和简单汇编语言编程学习。
五、实验参考电路:
本实验可通过参考图2.1、图2.2、图2.3指示的电路来完成,也可以参照附录中给出的MCS51单片机实验电路板的原理图和走线图用其它电路来完成。
图2.1四位独立按键电路图2.28位LED灯电路
图2.3四位独立按键电路和8位LED灯电路对应的电路走线
六、实验程序编写方法
一个可以完整编译并且下载到板子上运行的汇编实验程序必须是一个既符合汇编语言标准,又能根据实验要求完成实际实验硬件控制的程序。
这样的汇编程序必须具备下面结构特征:
ORG0000H;指示从这个ORG指令到下一个ORG指令之间的程序对应的
(JMPSTART)目标代码应存放0000H开始的内存地址中。
┋建议:
使用JMPSTART
ORG0XXXXH;指示保存用户程序的起始地址
(START:
)┋;用户程序,建议使用“START:
”作为用户程序代码起始标识
END
根据本实验的实验目的和实验内容,并鉴于学生已完成MCS51系列单片机指令内容的学习,所以可以考虑按下述方式接线(接线前先检查MCS51单片机实验电路板的电源是否断开):
*由图2.1和图2.3可知,按钮的一端已经与地相连,只需将它的另一端J13的引脚与单片机P0、P1、P2、P3的任意一个中的引脚相连。
单片机的电路原理和连线见图2.4和图2.5。
*由图2.2和图2.3可知,LED灯的一端RP6中的引脚已连接到电源,LED灯的另一端J14的引脚与单片机P0、P1、P2、P3中任意一个没有连线的引脚相连。
*根据前面连线,可以考虑:
图2.1中的KEY1、KEY2、KEY3、KEY4分别同图2.4中的P0.0、P0.1、P0.2、P0.3相连,图2.2中J14的1~8分别同图2.4中的P1.0~P1.7相连。
上述连线显然将P0.0~P0.3作为单片机的输入,当这些位置读入的信号为低电平时说明有按钮按下,否则相反;将P1.0~P1.7作为单片机的输出,当它们的某些位输出0时该位对应的LED灯点亮,否则对应的LED灯点灭。
根据这个特点,可以编写下面实验参考程序进行实验:
ORG0000H第1行
JMPSTART第2行
ORG0100H第3行
START:
MOVA,#0FFH第4行
MOVB,A第5行
DUAN0:
CJNEA,P0,NOEQ第6行
PUSHACC第7行
MOVA,B第8行
MOVP1,A第9行
INCA第10行
LCALLYANSHI第11行
MOVP1,A第12行
MOVB,A第13行
POPACC第14行
AJMPDUAN0第15行
NOEQ:
MOVA,P0第16行
MOVB,A第17行
AJMPDUAN0第18行
YANSHI:
MOVR0,#0A0H第19行
YANSH0:
MOVR1,#0B0H第20行
YANSH1:
DJNZR1,YANSH1第21行
DJNZR0,YANSH0第22行
RET第23行
END第24行
本实验程序的重要覆盖点为:
单片机接口的读/写、子程序的调用,条件指令、运算指令、堆栈操作的运用。
通过本程序的调试,学生基本能够对单片机编程中可能遇到的一些基本问题有所认识。
另外,如果实验时间充裕的话,套用本实验程序的框架,学生同时可以结合课后作业进行实验,以学习和掌握学生自己关心的单片机问题。
参考程序主要说明:
*程序产生的现象是,当实验程序在MCS51单片机实验电路板上运行时,只要按随机按K1~K4四个按键,它们所对应的二进制数即被送到LED灯上显示,如果按键不放,这个数将作为基数,依次加1输出到LED灯上显示,直到按键状况改变。
按键状况改变只是使LED灯的显示内容为以该状况所反映的二进制数为基数重复前面类似操作而已。
*参考程序中堆栈的作用是保留当前的按键状况改变状态。
*延时程序的功能在于LED灯亮的时间满足人眼的观测要求。
七、调试
六中的实验参考程序的调试要求它已通过编译和连接两个操作。
具体操作(参照图2.6、图2.7、图2.8)如下:
*为完整实现编译和连接两个操作,在进入图2.6所示的界面后,请选择“S编译/汇编连接”菜单。
*一旦实验程序编译连接成功,则可参考图2.7给出的菜单进行调试。
注意,如果在调试过程中修改了实验源程序代码,则必须重新编译连接后方可重新调试。
*调试时可以用F8“单步”一次执行一条指令的方式进行,也可用F7“跟踪”进入子程序完成对子程序进行调试。
当将光标放在某个有效的代码行时,利用F4“运行到光标行”将控制程序直接从当前位置运行到指定的光标行位置。
其它功能实验时边讲解边学习。
*在程序调试的过程中,要打开图2.8指示的窗口,以便观察程序运行的中间状态信息。
比如“输入/输出口(P0,P1…)”窗口提供接口P0、P1、P2、P3的内容显示,“特殊功能寄存器窗口(FSR)”窗口则提供A、B等寄存器的内容和状况信息,“堆栈存储器窗口(SP)”窗口提供系统堆栈的工作状况信息等,其它不再赘述。
本实验的参考程序的调试方法作以下提示:
*打开“输入/输出口(P0,P1…)”窗口、“特殊功能寄存器窗口(FSR)”窗口、“堆栈存储器窗口(SP)”窗口;
*第1行到第10行之间的代码可以使用F8“单步”操作并同时观察已打开的窗口进行;
*进入第11行的方法有两种:
①使用F8“单步”操作直接将LCALLYANSHI作为一条指令执行下去;②使用F7“跟踪”进入YANSHI子程序,并研究YANSHI子程序的实现方法;
*在第7行和第14行执行时要密切注意“特殊功能寄存器窗口(FSR)”窗口和“堆栈存储器窗口(SP)”窗口中相关信息发生的变化;
*通过改变“输入/输出口(P0,P1…)”窗口中P0口的信息,观察第6行的执行情况发生了什么改变,从而理解本实验参考程序的功能;
*研究第7行和第14行指令设置的原因。
八、运行
通过调试,当学生高清楚本实验的要求和技巧后,学生可以将实验中生成的十六进制目标代码文件通过图1.6指示的软件下载到MCS51单片机实验电路板上运行,同时观察实验现象,记录并分析实验情况,写实验报告。
实验二时钟实验
一、实验学时:
2学时
二、实验目的:
理解中断概念;学习时钟中断程序的实现方法。
三、实验内容:
1、至少利用定时中断的方式完成一个能说明时钟工作的简单程序;
2、阅读给定的实验硬件原理图和参考程序,并独立做一个与参考程序不同的程序进行实验;
3、完成实验系统的硬件连接。
4、完成调试,掌握定时器的应用技术和中断编程技术。
四、实验前要求:
做本实验前要求学生完成课本中中断和时钟部分内容的学习。
五、实验参考电路:
本实验可通过参考图2.9、图2.10指示的电路来完成,也可以参照附录中给出的MCS51单片机实验电路板的原理图和走线图用其它电路来完成。
六、实验程序编写方法
为验证时钟中断工作,只需将一个接口线连接到一个指示灯上,用终端程序控制它明灭即可。
这样,只需将P1.0连接到一个指示灯,比如LED1上。
根据这个特点,可以编写下面实验参考程序进行实验:
ORG0000H
AJMPMAIN;转主程序
ORG000BH;T0的中断入口
AJMPIT0P;转T0中断处理程序IT0P
;******************************
ORG0100H
MAIN:
MOVSP,#60H;设堆栈指针
MOVTMOD,#01H;设置T0为方式1
ACALLPT0M0;调用子程序PT0M0
HERE:
AJMPHERE;等待中断
PT0M0:
MOVTL0,#0CH;T0置初值
MOVTH0,#0FEH
SETBTR0;启动T0
SETBET0;允许T0中断
SETBEA;CPU开中断
RET
;*********中断服务子程序*******
IT0P:
MOVTL0,#0CH;T0重置初值
MOVTH0,#0FEH
CPLP1.0;P1.0的状态取反
RETI
END
本实验程序的重要覆盖点为:
中断程序的设计和编写、中断程序的初始化、中断程序的应用等。
通过本程序的调试,可以增加学生对一个包含中断实现的单片机系统的理解。
学生实验时只需根据该程序编写一个自己的时钟应用程序即可。
参考程序主要说明:
*程序产生的现象是,LED1灯自动明灭,不停闪烁。
七、调试
参照实验一相关内容即可。
八、运行
通过调试,当学生高清楚本实验的要求和技巧后,学生可以将实验中生成的十六进制目标代码文件通过图1.6指示的软件下载到MCS51单片机实验电路板上运行,同时观察实验现象,记录并分析实验情况,写实验报告。
实验三模数和数模转换实验
一、实验学时:
2学时
二、实验目的:
理解数模和模数的软硬件工作原理和实现方法。
三、实验内容:
1、设计由ADC0809及DAC0832芯片组成的数模模数系统的硬件电路;
2、完成硬件连接和软件编程;
3、完成系统调试。
四、实验前要求:
做本实验前要求学生完成课本中相关的数模和模数转换内容学习。
五、实验参考电路:
本实验可通过参考图2.4、图2.5、图2.9、图2.10、图2.11、图2.12指示的电路来完成,也可以参照附录中给出的MCS51单片机实验电路板的原理图和走线图用其它电路来完成。
六、实验程序编写方法
由图2.11和图2.12可知,ADC0809电路部分与外部连接的部分有J16,信号有RD、WR、CS、INT,即读、写、选择、中断信号;有P22,用于将ADC0809转换后的数据传递出去;有P23,用于选择ADC0809模拟量输入通道;有P24,用于连接模拟量输入,以及用于接采样时钟信号的J37和调整电压J38;DAC0832电路部分与外部连接的部分有J17,用于将转换数据传递给DAC0832,P21提供写和选择信号,模拟信号地J33,调整电压J34,模拟量输出J35,反馈信号J36。
因此,在做数模和模数转换实验时,ADC0809的工作只能选择中断方式。
本实验指导书只给出一种连接方案供学生参考,其它的方法由自己考虑并完成。
*将图2.5中的P0口与图2.10中的J10相连,以便单片机将时钟数据送往8位7段数码管去显示;将图2.5中的P2口的P2.0~P2.3与图2.10中的J11相连,以便单片机将相关数据选通信号送到相关的数码管上。
*将图2.13中J16中RD、WR、CS、INT信号分别与图2.14的RD、WR、P2.4、INT1连接起来,将图2.13中P23与图2.5中的P2口的P2.5~P2.6连接,将P22与图2.5中的P3口连接,将图2.13中P24的AIN0引脚与图2.13中J35相连,将图2.5中的ALE与图2.13中J37相连。
*将图2.13中J17与图2.5中的P1口连接,将图2.13中J33与图2.5中的AGND连接,将图2.13中J34与图2.5中的REF连接。
上述连线显然将P0口向8位7段数码管送欲显示的时钟数据,P2口的P2.0~P2.3向8位7段数码管送数码管选通信号,P2.5~P2.7连接ADC0809的A、B、C通道选择信号,P3口读ADC0809的转换数据,P1口向DAC0832送转换数据。
根据这个特点,可以编写下面实验参考程序进行实验:
AABITP2.5
BBBITP2.6
CCBITP2.7
CSBITP2.4
GDATAEQU45H
ORG0000H
LJMPSTART
ORG0013H
AJMPADPROC
ORG0100H
START:
CLRCC;选择通道0
CLRBB
CLRAA
SETBIT1
SETBEA
SETBEX1
CLRCS
SETBCS
CLRCS
MOVA,#0H
LOOP:
MOVP1,A
ACALLDELAY
INCA
CJNEA,#0FFH,LOOP
LOOP1:
MOVP1,A
ACALLDELAY
DECA
CJNEA,#0,LOOP1
AJMPLOOP
;********延时10ms程序*************
DELAY:
MOVR7,#50
D2:
MOVR6,#100
D1:
DJNZR6,D1
DJNZR7,D2
RET
ADPROC:
PUSHACC
CLRCS
SETBCS
CLRCS
MOVGDATA,P1;转换完的二进制数送入GDATA
MOVA,P1;转换完的二进制数送入累加器
LCALLADAD;调用数制转换程序
LCALLDISPLAY;调用显示程序
POPACC
RETI
**********数制转换子程序********************
ADAD:
MOVB,#100;100放入B
MULAB;100*数字量送B
MOVR4,#00H;送入R4,R3,R2
MOVR3,B
MOVR2,A
MOVR5,#33H;33H送R5
MOVB,#10H;16送B
LCALLNSDIV;转无符号除法程序
MOVB,#64H
DIVAB
MOV7BH,A;得50X的百位,送7BH
ADDA,7BH
MOV7BH,A;得100X的百位,送7BH
MOVA,B
MOVB,#0AH
DIVAB
SWAPA
ORLA,B;得50X的十位和个位送A
MOVB,A
ADDA,B
DAA
JNCBWNOTJ1;若百位无进位,则转BWNOTJ1
INC7BH;否则,7BH中的内容加“1”
BWNOTJ1:
MOVB,A;对A中BCD码拆字
ANLA,#0F0H
SWAPA
MOV7AH,A;十位BCD码送7AH
MOVA,B
ANLA,#0FH
MOV79H,A;个位BCD码送79H
ADRETN:
RET
NSDIV:
CLRC;无符号数除法子程序
MOVA,R2;R4,R3,R2左移一位
RLCA
MOVR2,A
MOVA,R3
RLCA
MOVR3,A
MOVA,R4
RLCA
MOVR4,A
CLRC
SUBBA,R5
JCNSDNEXT
MOVR4,A
INCR2
NSDNEXT:
DJNZB,NSDIV;除法未完,则转NSDIV
CLRC;两数之商除以2,送R2和A
MOVA,R3
RRCA
MOVA,R2
RRCA
MOVR2,A
RET
;***************显示子程序*************
DISPLAY:
MOVDPTR,#TAB;表头地址送DPTR
MOVP2,#01H;位选码送P2口
MOV40H,7BH;百位数送40H
MOV41H,#10H;小数点送41H
MOV42H,7AH;十位数送42H
MOV43H,79H;个位数送43H
MOVR0,#40H;立即数40H送入R0
LOOP1:
MOVA,@R0;把显示缓冲区的内容送入A
MOVCA,@A+DPTR;查表得段码
MOVP0,A;段码送P0口
INCR0;移显示缓冲区
MOVA,P2
JNBACC.2,RETURN;判断是否显示到最后一位
JNBACC.1,J1
INCA
MOVP2,A
LJMPLOOP1
J1:
ADDA,#2H
LJMPLOOP1
RETURN:
MOVP2,A
RET
TAB:
DB3FH,06H,5BH,4FH
DB66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH
DB39H,5EH,79H,71H
DB80H
END
本实验程序的重要覆盖点为:
数模/模数转换程序,数制转换程序,查表程序等。
学生实验时,可以在读懂实验参考程序的基础上,利用MCS51单片机实验电路板连接自己的数模和模数转换电路,方法方式自定,经实验教师检查过电路后,编写一个自己的数模和模数转换程序。
参考程序主要说明:
*程序产生的现象是DAC0832发出一个三角波,它的输出由ADC0809采样获得并予以显示。
七、调试
参照实验一相关内容即可。
八、运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导 非官方