单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx

上传人:b****2 文档编号:2944128 上传时间:2023-05-05 格式:DOCX 页数:13 大小:921.82KB
下载 相关 举报
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第1页
第1页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第2页
第2页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第3页
第3页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第4页
第4页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第5页
第5页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第6页
第6页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第7页
第7页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第8页
第8页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第9页
第9页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第10页
第10页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第11页
第11页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第12页
第12页 / 共13页
单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx

《单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx》由会员分享,可在线阅读,更多相关《单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx(13页珍藏版)》请在冰点文库上搜索。

单片机实验报告存储器读写IO端口操作定时中断外部中断等.docx

单片机实验报告存储器读写IO端口操作定时中断外部中断等

实验一存储器读写

实验目的:

1、掌握寄存器、存储器读写等汇编指令;

2、掌握编程软件编辑、编译、调试等基本操作。

实验容:

1、将下面的汇编程序输入到WAVE集成开发软件中

ORG0000H;复位入口

SJMPSTART;无条件跳转至START

ORG0030H;系统初始化

START:

MOVR0,#07H;将直接数存入R0寄存器

MOVR1,#0FEH;将直接数FE存入R1寄存器

ADDA,R0;将R0寄存器中的容与A累加器中的容相加

ADDCA,R1;将R1寄存器中的容与A累加器中的容相加

MOVDPTR,#2000H;将直接数2000H存入指针DPTR

MOVXDPTR,A;将A累加器中容存入以DPTR为地址单元中

MOVXA,DPTR;将以DPTR为地址单元中容存入A累加器中

INCA;A累加器所在地址自动加一

MOVP1,A;将A累加器中容存入P1中

END;结束

 

2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。

 

3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。

 

思考题:

试用汇编语言编写一段程序,判断R1、R2、R3三个寄存器中存放的数据大小,并按从大到小的顺序重新存放到R1、R2、R3三个寄存器中。

ORG0000H;复位入口

SJMPSTART;无条件跳转至START

ORG0030H;系统初始化

START:

MOVR1,#01H;将直接数01H存入R1寄存器

MOVR2,#04H;将直接数04H存入R2寄存器

MOVR3,#09H;将直接数09H存入R3寄存器

CLRC;将C累加器清零

MOVA,R1;将R1寄存器中的容存入A累加器中

SUBBA,R2;两数比较

JNCLOOP0;无借位跳转(R1大则转LOOP0)

MOVA,R1;将R1寄存器中的容存入A累加器中

XCHA,R2;交换R2寄存器与A累加器中的容

MOVR1,A;将A累加器中的容存入R1寄存器中(交换R1和R2容)

CLRC;将C累加器清零

LOOP0:

MOVA,R1;将R1寄存器中的容存入A累加器中

SUBBA,R3;两数比较

JNCLOOP1;无借位跳转(R1大则转LOOP1)

MOVA,R1;将R1寄存器中的容存入A累加器中

XCHA,R3;交换R3寄存器与A累加器中的容

MOVR1,A;将A累加器中的容存入R1寄存器中(交换R1和R3容)

CLRC;将C累加器清零

LOOP1:

MOVA,R2;将R2寄存器中的容存入A累加器中

SUBBA,R3;两数比较

JNCLOOP2;无借位跳转(R2大则转LOOP2)

MOVA,R2;将R2寄存器中的容存入A累加器中

XCHA,R3;交换R3寄存器与A累加器中的容

MOVR2,A;将A累加器中的容存入R1寄存器中(交换R2和R3容)

LOOP2:

MOVR2,A;LOOP1:

将A累加器中的容存入R2寄存器中

RET;结束

 

心得体会:

本次实验主要学习了WAVE软件基本操作运用,并进一步深入学习汇编语言,并用汇编语言进行程序编写,解决一些实际问题.

实验二I/O端口操作

实验目的:

1、掌握I/O端口读写等汇编指令;

2、掌握仿真软件PROTEUS硬件电路设计及仿真、调试等基本操作方法。

实验容:

1、参考下图,用PROTEUS完成单片机硬件电路设计

2、用WAVE软件完成发光二级管亮灭程序,用延时子程序设计一段时间延时,编译通过后生成16进制文件(.HEX),加载到PROTEUS中仿真验证。

ORG0000H;复位入口

AJMPSTART;无条件跳转至START

ORG0030H;系统初始化

START:

MOVSP,#60H;START:

将立即数60H存入指针SP

MOVA,#01H;将立即数01H存入A累加器

MOVP1,A;将A累加器中的容存入指针P1

MOVR0,#7;将立即数7存入R0寄存器

LOOP:

RLA;LOOP:

左移小循环

MOVP1,A;将指针P1中的容存入A累加器中

ACALLDELAY;绝对调用指令至DELAY(调用延时程序)

DJNZR0,LOOP;R0减1,若不等于0则继续LOOP

AJMPSTART;绝对转移指令至START

DELAY:

MOVR0,#255;DELAY:

将立即数255存入寄存器R0

D1:

MOVR1,#255;D1:

将立即数255存入寄存器R1

DJNZR1,$;R1减1,若不等于0则继续循环减1

DJNZR0,D1;R0减1,若不等于0则继续D1

