中南大学微控制器技术实验研究报告.docx

上传人:b****1 文档编号:2775002 上传时间:2023-05-04 格式:DOCX 页数:30 大小:772.16KB
下载 相关 举报
中南大学微控制器技术实验研究报告.docx_第1页
第1页 / 共30页
中南大学微控制器技术实验研究报告.docx_第2页
第2页 / 共30页
中南大学微控制器技术实验研究报告.docx_第3页
第3页 / 共30页
中南大学微控制器技术实验研究报告.docx_第4页
第4页 / 共30页
中南大学微控制器技术实验研究报告.docx_第5页
第5页 / 共30页
中南大学微控制器技术实验研究报告.docx_第6页
第6页 / 共30页
中南大学微控制器技术实验研究报告.docx_第7页
第7页 / 共30页
中南大学微控制器技术实验研究报告.docx_第8页
第8页 / 共30页
中南大学微控制器技术实验研究报告.docx_第9页
第9页 / 共30页
中南大学微控制器技术实验研究报告.docx_第10页
第10页 / 共30页
中南大学微控制器技术实验研究报告.docx_第11页
第11页 / 共30页
中南大学微控制器技术实验研究报告.docx_第12页
第12页 / 共30页
中南大学微控制器技术实验研究报告.docx_第13页
第13页 / 共30页
中南大学微控制器技术实验研究报告.docx_第14页
第14页 / 共30页
中南大学微控制器技术实验研究报告.docx_第15页
第15页 / 共30页
中南大学微控制器技术实验研究报告.docx_第16页
第16页 / 共30页
中南大学微控制器技术实验研究报告.docx_第17页
第17页 / 共30页
中南大学微控制器技术实验研究报告.docx_第18页
第18页 / 共30页
中南大学微控制器技术实验研究报告.docx_第19页
第19页 / 共30页
中南大学微控制器技术实验研究报告.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

中南大学微控制器技术实验研究报告.docx

《中南大学微控制器技术实验研究报告.docx》由会员分享,可在线阅读,更多相关《中南大学微控制器技术实验研究报告.docx(30页珍藏版)》请在冰点文库上搜索。

中南大学微控制器技术实验研究报告.docx

中南大学微控制器技术实验研究报告

实验目的和要求

1熟练掌握KeilC51集成开发工具的操作及调试程序的方法,包括:

仿真调试与脱机运行间的切换方法;

2熟练使用SST89C554RC单片机核心板及I/O扩展实验系统;

3熟练掌握在KeilC51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试;

4完成MCS51单片机指令系统软件编程设计和硬件接口功能设计题;

硬件、软件环境要求

软件环境描述

该实验使用KeilC51集成开发环境作为实验设计、调度工具。

KeilC51提供了强大的调度功能,可单步、断点、全速运行程序,可观察寄存器区、ROM变量区、RAM变量区等的内容。

支持汇编语言和C语言的源程序语言调试。

硬件环境

本实验采用开放的系统板结构,可以灵活地配合各型号接口实验平台开展单片机的应用教案。

其提供了丰富的原理及接口应用实验。

配合接口实验平台可完成数字量输入/输出、中断、定时器/计数器、看门狗、低功耗、PCA、串口通讯、静态存储器、FLASH、A/D、D/A、键盘及数码显示、电子音响、点阵LED、LCD、步进电机、直流电机、温度控制等实验内容。

TD-51系统板上提供了一片SST89E554RC,该器件是SST公司推出的8位微控制器FlashFlex51家族中的一员,具有如下特征:

与8051兼容,嵌入SuperFlash存储器;工作电压5V,工作时钟0~40MHz;1Kbyte内部RAM;两块SuperFlashEEPROM,主块32Kbyte,从块8Kbyte,扇区为128Byte;有三个高电流驱动端口(每个16mA);三个16位的定时器/计数器;全双工、增强型UART。

八个中断源,四级优先级;可编程看门狗定时器(WDT);可编程计数阵列(PCA);双DPTR寄存器;低EMI模式(可禁止ALE);SPI串行口;标准每周期12个时钟,器件提供选项可使速度倍增,达到每周期6个时钟;低功耗模式。

