单片机 P1口及外部中断 硬件实验报告

合集下载

单片机原理外部中断实验

单片机原理外部中断实验

单片机原理实验报告实验题目外部中断实验一、实验目的1.掌握用外部中断方式实现控制的方法。

2.掌握中断优先级的使用方法。

3. 掌握用Proteus实现单片机系统仿真的方法。

二、实验预备知识外部中断信号由P3.2(P3.3)管脚输入,当中断触发方式控制位ITO(IT1)为1时,CPU 在每个机器周期的S5P2采样P3.2(P3.3)管脚,如果连续两次采样,前一次采样为高电平,后一次采样为低电平,则认为有中断申请,随即使中断标志位IE0(IE1)置1,向CPU申请中断,直到该中断被CPU响应。

当定时器以计数方式工作,计数初值为满量程,在计数输入端T0(T1)输入负跳变信号时,计数器将加1并产生溢出,随即使溢出标志位TF0(TF1)置1,向CPU申请中断,直到该中断被CPU响应。

三、实验内容P1口做输出口,接八只发光二极管,利用手控单脉冲信号作为外部中断信号,编写控制程序,使八只发光二极管按一定的规律循环点亮。

1.程序1: 从外部中断0请求输入端(P3.2)输入脉冲信号2.程序2: 从定时器0的外部输入端(P3.4)输入脉冲信号四、实验参考电路P1口接发光二极管的阴极,P1口的管脚输出低电平时对应的发光二极管点亮,实验电路图如图4-1所示。

图4-1 外部中断实验电路五、实验参考程序ORG 0003HAJMP INT00 ORG 0013H AJMP INT11 ORG 0050H MAIN:SETB EASETB EX0SETB EX1SETB PX1SETB IT0SETB IT1MOV A,#0FEH LP1:MOV P1,ALCALL DELAY RL ASJMP LP1ORG 0100H INT00:PUSH ACCMOV A,#0FCH MOV R1,#7 LP2:MOV P1,A LCALL DELAY RL ADJNZ R1,LP2 POP ACCRETIORG 0150H INT11:PUSH ACCMOV A,#3FH MOV R2,#7 LP3:MOV P1,ALCALL DELAY RR ADJNZ R2,LP3 POP ACCRETIORG 0200H DELAY:MOV R3,#20 L1:MOV R7,#200 L2:MOV R6,#123 NOPL3:DJNZ R6,L3 DJNZ R7,L2 DJNZ R3,L1 RETEND六、实验分析与总结。

单片机实验-外部中断、计数器定时器

单片机实验-外部中断、计数器定时器

1)用单次脉冲申请中断INT0,在中断处理程序中对输出信号进行反转。

ORG 0000HLJMP STARTORG 0003HLJMP INT0START:CLR P1.0MOV TCON, #01HMOV IE, #81HLJMP $INT0:PUSH PSWCPL P1.0POP PSWRETIEND结果:按一下单脉冲小灯亮,再按一下,小灯灭接线:INT0接单脉冲P1.0接个小灯2)用单次脉冲申请中断INT1,在中断处理程序中实现8个小灯左移点亮1次。

ORG 0000HLJMP STARTORG 0013HLJMP INT1START:MOV TCON,#04HMOV IE,#84HCLR PX1MOV A,#01HSJMP $INT1:MOV R1,#8LOOP:MOV P1,ALCALL DELAYRL ADJNZ R1,LOOPRETIDELAY:MOV R6,#200DELAY1:MOV R7,#125DELAY2:DJNZ R7,DELAY2DJNZ R6,DELAY1RETEND结果:按一下单脉冲,8个小灯左移点亮一次接线:INT1接单脉冲P1口接8个小灯3)将8051计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行单脉冲计数,并将其数值按二进制在P1口驱动LED灯上显示出来。

ORG 0000HSTART:MOV TMOD,#05HMOV TH0,#0MOV TL0,#0SETB TR0LOOP:MOV P1,TL0LJMP LOOPEND结果:P1口与四个小灯相连,按单脉冲的次数在四个小灯上显示接线:(P3.4)T0接单脉冲P1.0到P1.4接4个小灯4)用CPU内部定时器T0中断方式计时,实现每1秒钟输出状态发生一次反转。

ORG 0000HLJMP STARTORG 000BHLJMP INTSTART: MOV TMOD,#01HMOV B,#0AH;即10,设循环次数10次。

单片机实训实验报告总结

单片机实训实验报告总结

一、实验背景与目的随着科技的不断发展,单片机作为一种微小的计算机系统,在工业控制、智能家居、汽车电子等领域得到了广泛的应用。

为了提高学生的实践能力和创新意识,本实训课程旨在通过实际操作,让学生掌握单片机的原理、编程和调试方法,培养学生的动手能力和团队协作精神。

本次实训以51单片机为核心,结合数码管、LED灯、按键等外围电路,设计了多个实验项目,包括LED流水灯、交通灯控制系统、简易计算器、温湿度监控系统等。

通过这些实验,使学生深入了解单片机的硬件结构和软件编程,提高学生的实际操作能力和问题解决能力。

二、实验内容与过程1. 实验一:LED流水灯(1)实验目的:掌握51单片机的I/O口编程,实现LED灯的流水效果。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口;② 编写程序:使用循环语句和延时函数控制LED灯的流水效果;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的流水效果。

2. 实验二:交通灯控制系统(1)实验目的:学习单片机在交通灯控制系统中的应用,实现红黄绿灯的变换及倒计时功能。

