单片机汇编中断系统实验

时间:2024.5.9

单片机原理及应用

实验报告:实验三 中断系统实验

专业班级:2011级信息工程 姓名:高 祥 学号:1195111009

一、实验目的

1. 学习掌握51单片机中断系统结构、中断控制。

2. 学习掌握中断控制初始化和中断服务程序设计、调试。

二、实验说明

实验通过开关向单片机提出中断请求,单片机响应中断控制LED移位,从而观察中断的请求、响应的过程。通过本实验学生可以学习单片机中断系统结构以及中断控制初始化和中断服务程序设计、调试。 指导老师

三、实验内容

1)、LED循环移位控制:

要求:P0口接LED,编程实现两种以上的循环移位方式(方式自定义,显示效果必须有明显的区别)。为便于观察,移位速度控制在1位/秒,采用软件延时。

代码码一:

;************************************************************************** :该程序实现的是LED灯循环左移程序,延时时间为0.99s

:************************************************************************** MOV A, #0FEH

LJMP MAIN

ORG 0080H

MAIN: MOV P0,A

ACALL DELAY

RL A

AJMP MAIN

Delay:MOV R7, #0C2H

D1 :MOV R6, #32H

D2 :MOV R5 ,#32H

D3 :DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET

END

代码二:

:************************************************************************* :该代码实现的是连个LED向右轮流循环显示功能,延迟时间为0.99S

:************************************************************************* MOV A,#9FH

BY:2011级信息工程(微波通信方向)

单片机原理及应用

LJMP MAIN

ORG 0080H

MAIN: MOV P0,A

ACALL DELAY

RR A

AJMP MAIN

Delay:MOV R7, #0C2H

D1 :MOV R6, #32H

D2 :MOV R5 ,#32H

D3 :DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET

END

2)、外部中断:

要求:通过按键产生外部中断请求(/INT0)信号,中断服务程序中完成上述循环移位方式切换。要求分别编写电平触发方式和跳变沿触发方式的初始化程序及中断服务程序。 代码一:

;**************************************************************************** ;通过按键来实现中断请求信号,完成一中的LED左循环程序,电平触发

;************************************************************************** ORG 0000H

LJMP MAIN

ORG 0003H

LJMP Bre

MAIN: MOV SP,#60H

CLR 01H

LOOP1:MOV A,#0FEH

LOOP4:MOV P2,A

ACALL Delay

SETB EA

SETB EX0

CLR IT0

RL A

JnB 01H,LOOP4

MOV R2,A

ACALL Delay

JNB 01H,LOOP4

LOOP2:MOV A,#9FH

LOOP3:MOV P2,A

ACALL Delay

RR A

BY:2011级信息工程(微波通信方向)

单片机原理及应用

JNB 01H,LOOP5

SJMP LOOP3

LOOP5:MOV A,R2

SJMP LOOP4

Bre: PUSH PSW

PUSH Acc

CPL 01H

POP Acc

POP PSW

RETI

Delay: MOV R7,#0C2H

D1 :MOV R6,#32H

D2 :MOV R5,#32H

D3 :DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET

END

代码二:

;**************************************************************************** ;通过按键来实现中断请求信号,完成一中的LED向右循环程序,跳变沿触发

;************************************************************************** ORG 0000H

LJMP MAIN

ORG 0003H

LJMP Bre

MAIN: MOV SP,#60H

CLR 01H

LOOP1:MOV A,#0FEH

LOOP4:MOV P2,A

ACALL Delay

SETB EA

SETB EX0

SETB IT0

RL A

JnB 01H,LOOP4

MOV R2,A

ACALL Delay

JNB 01H,LOOP4

LOOP2:MOV A,#9FH

LOOP3:MOV P2,A

ACALL Delay

RR A

JNB 01H,LOOP5

SJMP LOOP3

BY:2011级信息工程(微波通信方向)

单片机原理及应用

LOOP5:MOV A,R2

SJMP LOOP4

Bre: PUSH PSW

PUSH Acc

CPL 01H

POP Acc

POP PSW

RETI

Delay: MOV R7,#0C2H