实验一、清零程序与拆字程序设计

一、实验目的

1、加深对单片机存储结构的认识;

2、学会单片机基本指令的使用;

二、实验要求

1、把7000H-7FFFH的内容清零;

2、把7000H的内容拆开,高位送7001H的低位,低位送7002H的低位,7001H,7002H的高位清零,一般本程序用于将数据送显示缓冲区时用。

三、程序设计框图及程序清单

清零程序流程图

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#7000H。

片内RAM首地址

MOVA,#01H。

写入数据初值

MOVR6,#20H。

循环变量

LOOP2:

MOVR7,#80H

LOOP1:

MOVX@DPTR,A。

写数据到RAM

INCDPTR。

地址加1

DJNZR7,LOOP1

DJNZR6,LOOP2

SJMP$

拆字程序流程图

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#7000H。

MOVA,#12H。

MOVX@DPTR,A。

RRA。

RRA。

RRA。

RRA。

ANLA,#0FH。

高位送7001H低位

MOVDPTR,#7001H。

MOVX@DPTR,A。

MOVDPTR,#7000H。

MOVXA,@DPTR。

ANLA,#0FH。

低位送7002H低位

MOVDPTR,#7002H。

MOVX@DPTR,A。

SJMP$。

设置断点,观察实验结果中的内容

END

四、实验结果

清零程序

拆字程序

 

实验二、拼字程序与数据传送程序设计

一、实验目的

1、加深对单片机存储结构的认识;

2、学会单片机基本指令的使用;

二、实验要求

1、把7000H,7001H的低位相拼后送到7002H,一般本程序用于将显示缓冲区的数据取出组成单个字节。

2、把(R2,R3)源RAM区首址内的(R6,R7)个字节数据传送到(R4,R5)目的RAM区。

三、程序设计框图及程序清单

拼字程序框图及程序清单

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#7000H。

MOVA,#01H。

MOVX@DPTR,A。

ANLA,#0FH。

屏蔽高位

SWAPA。

MOVB,A。

MOVDPTR,#7001H。

送7001H

MOVA,#0AH。

MOVX@DPTR,A。

ANLA,#0FH。

ORLA,B。

拼送后送7002H

MOVDPTR,#7002H。

MOVX@DPTR,A。

SJMP$。

设置断点,观察实验结果中的内容

END

数据传送程序框图及程序清单

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR2,#70H。

MOVR3,#00H。

源地址

MOVR4,#71H。

MOVR5,#00H。

目的地址

MOVR6,#00H。

MOVR7,#07H。

传送个数

MOVR1,#10H。

MOVR0,#07H。

MOVDPH,R2。

MOVDPL,R3。

MOVA,R1。

L0:

MOVX@DPTR,A。

INCDPTR。

DJNZR0,L0。

赋值

L2:

MOVR7,#0FFH。

L1:

MOVDPH,R2。

MOVDPL,R3。

MOVXA,@DPTR。

INCDPTR。

MOVR2,DPH。

MOVR3,DPL。

MOVDPH,R4。

MOVDPL,R5。

MOVX@DPTR,A。

INCDPTR。

MOVR4,DPH。

MOVR5,DPL。

DJNZR7,L1。

DJNZR6,L2。

SJMP$

END

四、实验结果

拼字程序

数据传送程序

 

实验三、散转与排序程序设计

一、实验目的

1、掌握分支程序设计,学习散转指令的使用以及散转表的概念

2、掌握循环结构程序的设计。

二、实验要求

1、根据8032片内20H中的内容(00或01或02或03)进行散转。

2、编写并调试一个排序子程序,其功能为用冒泡法将内部RAM中几个单元字节无符号的正整数,按从小到大的次序重新排列。

三、程序方框图及程序清单

散转程序框图及程序清单

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR0,#02

MOVA,R0

RLA

ADDA,R0

MOVDPTR,#TA

JMP@A+DPTR

TA:

LJMPPM0

LJMPPM1

LJMPPM2

LJMPPM3

PM0:

MOVR1,#01H

LJMPMAIN

PM1:

MOVR2,#02H

LJMPMAIN

PM2:

MOVR3,#03H

LJMPMAIN

PM3:

MOVR4,#04H