(2)实验步骤:① 硬件连接:将LED灯连接到P1口,按键连接到外部中断INT0;② 编写程序:设置定时器中断,实现倒计时功能;编写外部中断程序,实现红黄绿灯的变换;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察交通灯的工作状态和倒计时效果。

3. 实验三:简易计算器(1)实验目的:掌握矩阵键盘扫描原理、LCD1602显示屏控制,实现基本的四则运算。

(2)实验步骤:① 硬件连接:将矩阵键盘和LCD1602显示屏连接到单片机;② 编写程序:实现矩阵键盘扫描、LCD1602显示控制和运算逻辑处理;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察计算器的工作状态和运算结果。

4. 实验四:温湿度监控系统(1)实验目的:学习单片机在温湿度监控系统中的应用,实现温度和湿度的实时显示。

(2)实验步骤:① 硬件连接:将温度传感器和湿度传感器连接到单片机,将LED灯连接到P1口;② 编写程序:实现温度和湿度的实时采集,并根据采集到的数据控制LED灯的亮灭;③ 程序下载:将程序烧录到单片机中;④ 实验验证:观察LED灯的亮灭状态和数码管上的温度、湿度值。

单片机外部中断实验报告

单片机外部中断实验报告

单片机外部中断实验报告实验三外部中断实验报告班级:学号:姓名:教师:一、实验LI的1、掌握单片机外部中断的原理及过程。

2、掌握单片机外部中断程序的设计方法。

3、掌握单片机外部中断时中断方式的选择方法。

二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管DPD8O每当发生外部中断时,发光二极管以向下流水灯的方式点亮。

分别选择边沿触发外部中断放是和电平触发外部中断方式两种。

三、编程提示1、P3 口是8位准双向口,具有双重功能:第一功能和P1 口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3. 0RXD串行输入口P3. 1TXD串行输出口P3. 2INTO外部中断0请求输入线P3. 3INT1外部中断1请求输入线P3.4TO定时器/计数器TO外部计数器脉冲输入线P3. 5T1定时器/计数器T1外部计数器脉冲输入线P3. 6WR外部数据存贮器写脉冲输出线P3. 7RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断003H定时器/计数器T1溢出中断OBH外部中断113H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EAESET1EX1ET0EX0(1)外部中断源允许中断(中断0: EX0=l;中断1: EXl=l)o(2)CPU 开中断(EA二1)。

(3)外部中断方式CPU发出中断申请。

4、外部中断方式的选择控制TCOX:TF1TR1TF0TR0IE1IT1IE0IT0IT0是选择文字则外部中断0请求(INTO)边沿触发方式或电平触发方式的控制位。

前一方式IT0二1,后一方式IT0二0。

IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。

前一方式IT1=1,后一方式ITl=0o当8031复位后,TCON被清0。

5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。

外中断优先级实验报告

外中断优先级实验报告

实验三外中断优先级实验一、实验目的:1.理解单片机中断优先级和优先权。

2.用PROTEUS 设计, 仿真基于AT89C51单片机的中断优先级实验。

3.掌握中断编程方法。

单片机主程序控制P0口数码管循环显示0~8;外中断0、外中断1发生时分别在P2口、P1口依次显示0~8。

通过实验可演示高优先级可中断低优先级, 但低优先级的中断请求不能中断高优先级。

二、PROTEUS电路设计:三、实验仪器和设备PC机、PROTEUS软件或W-A-51综合开发学习板四、源程序设计:1.程序ORG 0000HAJMP MAINORG 0003HAJMP ZD0ORG 0013HAJMP ZD1ORG 0030HMAIN:SETB IT0 ;设置边沿触发方式SETB IT1SETB EX0 ;中断0和中断1中断允许SETB EX1SETB PX1 ;设置优先级, 中断1为高优先级CLR PX0SETB EA ;开中断MOV DPTR,#BIAO ;指针指向表的首地址LOOP: ;主程序P0输出, 在LED上循环显示0-8MOV A,#09LOOP1:JZ LOOPDEC APUSH ACCMOVC A,@A+DPTRMOV P0,ALCALL DISPOP ACCLJMP LOOP1ZD0: ;外部中断0, P1输出, 在LED上循环显示0-8 MOV A,#09LOOP2:DEC APUSH ACCMOVC A,@A+DPTRMOV P1,ALCALL DIS0POP ACCJNZ LOOP2RETIZD1: ;外部中断1, P2输出, 在LED上循环显示0-8 MOV A,#09LOOP3:DEC APUSH ACCMOVC A,@A+DPTRMOV P2,ALCALL DIS1POP ACCJNZ LOOP3RETIDIS: ;延时1SMOV R3,#10DEL3:MOV R2,#200DEL2:MOV R1,#125DEL1:NOPNOPDJNZ R1,DEL1DJNZ R2,DEL2DJNZ R3,DEL3RETBIAO: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H ;7段数码管0-8的显示代码END。

单片机 实验2-外部中断程序设计-中断按键按下次数计数数码管显示-硬件和程序设计参考

单片机 实验2-外部中断程序设计-中断按键按下次数计数数码管显示-硬件和程序设计参考

