单片机应用系统实验知识讲解.docx

上传人:b****8 文档编号:8780260 上传时间:2023-02-01 格式:DOCX 页数:21 大小:38.62KB
下载 相关 举报
单片机应用系统实验知识讲解.docx_第1页
第1页 / 共21页
单片机应用系统实验知识讲解.docx_第2页
第2页 / 共21页
单片机应用系统实验知识讲解.docx_第3页
第3页 / 共21页
单片机应用系统实验知识讲解.docx_第4页
第4页 / 共21页
单片机应用系统实验知识讲解.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

单片机应用系统实验知识讲解.docx

《单片机应用系统实验知识讲解.docx》由会员分享,可在线阅读,更多相关《单片机应用系统实验知识讲解.docx(21页珍藏版)》请在冰豆网上搜索。

单片机应用系统实验知识讲解.docx

单片机应用系统实验知识讲解

 

单片机应用系统实验

实验一系统认识及基本程序设计实验

一、实验目的

1.学习Keil集成开发环境的操作;

2.熟悉TD-51系统板的结构及使用,熟悉51指令系统;

3.掌握不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解;

4.学习查表程序的设计方法,进一步熟悉51的指令系统。

二、实验设备

PC机一台,TD-NMC+教学实验系统。

三、实验步骤

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

⑵ 观察实验现象,并分析原因;

⑶ 按复位键退出调试状态。

四、实验内容

1.将BCD码整数0~255存入片内RAM的20H、21H、22H中,然后转换为二进制整数00H~FFH,保存到寄存器R4中。

修改20H、21H、22H单元的内容,如:

00H,05H,08H;观察实验结果。

参考程序:

;==============================================================

;文件名称:

Asm2-1.asm

;功能描述:

BCD整数转换为二进制整数(8位,范围从00H--FFH)

;==============================================================

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR0,#20H;BCD存放高位地址

MOVR7,#03H;BCD码0--255,最多3位

CLRA

MOVR4,A

LP1:

MOVA,R4

MOVB,#0AH

MULAB;乘10

ADDA,@R0;加下一位的值

INCR0;指向下一单元

MOVR4,A;结果存入R4

DJNZR7,LP1;转换未结束则继续

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

END

2.将16位二进制整数存入R3R4寄存器中,转换为十进制整数,以组合BCD形式存储在RAM的20H、21H、22H单元中。

参考程序:

;=============================================================

;文件名称:

Asm2-2.asm

;功能描述:

二进制整数(16位)转换为十进制整数(组合BCD)

;=============================================================

;0--FFFFH(R3R4)==>0--65535

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR0,#22H;转换结果低位地址

MOVA,R0

PUSHACC;ACC表示累加器A的直接地址

MOVR7,#03H

CLRA

LP1:

MOV@R0,A;结果存储地址清零

DECR0

DJNZR7,LP1

POPACC

MOVR0,A

MOVR7,#16

LP2:

PUSHACC

CLRC

MOVA,R4;R4中为二进制数的低位

RLCA

MOVR4,A

MOVA,R3;R3中为二进制数的高位

RLCA

MOVR3,A

MOVB,#03H

LP3:

MOVA,@R0

ADDCA,@R0;执行乘2操作

DAA;十进制调整

MOV@R0,A;结果保存

DECR0

DJNZB,LP3

POPACC

MOVR0,A

DJNZR7,LP2

LJMPMAIN;设置断点观察结果,可进行下一次转换

END

3.通过查表的方法将16进制数转换为ASCII码;

参考程序:

;=============================================================

;文件名称:

Asm4-1.asm

;功能描述:

查表程序设计,将十六进制数0~F通过查表的方法

;转换为ASCII码

;=============================================================

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#ASCTAB;表格首地址送DPTR

MOVA,R7;R7中为待转换的数

ANLA,#0FH;取低4位

MOVCA,@A+DPTR;查表

MOVR5,A;低4位转换结果送R1

MOVA,R7

ANLA,#0F0H;取待转换数的高4位

SWAPA;高4位与低4位交换

MOVCA,@A+DPTR;查表

MOVR6,A;高4位转换结果送R2

SJMPMAIN;设置断点观察结果

ASCTAB:

DB30H,31H,32H,33H,34H

DB35H,36H,37H,38H,39H

DB41H,42H,43H,44H,45H,46H

END

4.通过查表的方法实现y=x2,其中x为0~9的十进制数,以BCD码表示,结果仍以BCD码形式输出。

参考程序:

;==============================================================

;文件名称:

Asm4-2.asm

;功能描述:

