实验4 外部中断应用与程序设计
单片机外部中断实验报告

实验三外部中断实验报告班级:学号:姓名:教师:一、实验目的1、掌握单片机外部中断的原理及过程。
2、掌握单片机外部中断程序的设计方法。
3、掌握单片机外部中断时中断方式的选择方法。
二、实验内容如下图所示,P3.2设为输入,P2设为输出位,连有8个发光二极管D1~D8。
每当发生外部中断时,发光二极管以向下流水灯的方式点亮。
分别选择边沿触发外部中断放是和电平触发外部中断方式两种。
三、编程提示1、P3口是8位准双向口,具有双重功能:第一功能和P1口一样,作为输入输出口,也有字节操作和位操作两种方式,每一位可分别定义为输入或输出;第二功能定义如下:P3.0 RXD 串行输入口P3.1 TXD 串行输出口P3.2 INT0 外部中断0请求输入线P3.3 INT1 外部中断1请求输入线P3.4 T0定时器/计数器T0外部计数器脉冲输入线P3.5 T1定时器/计数器T1外部计数器脉冲输入线P3.6 WR外部数据存贮器写脉冲输出线P3.7 RD外部数据存贮器读脉冲输出线2、各中断服务程序入口地址:外部中断0 03H定时器/计数器T1溢出中断0BH外部中断1 13H定时器/计数器1BH串行口中断23H3、外部中断的产生条件中断允许寄存器IE:EA ES ET1 EX1 ET0 EX0(1)外部中断源允许中断(中断0:EX0=1;中断1:EX1=1)。
(2)CPU开中断(EA=1)。
(3)外部中断方式CPU发出中断申请。
4、外部中断方式的选择控制TCON:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0IT0是选择文字则外部中断0请求(INT0)边沿触发方式或电平触发方式的控制位。
前一方式IT0=1,后一方式IT0=0。
IT1是选择外部中断1请求(INT1)为边沿触发方式或电平触发方式的控制位。
前一方式IT1=1,后一方式IT1=0。
当8031复位后,TCON被清0。
5、外部中断电路负脉冲作为中断请求信号时,为了保证中断的唯一性,必须加上消除开关抖动的电路或者去抖动延时程序,保证每次只产生单脉冲,构成边沿触发方式外部中断电路。
单片机实验指导书

单片机原理与应用实验指导书九江学院电子工程学院2007年9月第一章单片机实验的基本要求与方法一、实验目的学习并掌握单片机的基本结构及接口设计方法,学习汇编语言程序设计的基本方法和技能。
二、实验要求1、上机前要做好充分准备,明确实验目的、熟悉实验内容、掌握实验步骤、了解所用单片机实验开发系统及仪器设备的性能。
做好实验前预习和必要的准备,如画好程序流程图,编好程序,做到准备充分。
2. 进入实验室后,熟悉所用的单片机实验开发系统及仪器设备,了解其外观、性能。
接线要正确、简单明了,接线完成后检查一遍,经老师复查允许后才可通电。
通电瞬间,应注意仪器和实验装置是否正常工作,如有不正常现象,应立即断电查找原因,直至故障排除后,实验方可继续进行。
3. 实验进行时,按规定步骤进行,经过反复修改调试,达到设计功能后,读取数据,并及时纪录。
4. 实验完成后,经老师验收合格,并把仪器、导线、工具整理完毕后,学生方可离开实验室。
三、实验方法本课程所用的实验板采用在系统可编程方式下载程序,具体操作过程参考第三章。
四、实验报告内容和要求1. 实验报告要用学校统一印发的实验报告纸。
2. 实验报告内容应包括:实验名称、器材、目的、原理、步骤、结果及分析、流程图、程序清单。
3. 实验报告中实验原理图(含电路图和时序图)要准确无误。
4. 实验报告中程序清单要求调试并运行正确无误,要有中文注释。
5.每个实验后的实验结果分析和心得体会必须独立完成,对实验中发现的问题应加以讨论,并提出自己的改进意见和要求。
6.实验报告写完后统一交到学习委员处,按学号排列装订成册,然后交到老师处。
第二章 V6实验板简介本课程所用单片机实验板,可用于MCS-51系列单片机的仿真开发和《单片机原理与应用》课程的教学实验,具有电路简单,小巧便携,支持在系统可编程技术,简便易用等特点。
适合单片机初学者使用。
图2-1一、可开设实验1、wave仿真软件的应用2、用isplay实现在系统可编程3、流水灯4、动态显示程序5、中断响应程序设计6、定时/计数器的应用:测量脉冲宽度、倒计时器、带闪动的动态显示7、键盘接口程序设计:计时系统、抢答器设计、模拟汽车转向灯设计*8、红外按键识别程序设计*9、基于红外按键输入的四则混合运算计算器设计10、电子音乐盒设计*11、基于红外按键输入的电子琴设计12、基于DS1302的精密时钟设计13、基于DS18B20的数字温度计设计14、串行程序存储器扩展*15、数据采集电路设计:单片机与A/D 转换器接口 *16、信号发生器设计:单片机与D/A 转换器接口 *17、直流电机调速 *18、步进电机控制*19、基于MAX7219的数码管静态显示程序设计 *20、字符型液晶显示程序设计 *21、点阵型液晶显示程序设计注:带“*”实验项目需外接扩展电路二、V6实验板的原理和组成1、总体电路图上电复位....图2-22、微处理器V6实验板采用DIP 封装的AT89s52单片机作为微处理器,引脚配置如图2-3所示,为实现在系统可编程功能,选用11.0592MHz的晶振。
单片机 实验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循环计数又该怎样设计硬件和软件呢?。
51单片机中断课程设计