LJMPMAIN

OVER:

SJMP$

END

排序程序

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR0,#10H。

初始地址

MOVR7,#04H。

外循环次数(参与比较的数的个数-1)

ACALLMAOP

SJMP$

MAOP:

L1:

MOVA,R0。

赋给初始地址

MOVR1,A

INCR1。

取第二个数的地址

MOVA,R7

MOVR6,A

L2:

MOVA,@R0

CLRC

SUBBA,@R1。

两数进行比较

JCL3。

前数小于后数则保持位置不变

MOVA,@R0。

否则,交换位置

XCHA,@R1

MOV@R0,A

L3:

INCR1

DJNZR6,L2。

内循环是否完成

INCR0

DJNZR7,L1。

外循环是否完成

RET。

返回主程序

END

 

实验四、数字量的输入输出实验

基础部分

一、实验目的

了解PI口做输入输出方式使用时,CPU对PI口的操作方式。

二、实验要求

P1口是8位准双向口,没以为均可独立定义为输入输出。

编写实验程序,将P1口得低四位定义为输出,高四位定义为输入,数字量从P1口得高四位输入,从P1口得低四位输出控制发光二极管的亮灭。

三、硬件电路原理图

四、程序设计框图及程序清单

ORG0000H

MAIN:

ORLP1,#0FH。

取P1口的高字节,定义为输入

MOVA,P1

SWAPA

MOVP1,A。

将P1口的低四位作为输出

SJMPMAIN

END

五、实验步骤

1按图接好实验线路图,图中圆圈表示不要通过排线连接

2编写实验程序,编译链接无误后进入调试状态

3运行实验程序,观察实验现象,验证程序正确性

4按复位键,结束程序运行,退出调试状态

六、接线图及仿真结果

提高部分

题目二:

LED灯控制(使用8255接口芯片)

一、实验要求

使用汇编语言编程,功能为:

通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。

二、硬件电路原理图

三、程序清单

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVP1,#0FFH。

初始化

MOVA,P1。

将输入写进累加器A

SWAPA

ANLA,#0FH

MOVP1,A。

输出显示

LJMPMAIN。

循环不断检测P1口输入端的新状态

SJMP$

END

LED灯控制:

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVTMOD,#60H。

设置T1为模式2,外部计数方式

MOVTH1,#0FFH。

T1计数器赋初值

MOVTL1,#0FFH

MOVDPTR,#7300H

MOVA,#80H

MOVX@DPTR,A

MOVDPTR,#7100H

SETBTR1。

开启计数器

LEFT:

MOVR0,#08H。

左循环

MOVA,#01H

A1:

MOVX@DPTR,A

LCALLDELAY

RLA

DJNZR0,A1

JBCTF1,RIGHT。

查询T1溢出标志,TF1=1时转移

JMPLEFT

RIGHT:

MOVR0,#08H。

右循环

MOVA,#80H

A2:

MOVX@DPTR,A

LCALLDELAY

RRA

DJNZR0,A2

JBCTF1,SHANSHUO。

查询T1溢出标志,TF1=1时转移

JMPRIGHT

SS:

MOVR0,#08H。

闪烁

LP1:

MOVA,#55H

MOVX@DPTR,A

LCALLDELAY

MOVA,#0AAH

MOVX@DPTR,A

LCALLDELAY

DJNZR0,LP1

JBCTF1,LEFT。

查询T1溢出标志,TF1=1时转移

JMPSHANSHUO

DELAY:

MOVR1,#0FFH

DEL1:

MOVR2,0FFH

DEL2:

DJNZR2,DEL2

DJNZR1,DEL1

RET

SJMP$

END

四、接线图及仿真结果

五、结果分析

利用计数器T1外部技术方式,当外部输入脉冲引脚上出现电平负跳变时,T1计数器加一,溢出标志TF1置一,然后改变LED灯亮的方式,同时,将标志位TF1复位,进入下一轮的计数溢出等待。

因此,而形成三种亮灯方式的自动循环。

若是用开关实现三种方式的亮灯,则需要在最开始和每种亮灯之后通过8255对开关状态进行采集并进行判断。

因此事先还要先设置好哪个开关的闭合表示哪种亮灯方式。

 