RET;结束

END;结束

思考题:

单片机晶振设为12MHZ,试计算延时子程序的延时时间。

Tcy=12MHZ/12=1微秒

心得体会:

学习运用PROTEUS硬件电路设计及仿真、调试等基本操作方法。

更方便地检验实验效果,学会编写延迟子程序.

 

实验三定时中断

实验目的:

1、熟悉单片机定时器工作原理;

2、掌握定时器定时控制的编程方法。

实验容:

1、编写一段汇编程序,实现P1.0口输出周期为20ms的方波,(用单片机定时器T1采用定时方式1)。

并用PROTEUS仿真验证。

ORG0000H;复位入口

AJMPSTART;跳转至START

ORG001BH;T1溢出中断入口

AJMPT1INT;跳转至T1INT

ORG0030H

START:

MOVSP,#60H;系统初始化

MOVTMOD,#10H;设置T1工作于定时工作方式1

MOVTH1,#0D8H;设置加1计数器的计数初值高字节

MOVTL1,#0F0H;设置加1计数器的计数初值低字节

SETBTR1;启动T1开始计时

SETBET1;开T1溢出中断

SETBEA;开总允许中断

MAIN:

AJMPMAIN;主程序(等待T1溢出中断)

T1INT:

CPLP1.0;T1溢出中断服务程序

MOVTH1,#0D8H;T1重新赋值

MOVTL1,#0F0H;

RETI

 

心得体会:

熟悉单片机定时器工作原理;掌握定时器定时控制的编程方法,学会观察仿真波形。

实验五外部中断

实验目的:

1、掌握外部中断控制的原理及编程方法;

2、掌握硬件实验箱的使用方法;

3、熟悉汇编程序基本格式与编程方法。

实验器材:

单片机实验箱、51单片机最小系统电路板、串口调试线、PC机、MCS51集成开发环境。

实验容及基本步骤:

编写外部中断控制程序,控制8个指示灯的亮灭,模拟交通灯控制。

将实验箱上的P3.2(外部中断0)和P3.3(外部中断1)分别接2个按钮,P1.0和P1.1接2个发光二极管,编写外部中断控制程序,控制2个指示灯的亮灭,按下按钮1,指示灯1亮;按下按钮2,指示灯1灭2亮,如此反复。

 

CSEGAT0000H;复位入口

LJMPSTART;长跳转至START

CSEGAT4003H;外部中断0入口

LJMPINT;长跳转至INT

CSEGAT4013H;外部中断1入口

LJMPIN;长跳转至IN

CSEGAT4100H;设置入口

START:

CLRIT0;设置电平触发

CLRIT1

SETBEX0;允许外部中断0的中断

SETBEX1;允许外部中断1的中断

SETBEA;开放所有中断

SJMP$;停止

INT:

SETBP1.0;P1.0置高电平

CLRP1.1;P1.1置低电平

RETI

IN:

SETBP1.1;P1.1置高电平

CLRP1.0;P1.0置低电平

RETI

END;结束

心得体会:

掌握外部中断控制的原理及编程方法;掌握硬件实验箱的使用方法;熟悉汇编程序基本格式与编程方法。

实验六8279显示器接口

实验目的:

1、掌握数码管显示的基本原理;

2、掌握8279键盘显示器接口芯片的使用方法;

3、提高汇编应用程序编程方法与技巧。

实验器材:

1、单片机实验箱、51单片机最小系统电路板、串口调试线、PC机

2、MCS51集成开发环境。

实验容及原理:

编写数码管显示程序,用两个数码管显示出两个数字。

8279的使用方法

首先掌握两个口地址,命令口地址0CFE9H。

数据口地址:

0CFE8H。

命令口地址主要是CPU将初始化指令或控制指令对8279完成相关设置。

数据口地址完成显示数据字形码的传送。

1)8279最主要的初始化操作是清除显示缓冲区命令

1

1

0

D

D

D

-

总清位

1

X

X

1

DDD为1XX时允许清除显示器,清除命令需要16us的时间,在此期间CPU不能向8279写入命令。

2)写显示RAM命令(选择哪个数码管)

1

0

0

AI

A

A

A

A

特征位

显示位置

AI为1时,显示RAM自动加1,AI为0时,显示位置由AAAA决定。

实验容:

编写数码管显示程序,用两个数码管显示出两个数字。

程序参考流程图如下,参考流程框图完成程序的编写并下载到EL实验箱上进行验证。

 

ORG0000H;复位入口

LJMPSTART;长跳转

ORG0800H;设置初始地址

START:

MOVDPTR,#0CFE9H;命令口地址

MOVA,#0D1H;清除初始值

MOVXDPTR,A

I:

MOVDPTR,#0CFE9H;命令口地址

MOVA,#080H;选择显示管

MOVXDPTR,A

MOVDPTR,#0CFE8H;数据口地址

MOVA,#66H;显示数据4

MOVXDPTR,A

AJMPI;无条件跳转

END;结束

心得体会:

掌握数码管显示的基本原理;掌握8279键盘显示器接口芯片的使用方法;提高汇编应用程序编程方法与技巧。

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

当前位置:首页 > 表格模板 > 合同协议

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

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