51单片机中断课程设计一、课程目标知识目标:1. 学生能理解51单片机中断的基本概念,掌握中断系统的工作原理和结构。
2. 学生能掌握51单片机中断的相关寄存器及其设置方法,了解中断优先级的概念。
3. 学生能运用C语言编写中断服务程序,实现中断功能。
技能目标:1. 学生能够运用51单片机中断技术,进行简单的嵌入式系统设计与开发。
2. 学生能够通过分析问题,设计并实现中断控制程序,提高程序执行效率。
3. 学生能够掌握中断调试方法,解决中断使用过程中的问题。
情感态度价值观目标:1. 学生在学习过程中,能够培养对单片机编程的兴趣和热情,提高自主学习能力。
2. 学生能够培养团队合作意识,主动与他人交流、分享经验,提高沟通能力。
3. 学生能够认识到中断技术在嵌入式系统中的应用价值,增强对技术应用的信心。
本课程针对高年级学生,在学生具备一定的单片机基础知识的基础上,通过本课程的学习,使学生在实践中掌握中断技术的应用,提高编程能力。
课程注重理论与实践相结合,强调学生的动手实践和问题解决能力的培养。
通过课程目标的分解,使学生在完成具体学习成果的过程中,达到课程目标的要求。
二、教学内容1. 中断概念与分类:介绍中断的基本概念,包括硬件中断和软件中断,阐述中断的作用和分类。
教材章节:第3章 单片机的中断系统2. 51单片机中断系统结构:讲解中断系统的工作原理、中断源、中断请求标志及中断向量表。
教材章节:第3章 单片机的中断系统3. 中断相关寄存器:详细讲解中断控制寄存器(IE、IP)、中断请求标志寄存器(TCON、SCON)等。
教材章节:第3章 单片机的中断系统4. 中断优先级:介绍中断优先级概念,讲解中断优先级的设置方法。
教材章节:第3章 单片机的中断系统5. 中断服务程序编写:通过实例,教授如何使用C语言编写中断服务程序,实现中断功能。
教材章节:第4章 单片机中断程序设计6. 中断应用实例:分析并实践中断技术在51单片机中的应用,如定时器中断、外部中断等。
实验4 cpuTimer与PIE操作实验

实验4 cpuTimer与PIE操作实验1.实验目的学会如何通过程序语言配置cpuTimer,以及通过PIE实现中断管理。
2.实验主要内容在CCS软件中,用C语言编写程序进行cpuTimer及PIE的配置工作,通过多个cpuTimer实现不同周期的定时器中断,并能通过程序关闭某一特定定时器而不影响其他定时器中断。
3.实验基本原理F2833x系列DSP包含3个CPU定时器,分别是CPU 定时器0、1、2。
定时器0、1可以被用户使用,定时器2保留给实时操作系统(DSP-BIOS)。
若未用到实时操作系统,用户也可以使用定时器2。
定时器工作原理:32位的计数器(TIMH:TIM)从周期寄存器(PRDH:PRD)中装载数据,每经过(TDDRH:TDDR+1)个SYSCLKOUT周期,(TIMH:TIM)减1,当计数器等于0时将产生一次中断请求信号。
4.实验过程和关键程序解读(1)打开cpuTimer实验的工程(2)直接运行,观察到LED3以比较奇特的规律在闪烁,变量检测框内可看到各cpuTimer的InterruptCount分别以1s,2s,3s的周期自加。
(3)阅读代码,可以看到主程序中初始化了3个cpuTimer中断周期分别为1s,2s,3s,计算如下:Cputimer2:f = 150M/(150*3M)=1/3Hz T=1/f=3sCputimer1:f = 150M/(150*2M)=1/2Hz T=1/f=2sCputimer0:f = 150M/(150*1M)=1Hz T=1/f=1s(4)分析初始化过程i.初始化PIEii.置IER和IFR为0,关闭清除所有CpuTimer中断其中IER为CPU中断使能寄存器,特定位可以控制特定中断的使能或关闭。
IFR为CPU中断标志寄存器,用来识别和清除挂起的中断标志位。
iii.初始化PIE中断向量表其中中断向量表为结构体,存有各个外部中断与内部中断的中断服务函数地址。
单片机实验报告参考

