中南大学信息科学与工程学院微控制器技术实验报告.docx

上传人:b****6 文档编号:6047937 上传时间:2023-01-03 格式:DOCX 页数:32 大小:288.82KB
下载 相关 举报
中南大学信息科学与工程学院微控制器技术实验报告.docx_第1页
第1页 / 共32页
中南大学信息科学与工程学院微控制器技术实验报告.docx_第2页
第2页 / 共32页
中南大学信息科学与工程学院微控制器技术实验报告.docx_第3页
第3页 / 共32页
中南大学信息科学与工程学院微控制器技术实验报告.docx_第4页
第4页 / 共32页
中南大学信息科学与工程学院微控制器技术实验报告.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

中南大学信息科学与工程学院微控制器技术实验报告.docx

《中南大学信息科学与工程学院微控制器技术实验报告.docx》由会员分享,可在线阅读,更多相关《中南大学信息科学与工程学院微控制器技术实验报告.docx(32页珍藏版)》请在冰豆网上搜索。

中南大学信息科学与工程学院微控制器技术实验报告.docx

中南大学信息科学与工程学院微控制器技术实验报告

微控制器技术实验报告

 

专业班级:

学号:

姓名:

指导老师:

目录

1、实验目的及要求………………………………………………………1

2、实验基本内容…………………………………………………………1

三、实验设备………………………………………………………………3

四、实验设计思想和结果分析………………………………………………6

4.1清零程序与拆字程序设计……………………………………………6

4.2拼字程序与数据传送程序……………………………………………7

4.3排序程序与散转程序…………………………………………………10

4.4数字量输入输出实验…………………………………………………15

4.5定时器/计数器实验…………………………………………………17

4.6A/D、D/A转换实验……………………………………………………20

4.7串行通讯实验…………………………………………………………25

五、结束语…………………………………………………………………29

 

一、实验目的及要求:

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

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

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

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

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

二、基本实验内容(SST89E554RC单片机实现)

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

根据实验指导书之“第二章单片机原理实验”(P17~P23页)内容,熟悉实验环境及方法,完成思考题1、2(P23)基础实验项目。

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

汇编语言完成实验指导书P24思考题3、4题的基础实验项目。

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

汇编语言完成实验指导书P24思考题5、6题的基础实验项目。

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

基本部分:

阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.1数字量输入输出实验”基本实验项目(P36),。

提高部分:

(任选一题)

题目一:

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

要求:

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

通过开关实现LED灯工作方式即时控制,完成LED交通灯的开关控制显示功能和LED交通灯自动循环显示功能。

题目二:

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

要求:

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

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

题目三:

键盘扫描与数码管显示设计

要求:

阅读、验证P69上的C语言参考程序功能。

用汇编语言完成编程与功能调试。

实验五 定时器/计数器实验

基本部分:

阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.3定时/计数器实验”基本实验项目(P40)。

提高部分:

(任选一题完成)

题目一:

定时器控制LED灯

要求:

由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。

P1口的P1.0-P1.7分别接八个发光二极管。

编写程序模拟时序控制装置。

开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。

题目二:

计数器实验

要求:

单片机内部定时计数器,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。

使用T1作定时器,50ms中断一次,看T0内每0.50来了多少脉冲,将其数值按二进制在LED灯上显示出来,5秒后再次测试。

题目三:

急救车与交通灯(外部中断实验)

要求:

完成交通灯基本功能基础上,当有急救车到达时,两向交通信号为全红,以便让急救车通过。

假定急救车通过路口时间为10秒,急救车通过后,交通灯恢复中断前状态。

本实验题以按键为中断申请,表示有急救车通过。

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

基本部分:

阅读、验证C语言程序功能。

使用汇编语言编程,完成实验指导书之“4.3A/D转换实验”项目(P64)和“4.4D/A转换实验”项目(P67)。

提高部分:

(要求:

Proteus环境下完成)

小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。

实验七 串行通讯实验

基本部分:

阅读、调试C语言程序功能。

使用汇编语言编程,完成实验指导书之“3.7串口通讯实验”项目。

(要求:

实验仪器上完成)

