《单片机原理及应用》实验指导.docx
- 文档编号:8766127
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:14
- 大小:68.50KB
《单片机原理及应用》实验指导.docx
《《单片机原理及应用》实验指导.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验指导.docx(14页珍藏版)》请在冰豆网上搜索。
《单片机原理及应用》实验指导
《单片机原理及应用》
实验指导书
余锡存主编
南京师范大学电气与自动化工程学院
2007年2月
实验一单片机开发系统的操作练习
1、实验目的
通过简单程序的编辑、调试、执行,了解开发系统的操作过程。
2、实验设备
计算机一台,MCS-51仿真调试软件SUPERICES-G16一套。
3、实验内容
A、熟悉SUPERICES-G16软件的各项菜单功能。
B、计算N个数据的和:
Y=ΣXi。
其中,Xi分别放在片内RAM区50H~55H单元中,求和的结果放在片内RAM区03H(高位)、04H(低位)单元中。
参考程序SUM.ASM:
ORG0000H
AJMPMAIN
ORG0100H
MAIN:
MOVR2,#06H
MOVR3,#00H
MOVR4,#00H
MOVR0,#50H
L1:
MOVA,R4
ADDA,@R0
MOVR4,A
INCR0
CLRA
ADDCA,R3
MOVR3,A
DJNZR2,L1
L2:
SJMPL2
运行MCS-51仿真软件,在编辑窗口编辑好文件SUM。
ASM后,按F10键进入主菜单选择Assemble项进行汇编,若无误后按F8键执行。
C、注意:
在程序执行前,按F10键进入主菜单选择WINDOWS窗口,按Tab键将光标移到DATA项,修改50H~55H单元的内容。
重新编译后,按F8单步运行,观察内部RAM区03H、04H单元的内容,做好记录。
练习:
(1)32H+41H+01H+56H+11H+03H=?
(2)95H+01H+02H+44H+48H+12H=?
(3)54H+F6H+1BH+20H+04H+C1H=?
实验二MCS--51汇编程序编程练习一
1、实验目的
熟悉MCS--51的指令系统,了解编程方法。
2、实验设备
计算机一台,MCS-51仿真调试软件SUPERICES-G16一套。
3、实验内容
在内部RAM的BLOCK开始的单元中有一无符号数据块,数据块长度存入LEN单元。
试编程求其中的最大数并存入MAX单元中。
参考程序MAX.ASM:
ORG0000H
AJMPSTART
ORG0300H
BLOCKDATA20H
LENDATA40H
MAXDATA42H
START:
MOVMAX,#00H
MOVR0,#BLOCK
LOOP:
MOVA,@R0
CJNEA,MAX,NEXT1
NEXT1:
JCNEXT
MOVMAX,A
NEXT:
INCR0
DJNZLEN,LOOP
SJMP$
END
4、实验步骤
A、运行MCS-51仿真软件,在编辑窗口编辑好文件MAX.ASM。
B、在程序执行前,选择WINDOWS窗口,将光标移到DATA项,将10个数据装入内部RAM20H~29H单元,并将40H的内容修改为10。
C、选择Assemble项进行汇编,若无误后按F8执行。
观察40H、42H单元的内容,并记录结果。
实验三MCS--51汇编程序编程练习二
1、实验目的
熟悉MCS--51的指令系统,了解编程方法。
2、实验设备
计算机一台,MCS-51仿真调试软件SUPERICES-G16一套。
3、实验内容
在外部RAM的BLOCK单元开始有一数据块,数据块长度存入内部RAM的LEN单元。
试编程统计其中的正数、负数和零的个数分别存入内部RAM的PCOUNT、MCOUNT和ZCOUNT单元。
参考程序PMZ.ASM:
ORG0000H
AJMPSTART
ORG0300H
BLOCKXDATA1000H
LENDATA20H
PCOUNTDATA21H
MCOUNTDATA22H
ZCOUNTDATA23H
START:
MOVR0,#00H
MOVR1,#00H
MOVR2,#00H
MOVDPTR,#BLOCK
LOOP:
MOVXA,@DPTR
INCDPTR
JBACC.7,FU
CJNEA,#00H,NEXT1
INCR0
SJMPNEXT
NEXT1:
INCR2
SJMPNEXT
FU:
INCR1
NEXT:
DJNZLEN,LOOP
MOVZCOUNT,R0
MOVMCOUNT,R1
MOVPCOUNT,R2
SJMP$
END
4、实验步骤
A、运行MCS-51仿真软件,在编辑窗口编辑好文件PMZ.ASM。
B、在程序执行前,选择WINDOWS窗口,将光标移到XDATA项,将10个数据装入外部RAM1000H~1009H单元,并将20H的内容修改为10。
C、选择Assemble项进行汇编,若无误后按F8执行。
观察21H、22H和23H单元的内容,并记录结果。
实验四MCS--51汇编程序编程练习三
1、实验目的
熟悉MCS--51的指令系统,了解编程方法。
2、实验设备
计算机一台,MCS-51仿真调试软件SUPERICES-G16一套。
3、实验内容
将外部RAM的40H单元中的一个字节拆成2个ASCII码,分别存入内部RAM41H和42H单元中。
参考程序ASCII.ASM:
ORG0000H
LJMPSTART
ORG1000H
START:
MOVDPTR,#40H
MOVR0,#41H
MOVXA,@DPTR
PUSHA
ANLA,#0FH
LCALLCHANGE
MOV@R0,A
INCR0
POPA
SWAPA
ANLA,#0FH
LCALLCHANGE
MOV@R0,A
SJMP$
CHANGE:
CJNEA,#0AH,NEXT
NEXT:
JNCNEXT1
ADDA,#30H
RET
NEXT1:
ADDA,#37H
RET
END
4、实验步骤
A、运行MCS-51仿真软件,在编辑窗口编辑好文件ASCII.ASM。
B、在程序执行前,选择WINDOWS窗口,将光标移到DATA项,将12H数据装入外部RAM40H单元。
C、选择Assemble项进行汇编,若无误后按F8执行。
观察41H、42H单元的内容,并记录结果。
D、选择WINDOWS窗口,将光标移到DATA项,把外部RAM40H单元的内容修改为ABH。
再选择Assemble项进行汇编,若无误后按F8执行。
观察41H、42H单元的内容,并记录结果。
实验五ADC0809模数转换实验
一、实验目的
1、掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用
2、掌握用少量的指令调试硬件的方法
3、掌握用查询方式、中断方式完成模/数转换程序的编写方法
二、实验说明
本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。
下图为该芯片的引脚图。
各引脚功能如下:
IN0~IN7:
八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:
三位地址码输入端。
八路模拟信号转换选择由这三个端口控制。
CLOCK:
外部时钟输入端。
D0~D7:
数字量输出端。
OE:
A/D转换结果输出允许控制端。
当OE为高电平时,
允许A/D转换结果从D0~D7端输出。
ALE:
地址锁存允许信号输入端。
八路模拟通道地址
由A、B、C输入,在ALE信号有效时将该八路地址锁存。
START:
启动A/D转换信号输入端。
当START端输入一个正脉冲时,将进行A/D转换。
EOC:
A/D转换结束信号输出端。
当A/D转换结束后,EOC输出高电平。
ref(+)、ref(-):
正负基准电压输入端。
基准正电压的典型值为+5V。
VCC和GND:
芯片的电源端和地端。
三、实验步骤
1、使用ADC0809与单片机接口模块,用十线扁平插头将P1口与8位发光二极管模块相连,用导线将RXD、TXD与串行静态显示模块的DIN、CLK相连,将+5V电源和地分别接口到模拟信号输入的“+”“-”两端,将实验台左右两块面板上,正负5V电源之间的地相连。
2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。
3、启动计算机,打开伟福仿真软件,进入仿真环境。
选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。
4、输入源程序,编译无误后,全速运行程序,5LED静态显示“ADXX”,“XX”为AD转换后的值,8位发光二极管显示“XX”的二进制值,调节模拟信号输入端的电位器旋钮,显示值随着变化,顺时针旋转值增大,AD转换值的范围是0~FFH。
5、可把源程序编译成OBJ文件,烧录到89C51芯片中。
四、流程图及源程序
1.源程序
DBUF0EQU30H
TEMPEQU40H
DINBIT0B0H
CLKBIT0B1H
ORG0000H
START:
MOVR0,#DBUF0;显示缓冲器存放0AH,0DH,-,0XH,0XH
MOV@R0,#0AH;串行静态显示“ADXX”XX表示0~F
INCR0
MOV@R0,#0DH
INCR0
MOV@R0,#11H
INCR0
MOVDPTR,#0FEF3H;A/D地址
MOVA,#0;清零
MOVX@DPTR,A;启动A/D
WAIT:
JNBP3.3,WAIT;等待转换结束
MOVXA,@DPTR;读入结果
MOVP1,A;转换结果送入发光二极管显示
MOVB,A;累加器内容存入B中
SWAPA;A的内容高四位与低四位交换
ANLA,#0FH;A的内容高四位清零
XCHA,@R0;A/D转换结果高位送入DBUF3中
INCR0
MOVA,B;取出A/D转换后的结果
ANLA,#0FH;A的内容高四位清零
XCHA,@R0;结果低位送入DBF4中
ACALLDISP1;串行静态显示“ADXX”
ACALLDELAY;延时
AJMPSTART
DISP1:
;静态显示子程序
MOVR0,#DBUF0
MOVR1,#TEMP
MOVR2,#5
DP10:
MOVDPTR,#SEGTAB;表头地址
MOVA,@R0
MOVCA,@A+DPTR;取段码
MOV@R1,A;到TEMP中
INCR0
INCR1
DJNZR2,DP10
MOVR0,#TEMP;段码地址指针
MOVR1,#5;段码字节数
DP12:
MOVR2,#8;移位次数
MOVA,@R0;取段码
DP13:
RLCA;段码左移
MOVDIN,C;输出一位段码
CLRCLK;发送一个位移脉冲
SETBCLK
DJNZR2,DP13
INCR0
DJNZR1,DP12
RET
SEGTAB:
DB3FH,6,5BH,4FH,66H,6DH;0,1,2,3,4,5
DB7DH,7,7FH,6FH,77H,7CH;6,7,8,9,A,B
DB58H,5EH,79H,71H,0,40H;C,D,E,F,(空格),-
DELAY:
MOVR4,#08H;延时
AA1:
MOVR5,#0FFH
AA:
NOP
NOP
DJNZR5,AA
DJNZR4,AA1
RET
END
2.流程图
图9程序流程图
五、思考题
1、A/D转换程序有三种编制方式:
中断方式、查询方式、延时方式,实验中使用了查询方式,请用另两种方式编制程序。
2、P0口是数据/地址复用的端口,请说明实验中ADC0809的模拟通道选择开关在利用P0口的数据口或地址地位口时,程序指令和硬件连线的关系。
六、电路图
图10实验电路原理图
实验六DAC0832数模转换实验
一、实验目的
1、掌握DAC0832直通方式,单缓冲器方式、双缓冲器方式的编程方法
2、掌握用仿真器调试硬件电路的方法
3、掌握D/A转换程序的编程方法和调试方法
二、实验说明
DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构,其引脚排列如图所示,DAC0832各引脚功能说明:
DI0~DI7:
转换数据输入端。
CS:
片选信号输入端,低电平有效。
ILE:
数据锁存允许信号输入端,高电平有效。
WR1:
第一写信号输入端,低电平有效,
Xfer:
数据传送控制信号输入端,低电平有效。
WR2:
第二写信号输入端,低电平有效。
Iout1:
电流输出1端,当数据全为1时,输出电流最大;当数据全为0时,输出电流最小。
Iout2:
电流输出2端。
DAC0832具有:
Iout1+Iout2=常数的特性。
Rfb:
反馈电阻端。
Vref:
基准电压端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为:
-10V~+10V。
VCC和GND:
芯片的电源端和地端。
DAC0832内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器由ILE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可实现三种工作方式:
直通方式、单缓冲方式、双缓冲方式。
直通方式是将两个寄存器的五个控制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A转换。
单缓冲方式使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2和Xfer相连在接到地上,并把WR1接到89C51的WR上,ILE接高电平,CS接高位地址或地址译码的输出端上。
双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。
三种工作方式区别是:
直通方式不需要选通,直接D/A转换;单缓冲方式一次选通;双缓冲方式二次选通。
三、实验步骤
1、使用DAC0832与单片机接口电路模块,将-5V电源接到参考电压输入端,模拟信号输出V0的正负两端接示波器探头。
2、安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头。
3、启动计算机,打开伟福仿真软件,进入仿真环境。
选择仿真器型号、仿真头型号、CPU类型;选择通信端口,测试串行口。
4、输入源程序,编译无误后,全速运行程序,观察示波器测量输出波形的周期和幅度。
5、可把源程序编译成OBJ文件,烧录到89C51芯片中。
四、流程图及源程序
1.源程序
ORG0000H
AJMPSTART
ORG0100H
START:
MOVDPTR,#0FEFFH;置DAC0832的地址
LP:
MOVA,#0FFH;设定高电平
MOVX@DPTR,A;启动D/A转换,输出高电平
LCALLDELAY;延时显示高电平
MOVA,#00H;设定低电平
MOVX@DPTR,A;启动D/A转换,输出低电平
LCALLDELAY;延时显示低电平
SJMPLP;连续输出方波
DELAY:
MOVR3,#11;延时子程序
D1:
NOP
NOP
NOP
DJNZR3,D1
RET
END
2.流程图
图11程序流程图
五、思考题
1、计算输出方波的周期,并说明如何改变输出方波的周期。
2、硬件电路不改动的情况下,请编程实现输出波形为锯齿波及三角波。
3、请画出DAC0832在双缓冲工作方式时的接口电路,并用两片DAC0832实现图形x轴和y轴偏转放大同步输出。
六、电路图
图12实验电路原理图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机原理及应用 单片机 原理 应用 实验 指导