《实验一 应用系统开发过程演示》实验报告参考一.实验目的1.了解单片机应用系统的开发过程,获得感性认识。
2.了解开发箱/开发板的使用方法3.了解仿真软件的基本功能和使用方法。
二.实验环境(一) EL 型微机教学实验系统:1. 设备::北京精议达盛科技有限公司EL-MUT3多CPU 单片机/微机实验实训系统2. 软件:北京精议达盛科技有限公司8051调试软件4.0版 二.实验电路(一) EL 型微机教学实验系统实验电路(二) 仿真软件开发调试环境: 1.英国 Labcenter electronics 公司的Proteus EDA 工具软件, 2. 美国Keil 公司的µVision 集成开发环境 (二) 仿真软件实验电路:三. 操作步骤:(一)EL 型微机教学实验系统操作步骤1. 连线:P1.0~P1.7接LED1~LED82. 新建汇编语言源文件3. 另存为D:\J08X\SY1.ASM4. F3编译生成目标文件,F5进入调试:工具栏上“R ”打开寄存器窗,“H ”打开反汇编窗口F8,单步执行,观察相关寄存器窗口中有关寄存器中数据的变化。
四. 源程序(括号中为EL 型微机教学实验系统中的程序)ORG 0000H (ORG 4000H ) SJMP MAIN (LJMP MAIN) ORG 0040 H (ORG 4100H) MAIN: MOV A,#0FEH LOOP: MOV P2,A (MOV P1,A ) LCALL D_1s RL A AJMP LOOP ;以下为延时子程序 D_Is: MOV R6,#100 ;1s D10ms: MOV R5,#40 :10ms DL: MOV R4,#123 N0P DJNZ R4,$ DJNZ R5,DL DJNZ R6,D10ms RET END(二) 仿真软件开发调试环境: ◆Proteus 工具软件下, 1.新建设计 ①选取元件 A T89C51,RES,LED-RED ②在工作区放置元件,地线,电源 电阻RES 阻值200Ω,模式DIGITAL ③连线 2. 源程序设计,生成目标文件代码 “Source →Add/RemoveFiles ”新建源程序文件D:\J08X\L Y1.ASM “Source → SY1.ASM ”在文本编辑器编写源程序 通过“Source →BuildAll ”编译源程序,生成目标程序。
单片机指示灯和数码管的中断控制实验报告

实验四、指示灯与数码管的中断控制一、实验目的掌握外部中断的工作原理,学会中断程序设计。
二、实验内容1、按照教材图A.53,绘制实验四电路原理图;2、要求采用外部中断原理完成本次实验,其中按键K1、K2均设置为下降沿触发方式,自然优先级;3、编写C51程序实现如下功能:开机后D1灭灯,LED1黑屏,随后单击K1→D1状态反转,单击K2 →LED1从0开始循环显示0~F字符。
4、观察仿真结果,完成实验报告。
三、实验要求提交的实验报告中应包括:电路原理图,外部中断工作原理阐述(以K1为例说明中断响应过程),C51源程序(含流程图与注释语句),运行效果(含运行截图与说明),实验小结。
提交实验报告的电子邮件主题及存盘文件名格式如,2005041220马晓明实验四。
1、电路原理图2、外部中断工作原理阐述持续按下K1则D1将“亮→灭→亮→灭→亮→灭如此循环,表明实现了K1对应于D1状态反转这个功能;持续按下持续按K2则数码显示管依次显示1-F,实现了K2对应于0~F间的数码管加一计数显示。
3、C51程序#include<reg51.h>sbit P0_4=P0^4;unsigned char count=0;unsigned led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x 77,0x7c,0x39,0x5e,0x79,0x71};void main(){P2=0x00;P0_4=0;EA=1;EX1=EX0=1;IT1=IT0=1;while(1);void INT_OSVR() interrupt 0{P0_4=!P0_4;}void INT_1SVR() interrupt 2{count++;if(count==16)count=1;P2=led_mod[count];4、仿真运行效果5、实验小结通过本次实验对Protues有了更多的了解,同时了解到中断系统在实际中的更好应用。
单片机实验——精选推荐

实验一认识实验一.实验目的1.了解仿真器的硬件结构与接线。
2.了解MCS-51单片机复位功能及复位后的内部状态。
3.通过示例程序的键入与执行,学习仿真器的使用与操作方法。
二.实验内容1.对照实验指导书,查对实验机具体接线。
2.按照开发系统的使用方法,分别查看复位后PC、SP、DPTR等特殊功能寄存器及片内、片外RAM的内容。
3.熟悉开发器的使用,将下面程序键入实验机。
ORG 2000H2000 74AA MOV A,#0AAH2002 75F0BB MOV B,#0BBH2005 E5F0 MOV A,B2007 78CC MOV R0,#0CCH2009 E8 MOV A,R0200A 80FE SJMP $4.程序键入后,检查各存储单元所储机器码是否正确如有误,重新键入,达到修正的目的。
5.单步执行示例程序,逐步检查执行结果,核查与分析结果是否相符,直到执行完最后一条指令。
6.练习连续执行示例程序,检查执行结果,核查与分析结果是否相符。
7.自己在示例程序中插入一条指令,执行并查看结果,然后删除,熟悉插入/删除操作。
8.将示例程序移到另外一个存储区,执行并查看结果,熟悉程序块移动操作。
三.实验预习要求1.认真阅读指导书的相关内容,熟悉开发系统的各种操作。
2.实验前应写出规定操作任务的具体操作方法步骤。
四.思考题1.MCS-51单片机怎样实现内部复位,画出一种复位电路。
2.PC、SP、P0、P1、P2、P3复位状态是什么?各有何意义?3.示例程序中最后一条指令SJMP $的作用是什么?如果取掉这一条指令,程序的执行将发生什么变化?4.实验机监控系统怎样实现程序“单步执行”功能?五.实验报告要求1.按实验顺序,写出实验操作的方法步骤。
2.写出实验中所遇到的问题与解决过程。
写出思考题的答案。
实验二建立数据区、数据块传送一.实验目的1.进一步熟悉实验机操作,练习程序调试方法。
2.理解并掌握建立数据区与数据块传送程序。
实验二、外部中断