硬件电路参考如下:程序参考如下:#pragma sfr#pragma interrupt INTP0 LED_INTP0 /* 定义使用INTP0中断,中断函数名LED_INTP0*/ #pragma di /*禁止使用中断功能声明*/#pragma ei /*允许使用中断功能声明*//*数码管编码数组*/unsigned char LED_light[10]={0x30,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x3F}; unsigned char j=0; /*按键次数变量*/void hdinit() /*硬件初始化*/{PM1=0; /*P1口输出数码管字型码,所以设置为输出*/PU1=0XFF; /*由于P1口直接驱动数码管显示,为增大驱动,设置为内部上拉*/PM12.0=0; /*P12.0口线要作为中断多功能,设置为输出和内部上拉 */PU12.0=1;PIF0=0; /*中断请求标志,没有中断请求*/PMK0=0; /*中断屏蔽标志,允许中断*/PPR0=1; /*中断优先级,低优先级*/EGP.0=1; /*与EGN组合,上升沿有效*/EGN.0=0;}void main (void){DI(); /*首先做准备,禁止中断*/IMS=0XCC;IXS=0X00;hdinit();EI(); /*准备完成,允许中断*/while(1){ /*啥也不干,就等待中断,仅是在这个实验中使用中断,实际不是这样/*}}__interrupt void LED_INTP0() /*中断函数*/{ P1= LED_light[j]; /*P1赋值,数码管显示相应数值*/j++; /*按键次数加一*/if(j==10) /*如果按键次数达到十次,按键计数归0*/{j=0;} }思考: 如果用两位数码管,从0—99循环计数又该怎样设计硬件和软件呢?。

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

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

南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019. 4.30 实验成绩:实验四外部中断实验(一)实验目的1.掌握单片机外部中断原理;2.掌握数码管动态显示原理。

(二)设计要求1.使用外部中断0和外部中断1;2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。

(三)实验原理1.中断:计算机执行主程序过程中,由于临时重要事件,需要暂停当前程序的运行,转到中断服务程序去处理临时事件,处理完后又返回原程序的断点处继续运行。

图1STC15单片机的中断系统包含21个中断源,2个中断优先级,二级中断服务嵌套,中断允许寄存器IE、IE2和INT_CLKO控制中断允许。

中断优先级寄存器IP、IP2管理中断优先级。

同优先级中断同时提出中断请求时,由内部的查询逻辑确定响应次序。

中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下:1)外部中断0(INT0):中断信号由P3.2引脚输入。

通过IT0来设置中断请求的触发方式。

当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0.一旦输入信号有效,则置位IE0标志,向CPU申请终端。

2)外部中断1(INT1):中断信号由P3.3引脚输入。

通过IT1来设置中断请求的触发方式。

当IT1为“1”时,外部中断0为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断0.一旦输入信号有效,则置位IE0标志,向CPU申请终端。

2.LED数码管是显示数字和字母的常见显示器件,由8个发光二极管构成,结构如图2:图2段码:a、b、c、d、e、f、g、dp段的二进制代码(a为最低位),控制显示字型。

位选:公共端com,控制数码管是否显示。

3.数码管动态显示原理:任何时刻只有一个数码管处于显示状态,单片机采用“扫描”方式控制各个数码管轮流显示,通常将所有数码管段码线的相应段并联在一起,由一个8位I/O 端口控制。

单片机外部中断实验报告

单片机外部中断实验报告

单片机外部中断实验报告实验目的:1、理解单片机外部中断的原理和用途;2、掌握单片机外部中断的配置和使用方法。

实验器材:1、STC15W408AS单片机开发板;2、简单的电路连接器;3、按钮开关。

实验原理:单片机外部中断是通过外部硬件信号触发单片机的中断请求,在单片机运行过程中,当外部信号满足特定条件时,会触发中断,并暂停当前的运行程序,转而执行中断服务程序。

通过外部中断,可以实现对外部事件的实时处理。

实验步骤:1、将按钮开关与单片机开发板连接,将按钮开关的一端与单片机的INT0引脚连接,另一端与GND连接。

2、在开发板上连接好电源并供电。

3、打开Keil软件,新建一个工程,并选择合适的单片机型号。

4、配置单片机的外部中断功能,设置INT0引脚为中断输入。

5、编写中断服务程序,当INT0引脚检测到边沿信号时,执行中断服务程序,并在其中加入相应的处理代码。

6、编写主程序,配置相关的引脚和寄存器,使单片机进入中断模式,接受外部中断信号,并执行中断服务程序。

7、下载程序到单片机开发板上,运行程序。

8、按下按钮开关,触发外部中断,并查看实验结果。

实验结果:当按下按钮开关时,实时触发外部中断,单片机停止当前程序的运行,进入中断模式,并执行中断服务程序中的相应代码。

实验总结:通过这次实验,我对单片机的外部中断有了更深入的理解,并学会了如何使用外部中断实现对外部事件的及时处理。

外部中断广泛应用于各种实时系统和设备中,具有很大的实用价值。

在以后的学习和实践中,我会进一步掌握和应用单片机的外部中断功能。

单片机中断实验报告