查表程序,用程序实现Y=X*X,X为0到9的十进制数,

;用BCD码(00H到09H)表示,将X的平方,即Y也以BCD码

;的形式保存到R1中.

;==============================================================

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVDPTR,#SQR;取表格首地址

MOVA,R7;要计算的值

MOVCA,@A+DPTR;查表

MOVR6,A;结果保存

SJMPMAIN

SQR:

DB00H,01H,04H,09H,16H

DB25H,36H,49H,64H,81H

END

实验二片内I/O口及中断应用实验

一、实验目的

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

了解MCS-51单片机的中断原理,掌握中断程序的设计方法。

二、实验设备

PC机一台,TD-NMC+教学实验系统,连接线若干

三、实验步骤

⑴ 按实验内容要求完成硬件连线;

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

⑶ 观察实验现象,并分析原因;

⑷ 按复位键退出调试状态。

四、实验内容

1.片内I/O口应用实验

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

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

;============================================================

;文件名:

DigitIO.ASM

;功能说明:

数字量输入输出实验,P1口高4位输入,低4位输出

;============================================================

ORG0000H

LJMPSTART

ORG0100H

START:

ORLP1,#0F0H;P1口高四位为输入

MOVA,P1;读P1口的值

SWAPA;A中高,低4位交换

MOVP1,A;输出到P1口

SJMPSTART

END

2.片内中断系统实验

⑴定时器中断

单片机集成的定时器可以产生定时中断,利用定时器0和定时器1,编写实验程序在P1.0及P1.1引脚上输出方波信号,通过示波器观察实验现象并测量波形周期。

改变计数值,重新运行程序,反复验证程序功能。

参考程序:

;================================================================

;文件名:

INT1.ASM

;功能说明:

采用定时器的中断,在P1.0与P1.1引脚上输出周期波形.

;================================================================

ORG0000H

LJMPSTART

ORG000BH

LJMPTIMER0

ORG001BH

LJMPTIMER1

ORG0100H

START:

MOVP1,#0FFH

MOVTH0,#0F8H;初始化定时器0计数初值

MOVTL0,#00H

MOVTH1,#0F8H;初始化定时器1计数初值

MOVTL1,#00H

MOVTMOD,#11H;设置定时器工作模式为方式1

MOVTCON,#50H;启动定时器

MOVIE,#8AH;使能中断

SJMP$

TIMER0:

CPLP1.0;定时器0中断服务程序,对P1.0引脚取反

MOVTH0,#0F8H;重新装入计数初值

MOVTL0,#00H

RETI;中断返回

TIMER1:

CPLP1.1;定时器1中断服务程序

MOVTH1,#0F8H

MOVTL1,#00H

RETI

END

⑵外部中断

手动扩展外部中断INT0、INT1,当INT0产生中断时,使LED8亮8灭闪烁4次;当INT1产生中断时,使LED由右向左流水显示,一次亮两个,循环4次。

先按KK1-,观察实验现象,然后按KK2-,观察实验现象。

51单片机加入了中断系统,从而提高了CPU对外部事件的处理能力和响应速度。

增强型单片机SST89E554RC共有8个中断源,即外部中断0(INT0)、定时器0(T0)、外部中断1(INT1)、定时器1(T1)、串行中断(TI和RI)、定时器2(T2)、PCA中断和Brown-out中断。

参考程序:

;======================================================================

;文件名:

INT2.ASM

;功能说明:

外部中断INT0,INT1操作.

;外部中断0:

使发光二极管闪烁4次.

;外部中断1:

使发光二极管由右向左流水显示,一次亮两个LED.

;======================================================================

ORG0000H

LJMPSTART

ORG0003H

LJMPEINT0

ORG0013H

LJMPEINT1

START:

MOVP1,#00H

SETBIT0;定义外部中断0为边沿触发

SETBEX0;使能外部中断0

SETBIT1;定义外部中断1为边沿触发

SETBEX1;使能外部中断1

SETBEA;使能总中断

SJMP$

EINT0:

MOVR7,#04H;外部中断0中断服务程序

ELP0:

MOVP1,#0FFH

ACALLDELAY;调用延时程序

MOVP1,#00H

ACALLDELAY

DJNZR7,ELP0

RETI

EINT1:

MOVA,#03H;外部中断1中断服务程序

MOVR7,#10H

ILP1:

MOVP1,A

RLA

RLA

ACALLDELAY

DJNZR7,ILP1

RETI

DELAY:

MOVR6,#0FFH;延时子程序

DLP1:

MOVR5,#0FFH

DLP2:

