收藏 分享(赏)

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

上传人:精品资料 文档编号:10251599 上传时间:2019-10-25 格式:DOC 页数:11 大小:977KB
下载 相关 举报
单片机实验报告,存储器读写,IO端口操作,定时中断,外部中断等.doc_第1页
第1页 / 共11页
单片机实验报告,存储器读写,IO端口操作,定时中断,外部中断等.doc_第2页
第2页 / 共11页
单片机实验报告,存储器读写,IO端口操作,定时中断,外部中断等.doc_第3页
第3页 / 共11页
单片机实验报告,存储器读写,IO端口操作,定时中断,外部中断等.doc_第4页
第4页 / 共11页
单片机实验报告,存储器读写,IO端口操作,定时中断,外部中断等.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、实验一 存储器读写实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。实验内容:1、将下面的汇编程序输入到 WAVE 集成开发软件中ORG 0000H ;复位入口SJMP START ;无条件跳转至 STARTORG 0030H ;系统初始化START:MOV R0,#07H ;将直接数存入 R0 寄存器MOV R1,#0FEH ;将直接数 FE 存入 R1 寄存器ADD A,R0 ;将 R0 寄存器中的内容与 A 累加器中的内容相加ADDC A,R1 ;将 R1 寄存器中的内容与 A 累加器中的内容相加MOV DPTR,#2000H ;将直接数 200

2、0H 存入指针 DPTRMOVX DPTR,A ;将 A 累加器中内容存入以 DPTR 为地址单元中MOVX A,DPTR ;将以 DPTR 为地址单元中内容存入 A 累加器中INC A ;A 累加器所在地址自动加一MOV P1,A ;将 A 累加器中内容存入 P1 中END ;结束2、选择菜单“仿真器”“仿真器设置” ,按下图所示完成软件初始设置。3、选择菜单“项目”下“编译” ,编译通过后,选择“单步运行” ,观察记录寄存器(R0、R1) 、累加器(A) 、程序状态字(PSW ) 、外部存储器(2000H 单元) 、I/O 端口(P1)的数据变化。思考题:试用汇编语言编写一段程序,判断 R

3、1、R2、R3 三个寄存器中存放的数据大小,并按从大到小的顺序重新存放到 R1、R2、R3 三个寄存器中。ORG 0000H ;复位入口SJMP START ;无条件跳转至 STARTORG 0030H ;系统初始化START:MOV R1,#01H ;将直接数 01H 存入 R1 寄存器MOV R2,#04H ;将直接数 04H 存入 R2 寄存器MOV R3,#09H ;将直接数 09H 存入 R3 寄存器CLR C ;将 C 累加器清零MOV A,R1 ;将 R1 寄存器中的内容存入 A 累加器中SUBB A,R2 ;两数比较JNC LOOP0 ; 无借位跳转(R1 大则转 LOOP0)

4、MOV A,R1 ;将 R1 寄存器中的内容存入 A 累加器中XCH A,R2 ;交换 R2 寄存器与 A 累加器中的内容MOV R1,A ;将 A 累加器中的内容存入 R1 寄存器中(交换 R1 和 R2 内容)CLR C ;将 C 累加器清零LOOP0: MOV A,R1 ;将 R1 寄存器中的内容存入 A 累加器中SUBB A,R3 ;两数比较 JNC LOOP1 ;无借位跳转(R1 大则转 LOOP1)MOV A,R1 ;将 R1 寄存器中的内容存入 A 累加器中XCH A,R3 ;交换 R3 寄存器与 A 累加器中的内容MOV R1,A ;将 A 累加器中的内容存入 R1 寄存器中(

5、交换 R1 和 R3 内容)CLR C ;将 C 累加器清零LOOP1: MOV A,R2 ; 将 R2 寄存器中的内容存入 A 累加器中SUBB A,R3 ;两数比较JNC LOOP2 ;无借位跳转(R2 大则转 LOOP2)MOV A,R2 ;将 R2 寄存器中的内容存入 A 累加器中XCH A,R3 ; 交换 R3 寄存器与 A 累加器中的内容MOV R2,A ;将 A 累加器中的内容存入 R1 寄存器中(交换 R2 和 R3 内容)LOOP2: MOV R2,A ; LOOP1:将 A 累加器中的内容存入 R2 寄存器中RET ;结束心得体会:本次实验主要学习了 WAVE 软件基本操作

6、运用,并进一步深入学习汇编语言,并用汇编语言进行程序编写,解决一些实际问题.实验二 I/O 端口操作实验目的:1、掌握 I/O 端口读写等汇编指令;2、掌握仿真软件 PROTEUS 硬件电路设计及仿真、调试等基本操作方法。实验内容:1、参考下图,用 PROTEUS 完成单片机硬件电路设计2、用 WAVE 软件完成发光二级管亮灭程序,用延时子程序设计一段时间延时,编译通过后生成 16 进制文件(.HEX) ,加载到PROTEUS 中仿真验证。ORG 0000H ;复位入口AJMP START ;无条件跳转至 STARTORG 0030H ;系统初始化START:MOV SP,#60H ;STAR

7、T:将立即数 60H 存入指针 SPMOV A,#01H ;将立即数 01H 存入 A 累加器MOV P1,A ;将 A 累加器中的内容存入指针 P1MOV R0,#7 ;将立即数 7 存入 R0 寄存器LOOP:RL A ; LOOP:左移小循环MOV P1,A ; 将指针 P1 中的内容存入 A 累加器中ACALL DELAY ; 绝对调用指令至 DELAY(调用延时程序)DJNZ R0,LOOP ; R0 减 1,若不等于 0 则继续 LOOPAJMP START ;绝对转移指令至 STARTDELAY: MOV R0,#255 ; DELAY:将立即数 255 存入寄存器 R0D1:M

