《单片机实验报告材料存储器读写IO端口操作定时中断外部中断等.doc》由会员分享,可在线阅读,更多相关《单片机实验报告材料存储器读写IO端口操作定时中断外部中断等.doc(11页珍藏版)》请在课桌文档上搜索。
1、实验一存储器读写实验目的:1、掌握存放器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等根本操作。实验内容: 1、将下面的汇编程序输入到WAVE集成开发软件中ORG 0000H ;复位入口 SJMP START ;无条件跳转至START ORG 0030H ;系统初始化 START:MOV R0,#07H ;将直接数存入R0存放器 MOV R1,#0FEH ;将直接数FE存入R1存放器 ADD A,R0 ;将R0存放器中的内容与A累加器中的内容相加 ADDC A,R1 ;将R1存放器中的内容与A累加器中的内容相加 MOV DPTR,#2000H ;将直接数2000H存入指针DPTR
2、MOVX 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的数据变化。思考题:试用汇编语言编写一段程序,判断R1、R2、R3三个存放器中存放的数据大小,并按从大到小的顺序重新存放到R1、R2、R3三个存
3、放器中。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大如此转LOOP0MOV A,R1 ;将R1存放器中的内容存入A累加器中XCH A,R2 ;交换R2存放器与A累加器中的内容MOV R1,A ;将A累加器中的内
4、容存入R1存放器中交换R1和R2内容CLR C ;将C累加器清零LOOP0: MOV A,R1 ;将R1存放器中的内容存入A累加器中SUBB A,R3 ;两数比拟 JNC LOOP1 ;无借位跳转R1大如此转LOOP1MOV A,R1 ;将R1存放器中的内容存入A累加器中XCH A,R3 ;交换R3存放器与A累加器中的内容MOV R1,A ;将A累加器中的内容存入R1存放器中交换R1和R3内容CLR C ;将C累加器清零LOOP1: MOV A,R2 ; 将R2存放器中的内容存入A累加器中SUBB A,R3 ;两数比拟JNC LOOP2 ;无借位跳转R2大如此转LOOP2MOV A,R2 ;将
5、R2存放器中的内容存入A累加器中XCH A,R3 ; 交换R3存放器与A累加器中的内容MOV R2,A ;将A累加器中的内容存入R1存放器中交换R2和R3内容LOOP2: MOV R2,A ; LOOP1:将A累加器中的内容存入R2存放器中RET ;完毕心得体会:本次实验主要学习了WAVE软件根本操作运用,并进一步深入学习汇编语言,并用汇编语言进展程序编写,解决一些实际问题.实验二 I/O端口操作实验目的:1、掌握I/O端口读写等汇编指令;2、掌握仿真软件PROTEUS硬件电路设计与仿真、调试等根本操作方法。实验内容:1、参考如下图,用PROTEUS完成单片机硬件电路设计2、用WAVE软件完成
6、发光二级管亮灭程序,用延时子程序设计一段时间延时,编译通过后生成16进制文件.HEX,加载到PROTEUS中仿真验证。ORG 0000H ;复位入口AJMP START ;无条件跳转至STARTORG 0030H ;系统初始化START:MOV SP,#60H ;START:将立即数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调
7、用延时程序DJNZ R0,LOOP ; R0减1,假如不等于0如此继续LOOPAJMP START ;绝对转移指令至STARTDELAY: MOV R0,#255 ; DELAY:将立即数255存入存放器R0D1:MOV R1,#255 ;D1:将立即数255存入存放器R1DJNZ R1,$ ; R1减1,假如不等于0如此继续循环减1DJNZ R0,D1 ;R0减1,假如不等于0如此继续D1RET ;完毕END ; 完毕思考题:单片机晶振设为12MHZ,试计算延时子程序的延时时间。Tcy=12MHZ/12=1微秒心得体会:学习运用PROTEUS硬件电路设计与仿真、调试等根本操作方法。更方便地检
8、验实验效果,学会编写延迟子程序.实验三 定时中断实验目的:1、熟悉单片机定时器工作原理;2、掌握定时器定时控制的编程方法。实验内容:1、编写一段汇编程序,实现P1.0口输出周期为20ms的方波,用单片机定时器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
9、TL1,#0F0H ;设置加1计数器的计数初值低字节SETB TR1 ;启动T1开始计时SETB ET1 ;开T1溢出中断 SETB EA ;开总允许中断MAIN: AJMP MAIN ;主程序等待T1溢出中断T1INT: CPL P1.0 ;T1溢出中断服务程序MOV TH1,#0D8H ; T1重新赋值MOV TL1,#0F0H ;RETI心得体会:熟悉单片机定时器工作原理;掌握定时器定时控制的编程方法,学会观察仿真波形。实验五 外部中断实验目的:1、掌握外部中断控制的原理与编程方法;2、掌握硬件实验箱的使用方法;3、熟悉汇编程序根本格式与编程方法。实验器材:单片机实验箱、51单片机最小系
10、统电路板、串口调试线、PC机、MCS51集成开发环境。实验内容与根本步骤:编写外部中断控制程序,控制8个指示灯的亮灭,模拟交通灯控制。将实验箱上的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
11、4100H ;设置入口 START: CLR IT0 ;设置电平触发 CLR IT1 SETB EX0 ;允许外部中断0的中断 SETB EX1 ;允许外部中断1的中断 SETB EA ;开放所有中断 SJMP $ ;停止 RETI RETIEND ;完毕心得体会:掌握外部中断控制的原理与编程方法;掌握硬件实验箱的使用方法;熟悉汇编程序根本格式与编程方法。实验六 8279显示器接口实验目的:1、掌握数码管显示的根本原理;2、掌握8279键盘显示器接口芯片的使用方法;3、提高汇编应用程序编程方法与技巧。实验器材:1、单片机实验箱、51单片机最小系统电路板、串口调试线、PC机2、MCS51集成开发
12、环境。实验内容与原理:编写数码管显示程序,用两个数码管显示出两个数字。8279的使用方法首先掌握两个口地址,命令口地址0CFE9H。数据口地址:0CFE8H。命令口地址主要是CPU将初始化指令或控制指令对8279完成相关设置。数据口地址完成显示数据字形码的传送。18279最主要的初始化操作是去除显示缓冲区命令110DDD-总清位1 X X1DDD为1XX时允许去除显示器,去除命令需要16us的时间,在此期间CPU不能向8279写入命令。2写显示RAM命令选择哪个数码管100AIAAAA 特征位 显示位置AI为1时,显示RAM自动加1,AI为0时,显示位置由AAAA决定。实验内容:编写数码管显示
13、程序,用两个数码管显示出两个数字。程序参考流程图如下,参考流程框图完成程序的编写并下载到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键盘显示器接口芯片的使用方法;提高汇编应用程序编程方法与技巧。