提高部分:

(要求:

Proteus环境下完成)

题目一:

利用单片机实验系统,实现与PC机通讯。

功能要求:

将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。

题目二:

进行实验六、实验七实验内容综合。

 

三、实验设备

软件设备:

KEILuv2,PROTEUS7.4

硬件设备:

PC机,TD-51系统板(包括SST89E554RC单片机一片、串行通信线、接口等)

1、TD-51系统板

系统构成

TD-51系统板为开放的最小单片机系统,采用具有在系统可编程和在应用可编程技术的增强型51单片机,单片机内置仿真程序,可以实现调试、仿真功能,配合TD系列微机接口教学实验平台可开展单片机原理及应用的实验教学。

 

系统功能特点

1.取代硬件仿真器的增强型单型

系统采用具有在系统可编程(ISP)和在应用可编程(IAP)技术的增强型51单片机,单片机内置仿真程序,完全取代传统的硬件仿真器和编程器。

这种先进的单片机将仿真系统和应用系统合二为一,大大降低了应用开发成本,极大地提高了研发效率。

把单片机的仿真开发和应用设计提高到一个崭新的技术领域。

2.先进的集成开发调试调

使用业界著名的KeilC51集成开发环境作为实验设计、调试的工具。

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

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

3.灵活的组合组

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

4.丰富的实验内容

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

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

 

2、SST89E554RC简介

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

·\u19982X8051兼容,嵌入SuperFlash存储器

-软件完全兼容

-开发工具兼容

-引脚全兼容

·\u24037X作电压5V,工作时钟0~40MHz

·1Kbyte内部RAM

·\u20004X块SuperFlashEEPROM,主块32Kbyte,从块8Kbyte,扇区为128Byte

·\u26377X三个高电流驱动端口(每个16mA)

·\u19977X个16位的定时器/计数器

·\u20840X双工、增强型UART

-帧错误检测

-自动地址识别

·\u20843X个中断源,四级优先级

·\u21487X编程看门狗定时器(WDT)

·\u21487X编程计数阵列(PCA)

·\u21452XDPTR寄存器

·\u20302XEMI模式(可禁止ALE)

·SPI串行接口

·\u26631X准每周期12个时钟,器件提供选项可使速度倍增,达到每周期6个时钟

·\u20302X功耗模式

-掉电模式,可由外部中断唤醒

-空闲模式

SST89E554RC的功能框图如图1-2-1所示,外部引脚如图1-2-2所示。

SST89E554RC的特殊功能寄存器如表1-2-1所列。

 

 

四、实验设计思想与结果分析

实验一到实验四为软件编程实验,需要熟练掌握KEILuv2编程工具的使用,通过编写程序实现实验要求。

实验四到实验八为硬件接口实验,需要利用TD-51系统板,通过KEILuv2编写好程序,下载到所给的SST89E554RC单片机中,按原理接好硬件接线图,完成实验要求。

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

实验调试步骤及结果分析:

(1)编写好实验程序后,采用ISP模式调试。

(2)运行程序,使用Keil51模拟器中的虚拟存储器监视内容变化。

(访问片外存储器,用“X:

+地址”的格式)。

(3)在清零实验中。

用单步跳过的调试方式。

7000H-7FFFH中内容先被写入0FFH;然后全部清零。

(4)在拆子程序实验中,单步进入调试,先在7000H中,写入1FH,首先送低位0FH至7001H,然后送高位1H至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$

END

结果如下:

单步运行下,第一步为:

最后一步为:

8000h为0

拆字程序:

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)编写好实验程序后,采用ISP模式调试。

(2)拼字程序里,将两个字节内容分别存为12H,34H。

低位相拼,结果是24H。

(3)运行程序,使用Keil51模拟器中的虚拟存储器监视内容变化。

(访问片外存储器,用“X:

+地址”的格式)。

程序流程图:

拼字程序流程图数据传输程序流程图

程序清单:

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

结果如下:

把7000h中的8个数据发给7100h中:

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

实验步骤及结果分析:

排序实验:

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

(2)为30H~39H赋初值,如:

在命令行中键入ECHARD:

30H=9,11H,5,31H,20H,16H,1,1AH,3FH,8后回车,可将这10个数写入30H~39H中;

(3)将光标移到语句行命令,将程序运行到该行;

(4)查看存储器窗口中30H~39H中的内容,验证程序功能;

(5)重新为30H~39H单元赋值,反复运行实验程序,验证程序的正确性。

实验流程图

 

程序清单:

散转程序:

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVA,#01H

MOVR2,A

RLA

ADDA,R2

MOVDPTR,#PTAB

JMP@A+DPTR

PTAB:

LJMPPM0

LJMPPM1

LJMPPM2

LJMPPM3

PM0:

[程序体0]

PM1:

[程序体1]

PM2:

[程序体2]

PM3:

[程序体3]

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

 

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

实验步骤:

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

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

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

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

实验硬件接线图:

程序清单:

基础部分:

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)编写实验程序,编译、链接后联机调试;

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

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

 

实验硬件接线图:

定时器LED控制PROTEUS仿真接线图

程序流程图:

 

程序清单:

#include

unsignedcharcount;

 

voidmain()

{

unsignedcharvalue,i;

TMOD=0x01;

TH0=0x4C;

TL0=0x00;

ET0=1;

PT0=1;

EA=1;

TR0=1;

while

(1)

{if(count==20)

P1=05H;

if(count==40)

P1=0AH;

if(count==60)

P1=50H;

if(count==80)

P1=0A0H;

if(count==100)

P1=55H;

if(count==120)

P1=0AAH;

if(count==140)

P1=0FFH;

if(count==160)

P1=00H;

count=0;

}

}

voidTimer0()interrupt1

{

TR0=0;

TH0=0x4C;

TL0=0x00;

TR0=1;

count++;

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

实验接线图:

 

LED灯PROTEUS仿真接线图

程序清单:

PRO_DAEQU7FFFH

PRO_ADEQU0BFFFH

ORG0000H

SJMPMAIN

ORG001BH

LJMPKEYSCAN

ORG0030H

MAIN:

SETBEA

SETBEX1

SETBIT1

MOVP1,#0FH

MOVR5,#0FFH

TEST:

MOVR5,#03H

CJNER5,#01H,L1

LCALLSQUARE

AJMPTEST

L1:

CJNER5,#02H,L2

LCALLTRIANGLE

AJMPTEST

L2:

CJNER5,#03H,L3

LCALLSAWTOOTH

L3:

AJMPTEST

;键盘扫描中断

KEYSCAN:

ACALLT12MS

;MOVR6,A

ACALLSCAN

JNZKEY1

SJMPEXIT

KEY1:

MOVR2,A

MOVR3,#07FH

MOVR4,#03H

LOOP1:

MOVP1,R3

MOVA,P1

CPLA

ANLA,#0FH

JNZKEY2

MOVA,R3

RRA

MOVR3,A

DJNZR4,LOOP1

SJMPEXIT

KEY2:

DECR4

CJNER2,#01H,LOOP3

MOVA,#01H

SJMPLOOP6

LOOP3:

CJNER2,#02H,LOOP4

MOVA,#04H

SJMPLOOP6

LOOP4:

CJNER2,#04H,LOOP5

MOVA,#07H

SJMPLOOP6

LOOP5:

CJNER2,#08H,LOOP6

MOVA,#0AH

LOOP6:

ADDA,R4

MOVR5,A

MOVP1,#0FH

;MOVA,R6

EXIT:

RETI

;延时后再次扫描有无按键按下

SCAN:

MOVP1,#0FH

MOVA,P1

CPLA

ANLA,#0FH

RET

T12MS:

MOVR7,#15H;12MS

TM:

MOVR6,#0FFH

DJNZR6,$

DJNZR7,TM

RET

;D/A产生方波

SQUARE:

MOVDPTR,#PRO_DA

MOVA,#0FFH

MOVX@DPTR,A

MOVDPTR,#0BFFFH

MOVX@DPTR,A

ACALLDELAY

MOVA,#00H

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

当前位置:首页 > 高等教育 > 经济学

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

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