实验二外部中断实验一、实验目的1.掌握外部中断技术的基本使用方法2.掌握中断处理程序的编写方法二、实验原理1.外部中断的初始化设置的三项内容:中断总允许即EA=1,外部中断允许即EXi=1(i=0或1),中断方式设置。
中断方式设置一般有两种方式:电平方式和脉冲方式.2.中断服务的关键:(1)保护进入中断时的状态。
堆栈有保护断点和保护现场的功能使用PUSH,在转中断服务程序之前把单片机中有关寄存单元的内容保护起来。
注:中断程序自动保护PC,对其做入栈操作(2)用POP指令恢复中断时的现场。
(先进后出)3.中断控制原理:中断控制是提供给用户使用的中断控制手段。
实际上就是控制一些寄存器,51系列用于此目的的控制寄存器有四个:TCON 、IE 、SCON 及IP。
TCON格式SCON格式三、实验内容参考实验程序(主程序为P1口输出跑马灯程序),编写中断子程序使得发生外部中断0,且为下降沿触发时,LED灯全亮。
中断结束后LED继续接上次状态进行跑马灯闪烁。
注:注意保护现场。
且编译器不支持工作组寄存器名(R0-R7)入栈,需要对栈地址操作。
例:PUSH 06H ;把R6入栈等同 PHSHU R6四、实验步骤1.使用单片机最小应用系统1模块,P1接发光二极管,INTO接单次脉冲输出端。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加**.ASM源程序,进行编译,直到编译无误。
4.打开模块电源和总电源,点击开始调试按钮,点击RUN按钮运行程序。
五、参考程序ORG 0000HLJMP STARTORG 0030HSTART: MOV A, #0FEHOUTPUT: MOV P1,ARL AACALL DELAYLJMP OUTPUTDELAY: MOV R6,#0MOV R7,#0MOV R5#5DELAYLOOP: ;延时程序DJNZ R6,DELAYLOOPDJNZ R7,DELAYLOOPDJNZ R5,DELAYLOOP RETEND。
单片机原理实验指导书

实验一仿真软件的使用,简单程序设计一.实验目的:1.掌握单片机仿真软件的基本操作方法;2.熟悉汇编语言源程序的编辑、汇编、运行和检查运行结果的方法(能查看各存储空间中值的变化);3.掌握简单程序编写的基本方法和技巧;二.实验内容:1. 将内部RAM的30H—33H四个存储单元內分别存放01H、02H、03H、04H 四个数;然后送至工作寄存器R0—R3。
2.将内部RAM的30H—33H四个存储单元內的数分别传送至外部RAM的2030H--2033H存储单元中。
3. 将内部RAM的30—32H的连续3个字节中的无符号数相加,结果的低位送33H 单元,高位送34H单元实用文档三.实验步骤:1.实验内容1的步骤(1)新建文件,输入能实现实验内容1的源程序并以 .ASM为扩展名存盘;(2)编译并运行程序,检查运行结果:检查R0—R3的内容;(3)单步运行程序,并检查运行结果:检査R0—R3的内容;(4)查看程序的机器码。
2.实验内容2的步骤(1)新建文件,输入能实现实验内容2的源程序并以 .ASM为扩展名存盘(2)编译并运行程序,检查运行结果:检査外部RAM 2030H—2033H单元的內容(3)单步运行程序,并检查运行结果;(4)查看程序的机器码。
3.实验内容3的步骤(1)新建文件,输入能实现实验内容3的源程序并以 .ASM为扩展名存盘;(2)编译并运行程序,检查运行结果;实用文档(3)单步运行程序,并检查运行结果,检查33H、34H单元内容;(4)查看程序的机器码四.实验程序1.实验内容1的程序ORG 0000HMOV 30H,#00HMOV 31H,#01HMOV 32H,#02HMOV 33H,#03HMOV R0,30HMOV R1,31HMOV R2,32HMOV R3,33HEND实用文档2.实验內容2的程序ORG 0000HMOV 30H,#00HMOV 31H,#11HMOV 32H,#22HMOV 33H,#33HMOV DPTR,2030HMOV R0,#30HMOV R1,#04HLOOP:MOV A,·R0HMOVX ·DPTR,AINC R0INC DPTRDJNZ R1,LOOPSJMP $实用文档END3.实验内容3的程序ORG 0000HMOV 30H,#0F8HMOV 31H,#0C6HMOV 32H,#0D9HCLR CMOV A,30HADD A,31HJC NEXT1SJMP NEXT2NEXT1:INC R1NEXT2:ADD A,32HMOV 33H,AJC NEXT3实用文档SJMP NEXT4NEXT3:INC R1NEXT4:MOV 34H,R1SJMP $五.实验报告要求:1.对实验内容1和实验内容2的程序加注释。
中断程序实验报告