单片机中断实验报告
程序下载
通过单片机的下载接口,将可执行的二进制文件 下载到单片机中。
实验测试
通过按键触发外部中断,观察LED灯的状态变化, 验证程序的正确性。
04
实验结果与分析
中断响应时间测试
总结词
响应时间快
详细描述
在测试中,我们发现单片机的中断响应时间非常快,能够在极短的时间内对外 部事件做出响应。这主要得益于单片机的硬件架构和中断处理机制,使得单片 机能够迅速识别并处理外部事件。
提高编程能力
通过本次实验,我们认识到自己的编程能力还有很大的提升空间。在未来的学习中,我们将注重提高自 己的编程能力,包括代码的优化、调试技巧等方面。
THANKS
感谢观看
实验中的问题与解决方案
在实验过程中,我们遇到了一些问题,如中断触发条件不 稳定等,通过调整相关参数和优化代码,最终解决了这些 问题。
对实验的反思与建议
01
实验操作流程的不足
在实验过程中,我们发现操作流程仍存在一些不足之处,如某些步骤的
描述不够清晰,导致实验过程中出现了一些不必要的困惑。建议在后续
的实验指导书中对操作流程进行更加详细的描述。
深入学习单片机中断机制
通过本次实验,我们对单片机的中断机制有了初步的了解。在未来的学习中,我们计划深入学习单片机的中断机制, 了解更多关于中断的细节和应用技巧。
探索更多中断应用场景
除了本次实验中实现的按键中断和定时器中断外,我们还计划探索更多的中断应用场景,如串口中断、ADC中断等 ,以拓宽我们的知识面和应用能力。
05
结论与建议
实验结论
实验目标达成情况
实验目标是通过单片机实现外部中断和定时器中断,实验 过程中成功实现了外部按键中断和定时器中断,验证了单 片机的中断处理机制。

南理工单片机实验报告

南理工单片机实验报告

MCS-51单片机实验报告实验一P1口实验一、实验目的(1)学习P1口的使用方法;(2)学习掩饰子程序的编写和使用。

二、实验元件A T89C51、LED-YELLOW、SW-SPDT、CAP、CAP-ELEC、CRYSTAL、RES三、实验内容(1)P1口做输出口,接八只发光二极管,编程使发光管循环点亮;①硬件连接图由于受软件限制,无法通过调节晶振的频率来控制单片机的始终频率,只能通过调节单片机自身属性中的时钟频率来达到调节单片机时钟频率的目的,单片机默认的始终频率为12MHZ,将单片机的外部连接完成后,单击电气报告,经软件检查硬件连接无误之后即可开始编程。

②程序编写ORG 0SJMP STARORG 0030HSTAR: MOV P1,#1 ;点亮二极管D1LCALL DELAY ;调用延时子程序MOV P1,#2 ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#4 ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#8 ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#10H ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#20H ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#40H ;点亮二极管D2LCALL DELAY ;调用延时子程序MOV P1,#80H ;点亮二极管D2LCALL DELAY ;调用延时子程序SJMP STAR ;循环DELAY: MOV R0,#5 ;延时子程序NEXT1: MOV R1,#200 ;延时时间约为0.2sNEXT2: MOV R2,#200NEXT3: NOPNOPNOPDJNZ R2,NEXT3DJNZ R1,NEXT2DJNZ R0,NEXT1RET ;返回主程序END创建新的源文件后,将程序输入源文件中,保存后选择全部编译,经软件检查程序无语法错误后即可单机运行按钮开始运行程序。

实验3外部中断实验报告

实验3外部中断实验报告

实验3外部中断实验报告以下是为大家整理的实验3外部中断实验报告的相关范文,本文关键词为实验,外部,中断,报告,,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。

实验三定时中断实验一、实验目的1.掌握51单片机外部中断的应用。

2.掌握中断函数的写法。

3.掌握定时器的定时方法。

4.掌握LeD数码管的显示。

二、实验内容1.用外部中断0测量负跳变信号的累计数,同时在LeD数码管上显示出来。

2.用外部中断改变流水灯的方式。

3.用定时器T1的方式2控制两个LeD以不同周期闪烁。

使用定时器T1的方式2来控制p0.0、p0.1引脚的两个LeD分别以1s和2s 的周期闪烁。

三、实验仿真硬件图在proteus软件中建立如下图所示仿真模型并保存。

1.用外部中断0测量负跳变信号的累计数,同时在LeD数码管上显示出来(用中断方式做计数器)。

2.用外部中断改变流水灯的方式。

中断前:开始时,p0.0~p0.7的8个灯依次点亮。

外部中断0:p0.0~p0.7的左右4个灯闪烁亮8次外部中断1:p0.0~p0.7的8个灯间隔闪烁8次改变中断优先级和保护现场,观察运行结果四、编程提示12345678p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7AT89c51c122pfu1x112m18 xTAL219xTAL1p0.0/AD0p0.1/AD1p0.2/AD2p0.3/AD3p0.4/AD4p0.5/AD5p 0.6/AD6p0.7/AD7p2.0/A8p2.1/A9p2.2/A10p2.3/A11p2.4/A12p2.5/A13p2 .6/A14p2.7/A15p3.0/RxDp3.1/TxDp3.2/InT0p3.3/InT1p3.4/T0p3.5/T1p3. 6/wRp3.7/RD3938373635343332212223242526272810111213141516171234567812345678c222pfD1D2D3D4D5D6D7D8R110k9RsTc310uf2930 31psenALeeAR2220R3220R4220R5220R6220R7220R8220R9220外部中断0请求InT0,由p3.2管脚输入,通过IT0位来决定是低电平有效还是下降沿有效。

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

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

实验二外部中断实验实验报告
一、实验内容
单片机外部中断0(P3.2)已与独立式键盘中KEY0连接,外部中断1(P3.3)已与KEY1连接,要求在无外部中断时最上面一位发光二极管(LED10)点亮。

请编程实现:当KEY0按下,外部中断0请求中断,控制发光二极管从上到下循环点亮3圈;当KEY1按下,外部中断1请求中断,控制发光二极管闪烁3次。

(要求外部中断1优先级高于外部中断0,即KEY1按下后能够打断流水灯的动作,当外中断1处理完后,恢复外中断0的处理,并且能从上次打断的那个LED开始循环)。