实验五、定时器\计数器实验

一、实验目的

1、了解MCI-51单片机定/计数器工作原理。

2、了解定/计数器T0,T1在定时器和计数器两种方式的编程。

3、了解定/计数器T2可编程时钟功能。

二、实验要求

1、使用定时器0与定时器1进行定时,在P1.0和P1.1引脚上输出方波,通过示波器观察波形输出,计量并记录方波周期。

2、将定时/计数器1设定为计数方式,每次在P1.0引脚上取反一次,观察发光二极管的状态变化。

3、定时器2可作为时钟发生器使用。

三、硬件原理图

四、程序设计框图及程序清单

1、要求1实验

ORG0000H

LJMPMAIN

ORG000BH。

定时器0中断入口

LJMPZH0

ORG0001BH。

定时器1中断入口

LJMPZH1

MAIN:

MOVTMOD,#11H。

设置定时器工作方式

MOVTH0,#0F8H。

装入计数初值

MOVTL0,#00H

MOVTH1,#0F8H

MOVTL1,#00H

SETBEA。

开总中断

SETBET0。

开定时器中断

SETBET1

SETBTR0。

启动定时器

SETBTR1

SJMP$

ZH0:

MOVTH0,0F8H。

定时器0中断服务程序

MOVTL0,00H

CPLP1.0

RETI

ZH1:

MOVTH1,0F8H。

定时器1中断服务程序

MOVTL1,#00H

CPLP1.1

RETI

END

2、要求2实验

ORG0000H

SJMPMAIN

ORG001BH。

定时器1中断程序入口

SJMPDSHI1

MAIN:

MOVTMOD,#60H。

设定工作方式,装入计数初值

MOVTH1,#0F6H

MOVTL1,#0F6H

SETBEA

SETBTR1

SJMP$

DSHI1:

CPLP1.0。

中断服务程序,实现P1.0取反

RETI

END

五、实验步骤

1编写实验程序,编译、链接后联机调试;

2运行实验程序,使用示波器观察P1.0引脚上的波形并记录周期;

3变计数初值,观察实验现象,验证程序功能。

六、接线图及仿真结果

1要求1实验

2要求2实验

七、结果分析

通过实验我们可以看到使用定时器0与定时器1进行定时,在P1.0和P1.1引脚上输出方波,通过示波器观察到了波形输出,我们同时计量并记录方波周期。

实验2中我们将定时/计数器1设定为计数方式,每次在P1.0引脚上取反一次,观察发光二极管的状态变化。

 

实验六A/D、D/A转换实验

一、实验目的

1、学习数模,模数转换的基本原理。

2、学习模数转换芯片ADC0809的使用和数模转换芯片DAC0832。

二、实验要求

1、编写实验程序,将ADC单元中提供的0V~5V信号源作为ADC809的模拟输入量,进行A/D转换,转换结果通过变量进行显示。

2、设计实验电路图实验下怒并编写程序,实现D/A转换,要求产生锯齿波、脉冲波,并用示波器观察输出电压波形。

三、硬件原理图

ADC模数转换

AD转换接线图

AD转换单元

DAC数模转换

DA转换单元

四、程序设计框图及程序清单

ADC模数转换

ORG0000H

SJMPMAIN

ORG0013H

SJMPAD

MAIN:

SETBEA

SETBEX1

MOVDPTR,#7F00H

MOVXA,@DPTR

SJMP$

AD:

MOVDPTR,#7F08H

MOVXA,@DPTR

MOVR2,A

RETI

END

DAC数模转换

ORG0000H

AJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#7FFFH

MOVA,#0

LP1:

MOVX@DPTR,A

INCA

CJNEA,#255,LP1

END

五、实验步骤

ADC模数转换

1、A/D的时钟线需要与实验平台中的系统总线单元的CLK相连;

2、编写实验程序,编译链接无误后进入调试状态;

3、将变量ADV添加到变量监视窗口中;

4、在Delay()语句行设置断点,使用万用表测量ADJ端电压值,计算对应的采样值,然后运行程序;

5、程序运行到断点处停止运行,查看变量窗口中ADV的值,与计算的理论值进行比较,看是否一致;