中断程序实验报告中断程序实验报告一、实验目的本次实验的目的是通过编写中断程序,了解中断的概念、原理和应用。
通过实践操作,掌握中断程序的编写和调试技巧,进一步提高对计算机系统的理解和应用能力。
二、实验原理中断是计算机系统中一种重要的机制,它能够在程序执行过程中,根据设定的条件自动中断当前正在执行的程序,转而执行相应的中断服务程序。
这种机制能够提高计算机系统的效率和灵活性,使得计算机能够及时响应外部设备的请求和处理各种异常情况。
中断程序是一种特殊的程序,它通常由硬件设备或操作系统触发,用于处理特定的事件或异常情况。
中断程序的编写需要遵循一定的规范和流程,包括中断向量表的设置、中断服务程序的编写和中断处理的过程等。
三、实验步骤1. 确定实验环境:选择合适的开发平台和编程语言,如使用汇编语言进行实验。
2. 设置中断向量表:根据实验需求,确定中断向量表的大小和地址,并进行相应的设置。
3. 编写中断服务程序:根据实验要求,编写相应的中断服务程序,包括中断处理和相关的操作。
4. 编写主程序:编写主程序,用于模拟中断的触发和测试中断程序的功能。
5. 进行编译和调试:将编写好的程序进行编译和调试,确保程序的正确性和可靠性。
6. 运行实验:在实验环境中运行编写好的程序,观察和记录实验结果。
7. 分析实验结果:根据实验结果,对中断程序的功能和效果进行分析和评估。
四、实验结果与分析通过实验,我们成功编写了一个简单的中断程序,并进行了测试和分析。
在实验过程中,我们模拟了一个外部设备的中断请求,并观察了中断程序的执行情况。
实验结果显示,当外部设备发出中断请求时,中断程序能够及时响应,并执行相应的中断服务程序。
中断服务程序根据中断类型和相关参数,进行相应的处理和操作,最后返回到主程序继续执行。
这种机制能够有效提高计算机系统的响应速度和处理能力,增强了系统的稳定性和可靠性。
通过对实验结果的分析,我们发现中断程序设计的合理性对系统性能和稳定性有着重要的影响。
实验四led灯和数码显示器的中断控制

实验四LED灯和数码显示器的中断控制一、实验目的:掌握外部中断的工作原理,熟悉中断编程及Keil平台软件调试方法。
二、实验原理:实验电路如图A.53所示。
K1和K2分别接于端口P3.2和P3.3,按压后的电平负跳变可分别产生INT0中断请求和INT1中断请求。
INT0中断响应后取端口P0.4电平,使指示灯D1的状态反转,INT1中断响应后使计数值增1并送给数码管LED显示。
电路原理图及中断原理分析:按键K1接外部中断0,K2接外部中断1。
P0.4接指示灯D1,P2口接数码管,每按一次K1键电平产生负跳变,INT0中断响应后取端口P0.4电平,D1的状态反转;每按一次K2键产生负跳变,INT1中断响应使计数值增1并使数码管显示该数值,变化范围为0~F。
三、实验步骤:(1)、按照表A.5所示将元件添加到Proteus ISIS对象选择列表中,并仿照图A.53完成电路原理图绘制。
(2)、在Keil中编写C51程序,并使之编译通过。
(3)、在Keil中加载编译后的可执行文件,并控制Proteus中的程序仿真运行。
Category Reference Value Microprocessor ICs U1 80C51Optoelectromics D1 LED-GREENSwitches&Relays K1~K2 BUTTONResistors R1~R2/100 RES Optoelectronics LED 7SEG-COM-CAT-GRN四、实验要求:(1)、主函数在程序初始化完成后进入原地循环状态,等待中断请求。
(2)、两路外部中断均设为下降沿触发方式,且为自然优先级。
(3)、计数变量初值为0,变化范围为0~F。
(4)、实验报告内容包括:电路原理图及分析、中断原理分析,C51源程序(含注释语句),仿真运行截屏图,实验小结。
五、C51源程序如下:#include< reg51.h>char led_mod[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};char flag;sbit p0_4= P0^4;void delay(unsigned int time){unsigned int j =0;for(;time>0;time--)for(j=0;j<125;j++);}int0_key () interrupt 0{p0_4=!p0_4;}int1_key () interrupt 2{delay(200);P2=led_mod[flag%16];delay(200);flag++;}void main(void) {flag=0;IT0= 1;EX0= 1;EX1= 1;EA= 1;while(1);}六、试验结果:(1)开始运行时如下图:(2)、按键后运行图如下:实验结果分析:由运行结果可以看出,按键K1产生外部中断0控制D1的状态,使指示灯D1由亮到暗一次变化;按键K2产生外部中断1使LED显示0~F不同数值。
单片机Keil C51和PROTEUS实验指导书