D1 :MOV R6,#32H

D2 :MOV R5,#32H

D3 :DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET

END

3)、中断优先级:

要求:通过两个按键分别产生外部中断请求(/INT0)信号和外部中断请求(/INT1)信号,/INT0设为高优先级,中断触发采用跳变沿方式。相应的中断服务程序控制移位循环方式,/INT0中断实现上述移位循环方式其中的一种,/INT1中断实现上述移位循环方式的另一种。编写相应的初始化程序及中断服务程序。

代码:

;**************************************************************************** ;通过按键来实现中断请求信号INTO,INT1,INTO为高优先级,两种中断请求均是以跳边沿 ;方式,分别控制两个不同的中断程序

;************************************************************************** ORG 0000H

LJMP MAIN

ORG 0003H

LJMP Bre1

ORG 0013H

LJMP Bre2

MAIN: MOV SP,#60H

CLR 01H

CLR 02H

START: MOV P2,#0DBH

SETB EA

SETB EX1

SETB EX0

SETB IT1

SETB IT0

SETB PX0

BY:2011级信息工程(微波通信方向)

单片机原理及应用

CLR PX1

JB 01H,resert1

SJMP SORT

resert1:ACALL LOOP

SORT: JB 02H,resert2

SJMP SORT1

resert2:ACALL LOOP1

SORT1 :LJMP START

LOOP: MOV A,#0FEH

STA0: MOV P2,A

ACALL Delay

RL A

JB 01H,STA0

RET

LOOP1:MOV A,#9FH

STA1 :MOV P2,A

ACALL Delay

RR A

JB 01H,SORT3

SJMP SORT4

SORT3:MOV R3,A

ACALL LOOP

MOV A,R3

SORT4:JB 02H,STA1

RET

Bre1: PUSH PSW PUSH Acc

CPL 01H

POP Acc

POP PSW

RETI

ORG 0200H

Bre2:PUSH PSW PUSH Acc

CPL 02H

POP Acc

POP PSW

RETI

Delay: MOV R7,#0C2H D1 :MOV R6,#32H

D2 :MOV R5,#32H

D3 :DJNZ R5,D3

DJNZ R6,D2

DJNZ R7,D1

RET

BY:2011级信息工程(微波通信方向)

单片机原理及应用

END

五、思考题

1、实现MCS-51单片机的中断功能有哪些要求?

单片机实现中断,需要设置入口,在中断请求中,我们还要注意抗抖处理

2、跳沿触发与电平触发有何区别?如何处理?

跳边沿触发:我们只要有一个跳边沿产生,就会产生触发的

电平触发:当只有我们设置的电平时候才有效。

处理方法,不断去检测I/O口的电平情况

3、总结仿真调试的方法。

设置断点,逐步调试,单步调试等方式调试!

BY:2011级信息工程(微波通信方向)


第二篇:汇编代码,单片机实验