单片机与发光二极管的连接如图2-1所示,独立式键盘原理图如图2-2所示。

图2-1 单片机与发光二极管的连接原理图
2-2 独立式键盘原理图
三、硬件电路分析
1、阅读电路2-1简要分析如何使发光二极管点亮?
当LEDS0 为高电平时,三极管Q6导通,发光二极管的阳极为高电平,此时,当给发光二极管的阴极为低电平时,发光二极管两端存在电位差,发光二极管导通,则发光二极管点亮。

2、简要画出独立式按键电路(一个键),并分析其如何工作?
如图所示,当按键按下时,单片机IO处会由高电平变为低电平,单片机IO口在经过消抖处理之后仍然检测为低电平,则表明按键被按下。

四、程序设计
画出主程序流程图:
画出外部中断0流程图;
五、思考题
六、收获和体会。

单片机实验报告 中断

单片机实验报告 中断

单片机实验报告中断单片机实验报告:中断引言:单片机是一种集成电路,具有微处理器、存储器和输入输出接口等功能。

在嵌入式系统中,单片机常常被用于控制和管理各种设备。

而中断是单片机中一种重要的机制,它可以在特定条件下打断程序的正常执行,执行一段特定的代码,然后返回到原来的程序中。

本文将介绍中断的概念、分类以及在单片机实验中的应用。

一、中断的概念中断是一种硬件或软件生成的信号,用于打断正在执行的程序。

当中断信号发生时,单片机会立即停止当前的任务,转而执行中断服务程序。

中断可以提高程序的响应速度和效率,使单片机能够及时处理紧急事件。

二、中断的分类中断可以分为外部中断和内部中断两种类型。

1. 外部中断外部中断是由外部设备产生的中断信号。

当外部设备需要单片机的处理时,会发送中断请求信号。

单片机在接收到中断请求后,会立即停止当前任务,转而执行与中断相关的程序。

外部中断常用于处理外部设备的输入信号,如按键、传感器等。

2. 内部中断内部中断是由单片机内部产生的中断信号。

内部中断通常由单片机的一些特定事件触发,如定时器溢出、串口接收完成等。

内部中断常用于周期性的任务处理和数据通信等。

三、中断的实验应用在单片机实验中,中断被广泛应用于各种场景,下面将介绍两个实验应用的例子。

1. 外部中断实验假设我们需要设计一个按键控制LED灯的实验。

当按下按键时,LED灯亮起;当松开按键时,LED灯熄灭。

这个实验可以使用外部中断来实现。

首先,我们需要将按键连接到单片机的外部中断引脚。

当按键按下时,外部中断引脚会产生一个中断请求信号。

单片机接收到中断请求后,会执行相应的中断服务程序。

在中断服务程序中,我们可以控制LED灯的亮灭。

通过这个实验,我们可以学习到如何使用外部中断来处理外部设备的输入信号,并且了解到中断的响应速度和效率优势。

2. 内部中断实验假设我们需要设计一个定时器实验,要求每隔一段时间点亮一次LED灯。

这个实验可以使用内部中断来实现。

单片机实验报告(相当不错,有具体实验结果分析哦)

单片机实验报告(相当不错,有具体实验结果分析哦)

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。

二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。

以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。

三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。

四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。

因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。

2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。

用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。

2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。

六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。

外部中断实验报告

外部中断实验报告

一、实验目的1. 理解单片机外部中断的概念和工作原理。

2. 掌握MCS-51单片机外部中断的编程方法。

3. 通过实验验证外部中断在实际应用中的效果。

二、实验环境1. 实验设备:MCS-51单片机实验板、按键、LED灯、面包板、连接线等。

2. 开发环境:Keil uVision5软件。

三、实验原理外部中断是单片机的一个重要功能,用于响应外部事件。

当外部事件发生时,CPU可以暂停当前程序,转而执行中断服务程序,处理外部事件。

MCS-51单片机有两个外部中断源,即INT0和INT1。

四、实验内容1. 硬件连接将按键连接到单片机的INT0或INT1引脚,LED灯连接到单片机的某个I/O口。

具体连接方式如下:- 将按键的一端连接到单片机的INT0或INT1引脚,另一端连接到地。

- 将LED灯的正极连接到单片机的某个I/O口,负极连接到地。

2. 程序设计(1)初始化单片机```cvoid main() {EA = 1; // 开启总中断EX0 = 1; // 开启INT0中断IT0 = 1; // 设置INT0为下降沿触发P1 = 0xFF; // 初始化P1口为高电平,关闭LED灯 while(1) {// 主循环}}```(2)编写中断服务程序```cvoid ext0_isr() interrupt 0 {P1 = 0x00; // 点亮LED灯delay(500); // 延时0.5秒P1 = 0xFF; // 熄灭LED灯}```(3)编写延时函数```cvoid delay(unsigned int ms) {unsigned int i, j;for(i = 0; i < ms; i++)for(j = 0; j < 123; j++);}```3. 实验步骤1. 编写程序,并使用Keil uVision5软件进行编译和烧录。

2. 将程序烧录到单片机中,并连接好硬件电路。

3. 按下按键,观察LED灯是否闪烁。

单片机原理 中断实验-单片机原理-实验报告

单片机原理 中断实验-单片机原理-实验报告

宁德师范学院计算机系实验报告(2014—2015学年第2学期)课程名称单片机原理实验名称中断实验专业计算机科学与技术(非师)年级12级学号B********** 姓名王秋指导教师杨烈君实验日期2015.5.21实验步骤、实验结果及分析:1、使用Proteus ISIS 7 Professional应用程序,建立一个.DSN文件2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、LED-YELLOW、BUTTON、7SEG-MPX8-CA-BLUE、RESPACK-8。