DJNZR5,DLP2

DJNZR6,DLP1

RET

END

实验三定时器/计数器应用实验

一、实验目的

1.了解MCS-51单片机定/计数器的工作原理与工作方式;

2.掌握定时/计数器T0和T1在定时器和计数器两种方式下的编程;

3.学习定时/计数器T2的可编程时钟输出功能。

二、实验设备

PC机一台,TD-NMC+教学实验系统,连接线若干

三、实验步骤

⑴ 按实验内容要求完成硬件连线;

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

⑶ 观察实验现象,并分析原因;

⑷ 按复位键退出调试状态。

四、实验原理

通常,8051单片机内部有2个16位定时/计数器,即定时器0(T0)和定时器1(T1)。

强型单片机SST89E554RC内部还有一个16位定时器T2,与其相关的特殊功能寄存器有TL2、

TH2、RCAP2L、RCAP2H、T2CON等。

定时器/计数器2控制寄存器(T2CON)各位的含义简述如下:

TF2:

定时器溢出标志,当定时器溢出时置位,必须由软件清除。

当RCLK=1或TCLK=1

时此位将不会被置位。

EXF2:

定时器2外部标志,当EXEN2=1并且T2EX引脚上出现负跳变引起捕捉或重载发

生时此位置1。

如果定时器2中断使能,EXF2=1会引起中断,此位必须软件清除。

DCEN=1

时,EXF2不会引起中断。

RCLK:

接收时钟标志,RCLK=1,串行口使用T2的溢出脉冲作为方式1和3下的接收时

钟;RCLK=0,串行口使用T1的溢出脉冲作为接收时钟。

TCLK:

发送时钟标志,与RCLK的作用相同。

EXEN2:

定时器2外部使能标志。

EXEN2=1且T2未被用于串口时钟时,若T2EX引脚上

出现负跳变则出现捕捉或重载。

EXEN2=0时,T2忽略T2EX引脚上的变化。

TR2:

启动/停止定时器2,为1时启动定时器2。

C/T2#:

定时器/计数器选择。

C/T2#=1为计数功能;C/T2#=0为定时功能。

CP/RL2#:

捕捉/重载标志。

CP/RL2#=1,当EXEN2=1且T2EX引脚上出现负跳变时捕

捉发生。

CP/RL2#=0,T2溢出时重载发生,或当EXEN2=1且T2EX引脚上出现负跳变时重

载发生。

如果RCLK=1或TCLK=1,此位会被忽略,T2溢出时自动重载。

定时器/计数器2模式寄存器(T2MOD)各位的含义简述如下:

T2OE:

定时器2输出使能位。

DCEN:

递减计数使能位。

五、实验内容

1.使用定时器0与定时器1进行定时,在P1.0和P1.1引脚上输出方波信号,通过示波器

观察波形输出,测量并记录方波周期。

参考程序:

;=======================================================================

;文件名称:

Timer.ASM

;功能说明:

使用定时器0和定时器1在P1.0与P1.1引脚上输出方波.

;=======================================================================

ORG0000H

LJMPSTART

ORG0100H

START:

MOVTMOD,#11H;设置定时器工作方式为方式1

MOVTH0,#0F8H;装入定时器0的计数初值

MOVTL0,#00H

MOVTH1,#0F8H;装入定时器1的计数初值

MOVTL0,#00H

SETBTR0;启动定时器

SETBTR1

MLP1:

JNBTF0,MLP2;判定时器0溢出标志

MOVTH0,#0F8H;重装定时器0的计数初值

MOVTL0,#00H

CPLP1.0

CLRTF0;清溢出标志

MLP2:

JNBTF1,MLP1;判定时器1溢出标志

MOVTH1,#0F8H

MOVTL1,#00H

CPLP1.1

CLRTF1

AJMPMLP1

END

2.将定时/计数器1设定为计数器方式,每次计数到10在P1.0引脚上取反一次,硬件连接如图

所示,按单次脉冲KK1,观察发光管D0的状态,每10次变化一次。

参考程序:

;=======================================================================

;文件名称:

COUNT.ASM

;功能描述:

利用计数器1,在计数10次后对P1.0引脚取反一次

;=======================================================================

ORG0000H

AJMPSTART

ORG0100H

START:

MOVTMOD,#60H;设置定时器/计数器1为计数器方式,且为方式2

MOVTH1,#0F6H;装入计数初值

MOVTL1,#0F6H

SETBTR1;启动计数

MLP1:

JNBTF1,MLP1;判溢出标志

CPLP1.0;取反P1.0