6、调节电位器,改变输入电压,比较ADV与计算值,反复验证程序功能。

DAC数模转换

1按实验图接好线路

2.编写实验程序,经编译、链接无误后装入系统,启动调试。

3.运行程序,用示波器测量DA的输出,观察实验现象。

4.自编写实验程序,产生三角波的形输出使,用观示察波实器验观现察象输出,验证程序功能。

六、结果分析

通过实验,观察到了ADC单元的运作过程,将ADC单元中提供的0V~5V信号源作为ADC809的模拟输入量,进行A/D转换,观察到了转换结果。

在DAC实验中从示波器中看到了要求产生锯齿波、脉冲波,并观察输出电压波形。

实验七、串行通信实验

一、实验目的

1、学习MCS-51单片机串口的工作原理及程序设计;

2、了解使用SSTEasyIAP11F.EXE软件实现程序脱机运行的方法;

3、熟悉启动加载代码与SORTICE相互切换的方法。

二、实验要求

编写实验程序,每隔一定的时间单片机向串口发送一次数据“Xi’anTangduCorp”

三、硬件原理图

四、程序设计框图及程序清单

ORG0000H

SJMPMAIN

ORG001BH。

串口中断服务程序入口

SJMPCK

MAIN:

MOVSP,#60H。

设置堆栈起始位置

MOVSCON,#50H。

初始化

MOVPCON,#80H

MOVTMOD,#20H

MOVTH1,#0FDH

MOVTL1,#0FDH

SETBEA。

开中断

SETBET1

SETBTR1

SJMP$。

等待中断

CK:

MOVDPTR,#TAB。

中断服务程序

MOVR7,#00H

LOOP:

MOVA,R7

MOVCA,@A+DPTR

MOVC,P

MOVACC.7,C

MOVSBUF,A

WAIT:

JNBTI,WAIT

CLRTI

INCR7

CJNER7,#12,LOOP

RETI

TAB:

DB'XIANTANGDU'。

表格

DB0DH,0AH

END

五、实验步骤

1接好串口通讯实验线路;

2编写实验程序,经编译、链接无误后启动调试;

3进入调试界面,点击命令,打开串口1监视窗口;

4运行实验程序,观察输出;

5将系统程序由SoftICE切换到启动加载程序;

6将编译生成的HEX文件通过SSTEasyIAP11F.EXE软件下载到单片机内部Flash中;

7复位单片机,打开超级终端或串口调试窗口软件,将端口号及波特率等设置好,观察PC显示;

8实验显示

六、接线图及仿真结果

七、结果分析

通过学习MCS-51单片机串口的工作原理及程序设计,了解使用SSTEasyIAP11F.EXE软件实现程序脱机运行的方法,同时从网上查找资料,成功地从监视窗口中每隔一定的时间单片机向串口发送一次数据“Xi’anTangduCorp”

总结

通过这四次的实验以及课后的自己的练习,我发现自己对单片机这门课程有了更深的认识,同时欣喜地发现自己的单片机实验以及学习能力有了较大幅度的提升,可谓是这一阶段的单片机学习实验受益匪浅。

在实验中我初步了掌握了单片机系统集成开发环境uVision2的使用,着手此平台的源程序编辑、调试、运行整个过程以及KeilC51集成开发工具的操作及调试程序的方法,包括:

仿真调试与脱机运行间的切换方法,AT89C51单片机核心板及I/O扩展实验系T同时做了KeilC51与Proteus仿真软件虚拟联机环境下,基于51单片机控制器数字接口电路的硬件、软件设计与功能调试。

在了解硬件的一些使用,在实验中我加深了对C语言特别是汇编语言的认识,并成功地应用编程语言进行硬件程序的编写,提高了编程能力。

在实验中,也遇到了很多的问题,我通常先自己翻出书本,尽量通过自己的巩固和学习解决问题。

如果碰到自己能力不能解决的问题,便求助于身边的同学,老师或者上网查找资料进行参考与研究,收到了不错的效果。

这次实验不仅仅提升了自己的实验和学习能力,更增强了我的细致与认真,我想这对今我的学习乃至将来的工作都有着重要的作用。

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2