单片机及其接口技术实验报告
- 格式:doc
- 大小:2.26 MB
- 文档页数:31
实验一定时器实验一、实验目的1.学习89C51内部计数器的使用和编程方法2.进一步掌握中断处理程序的编写方法二、实验说明关于内部计数器的编程主要是定时常数的设置和有关控制寄存器的设置。
内部计数器在单片机中主要有定时器和计数器两个功能。
本实验使用的是定时器,定时为一秒钟。
CPU运用定时中断方式,实现每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。
定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。
TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。
TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。
内部计数器用作定时器时,是对机器周期计数。
每个机器周期的长度是12个振荡器周期。
因为实验系统的晶振是12MHZ,本程序工作于方式2,即8位自动重装方式定时器, 定时器100uS中断一次, 所以定时常数的设置可按以下方法计算:机器周期=12÷12MHz=1uS(256-定时常数)³1uS=100uS定时常数=156。
然后对100uS中断次数计数10000次,就是1秒钟。
在本实验的中断处理程序中,因为中断定时常数的设置对中断程序的运行起到关键作用,所以在置数前要先关对应的中断,置数完之后再打开相应的中断。
三、实验内容及步骤本实验需要用到单片机最小应用系统模块(F1区)和十六位逻辑电平显示模块(I4区)。
1.使用单片机最小应用系统模块,用导线将P1.0接到十六位逻辑电平显示的任意一只发光二极管上。
2.用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH10_定时器.ASM”源程序,编译无误后。
4.全速运行程序,发光二极管隔一秒点亮一次,点亮时间为一秒。
5.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。
微机原理与单片机接口技术实验报告册河南理工大学电气学院专业班级学号姓名目录实验一系统认识实验 (1)实验二中断特性及8259应用编程实验 (5)实验三8255并行接口应用实验 (10)实验四8253定时/计数器应用实验 (12)附录 (16)实验环境 (16)实验一系统认识实验一、实验目的掌握TDN86/88实验装置的基本操作。
二、实验设备TDN86/88实验装置。
三、实验内容及步骤实验内容:从3500H内存单元开始建立0~15共16个数据。
实验源程序如下:CODE SEGMENT ;定义代码段ASSUME CS:CODE ;说明CODE段为代码段START: MOV DI,3500H ;程序开始,设数据首址MOV CX,0010H ;字节数送入CX中MOV AL,00HSAHFL1: MOV [DI],AL ;写入一个字节数据INC DI ;修改地址指针INC AL ;修改数据DAA ;十进制调整LOOP L1;未填完转移L2: JMP L2CODE ENDS ;代码段结束END START ;程序结束实验步骤:1、使用串行通信电缆将实验系统装置与计算机(PC)相连。
2、打开WMD86进入系统环境如图1-1所示。
图1-13、点击‘选择串口’如图1-2所示。
可选串行口l或串行口2(计算机后面与电源相邻的为串行口1)。
图1-24、点击文件,打开新建源程序,如图1-3所示。
图1-35、输入源程序并保存为DQ.asm.如图1-4所示。
图1-46、点击‘编译’,对源程序进行汇编、连接,生成可执行文件DQ.EXE如图1-5所示。
图1-57、汇编、连接无误后点击‘窗口’,如图1-6所示。
图1-68、点击‘调试窗口’如图1-7所示,进入调试窗口。
图1-79、按实验装置中的RESET键,显示器上将出现‘WELCOME TO YOU !’,如图1-8所示,说明实验装置和计算机通信成功。
图1-810、装入DQ.EXE程序,确认程序段地址CS:0000及偏移量地址IP:2000。
单片机实验报告总结单片机实验报告总结单片机实验心得体会单片机实验心得体会时间过得真快,不经意间,一个学期就到了尾声,进入到如火如荼的期末考试阶段。
在学习单片机这门课程之前,就早早的听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键~~多做单片机实验。
这个学期,我们除了在课堂上学习理论知识,还在实验室做了7次实验。
将所学知识运用到实践中,在实践中发现问题,强化理论知识。
现在,单片机课程已经结束,即将开始考试了,需要来好好的反思和回顾总结下了。
第一次是借点亮LED灯来熟悉keil软件的使用和试验箱上器材。
第一次实验体现了一个人对新事物的接受能力和敏感度。
虽然之前做过许多种实验。
但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。
所以第一次试验相对失败。
鉴于此,我自己在宿舍下载了软件,然后去熟悉它的各个功能,使自己熟练掌握。
在做实验中,第二个问题应该是准备不充分吧。
一开始,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。
后来在老师的批评下,认识到这是个很大的问题:老师提前把任务告诉我们,就是希望我们私下把程序编好。
于是我便在上机之前把程序编好,拷到U盘,这样上机时只需调试,解决出现的问题。
这样就会节约出时间和同学讨论,换种思路,换种方法,把问题给吃透。
发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。
三是我的依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。
于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。
但是编程是一件很严肃的事情,容不得半点错误。
于是便只能狠下决心,坚持自己编写,即使套用时,也把每条语句弄懂。
单片机键盘接口实验是嵌入式系统课程中常见的实践内容,通过该实验可以学习如何
通过单片机与键盘进行交互。
在实验报告中,你可以包括以下内容:
1. **实验背景**:简要介绍单片机键盘接口实验的背景和意义,说明该实验对于学习
嵌入式系统的重要性。
2. **实验目的**:阐明本次实验的主要目的和预期学习目标,如掌握单片机与外部键
盘的连接方式、键盘扫描原理等。
3. **实验器材**:列出用于实验的硬件设备和软件工具,如单片机型号、键盘类型、
开发板、编程软件等。
4. **实验原理**:详细描述单片机与键盘的接口原理、键盘扫描原理、键值获取原理
等相关知识。
5. **实验内容**:描述具体的实验步骤,包括单片机与键盘的连接方法、程序设计流
程等。
6. **实验结果**:展示实验的运行结果,可以包括通过键盘输入字符、数字等信息,
并说明实验达到预期的目标。
7. **实验分析**:对实验过程中遇到的问题进行分析,并提出解决方案。
也可以对实
验结果进行分析,说明实验现象背后的原理。
8. **实验总结**:总结本次实验的收获和体会,强调实验对于学习嵌入式系统的意义,以及未来可能的拓展方向。
9. **参考资料**:列出在撰写实验报告过程中所参考的相关书籍、网络资料或者其他
来源。
以上内容仅供参考,实验报告的具体内容可以根据你的实际实验情况和要求进行适当
调整和扩展。
希望这些信息能对你撰写实验报告有所帮助!。
接口实验报告一、实验目的及意义(1)用微控制器实现对温度数据的采集;(2)对采集数据进行控制与显示;(3)将采集数据发送给PC机,学会用VC编写相应界面进行数据处理和显示;二、试验内容及方案论证在实际应用中,经常会遇到一些突发信号,需要对其进行高速采集,这种情况下采用高速的A/D自然成为首选。
AD7862是AD公司推出的一个高速,低功耗,双12位的A/D转换,单+5V供电,功率为60mW。
它包含两个4us的延时的ADC,两个锁存器,一个内部的+2.5V参考电压和一个高速并行输出端口。
有四个模拟输入通道,分为两组,由A0选择。
每一组通道有两个输入(V A1 & V A2 or VB1 & VB2),它们能同时的被采样和转化,保存相对的信号信息。
它可以接受+10v的输入电压范围(AD7862-10),+2.5(AD7862-3)和0-2.5v(AD7862-2)。
对模拟电压输入,具有过电保护功能,相对地,允许输入电压到达+17v,+7v,+7v,而不会造成损害,本实验选用AD7862-10。
其具有以下主要特点:1、4通道模拟输入,2路同时转换(内置2个可同时工作的12位集成AD转换器);2、4us转换时间,250ksps采样速率;3、可选模拟量输入±10V(AD7862-10);4、高速12位并行总线输出;5、内部提供+2.5V参考电压或者由外部提供参考电压;;6、单一电源工作。
本实验采用的微处理器是STC89C52RC单片机。
STC89C52RC单片机使用方便,它与AT89S52单片机具有相同的内核,内部有256 Bytes片内RAM、8K Flash ROM,支持串口下载,易于在线编程调试,故采用这种单片机来做处理器。
由于A/D的输出位数是12位,单片机的寄存器是8位的,所以要分成两次才能读得A/D 转换的结果。
本设计中,只需将单片机的两个IO口(P2、P0)分别与AD7862的DB0-DB11相连,即可完成数据采集基本硬件设计。
一、实验目的1. 熟悉单片机的基本结构和工作原理。
2. 掌握单片机的编程方法,包括C语言和汇编语言。
3. 学习单片机的接口技术和应用系统设计。
4. 培养动手能力和解决实际问题的能力。
二、实验环境1. 单片机开发系统:STC89C52单片机开发板2. 编译器:Keil uVision3. 调试器:Proteus4. 实验指导书:《单片机实训教程》三、实验内容1. 单片机基本原理实验(1)实验目的:了解单片机的结构、工作原理和引脚功能。
(2)实验步骤:1)搭建实验电路,连接单片机开发板与Proteus仿真软件;2)编写程序,设置单片机的工作模式;3)通过Proteus仿真软件观察单片机的运行状态。
(3)实验结果:通过仿真软件,观察到单片机能够按照程序的要求进行运行,实现了实验目的。
2. 单片机C语言编程实验(1)实验目的:掌握单片机的C语言编程方法。
(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写C语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。
(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。
3. 单片机汇编语言编程实验(1)实验目的:掌握单片机的汇编语言编程方法。
(2)实验步骤:1)在Keil uVision中创建新项目,选择STC89C52单片机;2)编写汇编语言程序,实现LED灯闪烁功能;3)编译、烧录程序到单片机,观察LED灯闪烁效果。
(3)实验结果:程序编译成功,烧录到单片机后,LED灯按照预期进行闪烁,实现了实验目的。
4. 单片机接口技术实验(1)实验目的:了解单片机的接口技术,掌握常用接口的编程方法。
(2)实验步骤:1)搭建实验电路,连接单片机开发板与外部设备;2)编写程序,实现单片机与外部设备的通信;3)通过Proteus仿真软件观察通信过程。
(3)实验结果:通过仿真软件,观察到单片机与外部设备能够成功通信,实现了实验目的。
《单片机原理及接口技术》课程设计报告课题名称课题23 :简单计算机的设计★ ★学院自动控制与工程学院一、..................................... 设计的目的、任务…3二、......................................... 设计步骤及方案.5三、........................................... 硬件电路设计6四、.................................................. 软件设计及系统流程图........................................ . (9)1初始化程序模块........................................ .112、.................................... 键盘扫描程序模块123、........................................ 显示程序模块.15五、......................................... 调试过程及方法17六、....................................... 课程设计心得体会.18七、............................................... 参考文献..19附录................................................... . (20)」、设计的目的、任务1、课程设计的目的单片机课程设计作为独立的教学环节,是自动化及相关专业集中实践性环节系列之一,是学习完《单片机原理及其运用》课程后。
并在进行相关课程设计基础上进行的一次综合练习。
单片机课程设计过程中,学生通过查阅资料、接口设计、程序设计、安装调试等环节,完成一个基于MCS-51系列单片机,涉及多种资源应用,并具有综合功能的小应用系列设计。
单⽚机实验报告单⽚机原理及接⼝技术实验报告班级学号:姓名:实验⼀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状态(见仿真器说明书跳线设置)。
《单片机原理与接口技术》综合实验报告实验题目:基于单片机的电子日历、数字温度计、音乐播放器学院:电子信息学院专业:12 电子信息工程实验者:潘安乐学号: 1 2 2 8 4 0 1 0 1 0前言21世纪是信息时代,电子技术发展日新月异,在电子信息发展迅猛的年代,我们不仅要掌握8051系列单片机的C语言编程,而且要掌握好按键、LCD、USB 等程序的编写,要知道几乎每一样单片机系统都要与他们打交道的。
并且单片机作为一种经典的微控制器,其技术已经涉及到我们生活、工作、科研,各个领域,已经成为一种比较成熟的技术,作为电子专业的学生,我们学习了单片机,就要将其应用到自己的日常生活中来。
电子日历:在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响,随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。
为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如星期、日期等,于是电子万年历诞生了,它集时间、日期、星期等功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒等信息,还具有时间校准等功能。
数字温度计:在科学技术不断发展的今天,温度的检测.控制应用于许多行业,随着电子行业的发展,数字仪表反应快,操作简单,对环境要求不高的优点,市场上逐渐出现越来越多的数字式温度计。
实践表明,低功耗高精度的便携式数字式温度计使用方便,工作稳定,待机时间长,具有广阔的应用前景,本实验所采用的DS18B20可以很好的转换温度值,并且直接显示温度值,它的性能优于传统的感温元件并且省去了A\D、和模拟开关的设计。
数字音乐播放器:本文设计的数字音乐播放器是以单片机为核心元件的数字音乐播放器。
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点。
单片机及接口技术实验报告 实验一 数据传送程序 一、 实验目的 1、掌握汇编语言设计和调试方法。 2、掌握DVCC实验系统的操作步骤。 二、 实验内容 1、编程实现,把7000H~70FFH单元的内容清零。 2、编程实现,把源地址为6000H开始的单元内容,传送到目的地址7000H开始的单元中,传送个数为0FFFH个。 三、DVCC实验系统操作说明 1、 接通DVCC实验系统电源,在DVCC实验箱上应显示闪动的“P”,否则按Reset键。 2、 运行DVCC软件。(程序 DVCC598H实验系统 DVCC实验系统) 3、 单击工具栏上“新建”或“打开”按钮,编写源程序。 单击“编译”按钮,使其形成可执行文件。 4、 单击工具栏上“联接”按钮,同时按下DVCC实验箱上PCDBG键(键盘上最右边第2个),实现PC机和实验箱的联接。联机成功,屏幕上出现:.反汇编窗口、寄存器标示位窗口。 5、 在成功联机后,单击工具栏上“调试”按钮,把最终目标文件装载到实验系统RAM区;或者通过单击菜单栏中的“动态调试”,选择“传送(.EXE)文件”来实现。 6、 单击工具栏上“运行”或“单步”按钮,运行实验程序。 7、 单击工具栏上“窗口”,选择“显示内部数据窗口”或“显示外部数据窗口”可显示数据窗口。鼠标右击数据窗口的数据,可设置数据块新地址;鼠标左键单击数据,可修改数据数值。 8、 运行完毕,先按实验箱上的复位按钮Reset键,再按PCDBG键,并且点击屏幕上OK,即可退出运行状态。 四、实验程序代码 1、把7000H~70FFH单元的内容清零。 程序代码: ORG 0000H AJMP START ORG 70H START: MOV P2, #70H ;送地址高8位到P2端口 MOV R0, #00H ;R0=00H,表地址低8位 CLR A ;将累加器A清0 LOOP: MOVX @R0, A ;将A送入以R0内容为地址的外部RAM. INC R0 ;R0+1-->R0 CJNE R0,#00H,LOOP;比较条件转移指令,若R0不等于0,则跳转到LOOP AJMP $ ;暂停 END 2、 编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传送个数为0FFFH个。 程序代码: ORG 0000H AJMP START ORG 50H START: MOV DPTR, #6000H MOV P2, #70H MOV R0,#00H LOOP: MOVX A, @DPTR MOVX @R0, A INC DPTR INC R0 CJNE R0,#00H,LOOP;比较条件转移,若R0不等于0,则程序循环,执行loop. INC P2 MOV R1,P2 CJNE R1,#80H,LOOP; 若R1不等与80h,则程序循环执行loop. AJMP $ END 五、实验结果 1、把7000H~70FFH单元的内容清零。
2、编程实现,将源地址为6000H开始的单元,传送到目的地址7000H开始的单元,传送个数为0FFFH个。 上图是左下角的窗口显示的是存储器源地址为6000H开始的单元里的内容。 上图是程序运行后,存储器源地址为7000H开始的单元里的内容。 经比较可以看出传送成功。 六、问题与讨论 在做实验内容1时编译现在第10行出错,后来将第9和第10行后的注释都删除就编译通过了。
实验二 并行口实验 一、实验目的 1、掌握P3口、P1口简单使用。 2、学习延时程序的编写和使用。 二、实验内容 1、编写程序用P1.0输出1kHz和500Hz的音频信号,以驱动扬声器作为报警信号。要求1kHz信号响100ms,500Hz信号响200ms,交替进行。P1.7接一开关,进行控制。当开关合上,报警信号响;当开关断开,报警信号停止。 (教材《单片机原理、接口及应用——嵌入式系统技术基础》 P75 例4-3) 2、P3口做输入口,P1口做输出口。P3.3外接一脉冲,P1.0~P1.7接的8个发光二极管L1—L8。编写程序,使P3.3每输入一个脉冲,P1口按16进制加一方式逐次点亮发光二极管。 三、实验接线图(实验内容二接线图) 四、实验步骤 1、编写程序用P1.0输出1kHz和500Hz的音频信号,以驱动扬声器作为报警信号。要求1kHz信号响100ms,500Hz信号响200ms,交替进行。P1.7接一开关,进行控制。当开关合上,报警信号响;当开关断开,报警信号停止。 由于实验箱单片机P1.0是坏的,编程P1.1为输出,其他不变。 程序代码: ORG 00h START: SETB P1.7 ;P1. 7置1 JB P1.7, $;若P1.7为高电平,则循环检测,否则向下执行 MOV R1,#200; LOOP: ACALL D500 ; CPL P1.1 ; 产生1KHz的频率,P1.1取反输出 DJNZ R1,LOOP; R1减1,不为0时转移到LOOP,响100ms MOV R2,#200 LOOP1: ACALL D500 ; ACALL D500 ; CPL P1.1 ; 产生500Hz的频率,P1.1取反输出 DJNZ R2,LOOP1; R2减1,不为0时转移到LOOP,响200ms SJMP START ; 跳转至START D500: MOV R6,#125 ; 延迟500us DJNZ R6,$ RET END
2、P3口做输入口,P1口做输出口。P3.3外接一脉冲,P1.0~P1.7接的8个发光二极管L1—L8。编写程序,使P3.3每输入一个脉冲,P1口按16进制加一方式逐次点亮发光二极管。 实验2接了4个口,从P1.1到P1.4,两次脉冲,灯变化 程序代码: ORG 00H CLR A SETB P3.3 ;将P3.3置1 BEG: JB P3.3, $ ACALL D500; JNB P3.3,$ ACALL D500 INC A MOV P1,A ; P1口输出 SJMP BEG D500: MOV R7,#125 ;延时500us(6Mhz) DJNZ R7,$ RET END
五.问题与讨论 1、做实验内容1时,刚开始用P1.0口输出,铃总是不响,接示波器也不输出波形。经测试铃是好的,怀疑程序有问题,就将程序改成一直只输出1KHz的频率,还是不出波形。最后换成P1.1口输出,调试程序运行铃就响了。 2、实验内容2要求P1口输出接8个LED管,为节省时间,接4个输出观察实验结果就 行了。我们实验箱接的是P1.1—P1.4,实验结果有所不同,P3.3每输入两个脉冲,P1口按4进制加一方式逐次点亮发光二极管。
实验三 中断实验 一、实验目的 1)掌握中断程序的编程方法。 2)进一步掌握P1、P3口的双功能使用方法。 二、实验内容 正常情况下,仅绿灯亮。有故障发生时,绿灯灭,同时红灯闪烁;故障排除后,拨上总开关,恢复正常,绿灯亮,红灯灭。 可由P1.0 控制绿灯的亮灭;P3.3 接外部中断源,模拟故障发生;P1.1 控制红灯的亮灭;P1.2 读取总开头的状态。编写程序实现以上功能。 (P3.3 复用为外部中断1输入,即为INT1。其中断向量地址为0013H,使用下降沿触发中断。) 三、实验程序框图 主程序: 中断服务程序: 四、实验步骤 1、由P1.1 控制绿灯的亮灭;P3.3 接外部中断源,模拟故障发生;P1.2 控制红灯的亮灭;P1.3读取总开头的状态。P3.3 复用为外部中断1输入,即为INT1。其中断向量地址为0013H,使用下降沿触发中断。 程序代码: ORG 0000h AJMP MAIN ;主程序 ORG 0013H ;中断矢量表p211 AJMP IRPRO ;中断服务程序入口
ORG 0050H ;主程序 MAIN: CLR P1.2 ;红灯灭 SETB P1.1 ;绿灯亮 SETB IT1 ;设置INT1负边缘触发p206(定时器控制寄存器TCON) SETB EX1 ;外部中断1有效p208(中断容许控制器IE) SETB EA ;开中断p208(中断容许控制器IE) LOOP1: JB P1.1, LOOP1 LOOP2: JNB P1.3,LOOP2 SETB P1.1 SJMP LOOP1 AL1: AJMP AL1 ;中断服务程序 IRPRO: PUSH PSW PUSH ACC CLR P1.1; 灭绿灯 LOOP3: SETB P1.2;亮红灯 ACALL D500 CPL P1.2 ACALL D500 JNB P1.3,LOOP3 ;这里用P1.2进行监视,若开关没有闭合,则红灯一直闪烁。 POP ACC POP PSW RETI D500: MOV R6,#255 ;延时子程序 DELAY: MOV R7,#0FFH DJNZ R7,$ DJNZ R6,DELAY RET END 实验接线:P1.1 接绿灯; P1.2接红灯; P1.3 开关K1; P3.3 接点触开关SP 2、将实验内容1中的外部中断源换成INT0,其中断向量地址为0003H,使用下降沿触发中断。 程序代码: ORG 0000h AJMP MAIN ;主程序 ORG 0003H ;中断矢量表p211