实验四--- 中断实验11
- 格式:doc
- 大小:222.00 KB
- 文档页数:12
中断实验报告中断是在计算机系统中常用的一种处理方式。
它能够让系统在执行某项任务时,暂时中断当前进程,转而处理更加紧急的任务。
中断是计算机系统在软件和硬件上相互配合的一种机制,通过它能够更好地利用计算机资源,提高系统的效率。
本次实验旨在加深对中断的理解,同时掌握中断编程的方法。
实验环境:1. 操作系统:Windows 102. 开发环境:Visual Studio 20193. 编程语言:C++实验步骤:1. 创建控制台应用程序。
```c++BOOL CtrlHandler(DWORD fdwCtrlType){switch (fdwCtrlType){case CTRL_C_EVENT:printf("Ctrl + C event\n");return TRUE;case CTRL_BREAK_EVENT:printf("Ctrl + BREAK event\n");return TRUE;default:return FALSE;}}3. 编译并运行程序,在命令行中按下 Ctrl + C 或 Ctrl + BREAK 键,程序会分别输出 "Ctrl + C event" 和 "Ctrl + BREAK event"。
5. 在程序休眠时,按下 Ctrl + C 或 Ctrl + BREAK 键,程序会立即响应并退出。
总结:本次实验以 Windows 10 平台下的控制台应用程序为例,演示了如何利用SetConsoleCtrlHandler 函数捕捉键盘事件,并加以处理。
通过实验,我们了解了中断处理的基本概念和原理,同时掌握了中断编程的方法。
在软件开发中,中断可用于多种场合,如定时器、输入输出等。
中断机制的实现需要硬件和软件相互配合,因此也需要开发者对底层硬件的理解。
在实际开发过程中,需要根据具体情况选择合适的中断处理方式,并进行相应的程序设计和优化。
中断实验实验报告本实验是关于中断的学习和实验。
我们需要掌握中断的概念、分类、使用方法、实现过程等知识,并通过实际操作来理解中断的工作原理。
实验环境:硬件:STM32F103C8T6开发板、OLED显示屏、按键开关软件:Keil5、ST-LINK调试工具实验过程:1、准备工作首先,我们需要在Keil中新建一个STM32F103C8T6项目,然后将要使用到的头文件和驱动程序添加到项目中。
2、了解中断中断是指当CPU执行某个程序时,由于硬件或软件的干预而打断原来的程序执行,转而执行指定的中断服务程序(ISR),完成相应的工作后再回到被打断的程序。
中断可以提高系统响应速度,增强系统的可靠性和稳定性。
中断可分为外部中断和内部中断。
外部中断是由硬件引脚上的信号产生的中断请求。
内部中断是由软件产生的中断请求,例如软件中断、定时器中断等。
3、编写程序首先,我们要在程序中使能系统滴答定时器(SysTick)。
SysTick是STM32系统内置的一个定时器,可以在一定的时间周期内产生一次中断请求。
在这里,我们将SysTick的中断周期设置为1秒,以便后续实验中查看效果。
然后,我们编写一个中断服务程序,用来处理按键开关产生的中断请求。
当按键按下时,将在OLED屏幕上显示按键按下的次数,并通过串口向PC端发送按键按下的消息。
需要注意的是,为避免中断服务程序中使用延时函数(例如HAL_Delay),我们在程序中使用了定时器来延时。
最后,我们需要在程序中启用外部中断,以便可以检测到按键开关的中断请求。
在此实验中,我们使用了外部中断1,其对应的引脚为PA1。
4、实验结果当按键按下时,OLED屏幕上的数字会自动加1,并通过串口向PC端发送按键按下的消息。
可以看到,此实验中使用的中断机制可以在不占用CPU资源的情况下,实现对按键事件的响应和处理。
通过这次实验,我们对中断有了更深入的认识,了解了中断的工作原理、分类、使用方法和实现过程,掌握了在STM32中使用中断的具体操作方法。
一、实验背景中断是计算机系统中一种重要的机制,它允许操作系统在执行过程中,根据需要暂停当前任务,转而处理其他任务,从而提高系统的效率和响应速度。
本实验旨在通过模拟中断实验,了解中断的工作原理,分析中断在不同场景下的影响,并对中断进行优化。
二、实验目的1. 理解中断的基本概念和工作原理;2. 分析中断在不同场景下的影响;3. 掌握中断优化的方法。
三、实验内容1. 中断的产生与处理(1)实验目的:验证中断的产生与处理过程。
(2)实验步骤:① 编写中断服务程序(ISR);② 设置中断向量表;③ 模拟中断源产生中断请求;④ 检查中断是否被正确处理。
(3)实验结果:中断服务程序被成功调用,中断请求得到处理。
2. 中断嵌套(1)实验目的:分析中断嵌套对系统性能的影响。
(2)实验步骤:① 编写多个中断服务程序;② 设置中断优先级;③ 模拟中断嵌套场景;④ 分析中断嵌套对系统性能的影响。
(3)实验结果:中断嵌套对系统性能有一定影响,但合理设置中断优先级可以降低影响。
3. 中断屏蔽(1)实验目的:分析中断屏蔽对系统性能的影响。
(2)实验步骤:① 编写中断服务程序;② 设置中断屏蔽位;③ 模拟中断屏蔽场景;④ 分析中断屏蔽对系统性能的影响。
(3)实验结果:中断屏蔽可以有效防止中断请求干扰其他任务,但过度屏蔽会影响系统响应速度。
4. 中断优化(1)实验目的:研究中断优化的方法。
(2)实验步骤:① 分析中断性能瓶颈;② 优化中断服务程序;③ 改进中断优先级管理;④ 优化中断屏蔽策略。
(3)实验结果:通过优化,中断性能得到显著提升。
四、实验分析1. 中断的产生与处理实验结果表明,中断的产生与处理过程是可靠的。
在实际应用中,合理设置中断向量表和中断服务程序是保证中断正常工作的关键。
2. 中断嵌套实验表明,中断嵌套对系统性能有一定影响,但合理设置中断优先级可以降低影响。
在实际应用中,应根据具体场景选择合适的中断优先级,以平衡系统性能和响应速度。
单片机原理与接口技术---中断实验课程名称:单片机原理与接口技术实验类型:设计型实验项目名称:中断实验实验目的:熟练使用Keil,Proteus软件对程序进行调试,掌握单片机中断方式的输入/输出,熟悉MCS-51单片机外部中断初始化编程方法及中断程序的调试方法。
实验要求:掌握查询方式和中断方式的输入/输出程序设计及调试。
通过实验熟悉中断处理的过程以及MCS-51单片机转向中断子程序的方法,进一步了解外中断的边沿触发与电平触发的区别及应用。
实验内容及步骤:(一)程序要求:如图4.1所示,当1INT有中断请求时,将4个开关的状态读入并输出到4个LED,开关闭合(为低)则对应的LED点亮。
图4.1所用元件列表4.1单片机 AT89C51 开关 SW-SPDT 发光二极管 LED-BIBY 电阻 RES表4.1设1INT为边沿触发,其入口地址为0013H,程序如下:ORG 0000HLJMP MAINORG 0013HLJMP PINT1ORG 0100HMAIN:SETB IT1 ;选择为边沿触发SETB EX1 ;允许中断SETB EA ;CPU开中断LOOP1:MOV A,#0FEH ;LED轮流点亮LOOP2:MOV P2,ALCALL DLYRL ALJMP LOOP2ORG 0200HDLY: MOV R6,#0FHDLY1: MOV R5,#0FFHDLY2: MOV R4,#0FFHDLY3: DJNZ R4,DLY3DJNZ R5,DLY2DJNZ R6,DLY1RETORG 0300HPINT1:PUSH ACC ;保护ACCMOV A,#0FHORL P0,A ;设P1低4位(高电平)为输入MOV A,P0 ;读开关状态SWAP AMOV P0,A ;输出驱动LED亮POP ACCRETIEND(二)实验步骤1.在Keil uVision2软件中输入程序并保存程序。
2.编译程序,修改编辑错误,并生成.HEX文件。
电子信息工程系实验报告课程名称:现代DSP技术成绩:实验项目名称:实验四外部中断实验实验时间:2011-11-22指导教师(签名):班级:&^^%%$ 姓名:*&% 学号:*****一、实验目的1、掌握中断技术,学会对外部中断的处理方法;2、掌握中断对程序流程的控制,理解DSP对中断的响应时序。
二、实验设备计算机,CCS 2.0版软件,DSP仿真器,实验箱。
三、实验原理1. 在DSP中,中断是由硬件或软件产生的驱动信号,要求DSP暂停执行的程序,转到中断服务子程序的执行。
2. 对于中断程序的设计,一般采用以下步骤:(1)将中断向量指针IPTR指向中断矢量所在的段,在段中偏移量为中断序号四倍的地指出写一个跳转到中断服务子程序的跳转指令。
(2)置位ST1中的INTM位,禁止中断,然后清除所以未执行完的中断。
(3)打开相应的中断,复位ST1中的INTM位,使能中断。
(4)写一段等待程序(一般用无效的死循环),等待中断事件的发生。
四、实验步骤与内容1、拨码开关:SW2SW2备注1 2 3 4 码位ON ON OFF ON 单脉冲产生的中断给CPU2的中断INT22、关K9拨到右边,即仿真器选择连接右边的CPU:CPU2;启动CCS 2.0,在Project→Open菜单打开exp05_cpu2目录下面的工程文件“exp05.pjt”。
用下拉菜单中Project-->Open,打开“exp05_cpu2\ exp05.pjt”,双击“Source”,可查看源程序。
在File→Load Program菜单下加载exp05_cpu2\debug目录下的exp05.out文件。
a)运行实验程序;b)每按一次“单脉冲输出”按键,观察LED1~LED8灯变化;每按一次“单脉冲输出”按键则显示灭亮灭亮灭亮灭亮。
如下图所示c)单击“Halt”暂停程序运行,反复按开关“单脉冲输出”,观察LED1~LED8灯变化。
实验5 中断实验一、实验目的:1.学习外部中断技术的基本使用方法。
2.学习中断处理程序的编程方法。
二、实验设备:CPU挂箱、8031CPU模块三、实验内容:用单片机的P1口作为输出口,循环点亮LED灯,当单片机接受到一个外部中断信号,则响应中断并反方向循环点亮LED灯。
四、实验原理:将PSW的CY为作为判断循环点亮LED灯方向的判断条件,当CY=0时,LED灯循环右移点亮,当CY=1时LED灯循环左移点亮。
每当外部来一个中断信号让CY取反一次,这样便实现了外部中断使LED灯反向循环点亮的实验要求五、实验原理图:中断实验电路六、实验步骤:将单片机P1口P1.0~P1.7接发光二极管L1~L8,单脉冲输出端P-接CPU 板上的INT0。
七、程序框图: 主程序框图 中断程序框图八、实验程序:CSEG AT 0000HLJMP STARTCSEG AT 4003H ;设置中断入口地址LJMP INTCSEG AT 4100H ;设置程序入口地址START:SETB ITO ;设置外部中断0中断触发方式为边缘触发SETB EX0 ;允许外部中断0中断SETB EA ;允许外部中断CLR A ;将累加器A 清零MOV A,#0FEHCLR C ;将CY 位清零开始置口地址 外部中断初始化 设置P1口初始值为#0FEH 延时0.1秒,使显示稳定 使P1口寄存器逐位右移一位使P1口寄存器逐位左移一位 中断入口 外部中断允许位置位 中断返回 取反CY 位 关闭中断允 C=1? N YLJMP LOOP1LOOP1:MOV P1,A ;点亮L1CALL DELAYRL AJC LOOP2JNC LOOP1LOOP2:MOV P1,ACALL DELAYRR AJC LOOP2JNC LOOP1INT: ;响应中断CLR EA ;关闭外部中断CPL C ;将CY取反SETB EA ;允许中断RETI ;中断返回DELAY:MOV R1,#127 ;0.1秒延时程序DEL1:MOV R2,#200DEL2:DJNZ R2,DEL2DJNZ R1,DEL1RETEND。
中断实验报告中断实验报告引言:实验是科学研究的重要手段之一,通过实验我们可以验证假设、探索未知,从而推动科学的发展。
然而,在科学研究中,有时我们需要中断实验,即提前终止实验的进行。
本文将探讨中断实验的原因、影响以及如何合理应对中断实验。
一、中断实验的原因1. 实验设计不合理:有时实验设计可能存在缺陷,导致实验无法顺利进行。
例如,实验中所使用的仪器设备出现故障,无法正常进行测量,或者实验所需的材料无法获得等等。
2. 实验目的达成:有时实验可能提前达到预设的目标,进一步的实验将无法为研究提供更多有意义的信息。
在这种情况下,中断实验是合理的决策。
3. 实验数据异常:实验数据的异常可能是由于实验操作错误、外界干扰等原因引起的。
当数据异常严重影响实验结果的可靠性时,中断实验是必要的。
二、中断实验的影响1. 时间和资源浪费:中断实验将导致之前投入的时间和资源白白浪费。
这对于实验室、研究团队以及资金支持者来说都是不可忽视的损失。
2. 数据不完整:中断实验可能导致实验数据不完整,无法得出准确的结论。
这对于科学研究的可靠性和有效性产生负面影响。
3. 研究进展受阻:中断实验可能会延缓研究进展,使得科学研究的推进受到限制。
这对于科学家和研究机构来说是一种挑战。
三、合理应对中断实验1. 重新评估实验设计:在中断实验后,需要重新评估实验设计,找出问题所在,并进行改进。
这有助于避免类似问题再次发生。
2. 数据分析和总结:对已经获得的数据进行分析和总结,尽可能提取有用的信息。
这有助于在中断实验后仍能得出一定的结论。
3. 寻找替代方案:在中断实验后,可以考虑寻找替代方案,以达到原本实验的目的。
这有助于减少时间和资源的浪费,并继续推进研究工作。
4. 合作与交流:与其他研究团队进行合作和交流,分享经验和资源,有助于克服中断实验带来的困难,推动科学研究的进展。
结论:中断实验是科学研究中常见的情况,它可能由多种原因引起,并对研究工作产生不可忽视的影响。
实验报告四中断系统实验实验报告四:中断系统实验一、实验目的本次中断系统实验的主要目的是深入理解计算机中断系统的工作原理和机制,掌握中断的处理过程,以及学会如何在实际编程中有效地运用中断来提高系统的性能和响应能力。
二、实验原理中断是指计算机在执行程序的过程中,当出现某种随机事件或异常情况时,暂停现行程序的执行,转而执行相应的中断处理程序,处理完后再返回原程序继续执行的过程。
中断系统主要由中断源、中断控制器和中断处理程序组成。
中断源可以是外部设备(如键盘、鼠标、打印机等)发送的信号,也可以是内部事件(如定时器溢出、算术运算错误等)产生的条件。
中断控制器负责对多个中断源进行优先级管理和分配,确定哪个中断请求能够被响应。
中断处理程序则是用于处理具体中断事件的一段代码。
在中断处理过程中,计算机需要保存当前程序的上下文(包括程序计数器、寄存器等),以便在中断处理完成后能够正确地恢复原程序的执行。
同时,中断处理程序需要尽快完成处理任务,以减少对系统性能的影响。
三、实验设备与环境本次实验使用的设备包括一台计算机、开发板以及相应的编程软件。
开发板上集成了中断控制器和相关的外部设备接口,以便进行中断实验的操作和观察。
编程软件采用了常见的集成开发环境(IDE),如 Keil、IAR 等,用于编写和调试中断处理程序。
四、实验步骤1、硬件连接首先,将开发板与计算机通过数据线连接,并确保连接稳定。
然后,根据实验要求,将外部设备(如按键、传感器等)正确连接到开发板的相应接口上。
2、软件开发(1)在编程软件中创建一个新的项目,并选择适合开发板的芯片型号。
(2)配置中断控制器的相关参数,如中断优先级、触发方式等。
(3)编写中断处理程序,在程序中实现对中断事件的具体处理逻辑。
例如,当按键被按下时,控制 LED 灯的亮灭;当传感器检测到特定值时,进行数据采集和处理。
(4)编写主程序,在主程序中初始化系统,并开启中断功能。
3、编译与下载完成程序编写后,对代码进行编译,确保没有语法错误和逻辑错误。
中断原理实验报告中断原理实验报告摘要:本实验旨在通过实际操作和观察,深入了解中断原理的工作机制和应用。
通过搭建实验电路和使用示波器等实验仪器,我们成功模拟了中断信号的产生和处理过程,并观察到了中断对程序执行的影响。
引言:中断是计算机系统中一种重要的机制,它能够打破程序的顺序执行,及时响应外部事件或内部异常。
中断机制的应用广泛,例如在操作系统中,中断用于处理外部设备的输入输出请求;在嵌入式系统中,中断用于实时处理各种事件。
因此,深入理解中断原理对于计算机科学和工程领域的学习和研究具有重要意义。
实验目的:1. 理解中断原理的工作机制;2. 学会搭建中断电路并进行实验操作;3. 观察中断信号对程序执行的影响。
实验器材和仪器:1. 电路板、电源线、示波器等;2. 电阻、电容、开关等元器件。
实验步骤:1. 搭建中断电路:按照实验指导书上的电路图,将所需的元器件正确连接在电路板上。
2. 连接示波器:将示波器正确接入电路,以便观察电路中的信号波形。
3. 开始实验:打开电源,启动程序,观察示波器上的波形变化。
4. 产生中断信号:通过按下开关等方式,产生中断信号,观察程序执行的变化。
5. 记录实验数据:记录示波器上的波形图,并记录中断信号对程序执行的影响。
实验结果:通过实验观察和数据记录,我们得出了以下结论:1. 中断信号的产生可以通过外部事件或内部异常引起,例如按下开关、时钟中断等。
2. 中断信号的处理过程包括保存现场、跳转到中断服务程序、执行中断服务程序、恢复现场等步骤。
3. 中断信号的处理会打断程序的正常执行流程,优先处理中断请求,提高了系统的响应速度和实时性。
4. 中断服务程序的编写需要考虑实时性和可重入性,以确保正确处理中断请求并不影响原程序的执行。
讨论与分析:中断机制在计算机系统中的应用非常广泛,它不仅可以提高系统的实时性和响应速度,还可以有效处理各种外部设备的输入输出请求。
在实验过程中,我们深入了解了中断原理的工作机制,并通过实际操作和观察,加深了对中断信号对程序执行的影响的理解。
实验四中断系统一、实验目的1.掌握单片机中断系统的结构;2.掌握单片机的5个中断源、中断过程及中断源编号;3.掌握C51中断服务函数的编写。
二、实验设备PC机(含Proteus和Keil软件)三、实验原理中断是一个过程,当CPU在处理某件事情时,外部又发生了另一紧急事件,请求CPU 暂停当前的工作而去迅速处理该紧急事件。
处理结束后,再回到原来被中断的地方,继续原来的工作。
引起中断的原因或发出中断请求的来源,称为中断源。
MCS-51单片机有5个中断源,分为2个中断优先级,每个中断源的优先级都可以由软件来设定,可实现两级中断嵌套。
5个中断源分别是:1.外部中断请求源:即外部中断0和1,由外部引脚INT0(P3.2)/INT1(P3.3)引入。
2.内部中断请求源TF0/TF1:定时/计数器T0/T1的溢出中断标志。
3.内部中断请求源TI、RI:串行口发送、接收中断标志。
MCS-51单片机有4个与中断有关的特殊功能寄存器:中断允许寄存器IE、中断优先级寄存器IP、TCON、SCON(TCON、SCON的相关位作中断源的标志位)。
在TCON中有四位是与外部中断有关的。
IT0/IT1:INT0/INT1触发方式控制位,可由软件进和置位和复位,IT0/IT1,INT0/INT1为低电平触发方式,IT0/IT1,INT0/INT1为负跳变触发方式。
IE0/IE1:INT0/INT1中断请求标志位。
当有外部的中断请求时,该就会置1(由硬件来完成),在CPU 响应中断后,由硬件将IE0/IE1清0。
四、实验内容1.编程实现:8个LED一直熄灭,每按一次按键,LED闪烁6次。
2.编程实现:8个LED一直闪烁,每按一次按键,8个LED流水一次。
3.编程实现:按一次单脉冲,8个LED闪烁;再按一次按键,8个LED流水;以此循环往复。
硬件连接:外设单片机引脚8个LED P1按键外部0中断P3.2五、实验结果1.画出单片机与8个LED、按键的连接电路原理图。
实验四中断实验一、实验目的1、掌握单片机系统中断的原理及使用方法。
2、理解键盘扫描和去抖动的原理。
3、掌握键盘扫描实现方法。
二、实验原理(一)、中断知识在计算机系统中,中断可以由各种硬件设备产生,以便请求服务或报告故障等。
此外,中断也可由处理器自身产生,例如,程序错误或对操作系统的请求做出响应等。
89C51 的中断系统具有5 个中断源,即2 个外部中断、2 个定时器中断和1 个串行中断。
(二)、按键的识别过程1、键盘扫描,判定是否有“闭合键”;2、按键识别,确认“闭合键”的行列位置;3、产生键码,排除多键、串键(复按)及去抖动。
如上图所示,则键盘扫描过程如下:1、P1 口输出“0F(F0)”;P1 口低(高)4 位读入数据时:全“1”,表示无按键按下,否则,表示有按键按下。
2、进一步确认行列号:P1 口输出“0F”,确认P1.X 输入为“0”;P1 口输出“F0”,确认P1.Y 输入为“0”;则按下键的坐标就是(X,Y)(三)、按键抖动抖动的原因:目前大部分按键或键盘都是利用机械触电的合、断作用。
机械触点在闭合及断开瞬间由于弹性作用的影响,在闭合及断开瞬间均有抖动过程,从而使电压信号也出现抖动,抖动时间的长短与开关的机械特性有关,一般为5~10ms。
而单片机对键盘扫描一次仅需几百微妙。
这样,将会对键盘扫描产生误判。
为了保证单片机对按键闭合仅作一次输入处理,必须去除抖动的影响。
去抖动的方法:1、外加硬件电路,用RS 触发器或单稳态电路构成的去抖动电路,或键盘扩展专用芯片。
2、在检测按键按下时,执行约10ms 的延时程序后(避开抖动前沿区域),再确认按键是否仍然保持闭合状态。
三、实验内容1、见图一。
假设单片机晶振频率设定为6MHz。
用中断方式来完成以下要求,且通过虚拟示波器观看波形。
A、使用定时器1 以方式0 产生周期为500us 的等宽方波连续脉冲,并由P1.0 输出。
ORG 0000HLJMP MAINORG 001BHLJMP IT1PORG 0100HMAIN: MOV SP,#60HMOV TMOD,#00HMOV TL1,#03HMOV TH1,#0FCHSETB TR1SETB ET1SETB EASJMP $IT1P: MOV TL1,#03HMOV TH1,#0FCHCPL P1.0RETIENDB、使用定时器0 以方式2 产生周期为200us 的等宽方波连续脉冲,并由P1.1 输出。
ORG 0000HLJMP MAINORG 000BHLJMP IT0PORG 0100HMAIN: MOV SP,#60HMOV TMOD,#02HMOV TL0,#0CEHMOV TH0,#0CEHSETB TR0SETB ET0SETB EASJMP $IT0P: CPL P1.1RETIENDC、编程使T0 工作于定时工作方式1,产生500us 等宽方波从P2.7 输出。
T1 工作于计数工作方式2,其计数外部脉冲由T0 产生,即P2.7 引脚与P3.5(T1 引脚)相连,T1 每计数100 个,P1.2 取反输出一次。
ORG 0000HLJMP MAINORG 000BHLJMP IT0PORG 001BHLJMP IT1PORG 0100HMAIN: MOV SP,#60HMOV TMOD,#61HMOV TL0,#83HMOV TH0,#0FFHMOV TL1,#9CHMOV TH1,#9CHSETB TR0SETB TR1MOV IE,#8AHCLR TF1SJMP $IT0P: MOV TL0,#83HMOV TH0,#0FFHCPL P2.7RETIIT1P: JB TF1,IT1PMOV TL1,#9CHCPL P1.2RETIENDD、编程使T0 工作于定时工作方式1,产生500us 等宽方波从P2.6 输出到P3.3(INT1脚),如图所示。
T1 工作于定时工作方式2,由T1 来测量P3.3 脚信号的正脉冲宽度,并通过示波器加以验证。
图一2、见图二。
假设单片机晶振频率设定为12MHz。
用定时查询或中断方式完成以下功能。
(按键元件名称BUTTON)A、通过外部按键(INT1 引脚连接)以中断方式控制LED 的上移和下移。
ORG 0000HLJMP MAINORG 0013HLJMP INTORG 1000HMAIN: MOV SP,#60HSETB EX1CLR IT1SETB EALIGHT:MOV A ,#7FHLOOP: RL AMOV P1,ALCALL DELLJMP LOOPINT: MOV A,#0FEHLOOP1: RR AMOV P1,ALCALL DELJNB P3.3,LOOP1MOV A ,#7FHEXIT: RETIDEL: MOV R7,#200DEL1: MOV R6,#248NOPDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETENDORG 0000HLJMP MAINORG 0013HLJMP INTORG 1000HMAIN: MOV SP,#60HSETB EX1CLR IT1SETB EALIGHT:MOV A ,#7FHLOOP: RL AMOV P1,ALCALL DELLJMP LOOPINT: RR AMOV P1,ALCALL DELJNB P3.3,INTEXIT: RETIDEL: MOV R7,#200DEL1: MOV R6,#248NOPDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETENDB、通过外部按键(T0 引脚连接)以中断方式控制LED 的上移和下移。
ORG 0000HLJMP MAINORG 000BHLJMP IT1PORG 1000HMAIN: MOV SP,#60HMOV R5,#08HSETB ET0SETB TR0SETB EA LIGHT:MOV A ,#7FH LOOP: RL AMOV P1,ALCALL DELLJMP LOOPIT1P: JB P3.4,EXIT MOV A ,#0FEH LOOP1:RR AMOV P1,ALCALL DELJNB P3.4,LOOP1 MOV A ,#7FH EXIT: RETIDEL: MOV R7,#200 DEL1: MOV R6,#248NOPDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETENDORG 0000HLJMP MAINORG 000BHLJMP IT1PORG 1000H MAIN: MOV SP,#60HMOV R5,#08HSETB ET0SETB TR0SETB EA LIGHT:MOV A ,#7FH LOOP: RL AMOV P1,ALCALL DELLJMP LOOPIT1P: JB P3.4,EXIT LOOP1:RR AMOV P1,ALCALL DELEXIT: RETIDEL: MOV R7,#200DEL1: MOV R6,#248NOPDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETENDC、以查询方式重做A。
D、以查询方式重做B。
E、通过INT0 引脚外界4 输入与门扩展外部中断,编程实现扩展出的四个开关以中断方式,分别实现LED 的上移、下移、亮和灭。
ORG 0000HLJMP MAINORG 0003HLJMP INTORG 1000HMAIN: MOV SP,#60HSETB EX0CLR IT0SETB EAMOV B,#0FFHMOV P1,BLJMP MAININT: JB P2.0,LOOPMOV A ,#7FHDOWN: RL AMOV P1,ALCALL DELJNB P2.0,DOWNRETILOOP: JB P2.1,LOOP1MOV A ,#0FEHUP: RR AMOV P1,ALCALL DELJNB P2.1,UPRETILOOP1: JB P2.2,LOOP2BRIGHT: MOV A ,#00HMOV P1,AJNB P2.2,BRIGHTRETILOOP2: JB P2.3,EXITDARK: MOV A ,#0FFHMOV P1,AJNB P2.3,DARKEXIT: RETIDEL: MOV R7,#200DEL1: MOV R6,#248NOPDEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETENDF、以查询方式重做E。
图二3、见图三,编程实现以下功能:数码管初始显示数字0 。
每按键一次,数字加1,直到F。
再加1,数字变为1,以后重复以上变化。
ORG 0000HLJMP MAINORG 1000HMAIN: MOV SP,#60HMOV R0,#0FHMOV A,#0FFHMOV B,#3FHMOV P3,BREDO: LCALL INTLJMP REDOINT: JB P1.7,EXITLCALL DELJNB P1.7,EXITINC ALCALL LOOPDJNZ R0,INTLCALL LOOP1LJMP INTLOOP: PUSH ACCMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,APOP ACCRETLOOP1: MOV A,#0FFHMOV R0,#0FHEXIT: RETTAB: DB 06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDEL: MOV R7, #50DEL1: MOV R6, #100DJNZ R6, $DJNZ R7, DEL1RETEND(数码管元件7SEG-COM-CAT-GRN,共阴极数码管)4、见图四,编程实现以下功能。
按不同位置按键,数码管显示该按键代表数值。
若无按键按下时,显示上一次按键的数值。
ORG 0000HMOV 32H, #10HSETB F0MAIN: LCALL DISPLCALL KEYJB F0, MAINLCALL DELAYLCALL KEYJB F0, MAINMOV 32H, 30HMAIN1: LCALL DELAYLCALL KEYJNB F0, MAIN1LCALL DELAYLCALL KEYJNB F0, MAIN1SJMP MAINKEY: MOV R0, #7FHMOV 30H, #00HSETB F0MOV R1, #04HKEY1: MOV P2, R0MOV A, P2SW AP AMOV R2, #04HKEY2: RLC AJNC KEYEND1INC 30HDJNZ R2, KEY2MOV A, R0RR AMOV R0, ADJNZ R1, KEY1SETB F0SJMP KEYENDKEYEND1:CLR F0KEYEND: RETDELAY: MOV R7, #20DELA1: MOV R6, #100DJNZ R6, $DJNZ R7, DELA1RETDISP: MOV DPTR,#TABMOV A, 32HMOVC A, @A+DPTRMOV P3, ARETTAB: DB 3FH,06H,5BH,4FHDB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71H,0FFH图四四、思考题(本题选做)见图五,要求实现电子秒表功能。