CLRTF1;清溢出标志

AJMPMLP1

END

3.定时器2可以作为时钟发生器使用,并在P1.0引脚上输出占空比为50%的方波。

编程定时器2,使用示波器测量输出时钟,测量时钟周期;假定需要输出1MHz的方波信号,试修改程序,并使用示波器测量,验证程序的正确性。

引脚P1.0与T2复用,除作为普通I/O引脚外,还有两个功能,即为定时/计数器2输入外

部时钟,输出占空比为50%的周期时钟。

如果将T2配置为时钟发生器,那么必须将C/T2#设置为0,将T2OE设置为1,并设置TR2

为1以启动定时器。

输出时钟的频率取决于晶振频率以及捕捉寄存器的重载值,公式如下:

输出频率=晶振频率÷[n×(65536-RCAP2H,RCAP2L)]

其中n=2(6时钟模式)或n=4(12时钟模式)

晶振频率为11.0592MHz,工作于12时钟模式下,输出频率的范围为:

42Hz~2.76MHz。

参考程序:

;=======================================================================

;文件名称:

ClkOut.ASM

;功能描述:

使用定时器2作为时钟发生器,测量P1.0引脚输出,测量周期.

;=======================================================================

T2CONEQU0C8H;定义特殊功能寄存器

T2MODEQU0C9H

RCAP2LEQU0CAH

RCAP2HEQU0CBH

ORG0000H

AJMPSTART

ORG0100H

START:

MOVRCAP2H,#0FFH;改变RCAP2H,RCAP2L中的值可以改变时钟频率

MOVRCAP2L,#00H

MOVT2MOD,#02H;设置T2工作于时钟输出模式下

MOVT2CON,#04H;启动定时器T2

SJMP$

END

实验四看门狗实验

一、实验目的

了解看门狗的工作原理,学习看门狗的编程方法。

二、实验设备

PC机一台,TD-NMC+教学实验系统,连接线若干

三、实验步骤

⑴按图连接实验电路图;

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

⑶允许实验程序,LED闪烁;

⑷按单次脉冲KK1-,对WDT停止刷新;

⑸经过大概3秒钟,可观察软件界面,产生复位,程序停止运行(注意界面变化);

⑹改变WDT的超时周期,反复实验几次,验证看门狗功能。

每次重新运行程序前,都应该先停止调试,然后重新启动调试,这样方可保证系统正常工作。

四、实验原理

SST89E554RC提供了一个可编程看门狗定时器(WDT),可以防止软件跑飞并自动恢复,提高系统的可靠性。

用户程序中如果使用了看门狗,那么必须在用户自己定义的时间内刷新WDT,亦称“喂狗”。

若在规定的时间内没有刷新WDT,则产生内部硬件复位。

WDT以系统时钟(XTAL1)作为自己的时基,WDT寄存器每隔344064个时钟加1,时基寄存器(WDTD)的高8位被用作WDT的重载寄存器。

WDT的结构框图如图3-4-1所示。

WDT超时周期计算如下:

周期=(255-WDTD)×344064÷fCLK(XTAL1)

看门狗定时器控制寄存器(WDTC)

各位说明如下:

WDOUT:

看门狗输出允许

0:

看门狗复位不在复位引脚上输出

1:

如果看门狗复位允许位WDRE=1,看门狗复位将在复位脚上输出复位信号32个时钟

WDRE:

看门狗定时器复位允许

0:

禁止看门狗定时器复位

1:

允许看门狗定时器复位

WDTS:

看门狗定时器复位标志

0:

外部硬件复位或上电会清除此位,向此位写1会清除此位,若由于看门狗引起的复位将不影响此位。

1:

看门狗溢出,此位置1

WDT看门狗定时器刷新

0:

刷新完成,硬件复位此位。

1:

软件设置此位以强迫看门狗刷新,俗称“喂狗”。

SWDT启动看门狗定时器

0:

停止WDT

1:

启动WDT

看门狗定时器数据/重载寄存器(WDTD)

五、实验内容

学习SST89E554RC的看门狗功能模块,编写实验程序,程序正常运行时8个LED闪烁,

通过按键使看门狗产生超时,引起系统复位。

参考程序:

;======================================================================

;文件名称:

WDT.C

;功能描述:

看门狗实验,程序运行时LED闪烁.使用按键使看门狗产生

;超时,引起系统复位.系统复位,软件停止按钮变灰.

;======================================================================

WDTDEQU85H;看门狗定时器数据/重载寄存器

WDTCE

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

当前位置:首页 > 总结汇报 > 学习总结

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

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