单片机新实验指导书Word格式文档下载.docx
《单片机新实验指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机新实验指导书Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
若有错误,在编译结果对话框内提示错误信息(指出有几处错误),以便于修改。
需要指出的是这里指出的是语法错误,而不是逻辑错误。
修正错误的方法:
所有文件(*.*)
对话框中显示E盘所有文件及文件夹。
若文件保存在E盘,在对话框中选中该文件的.LST文件,点击打开按钮,则该文件的.LST文件在编辑窗口被打开。
.LST文件中指出错误所在之处,且用“^”提示。
此时回到.ASM文件的编辑窗口修改错误,重新汇编,直至无错误为止。
值得注意的是.LST文件只能指出程序中错误的所在之处,不能修正,必须回到.ASM文件的编辑窗口修改错误。
3、调试
汇编语言源程序经过编辑、汇编,生成.OBJ文件且下载至下位机后,才能进行调试。
调试时需点击调试图标,激活各调试功能图标及寄存器、存储器窗口。
调试可分为全速运行、单步调试、跟踪调试、执行到光标行。
在此过程中可以进行程序复位,如果下位机处于全速运行状态时,只能进行系统复位。
1、停止调试:
指所有调试功能图标及寄存器、存储器窗口失效,同时激活调试图标。
2、程序复位:
指被调试程序复位。
即PC=0000H
3、设置、清除断点:
将光标移至程序中某行,按此键,则在该处设置了断点,程序运行至该处停下来。
4、跟踪调试:
跟踪执行程序,跟踪子程序。
5、单步调试:
单步执行程序,不跟踪子程序。
6、执行到光标行:
将光标移至程序中某行,执行中忽略程序中所有断点,执行到光标行。
7、全速运行:
程序从当前PC执行,遇到断点后返回监控,若无断点程序将失去控制。
若
停止调试,点击停止调试,激活调试图标。
4、寄存器、存储器窗口
R:
寄存器窗口
包括:
单片机内部PC、DPTR、ACC、B、SP、PSW、R0-R7、IE、IP、TMOD、TCOD、TH0、TL0、TH1、TL1、SCON、SBUF寄存器。
单击R,打开寄存器窗口,显示以上所有寄存器及内容。
光标移至某一寄存器,可修改该寄存器内容。
I:
内部存储器窗口
单击I,打开内部存储器窗口,显示单片机内部RAM00H-3FH单元内容。
双击首行地址,可修改内部存储器窗口中首行地址,(其他行地址随之改变)。
单击某一存储单元,可修改该存储单元内容。
E:
外部存储器窗口
单击E,打开外部存储器窗口,显示单片机外部RAM4000H-403FH单元内容。
双击首行地址,可修改外部存储器窗口中首行地址,(其他行地址随之改变)。
三、汇编语言源程序的结构(程序格式)
在集成开发环境下,汇编语言源程序遵循的程序格式如下:
ORG4000H
LJMPMAIN
ORG4100H
MAIN:
MOVR0,#40H
┇
┇
END
实验一数据传送程序设计
一、实验目的
1、基本掌握在EL-III型单片机教学实验、开发系统上编辑、汇编、调试、运行MCS-51汇编语言程序过程。
2、熟悉MCS―51单片机指令系统。
3、练习编写简单程序,学习基本的MCS―51汇编语言程序设计方法。
4、掌握8031内部RAM和外部RAM的数据操作,了解这两部分RAM存储器的特点和应用。
二、实验内容
1、设计并调试一个数据传送程序。
将8031内部RAM40H-4FH置入初值00H-0FH,然后将40H-4FH中的这些数据传送到外部RAM5000H-500FH中,再将5000H-500FH中的这些数据传送到8031内部RAM30H-3FH中。
2、设计并调试一个程序。
两个三字节无符号数相加,被加数存放在片外RAM的5000H-5002H中(低位在前),加数存放在片内RAM的50H-52H中(低位在前),要求将相加之和存放在50H一52H之中(低位在前)。
(注意:
程序运行前先将数据送入存储单元中)
如被加数:
(5000H)=89H加数:
(50H)=A7H
(5001H)=F5H(51H)=4EH
(5002H)=32H(52H)=5BH
三、实验设备
1、微型计算机一台
2、EL-III型单片机实验开发系统一台
四、程序参考流程图
1、程序1参考流程图
开始
置内部RAM地址指针(R0)=40H
置字节长度(R2)=10H
数据00H→A
(A)的数据送内部RAM
(A)+1→A
修改地址指针(R0)+1→R0
(R2)-1=0?
N
Y
置外部RAM地址指针(DPTR)=5000H
内部RAM中的数据送A
A中的数据送外部RAM
(DPTR)+1→DPTR
(R2)-1=0?
N
Y
置内部RAM地址指针(R0)=30H
外部RAM中的数据送A
A中的数据送内部RAM
程序结束踏步等待
2、程序2参考流程图由同学自行设计
五、实验报告要求
1、整理好执行正确的程序。
2、写出完整的实验报告。
实验二I/O口直接使用与简单I/O口扩展
一、实验目的
1、了解P1口作为输入、输出方式使用时,CPU对P1口的操作方式。
2、学习P1口做输入、做输出时的使用方法。
3、学习在单片机系统中扩展简单I/O接口的方法。
二、实验内容
1、I/O口直接使用
P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2、简单I/O口的扩展
P1口做输入口,接八个拨动开关,扩展74LS273做输出口,编写程序,读取开关状态,并将此状态通过发光二极管显示出来。
四、编程说明
延时程序的实现常用两种方法,一是用定时器中断实现,一是用指令循环实现。
本实验采用后一种方法,延时0.1秒或1秒。
(也可以用定时器中断实现)
五、实验电路
图1:
P1口做输出
图2:
P1口做输入,74LS273做输出
六、连线方法
P1口P1.0-P1.7接发光二极管L1-L8。
P1口P1.0-P1.7接拨动开关K1-K8,74LS273的00-07接发光二极管L1-L8,片选端CSU8\接CS0。
(此时74LS273的片选信号地址为CFA0H)
七、程序参考流程图
程序1参考流程图:
程序2参考流程图:
置初值:
点亮最左边发光二极管
P1口锁存器置“1”
输出到P1口
从P1口输入开关状态
码→A
延时0.1秒
从74LS273输出开关状态
循环左移一位以显示下一位
循环左移一位
以显示下一位
实验三显示器接口实验
1、掌握8031单片机输入输出接口扩展方法。
2、掌握用一个段锁存器,一个位锁存器同时显示多位数字的技术。
3、掌握七段LED显示器的工作原理、段数据表的设计。
4、掌握动态显示子程序的设计与调试。
利用单片机实验开发系统设计显示器接口电路及显示程序。
1、设计并调试出能显示0、1、2、3、4、5、6、6、7、8、9、A、B、C、D、E、F的段数据表。
2、编写并调试一个6位LED显示器的通用显示子程序。
该子程序的功能是将8031片内RAM中显示缓冲区的内容在LED显示器上显示。
3、编写并调试一个主程序,该主程序先对显示缓冲区设置初值,然后循环调用所设计的显示子程序,使显示器显示数字,例如显示你的学号。
四、实验线路与实验原理
本实验使用EL-III型单片机教学实验、开发系统上的显示器接口电路,它的线路原理图如图所示。
本试验采用动态显示。
动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。
将8031CPU的P1口当作一个锁存器使用,74LS273作为段锁存器。
五、连线方法
1.将CPU板的P1.0~P1.5与实验箱数码管的输入LED6~LED1相连;
2.实验箱244/273PORT单元的O0~O7与数码管单元的LEDA~LEDDp相连;
3.片选信号CS273与CS0相连;
4.去掉实验箱上数码管右侧的短路子连接(跳线帽);
六、实验程序参考流程图
1、主程序参考流程图(图a)2、动态显示子程序参考流程图(图b)
R0指向显示缓冲区首址30H
先点亮最左边LED
式式
吗
栈指针初始化
位控制信号送P1口
显示缓冲区置入初值
调用显示子程序
取显示数据
查表取字型码
送出一位显示
延迟2ms
指向下一个缓冲单元
(R0)+1→R0
最右边一位(第0位)显示吗?
位控信号右移一位
返回
实验四A/D转换器(ADC0809接口)实验
1、了解A/D转换芯片ADC0809的转换性能及编程方法。
2、掌握A/D转换芯片ADC0809与8031单片机的接口方法。
3、通过实验了解单片机如何进行数据采集。
利用实验台上的ADC0809、电位器、LED显示器等设计数据采集系统。
实验台上的电位器可提供三路模拟电压信号输入,编制程序,将模拟量转换成数字量,实现数据采集。
请同学视自身情况,利用实验环境,实现一路或多路数据采集。
在单片机8031内部RAM中开辟采集结果存储区,将采集结果存入该区域中。
也可用六位LED显示器分别显示三路模拟量转换的结果。
四、实验原理
ADC0809芯片带有8路模拟开关,为8路模拟信号输入端IN0-IN7。
ADC0809的地址输入端ADD-A、ADD-B、ADD-C分别与8031单片机地址线A0、A1、A2相连,以选通IN0-IN7任一个通道。
实验电路中将IN0、IN1、IN2分别连接KB0、KB1、KB2,形成三路模拟电压信号输入。
ADC0809的START端为A/D转换启动信号,ALE端为通道地址锁存信号,将其相连,以便同时锁存通道地址并开始A/D采样转换。
启动A/D转换只需执行指令MOVX@DPTR,A产生写信号,使ALE、START同时有效,锁存通道号并启动A/D转换。
A/D转换结束,自动产生EOC信号。
在中断方式下,将其与8031的INT0引脚相接,作为中断请求信号。
在中断服务程序中,用指令MOVXA,@DPTR产生读信号,使OE有效,将转换结果读入CPU,然后送至存储单元。
六、实验连线
1、ADC0809的片选信号CS0809接CS1。
(此时ADC0809的片选地址为CFA8H)
2、电位器的输出信号AN0接0809的ADIN0
3、ADC0809的EOC接单片机8031的INT0
七、实验报告要求
1、整理好执行正确的程序。
注意:
通过观察内部存储器窗口相应区域中的内容,判断转换结果是否正确。
八、程序参考流程图
1、主程序参考流程图2、中断服务程序参考流程图
开始
本路转换结束?
置堆栈指针
Y
读取转换结果存入转换结果存储区
置通道计数器R2=3
置R1为转换结果存储区地址指针
通道号加1
转换结果存储区地址指针加1
转换结果存储区清0
通道计数器R2-1=0?
允许外部中断0请求中断
设三路转换结束标志=0
置三路转换结束标志=1
选通A/D08090通道
中断返回
启动A/D0809
三路转换结束标志=1?
N
Y
调用显示程序,显示
实验五D/A转换器(DAC0832接口)实验
1、了解D/A转换的基本原理。
2、了解D/A转换芯片0832的性能及编程方法。
3、掌握单片机与DAC0832的接口电路设计及D/A转换程序的设计方法。
利用实验台上的DAC0832芯片设计D/A转换器,编制程序,产生锯齿波、三角波。
用示波器观测输出波形,或用万用表测试实验电路的输出端OUT,应能测出不断加大或减小的电压值。
三、三、实验设备
D/A转换是把数字量转换成模拟量的变换,从DAC0832输出端输出的是模拟电流信号。
在实际应用中往往需要电压输出形式,因此实验电路由DAC0832和双运算放大器组成,接上运放来实现电流转换为电压。
当数字量输入在00H-FFH范围时,电压的输出为0~+XV或0~-XV这种方式称为单极性输出,若电压的输出为±
XV则称为双极性输出。
在实际应用中,不仅需要单极性输出,还需要双极性输出,实验电路应用双运放来实现两种极性输出。
实验电路的输出端OUT输出模拟电压信号,锯齿波和三角波的产生只需由累加器A中所存放的数字量的增减来控制。
当A0=0时,可锁存输入数据;
当A0=1时,可启动转换输出。
要进行D/A转换,典型程序段如下:
MOVDPTR,#PORT
MOVA,#DATA
MOVX@DPTR,A
INCDPTR
其中第二次输出是一个虚拟写过程,目的是产生一个WR信号,启动D/A。
1、DAC0832的片选CS0832接CS0,(此时DAC0832的片选地址CFA0H)。
输出端OUT接示波器探头。
2、将短路端子DS的1、2短路
七、输出波形
VoutVout
+2.5v+2.5v
tt
-2.5v
锯齿波输出波形三角波输出波形
1、锯齿波程序参考流程图
2、三角波程序参考流程图
设置转换初值
选通D/A通道
启动D/A转换
数字量加1
调用延时子程序
数字量加1为FF?
数字量减1
NY
数字量减1为0?
程序1:
MOVR2,#10H
MOVA,#00H
MA1:
MOV@R0,A
INCA
INCR0
DJNZR2,MA1
MOVR0,#40H
MOVDPTR,#5000H
MA2:
MOVA,@R0
MOVX@DPTR,A
INCDPTR
DJNZR2,MA2
MOVR0,#30H
MA3:
MOVXA,@DPTR
MOV@R0,A
INCR0
DJNZR2,MA3
MA4:
AJMPMA4
END
程序2:
ORG0000H
CLRC
MOVDPTR,#5000H
MOVR0,#50H
MOVR7,#03H
LOOP:
ADDCA,@R0
DJNZR7,LOOP
HERE:
AJMPHERE
END
实验二参考程序清单
LJMPSTART
ORG4100H
START:
MOVA,#01H
LOOP:
MOVP1,A
MOVR2,#0FFH
DEL1:
MOVR3,#0FFH
DEL2:
DJNZR3,DEL2
DJNZR2,DEL1
RLA
AJMPLOOP
MOVP1,#0FFH
MOVA,P1
MOVDPTR,#0CFA0H
MOVX@DPTR,A
AJMPLOOP
实验三参考程序清单
MOVSP,#50H
MOVR0,#30H
MOV@R0,#01H
MOV@R0,#02H
MOV@R0,#03H
MOV@R0,#04H
MOV@R0,#05H
MOV@R0,#06H
STA1:
ACALLDIS
AJMPSTA1
DIS:
MOVR0,#30H
MOVR2,#0DFH
MOVA,2
LD0:
MOVP1,
MOVA,@R0
MOVDPTR,#TAB
MOVCA,@A+DPTR
MOVDPTR,#0CFA0H
MOVX@DPTR,A
ACALLTIME
INCR0
MOVA,R2
JNBACC.0,LD1
RRA
MOVR2,A
AJMPLD0
LD1:
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH
DB7DH,07H,7FH,6FH,77H,7CH
DB39H,5EH,79H,71H,40H,00H
TIME:
MOVR7,#04H
LD2:
MOVR6,#0FFH
LD3:
DJNZR6,LD3
DJNZR7,LD2
RET
实验四参考程序清单
ORG0000H
LJMPSTART
ORG4003H
AJMPINT
ORG4100H
MOVSP,#60H
M1:
MOVR1,#40H
MOVR2,#03H
MOV40H,#00H
MOV41H,#00H
MOV42H,#00H
MOVIE,#81H
MOVIP,#01H
CLR00H
MOVDPTR,#0CFA8H
M2:
JNB00H,M2
LCALLDIR
AJMPM1
INT:
JNBP3.2,INT
MOVXA,@DPTR
MOV@R1,A
INCDPTR
INCR1
DJNZR2,M3
SETB00H
RETI
M3:
DIR:
ACALLZHH
MOVR0,#30H
MOVR3,#0DFH
MOVA,R3
MOVP1,A
MOVA,@R0
MOVDPTR,#TAB
MOVR3,A
AJMPLD0
LD1:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
MOVR6,#0FFH
LD4:
DJNZR6,LD4
DJNZR7,LD3
ZHH:
MOVA,40H
SWAPA
ANLA,#0FH
MOV30H,A
MOVA,40H
MOV31H,A
MOVA,41H
MOV32H,A
MOV33H,A
MOVA,42H
MOV34H,A
MOVA,42H
MOV35H,A
END