目录实验一单片机仿真开发系统的使用 (2)1.1 Keil C51 集成开发环境介绍 (2)1.2 用Proteus仿真软件 (6)1.3 实现单片机最小系统的简单应用。
(8)实验二显示及驱动电路设计用 (10)实验三简单输入/输出实验 (12)实验四外部中断的运用 (14)实验五单片机内部定时/计数器实验 (15)实验六串行口通信设计 (17)实验七直流电机控制 (18)实验八步进马达控制 (19)实验一单片机仿真开发系统的使用1.1 Keil C51 集成开发环境介绍①、运行keil C51编辑软件,软件界面如图1-1所示②、建立一个新的工程项目单击Project菜单,在弹出的下拉菜单中选中New Project选项③、保存工程项目a、选择要保存的文件路径,输入工程项目文件的名称,如保存的路径为C51文件夹,工程项目的名称为C51,如图所示,单击保存b、为工程项目选择单片机型号在弹出的对话框中选择需要的单片机型号,如图所示,这里选择51核单片机中使用较多的89S51,选定型号后,单击确定,出现如图所示的开发平台界面④、新建源程序文件在下图中单击“File”菜单,选择下拉菜单中的New选项,新建文件后得到如图的界面:⑤、保存源程序文件单击“File”菜单,选择下拉菜单中的Save选项,在弹出的对话框中选择保存的路径及源程序的名称,如图所示。
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时必须键程序录入区域入正确的.扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”按钮⑥、为工程项目添加源程序文件在编辑界面中,单击“Target”前面的“+”,再在“Source Group”上单击右键,得到如图所示的对话框,选择“Add File to Group’Source Group 1’”,弹出如图所示的对话框,选中要添加的源程序文件,单击“Add”,得到如图所示的界面,同时,在“Source Group 1”文件夹中多了一个添加的“Text1.c”文件。
《嵌入式系统设计》教学大纲

《嵌入式系统设计》课程教学大纲一、课程简介该课程主要以ARM公司的STM32F429微控制器为对象讲解嵌入式系统的设计方法和设计实例。
重点讲述嵌入式系统的基础知识、ARM cortex-M体系架构、STM32F429为微控制器内部构造及其常用的片上外设结构、应用实例、程序开发方法。
通过本课程的学习,使学生基本掌握嵌入式系统的构成,嵌入式系统软件、硬件系统的设计,进而为后续嵌入式系统的学习打好基础。
二、IntroductionThis course mainly takes stm32f429 microcontroller of arm company as the object to explain the design method and design example of embedded system. It focuses on the basic knowledge of embedded system, arm Cortex-M architecture, stm32f429 as the internal structure of microcontroller and its commonly used on-chip peripheral structure, application examples and program development methods. Through the study of this course, students can basically master the composition of embedded system, the design of embedded system software and hardware system, and then lay a good foundation for subsequent embedded system learning.三、课程的目的和任务1.目的和任务STM32F429是ST公司基于ARM公司Cortex-M系列内核设计的一款32位微控制器。
嵌入式系统实验报告

嵌入式系统实验报告一、实验目的本次嵌入式系统实验的主要目的是深入了解嵌入式系统的基本原理和开发流程,通过实际操作和项目实践,提高对嵌入式系统的设计、编程和调试能力。
二、实验设备与环境1、硬件设备嵌入式开发板:_____计算机:_____调试工具:_____2、软件环境操作系统:_____开发工具:_____编译环境:_____三、实验内容1、基础实验熟悉开发板的硬件结构和接口,包括处理器、存储器、输入输出端口等。
学习使用开发工具进行程序编写、编译和下载。
2、中断实验了解中断的概念和工作原理。
编写中断处理程序,实现对外部中断的响应和处理。
3、定时器实验掌握定时器的配置和使用方法。
利用定时器实现定时功能,如周期性闪烁 LED 灯。
4、串口通信实验学习串口通信的协议和编程方法。
实现开发板与计算机之间的串口数据传输。
5、 ADC 转换实验了解 ADC 转换的原理和过程。
编写程序读取 ADC 转换结果,并进行数据处理和显示。
四、实验步骤1、基础实验连接开发板与计算机,打开开发工具。
创建新的项目,选择合适的芯片型号和编译选项。
编写简单的程序,如控制 LED 灯的亮灭,编译并下载到开发板上进行运行和调试。
2、中断实验配置中断相关的寄存器,设置中断触发方式和优先级。
编写中断服务函数,在函数中实现相应的处理逻辑。
连接外部中断源,观察中断的触发和响应情况。
3、定时器实验初始化定时器相关的寄存器,设置定时器的工作模式和定时周期。
在主程序中启动定时器,并通过中断或查询方式获取定时时间到达的标志。
根据定时标志控制 LED 灯的闪烁频率。
4、串口通信实验配置串口相关的寄存器,设置波特率、数据位、停止位等参数。
编写发送和接收数据的程序,实现开发板与计算机之间的双向通信。
使用串口调试助手在计算机上进行数据收发测试。
5、 ADC 转换实验配置 ADC 模块的相关寄存器,选择输入通道和转换精度。
启动 ADC 转换,并通过查询或中断方式获取转换结果。
微机原理实验-GPIO 接口及其外部中断的应用(MSP430软件循环查询方法编程实现控制灯亮灭)