3、构建仿真电路4、创建一个Keil应用程序:新建工程项目文件;为工程选择目标器件(AT89C52);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。

5、把程序经过编译后生成的HEX文件添加到仿真电路中的处理器中(编辑元件→文件路径)程序代码:1.实现单按键控制Led灯闪烁#include"reg51.h"#define uchar unsigned charsbit Led1=P1^0; uchar Mode=0;void delay(int x) //定义时间间隔{while(x--);}void button_Cotrol() //根据按键模式执行相应的代码{if(Mode==0)Led1=0;if(Mode==1){Led1=~Led1;delay(1000);}}void int0() interrupt 0 //外中断0的中断编号为0{Mode=(Mode+1)%2; //更改按键模式}void main(){Led1=0; //置初值EA=1; //开放总中断EX0=1; //允许使用外中断0IT0=1; //选择负跳变来触发外中断while(1)button_Cotrol();}图1 单按键控制Led灯闪烁while(1)button_Cotrol();}图2 单按键多功能识别,控制4路Led灯闪烁3.实现0-99的计数器效果,按一下数值加1#include"reg51.h"#define uchar unsigned char#define disp_null 10sbit key=P3^2;uchar code tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //共阳数码管显示0~9的段码表uchar DispBuf[8];uchar sec=0;void delay(int x) //定义时间间隔{while(x--);}void PutTime(){DispBuf[7]=sec%10;while(1){P1=0x00;display();}}图3 0-99的计数器效果,按一下数值加1注:1、报告内的项目或设置,可根据实际情况加以补充和调整2、教师批改学生实验报告应在学生提交实验报告10日内。

单片机实验报告

单片机实验报告

单⽚机实验报告单⽚机原理及接⼝技术实验报告班级学号:姓名:实验⼀P1⼝输⼊输出实验与P1、P3⼝输⼊输出实验⼀、实验⽬的及任务学习P1、P3⼝的使⽤⽅法,熟练HICE单⽚机试验系统的操作步骤。

⼆、实验总体设计本实验分为两部分:P1⼝和P1、P3⼝输⼊输出实验。

1、P1⼝是⼀个准双向⼝,外接⼋个发光⼆极管,连续运⾏程序,发光⼆极管循环点亮2、P3⼝作为输⼊读取开关状态,P1⼝作为输出⼝,连续运⾏程序,发光⼆级管显⽰开关状态。

3、设计思路如下:(1)、开始——>P1⼝初始化——>点亮⼀位发光⼆极管——>右移⼀位——>循环;(2)、开始——>初始化——>P3⼝开关状态送到P1⼝——>驱动发光⼆极管——>延时三、试验程序框图及实验电路(实验电路及连线详见附录)四、软件设计⼀、P1⼝输⼊输出程序代码:#inc lud e#def ine uc har un sig ned ch ar#def ine ui nt uns ign ed intucha r r rc(uch ar a,n);ucha r r rc(uch ar a,n) //循环右移⼦程序{ucha r b,c;b=a<<(8-n);c=a>>n;a=c|b;retu rn(a);}void ma in(){ucha r i,te mp;uint j;P1=0xff;loop:temp=0x7f;for(i=0;i<8;i++){P1=r rc(tem p,i);for(j=0;j<30000;j++);//延时}}⼆、和P1、P3⼝输⼊输出实验。

#i ncl ude#def ine uc har un sig ned ch ar#def ine ui nt uns ign ed intvoid ma in(){uint j;loop:P1=0XFF;P1=P3;//读取P3⼝状态送P1⼝for(j=0;j<5000;j++);//延时goto lo op;}五、硬件设计1、仿真模式设置:8752模式,仿真存储器模式选择:内程序存储器外数据存储器;2、仿真器P3.6/P3.7短路块设置在WR/RD状态(见仿真器说明书跳线设置)。

单片机实验报告

单片机实验报告

1.I/O口实验实验目的:掌握单片机通用I/O端口使用方法,掌握I/O数据输入输出方法实验内容:将P1.0-P1.3接发光二极管的LED1-LED4,当开关为全1时LED循环右移,当开关为全0时LED循环左移,当开关为0101时LED以5000ms/次闪烁,其他情况灭。

程序:#include <reg51.h>void delay(){unsignedint i;i= 50000;while(i)i--;}main(){unsigned char a,b;a=0xee;b=0x00;while(1){if(P2==0xff){P1=a;a=(a<<7)+(a>>1);delay();}else if(P2==0x0f){P1=a;a=(a>>7)+(a<<1);delay();}else if(P2==0x5f){if(b==0x00){P1=b;b=0xff;}else {P1=b;b=0x00;}delay();}else{P1=0xff;delay();}}}2.I/O口扩展实验(交通灯)实验目的:学习单片机扩展简单I/O方法;掌握通过总线输入输出的编程方法;掌握扩展总线接口芯片的地址分配方法。

实验内容:初始状态两个路口红灯全亮,5秒后转入状态A状态A:东西方向通车,东西绿,南北红。

5秒后东西绿灭,黄灯闪两秒后进入状态B状态B:南北方向通车,南北绿,东西红。