1。软件实验一 存储器块清零Org 0000Hljmp startorg 0030hstart: mov r0,#20hmov r1,#40hmov a,#3fhloop: mov @r0,ainc r0djnz r1,loopljmp $end*******************************************************************.2。软件实验二 二进制到BCD转换mov r0,#20hmov a,#11111111bmov b,#100div abmov @r0,amov r0,#21hmov a,bmov b,#10div abmov @r0,amov r0,#22hmov @r0,bljmp $end*******************************************************************3。软件实验四 内存块移动mov r0,#20hmov a,#2mov @r0,ainc r0mov a,#0mov @r0,ainc r0mov a,#0mov @r0,ainc r0mov a,#8mov @r0,ainc r0mov a,#10mov @r0,ainc r0mov a,#1mov @r0,amov r0,#20hmov r1,#30hmov r2,#07hloop:mov a,@r0mov @r1,ainc r0inc r1djnz r2,loopljmp $end************************************************************************.4。硬件实验一 P1口输出、输入实验ORG 0000HLJMP STARTORG 0030HSTART:MOV R0, #4 CLR P1.0CLR P1.1CLR P1.2CLR P1.3MOV A,#01HLOOP: MOV P1,ARL ALCALL DELAY DJNZ R0,LOOPLJMP STARTDELAY:MOV R6,#0HMOV R7,#0HDELAYLOOP:DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRET LJMP $END"2-1-2"ORG 0000HLJMP STARTORG 0030HSTART:SETB P1.0SETB P1.1LOOP:MOV C,P1.0MOV P1.2,CMOV C,P1.1MOV P1.3,CLJMP LOOPLJMP $END********************************************************************5。硬件实验二 继电器控制实验ORG 0000HLJMP STARTORG 0030HSTART:SETB P1.0LCALL DELAYCLR P1.0LCALL DELAY LJMP STARTDELAY:MOV R6,#0HMOV R7,#0HDELAYLOOP:DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRET LJMP $END **********************************************************************.6。硬件实验五 PWM转换电压实验ORG 0000HLJMP STARTORG 0030HSTART:CLR P1.0LCALL DELAYSETB P1.0LCALL DELAYLJMP STARTDELAY:MOV R6,#0HMOV R7,#0HDELAYLOOP:DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPRETLJMP $END****************************************************************************7。T1工作方式1 输出方波"5-1"ORG 0000HSTART:LJMP MAIN ;上电转入主程序MAIN: MOV IE,#00H ;禁止中断MOV TMOD,#01H ;设置工作方式为方式1MOV TH1,#0FCH ;预置数MOV TL1,#06HSETB TR1 ;输出高电平LOOP: JBC TF1,LOOP1 ;查询计数溢出AJMP LOOPLOOP1:MOV TH1,#FFH ;重复预置数MOV TL1,#06HCPL P1.0 ;取反AJMP LOOP**********************************************************************8。硬件实验十 计数器

实验ORG 0000HLJMP STARTORG 0003H ;外部中断入口START:SETB P3.4 ;T0的输入口上电MOV TMOD,#0101B ;设置工作方式为方式1MOV TH0,#00HMOV TL0,#00HSETB TR0 ;启动计数器LOOP:MOV A,TL0MOV P1,A ;输出记数次数LJMP LOOPLJMP $END*************************************************************************9。硬件实验十一 外部中断实验ORG 0000HLJMP MAINORG 0003HLJMP EXINT0MAIN:CLR P1.0SETB PSW.5MOV C,PSW.5MOV P1.0,C SETB IT0 ;设置下降沿触发SETB EX0SETB EA ;开启中断允许LOOP: JBC IE0,EXINT0 ;有中断时跳转LJMP LOOPEXINT0: PUSH PSW ;断点保护PUSH ACCPUSH 55 ;断电保护地址55,根据具体情况而定CPL C ;输出信号取反后输出MOV P1.0,CPOP 55POP ACCPOP PSWRETIEND********************************************************************************10。硬件实验十二 定时器实验ORG 0000HLJMP STARTORG 0030HSTART:MOV TMOD,#0010B ;设置工作方式2MOV IE,#00H ;禁止中断MOV R0,#250 ;设置溢出次数MOV A,#40MOV TH0,#206 ;预置数MOV TL0,#206SETB P1.0 ;输出高电平SETB TR0 ;启动DEL:JBC TF0,LOOPAJMP DELLOOP:DEC R0CJNE R0,#00H,DELDEC ACJNE A,#00H,LOOP1CPL P1.0 ;输出取反MOV A,#40 ;A重装LOOP1:MOV R0,#250 ;R0重装LJMP DEL ***************************************************************************************实验十六, 八段数码管的显示ORG 0000HLJMP STARTORG 0003H ;外部中断入口START:MOV R0,#79HMOV R3,#02HMOV A,R3MOV DPTR,#8002HMOVX @DPTR,AMOV R1,#255SETB P3.4 ;T0的输入口上电MOV TMOD,#0101B ;设置工作方式为方式1MOV TH0,#00HMOV TL0,#00HSETB TR0 ;启动计数器TURN:MOV A,TL0 LCALL DELAYCJNE A,#10H,OUTPUTLJMP $OUTPUT:MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,ALCALL DELAYLJMP TURNTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDELAY: ;延时1s子程序MOV R6,#00HMOV R7,#00HTURN1:DJNZ R6,TURN1DJNZ R7,TURN1RETEND***********************************************************************************LED0 EQU 79HLED1 EQU 7AHORG 0000HAJMP MAINORG 0030HMAIN:MOV SP,#40HMOV LED0,#0FFHMOV LED1,#0FFHLOOP:LCALL DIRLCALL KSJZ LOOPLCALL KEYMOV DPTR,#DISMOVC A,@A+DPTRMOV LED0,AANL LED0,#0FHSWAP AMOV LED1,AANL LED1,#0FH