实验 GPIO 接口及其外部中断的应用一、实验目的1. 掌握MSP430 系列 CPU 芯片特点和超低功耗特性、模式及硬件编程实现方法;2. 掌握 MSP430 系列 GPIO 接口具备的功能、控制寄存器及软件配置方法和基本操作;3. 熟练掌握 GPIO 接口的查询操作方式和应用方法;4. 熟练掌握 GPIO 接口按键消抖的方法;5. 了解 MSP430 系列中断系统,熟练掌握 GPIO 接口外部中断的应用方法;6. 熟练掌握CCS 环境中开发应用程序的流程,以及软硬件联合调试的过程和方法。
二、实验内容1. ※●利用软件循环查询方法编程实现:扩展板上的按键S1 控制L1 亮灭,按键S2 控制L2 亮灭,要求按下并抬起后L1 或L2 改变亮灭状态。
(1) 源代码(2)实验现象当按下并抬起P2.1口的按键时,P1.0口的LED亮,再次按下并抬起P2.1的按键时,P1.0口LED灭。
当按下并抬起P1.1口的按键时,P4.7口的LED亮,再次按下并抬起P1.1的按键时,P4.7口LED灭。
2. ※●利用GPIO 接口外部中断方式,设置下降沿触发外部中断,使用变量NUM 记录中断次数,编程实现上题功能。
要求:利用外部中断方式检测按键是否按下;(1)源程序(2)实验现象当按下并抬起P2.1口的按键时,P1.0口的LED亮,再次按下并抬起P2.1的按键时,P1.0口LED灭。
当按下并抬起P1.1口的按键时,P4.7口的LED亮,再次按下并抬起P1.1的按键时,P4.7口LED灭。
3. 在实验中可能会出现按一次按键却会出现LED 指示灯闪一次或者是多次的情况,这是为什么?写出如何处理按键产生的毛刺、抖动现象?按键会出现高低电平的抖动,也称作毛刺,可以通过硬件消抖或者软件延时消抖。
4. 写出主程序中没有调用中断子程序,中断子程序却可以被执行的原因;中断程序不同于子程序,不需要主函数main调用就能执行。
中断服务程序只需要满足一定条件即可执行,比如定时器/计数器(在写入定时器中断服务程序的前提下)只需要计数“计满”即可触发中断服务程序;外部中断(在写入外部中断的服务程序的前提下)只需要触发外部中断引脚即可自动执行,不需要主函数调用。
外部中断实验报告

一、实验目的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灯是否闪烁。
单片机实验报告

MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
DLAL:MOV SBUF,#99H
CHECK_99:JBC TI,WAIT_RSPS
JMP CHECK_99
WAIT_RSPS:JBC RI,CHECK_01
JMP WAIT_RSPS
CHECK_01:MOV A,SBUF
二.实验目的
(1)掌握中断系统的工作原理
(2)掌握中断向量的概念。
(3)学习外部中断的基本使用方法。
(4)学习外部中断的基本使用方法。
(5)学习中断处理程序的处理方法。
(6)掌握规范的程序设计方法。
三.实验元件
(1)AT89C51,LED-RED,RED-GREEN,BUTTON,RES
(2)AT89C51,LED-RED,BUTTON1,BUTTON2,RES
MOV TL0,#9CH
MOV TCON,#50H
MOV IE,#9AH
AJMP $
PINT0:MOV TL0,#9CH
CPL P1.0
RETI
PINT1:MOV TH0,#38H
CPL P1.1
RETI
END
(4)T0方式3 定时300us 输出占空比1/3矩形波查询方式
ORG 0000H
LJMP MAIN
D1:MOV R4,#255
D2:MOV R5,#255
D3:DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
SETB P0.1
RETI
END
(2)INT0、INT1中断控制LED
ORG 0000H
LJMP MAIN
中断及定时器实验报告