5秒后东西绿灭,黄灯闪两秒后进入状态A程序:#include<reg51.h>xdata unsigned char cs_273_at_0xffff;const unsigned char Led_const[]={0xbb;0xbe;0xbd;0xbf;0xeb;0xdb;0xfb;};void delay1(){unsignedint i;i=625000;while(i)i--;}void delay2(){unsignedint i;i=50000;while(i)i--;}main(){unsigned char j;while(1){cs_273=Led_const[0];delay1();cs_273=Led_const[1];delay1();for(j=0;j<5;j++){cs_273=Led_const[2];delay2();cs_273=Led_const[3];delay2();}cs_273=Led_const[4];delay1();for(j=0;j<5;j++){cs_273=Led_const[5];delay2();cs_273=Led_const[6];delay2();}}}3.电子琴实验目的:学习单片机发出不同音调的原理及编程方法;进一步熟练定时器的应用;掌握蜂鸣器的使用方法。

实验外部中断实验报告

实验外部中断实验报告

实验三定时中断实验一、实验目得1、掌握51单片机外部中断得应用。

2、掌握中断函数得写法。

3、掌握定时器得定时方法。

4、掌握LED数码管得显示。

二、实验内容1、用外部中断0测量负跳变信号得累计数,同时在LED数码管上显示出来。

2、用外部中断改变流水灯得方式。

3、用定时器T1得方式2控制两个LED以不同周期闪烁。

使用定时器T1得方式2来控制P0、0、P0、1引脚得两个LED分别以1s与2s得周期闪烁。

三、实验仿真硬件图在Proteus软件中建立如下图所示仿真模型并保存。

}同级自然优先级:外部中断0→定时器T0中断→外部中断1→定时器T1中断→串行口中断。

中断优先级别得设定:实验二要求:初始状态为P0、0~P0、7得8个LED显示灯依次循环点亮;外部中断0服务程序为8个LED灯,左4个,右4个闪烁8次,外部中断1服务程序8个LED灯,间隔闪烁8次。

⑴设定外部中断0为高优先级,先执行外部1中断,过程中用外部0中断来将其中断,反之不行。

注意保护现场。

⑵设定外部中断1为高优先级,先执行外部0中断,过程中用外部1中断来将其中断,反之不行。

注意保护现场。

实验三(调试下列程序,在错误行后面注明错误及改正方法):#include <reg51、h>#define ucharunsigned char;sbit D0=P1^0;sbitD1=P1^1;uchar a,b;void main(){EA=1;ET1=1;TMOD=0x20;ﻩTL1=6;ﻩTR0=1;a=0;ﻩb=0;ﻩwhile(1);}void t1()interrupt 1{ﻩa++;ﻩb++;if(a=1000){D0=~D0ﻩa=0;}if(b=4000)ﻩ{ﻩD1=~D1;ﻩﻩb=0;}写出源程序,并注释实验报告格式实验三定时中断实验学院: 专业:年级: 实验时间: 姓名: 学号: 指导教师:一、实验目得1、掌握51单片机外部中断得应用。

实验二_单片机P1口输入输出及中断实验

实验二_单片机P1口输入输出及中断实验

单片机P1口输入输出及外部中断实验一、实验目的1、学习P1口的使用方法。

2、学习延时子程序的编写和使用。

3、熟练在汇编软件环境下编写、修改、调试、和运行硬件程序4、熟悉汇编语言二、实验说明1、P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2、P1.0,P1.1作输入口接两个拨动开关,P1.2,P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。

编程时应注意P1.0,P1.1作为输入口时应先置1,才能正确读入值。

3、用单次脉冲申请中断,在中断处理程序中使P1.0的输出状态发生反转,并通过发光二极管观察P1.0的电平。

三、实验仪器计算机伟福软件(lab2000P )四、实验内容1、P1口是准双向口。

它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

2、8051延时子程序的延时计算问题,计算和估算延时子程序的时间。

3、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

4、必须在中断程序中设定是否允许中断重入,即设置EXO位。

1> 关于延时子程序的时间计算,查指令表可知MOV和DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6MHZ,所以上面延时子程序该的执行时间为:(256×255+2)×2×12÷6 ≈261ms2>采用P1口作输出P1口是准双向口,它作为输出口使用时具有锁存功能。

实验所需要LED电平显示电路如图所示。

3>采用P1口作输入和输出由P1口的准双向口结构可知,当作为输入口时,必须先对它置“1”。

若不先对它置“1”,读入的数据是不正确的。

实验所需要LED电平显示电路和逻辑电平开关电路如图所示。

思考题1、改变延时时间,变快或者变慢,观察效果;2、第2个实验在每个端口增加软件延时,延时时间变快或者变慢,观察拨动开关响应效果;3、改变流水灯的运行方向;4、改变流水灯的运行模式,双灯对跑,双灯一起跑。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十一P1口及外部中断
一、实验目的
1.掌握利用MCS-51单片机P1口实现I/O的三种传送方式。

2.掌握MCS-51单片机外部中断源的原理和编程方法。

3.了解MCS-51单片机处理外部中断的全过程。

4.弄懂外部中断触发方式的选择。

二、实验要求
熟练掌握结合DP-51PROC单片机综合仿真实验仪和Kiel C51 集成开发环境进行仿真调试。

三、实验内容及实验电路
1、P1口无条件输出实验,电路图图3-1所示。

图3-1 P1口无条件输出
实验参考程序1:8个LED 灯同时闪亮。