AJMP LOOPKEY:LCALL KS ;按键扫描JNZ LK1LCALL DIRAJMP KEYLK1:LCALL DIRLCALL DIRLCALL KSJNZ LK2LCALL DIRAJMP KEYLK2:MOV R2,#0FEHMOV R4,#00HLK4:MOV DPTR,#8002HMOV A,R2MOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRJB ACC.0,L_1 MOV A,#00HAJMP LKPL_1:JB ACC.1,L_2MOV A,#06HAJMP LKP L_2:JB ACC.2,L_3MOV A,#0CHAJMP LKPL_3:JB ACC.3,NEXTMOV A,#12HLKP:ADD A,R4PUSH ACCLK3:LCALL DIRLCALL KSJNZ LK3POP ACCRETNEXT:INC R4MOV A,R2 JNB ACC.5,KNDRL AMOV R2,ALJMP LK4KND:LJMP KEYKS:MOV DPTR,#8002H ;按键检查MOV A,#00HMOVX @DPTR,AMOV DPTR,#8001HMOVX A,@DPTRCPL AANL A,#0FHRETDL:MOV R6,#00H ;6ms延时MOV R7,#06HDLLOOP:DJNZ R6,DLLOOPDJNZ R7,DLLOOPRETDIR:MOV R0,#LED0 ;LED显示MOV R3,#01HMOV A,R3LD_1:MOV DPTR,#8002HMOVX @DPTR,AMOV A,@R0MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#8004HMOVX @DPTR,ALCALL DLINC R0MOV A,R3JB ACC.1,LD_2RL AMOV R3,AAJMP LD_1LD_2:RETTAB: ;段码表DB 3FH, 06H, 5BH, 4FH, 66HDB 6DH, 7DH, 07H, 7FH, 6FHDB 77H, 7CH, 39H, 5EH, 79HDB 71H, 0FFHDIS: ;键码转换表DB 0F1H,0F2H,0DH,0EH,0FH,00HDB 0F3H,0F4H,0CH,03H,02H,01HDB 0F5H,0F6H,0BH,06H,05H,04HDB 0F7H,0F8H,0AH,09H,08H,07H**********************************************************************************ORG 8000HAJMP DASAW ;锯齿波ORG 8200HDASAW: MOV DPTR,#0A000HMOV R0,#00HWW:MOV A,R0MOVX @DPTR,AINC R0NOPNOPNOPAJMP WW**************************************************************************************ORG 0000H ;方波LJMP STARTSTART:MOV DPTR,#0A000HLOOP: MOV A,#00HMOVX @DPTR,ALCALL DELAYCPL AMOVX @DPTR,ALCALL DELAYLJMP LOOPDELAY:MOV R0,#128DLOOP:DJNZ R0,DLOOPRETI*************************************************************************************A/D 转换ORG 0000HLJMP STARTORG 0003HLJMP ZHDSTART: MOV R0,#0A0H ;初始化程序SETB IT0SETB EASETB EX0MOV DPTR,#8000HMOVX @DPTR,AHERE: SJMP HEREZHD: MOVX A,@DPTRMOVX @R0,AINC R0mov r1,#20hmov a,@R0mov b,#100div abmov @r1,amov r1,#21hmov a,bmov b,#10div abmov @r1,amov r1,#22hmov @r1,bMOV R2,#32MOV R1,#20HDIS: MOV DPTR,#9002HMOV A,R