8、OV R1,#255 ;D1:将立即数 255 存入寄存器 R1DJNZ R1,$ ; R1 减 1,若不等于 0 则继续循环减 1DJNZ R0,D1 ;R0 减 1,若不等于 0 则继续 D1RET ;结束END ; 结束思考题:单片机晶振设为 12MHZ,试计算延时子程序的延时时间。Tcy=12MHZ/12=1 微秒心得体会:学习运用 PROTEUS 硬件电路设计及仿真、调试等基本操作方法。更方便地检验实验效果,学会编写延迟子程序.实验三 定时中断实验目的:1、熟悉单片机定时器工作原理;2、掌握定时器定时控制的编程方法。实验内容:1、编写一段汇编程序,实现 P1.0 口输出周期为 20m

9、s 的方波, (用单片机定时器 T1 采用定时方式 1) 。并用 PROTEUS仿真验证。ORG 0000H ;复位入口AJMP START ;跳转至 STARTORG 001BH ;T1 溢出中断入口AJMP T1INT ;跳转至 T1INTORG 0030H START: MOV SP,#60H ;系统初始化MOV TMOD,#10H ;设置 T1 工作于定时工作方式 1MOV TH1,#0D8H ;设置加 1 计数器的计数初值高字节MOV TL1,#0F0H ;设置加 1 计数器的计数初值低字节SETB TR1 ;启动 T1 开始计时SETB ET1 ;开 T1 溢出中断 SETB EA

10、 ;开总允许中断MAIN: AJMP MAIN ;主程序(等待 T1 溢出中断)T1INT: CPL P1.0 ;T1 溢出中断服务程序MOV TH1,#0D8H ; T1 重新赋值MOV TL1,#0F0H ;RETI心得体会:熟悉单片机定时器工作原理;掌握定时器定时控制的编程方法,学会观察仿真波形。实验五 外部中断实验目的:1、掌握外部中断控制的原理及编程方法;2、掌握硬件实验箱的使用方法;3、熟悉汇编程序基本格式与编程方法。实验器材:单片机实验箱、51 单片机最小系统电路板、串口调试线、PC 机、MCS51 集成开发环境。实验内容及基本步骤:编写外部中断控制程序,控制 8 个指示灯的亮灭

11、,模拟交通灯控制。将实验箱上的 P3.2(外部中断 0)和 P3.3(外部中断 1)分别接 2 个按钮,P1.0 和 P1.1 接 2 个发光二极管,编写外部中断控制程序,控制2 个指示灯的亮灭,按下按钮 1,指示灯 1 亮;按下按钮 2,指示灯1 灭 2 亮,如此反复。CSEG AT 0000H ;复位入口LJMP START ;长跳转至 STARTCSEG AT 4003H ;外部中断 0 入口LJMP INT ;长跳转至 INTCSEG AT 4013H ;外部中断 1 入口 LJMP IN ;长跳转至 INCSEG AT 4100H ;设置入口START: CLR IT0 ;设置电平触

12、发CLR IT1SETB EX0 ;允许外部中断 0 的中断SETB EX1 ;允许外部中断 1 的中断SETB EA ;开放所有中断SJMP $ ;停止INT:SETB P1.0 ;P1.0 置高电平CLR P1.1 ;P1.1 置低电平RETIIN:SETB P1.1 ;P1.1 置高电平CLR P1.0 ; P1.0 置低电平RETIEND ;结束心得体会:掌握外部中断控制的原理及编程方法;掌握硬件实验箱的使用方法;熟悉汇编程序基本格式与编程方法。实验六 8279 显示器接口实验目的:1、掌握数码管显示的基本原理;2、掌握 8279 键盘显示器接口芯片的使用方法;3、提高汇编应用程序编程

13、方法与技巧。实验器材:1、单片机实验箱、51 单片机最小系统电路板、串口调试线、PC 机2、MCS51 集成开发环境。实验内容及原理:编写数码管显示程序,用两个数码管显示出两个数字。8279 的使用方法首先掌握两个口地址,命令口地址 0CFE9H。数据口地址:0CFE8H 。命令口地址主要是 CPU 将初始化指令或控制指令对 8279 完成相关设置。数据口地址完成显示数据字形码的传送。1)8279 最主要的初始化操作是清除显示缓冲区命令1 1 0 D D D - 总清位1 X X 1DDD 为 1XX 时允许清除显示器,清除命令需要 16us 的时间,在此期间CPU 不能向 8279 写入命令

14、。2)写显示 RAM 命令(选择哪个数码管)1 0 0 AI A A A A特征位 显示位置AI 为 1 时,显示 RAM 自动加 1,AI 为 0 时,显示位置由 AAAA 决定。实验内容:编写数码管显示程序,用两个数码管显示出两个数字。程序参考流程图如下,参考流程框图完成程序的编写并下载到 EL 实验箱上进行验证。ORG 0000H ;复位入口LJMP START ;长跳转ORG 0800H ;设置初始地址START:MOV DPTR,#0CFE9H ;命令口地址MOV A,#0D1H ;清除初始值MOVX DPTR,A I:MOV DPTR,#0CFE9H ; 命令口地址MOV A,#080H ;选择显示管MOVX DPTR,AMOV DPTR,#0CFE8H ;数据口地址MOV A,#66H ;显示数据 4MOVX DPTR,AAJMP I ; 无条件跳转 END ; 结束心得体会:掌握数码管显示的基本原理;掌握 8279 键盘显示器接口芯片的使用方法;提高汇编应用程序编程方法与技巧。

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报