ORG 8000H
LJMP Main
ORG 80F0H
Main:
MOV R7, #0
Loop:
MOV R6, #0
DJNZ R6, $
DJNZ R6, $
DJNZ R6, $
DJNZ R6, $
DJNZ R7, Loop
CPL P1.0 ; P 1 .0 取反
CPL P1.1 ; P 1 .1 取反
CPL P1.2 ; P 1 .2 取反
CPL P1.3 ; P 1 .3 取反
CPL P1.4 ; P 1 .4 取反
CPL P1.5 ; P 1 .5 取反
CPL P1.6 ; P 1 .6 取反
CPL P1.7 ; P 1 .7 取反
SJMP Main
END
2、P1口条件输出实验,电路如图3-2所示。

图3-2 P1口条件输出
实验参考程序2:
ORG 8000H
LJMP Main
ORG 8100H
Main:
JB P1.7,SETLED
CLRLED:
CLR P1.0
CLR P1.1
CLR P1.2
CLR P1.3
CLR P1.4
CLR P1.5
CLR P1.6
SJMP Main
SETLED:
SETB P1.0
SETB P1.1
SETB P1.2
SETB P1.3
SETB P1.4
SETB P1.5
SETB P1.6
SJMP Main
END
3、P1口中断输入/输出实验,电路如图3-3所示。

图3-2 P1口中断输入/输出
实验参考程序3:
ORG 8000H
LJMP Main
ORG 8003H
LJMP INT0SV
Main:
MOV SP, #5FH
SETB EA
SETB IT0
SETB EX0
SJMP $
INT0SV:
MOV P1,#0FFH
MOV A,P1
SWAP A
MOV P1,A
RETI
END
四、实验步骤
实验内容1:P1口无条件输出实验
1.断开DP-51PROC实验仪的电源,按图3-1接线,使用排线将A2区的J61接口与
D1区的J52接口相连。

2.接通DP-51PROC实验仪的电源,将TKSMonitor51 仿真器上的工作模式选择开关
拨到RUN处。

3.建立名为P1_wtjio工程,按实验参考程序1编辑新文件,文件名为:p1_wtj.asm。

然后编译,无误转换为调试方式,运行程序,观察并记录运行结果。

同时闪亮
实验内容2:P1口条件输出实验
1、断开DP-51PROC实验仪的电源,按图3-2接线,使用排线将A2区的J61接口与
D1区的J52接口相连,使用导线把A2区的P1.7与D1区J54的SW1相连。

2、接通DP-51PROC实验仪的电源,将TKSMonitor51 仿真器上的工作模式选择开关
拨到RUN处。

3、建立名为P1_tjio工程,按实验参考程序2编辑新文件,文件名为:p1_tj.asm。


后编译,无误转换为调试方式,预先将SW1置1或置0,运行程序,观察并记录
运行结果。

底色
实验内容3:P1口中断方式输入/输出实验
1、断开DP-51PROC实验仪的电源,按图3-3接线,使用导线将A2区的P10、P11、
P12分别与D1区的SW1、SW2 、SW3相连,使用导线把A2区INT0与D1区
J53的KEY1(图3-3中的K1即为D1区的K1)相连。

2、接通DP-51PROC实验仪的电源,将TKSMonitor51 仿真器上的工作模式选择开关
拨到RUN处。

3、建立名为P1_zdio工程,按实验参考程序3编辑新文件,文件名为:p1_zd.asm。

然后编译,无误转换为调试方式,预先置好开关的状态,运行程序,观察中断的执行过程,并记录运行结果。

五、思考题
1如何将P1口无条件输出的实验,修改为将8个L ED发光二极管向左或向右循环点亮?
ORG 0000H
LJMP MAIN
ORG 000BH
MAIN:CLR P0.0
ACALL DEL
SETB P0.0
CLR P0.1
ACALL DEL
SETB P0.1
CLR P0.2
ACALL DEL
SETB P0.2
CLR P0.3
ACALL DEL
SETB P0.3
CLR P0.4
ACALL DEL
SETB P0.4
CLR P0.5
ACALL DEL
SETB P0.5
CLR P0.6
ACALL DEL
SETB P0.6
CLR P0.7
ACALL DEL
SETB P0.7
SJMP MAIN
DEL: MOV R7,#0FFH
DEL1: MOV R6,#0FFH
DJNZ R6,$
DJNZ R6,$
DJNZ R6,$
DJNZ R6,$
DJNZ R7,DEL1
RET
END
2如何利用I N T0中断使P1口控制8个L E D发光二极管向左或向右循环点亮?电路如何修改?程序如何修改?
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INT0SV
MAIN: MOV SP,#5FH
SETB EA
SETB IT0
SETB EX0
SJMP $
INT0SV: MOV SP,#5FH
CLR EA
PUSH ACC
PUSH 01H
SETB EA
MOV P1,#0FFH MOV R1,#0AH LN: CLR P0.0
ACALL DEL
SETB P0.0
CLR P0.1
ACALL DEL
SETB P0.1
CLR P0.2
ACALL DEL
SETB P0.2
CLR P0.3
ACALL DEL
SETB P0.3
CLR P0.4
ACALL DEL
SETB P0.4
CLR P0.5
ACALL DEL
SETB P0.5
CLR P0.6
ACALL DEL
SETB P0.6
CLR P0.7
ACALL DEL
SETB P0.7
DJNZ R1,LN
CLR EA
POP 01H
POP ACC
SETB EA
RETI
DEL: MOV R7,#0FFH DEL1: MOV R6,#0FFH
DJNZ R6,$
DJNZ R6,$
DJNZ R6,$
DJNZ R6,$ DJNZ R7,DEL1 RET
END。

相关文档
最新文档