2MOVX @DPTR,ARR AMOV R2,AMOV DPTR,#TABMOV A,@R1INC R1MOVC A,@A+DPTRMOV DPTR,#9004HMOVX @DPTR,AACALL DELAYCJNE R2,#4,DISMOV DPTR,#8000HMOVX @DPTR,ARETIDELAY:MOV R6,#00H ;6ms延时MOV R7,#00HDLLOOP: DJNZ R6,DLLOOPDJNZ R7,DLLOOPRETTAB: ;段码表DB 3FH, 06H, 5BH, 4FH, 66HDB 6DH, 7DH, 07H, 7FH, 6FHDB 77H, 7CH, 39H, 5EH, 79HDB 71H, 0FFHend

更多相关推荐:
单片机中断实验报告

实验三定时器中断实验一实验目的1掌握51单片机定时器基本知识2掌握定时器的基本编程方法3学会使用定时器中断二实验内容1利用定时器设计一个秒表计数范围为059并在数码管实时显示三实验设备PC机一台单片机实验箱主要...

单片机外部中断实验报告

实验三外部中断实验报告班级学号姓名教师一实验目的1掌握单片机外部中断的原理及过程2掌握单片机外部中断程序的设计方法3掌握单片机外部中断时中断方式的选择方法二实验内容如下图所示P32设为输入P2设为输出位连有8个...

单片机中断实验中断报告

报告成绩辅导员签字一实验目的1学习外部中断指令的基本使用方法2学习外部中断处理程序的编程方法二实验内容1在试验一的内容的基础上增加允许急救车优先通过的要求2急救车到达时产生外部中断交通信号为全红以便让急救车通过...

单片机定时器及外部中断实验报告

单片机实验报告(二)实验名称:定时器及外部中断南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技术的基本使用方法;3、学习中断处理程序的编程方法。二、实验原理(1)以P1口作为…

51单片机外部中断实验报告

51单片机外部中断实验实验报告要求1整理本实验涉及的程序将它们按正确的格式详细书写在实验报告纸上1无中断时发光让发光二极管从左到右依次点亮有外部中断请求时4位数码管从0000开始加1显示加到9999后复位为00...

单片机实验报告

通信与信息工程学院20xx20xx学年第二学期实验报告课程名称单片机原理及应用专业班级学号学生姓名指导教师日期20xx年4月15日1实验一单片机汇编语言程序设计一实验目的1学习MedWin或Keilc51仿真软...

单片机中断技术实验报告

实验名称中断技术基本时钟和定时功能实验45姓名学号实验班号21机器号一实验目的1了解中断原理包括对中断源中断向量中断类型号中断程序以及中断响应过程的理解2掌握单片机C语言中断程序设计方法3了解MSP430G25...

单片机实验三报告

单片机实验报告3姓名吴新旺学号0815241048时间20xx0428地点B526实验题目中断定时器实验一实验目的1学习外部中断和定时器的工作原理及使用方法2学习外部中断和定时器的初始化程序应用程序的编写和调试...

模板单片机实验报告

单片机实验报告学院专业班级学号姓名信息工程学院电子信息工程实验一存储器块清零一实验要求1指定存储器中某块的起始地址和长度要求能将其内容清零二实验目的1掌握存储器读写方法2了解存储器的块操作方法三实验说明通过本实...

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

实验一存储器读写实验目的1掌握寄存器存储器读写等汇编指令2掌握编程软件编辑编译调试等基本操作实验内容1将下面的汇编程序输入到WAVE集成开发软件中ORG0000H复位入口SJMPSTART无条件跳转至START...

北京交通大学单片机实验程序报告

单片机实验程序实验二8155并行IO口扩展和动态扫描程序编制1实验目的1掌握8155并行IO芯片扩展和使用方法2掌握数码管动态扫描汇编语言的编制方法2预习要点18155芯片基础知识251单片机的总线时序地址译码...

单片机实验报告.doc.deflatelinli

单片机原理及应用实验报告班级电子0911学号0920xx6128姓名林丽20xx年12月实验一P1口输入输出实验一实验目的1掌握P1口简单使用程序的简单编程2学习延时程序的编写和使用二实验内容P1口做输出口编写...

单片机中断实验报告(32篇)