单片机实验报告材料存储器读写IO端口操作定时中断外部中断等.docx
《单片机实验报告材料存储器读写IO端口操作定时中断外部中断等.docx》由会员分享,可在线阅读,更多相关《单片机实验报告材料存储器读写IO端口操作定时中断外部中断等.docx(13页珍藏版)》请在冰豆网上搜索。
单片机实验报告材料存储器读写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
MOVX@DPTR,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;清除初始值
MOVX@DPTR,A
I:
MOVDPTR,#0CFE9H;命令口地址
MOVA,#080H;选择显示管
MOVX@DPTR,A
MOVDPTR,#0CFE8H;数据口地址
MOVA,#66H;显示数据4
MOVX@DPTR,A
AJMPI;无条件跳转
END;结束
心得体会:
掌握数码管显示的基本原理;掌握8279键盘显示器接口芯片的使用方法;提高汇编应用程序编程方法与技巧。