《单片机原理及应用》实验指导.docx

上传人:b****1 文档编号:1115347 上传时间:2022-10-17 格式:DOCX 页数:14 大小:110.18KB
下载 相关 举报
《单片机原理及应用》实验指导.docx_第1页
第1页 / 共14页
《单片机原理及应用》实验指导.docx_第2页
第2页 / 共14页
《单片机原理及应用》实验指导.docx_第3页
第3页 / 共14页
《单片机原理及应用》实验指导.docx_第4页
第4页 / 共14页
《单片机原理及应用》实验指导.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

《单片机原理及应用》实验指导.docx

《《单片机原理及应用》实验指导.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验指导.docx(14页珍藏版)》请在冰豆网上搜索。

《单片机原理及应用》实验指导.docx

《单片机原理及应用》实验指导

 

《单片机原理及应用》

实验指导书

余锡存主编

 

南京师范大学电气与自动化工程学院

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,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1