中断及定时器实验报告中断及定时器实验报告引言:中断是计算机系统中一种重要的机制,它可以打破程序的顺序执行,响应外部事件的发生。
中断的引入使得计算机可以同时处理多个任务,提高了系统的效率和可靠性。
定时器是中断的一种常见应用,它可以在一定时间间隔内产生中断信号,实现定时任务的功能。
本实验旨在通过编程实现中断和定时器的功能,并测试其正确性和稳定性。
一、实验目的1. 学习中断的概念和原理;2. 掌握中断的编程方法和中断处理程序的编写;3. 理解定时器的工作原理和应用场景;4. 实现定时器的功能,并测试其正确性和稳定性。
二、实验过程1. 硬件准备在实验中,我们使用了一台基于8051单片机的开发板,通过连接外部电路和开发板的引脚,实现对定时器的控制。
2. 软件编程首先,我们需要在开发板上搭建一个简单的电路,包括一个LED灯和一个按钮。
然后,我们使用汇编语言编写中断处理程序,实现当按钮按下时,LED灯闪烁的功能。
具体的编程步骤如下:(1)设置中断向量表:将中断处理程序的地址存储到中断向量表中,以便系统在中断发生时能够正确地跳转到相应的处理程序;(2)初始化定时器:设置定时器的计数器初值和工作模式;(3)编写中断处理程序:当中断发生时,执行相应的处理程序。
在本实验中,我们编写了一个简单的中断处理程序,当按钮按下时,将LED灯的状态取反;(4)启用中断:使能中断,使得系统能够响应外部事件的发生。
3. 实验测试将编写的程序下载到开发板上,并连接相应的电路。
按下按钮,观察LED灯是否按照预期的频率闪烁。
通过调整定时器的计数器初值和工作模式,可以改变LED灯闪烁的频率。
三、实验结果经过多次实验测试,我们发现中断和定时器的功能正常,LED灯能够按照预期的频率闪烁。
通过改变定时器的计数器初值和工作模式,我们成功地实现了LED灯闪烁频率的调节。
实验结果表明,中断和定时器是一种有效的方法,可以实现对外部事件的及时响应和定时任务的精确控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4外部中断应用与程序设计
班级:1002 学号:姓名:
一、实验目的
1. 理解中断功能的实际意义
2. 掌握实现外部中断的基本方法与要点
二、设计要求
外部中断1的优先级高于外部中断0的优先级。
三、设计内容
1. P0口接8个LED灯,主程序使灯闪烁【花样自定;低电平有效】
2. 当外部中断0发生时【按一下P
3.2口对应的按键】,此时只有P0.7对应的LED亮,之后该LED左右移动各3次结束。
【先左后右,间隔自定】
3. 当外部中断1发生时【按一下P3.3口对应的按键】,此时只有P0.6对应的LED亮,之后该LED左右移动各3次结束。
【先左后右,间隔自定】
四、程序清单【程序书写可利用背面,当程序有错误时,可直接在报告上修改】
ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 0013H LJMP INT1
MAIN:
MOV IE,#85H MOV IP,#04H MOV A,#0E7H MOV P0,A LCALL DELAY MOV A,#C3H MOV P0,A LCALL DELAY MOV A,#81H MOV P0,A LCALL DELAY MOV A,#00H MOV P0,A LCALL DELAY LCALL MAIN
INT0:
PUSH PSW MOV A,#7FH MOC P0,A LCALL DELAY RLC A
MOC P0,A LCALL DELAY RLC A
MOC P0,A LCALL DELAY RLC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY
RRC A
MOC P0,A
LCALL DELAY LCALL MIAN
POP PSW
RETI
INT1:
PUSH PSW
MOV A,#0BFH
MOV P0,A
LCALL DELAY
RLC A
MOC P0,A
LCALL DELAY
RLC A
MOC P0,A
LCALL DELAY
RLC A
MOC P0,A
LCALL DELAY
RRC A
MOC P0,A
LCALL DELAY
RRC A
MOC P0,A
LCALL DELAY
RRC A
MOC P0,A
LCALL DELAY LCALL MIAN
POP PSW
RETI
DELAY:MOV R7,#200 DEL1:MOV R6,#250 DEL2:DJNZ R6,DEL2 DINZ R7,DEL1
RET
END
ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 0013H LJMP INT1
MAIN:
MOV IE,#85H MOV IP,#04H MOV A,#0E3H MOV P0,A LCALL DELAY RLC A
MOV P0,A LCALL DELAY RLC A
MOV P0,A LCALL DELAY RRC A
MOV P0,A LCALL DELAY RRC A
MOV P0,A LCALL DELAY RRC A
MOV P0,A LCALL DELAY RRC A
MOV P0,A LCALL DELAY RRC A
MOV P0,A LCALL DELAY LCALL MAIN
INT0:
PUSH PSW MOV A,#7FH MOC P0,A LCALL DELAY RLC A
MOC P0,A
LCALL DELAY RLC A
MOC P0,A LCALL DELAY RLC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY LCALL MIAN POP PSW RETI
INT1:
PUSH PSW MOV A,#0BFH MOV P0,A LCALL DELAY RLC A
MOC P0,A LCALL DELAY RLC A
MOC P0,A LCALL DELAY RLC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY RRC A
MOC P0,A LCALL DELAY LCALL MIAN
POP PSW
RETI
DELAY:MOV R7,#200 DEL1:MOV R6,#250 DEL2:DJNZ R6,DEL2 DINZ R7,DEL1
RET
END。