安徽大学历次单片机实验报告

合集下载

单片机实训实验报告总结

单片机实训实验报告总结

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

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

本次实训以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灯的亮灭状态和数码管上的温度、湿度值。

单片机实验报告

单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。

二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。

这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。

2、数码管显示利用单片机驱动数码管,实现数字的显示。

需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。

3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。

例如,通过按键切换不同的显示模式或控制其他外部设备。

4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。

例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。

5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。

四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。

2、编程语言本次实验采用 C 语言进行编程。

C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。

3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。

通过对这些引脚的合理配置和控制,可以实现各种功能。

4、数码管驱动原理数码管分为共阴极和共阳极两种类型。

通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。

5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。

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

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

学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 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.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。

2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。

通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。

三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,点亮LED灯。

2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将按键和LED灯与单片机相连。

(3)编写程序,实现按下按键控制LED灯亮灭。

3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将数码管与单片机相连。

(3)编写程序,将数字输出到数码管上显示。

4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,实现定时器功能。

四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。

2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。

按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。

3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。

通过程序设计,可以实现数码管显示不同的数字。

4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。

通过调节定时器的参数,可以实现不同的定时功能。

五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。

通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。

这些技能对于日常生活和工程设计都具有很大的实用性。

在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。

单片机实验报告

单片机实验报告

单片机实验报告1. 实验背景单片机(Microcontroller Unit,简称MCU)是一种集成了微处理器核心、内存、计时器、I/O接口等功能的集成电路芯片。

它具有体积小巧、功耗低、性能高等优点,在嵌入式系统中应用广泛。

本实验旨在通过对单片机的实际操作,加深对单片机原理及应用的理解。

2. 实验目的本次实验的主要目的是:- 掌握单片机的基础知识,包括单片机的结构、工作原理等;- 学习单片机的编程方法,初步掌握单片机的编程技巧;- 进行简单的单片机应用实验,提高对实际应用的理解。

3. 实验设备与材料实验所需的设备和材料包括:- 单片机开发板;- 计算机;- 连接线等。

4. 实验过程与结果在本实验中,我们使用XXX型单片机开发板作为实验平台,通过连接计算机进行编程。

具体的实验过程如下:4.1 硬件连接将单片机开发板与计算机通过连接线连接,并确保连接正常。

接下来,将我们设计好的电路按照要求连接到开发板的相应引脚上。

4.2 编程使用XXX软件对单片机进行编程。

根据实验要求,编写相应的程序代码,并将代码下载到单片机开发板中。

验证代码是否编译通过,并将运行结果显示在数码管、液晶显示屏等外设上。

4.3 实验结果实验结果根据不同的实验要求而定,可以是对某个外设的控制、信号的采集、数据的处理等。

在实验过程中需记录实验结果,并进行分析。

5. 实验总结通过本次实验,我对单片机的基本原理及应用有了更深入的了解。

掌握了单片机的硬件连接方法和编程技巧,并成功完成了实验要求。

实验结果表明,单片机在各个领域都有广泛的应用前景,对于嵌入式系统的开发起着重要作用。

当然,本次实验只是单片机应用的初步探索,还有很多更深入的研究和应用值得去探索。

在今后的学习与实践中,我将进一步深化对单片机的理解,并将其灵活应用于各种项目中。

6. 参考文献[参考文献1][参考文献2][参考文献3](文章内容仅供参考,具体实验过程和结果以实际情况为准。

)。

单片机实验报告

单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。

2. 掌握单片机最小系统的搭建方法。

3. 学习使用单片机编程软件进行程序编写和调试。

4. 通过实际操作,加深对单片机应用的理解。

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

2. 软件环境:Keil uVision5、Proteus仿真软件。

三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。

(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。

② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。

2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。

(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。

② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。

3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。

(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。

② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。

单片机实训实验报告

单片机实训实验报告

一、实验名称单片机原理及应用实验二、实验目的1. 熟悉单片机的基本结构和原理,了解单片机在电子系统中的应用。

2. 掌握单片机编程语言C的基本语法和编程技巧。

3. 学会使用单片机进行简单控制,实现LED流水灯、数码管显示等基本功能。

4. 提高动手实践能力,培养团队合作精神。

三、实验仪器与设备1. 单片机实验箱:包括单片机、电源、按键、LED灯、数码管等。

2. 电脑:用于编程和仿真。

3. 编程软件:Keil uVision5或IAR EWARM等。

四、实验原理单片机是一种集成度高、功能强大的微控制器,具有运算速度快、功耗低、体积小等优点。

本实验以51单片机为例,介绍其基本原理和编程方法。

51单片机主要由以下几个部分组成:1. 中央处理器(CPU):负责执行指令,控制整个单片机系统。

2. 存储器:包括程序存储器(ROM)和数据存储器(RAM),用于存储程序和数据。

3. 输入/输出接口:用于与外部设备进行数据交换。

4. 定时器/计数器:用于实现定时和计数功能。

5. 中断系统:用于处理中断事件。

本实验主要涉及以下几个方面:1. 单片机基本结构和工作原理。

2. 单片机编程语言C的基本语法和编程技巧。

3. 单片机I/O口的使用和驱动能力。

4. 定时器/计数器的使用和编程。

5. 中断系统的使用和编程。

五、实验内容1. 实验一:LED流水灯(1)实验目的:掌握单片机I/O口的使用,实现LED流水灯效果。

(2)实验原理:通过单片机I/O口输出高低电平,控制LED灯的亮灭,实现流水灯效果。

(3)实验步骤:① 连接实验箱电路,将LED灯连接到单片机的P1口。

② 编写程序,设置P1口为输出模式,通过循环改变P1口输出电平,实现LED流水灯效果。

③在电脑上编译、下载程序,观察实验效果。

2. 实验二:数码管显示(1)实验目的:掌握单片机I/O口的使用,实现数码管显示功能。

(2)实验原理:通过单片机I/O口输出高低电平,控制数码管显示数字。

单片机实验报告总结

单片机实验报告总结

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

在现代电子技术领域中,单片机被广泛应用于各种电子设备中,如家电、汽车、通信设备等。

本文将对我在单片机实验中的学习和实践进行总结,分享我在实验中的收获和心得体会。

实验一:LED灯闪烁实验在这个实验中,我们学习了如何使用单片机控制LED灯的闪烁。

通过编写简单的程序,我们成功地实现了LED灯的闪烁功能。

这个实验让我深刻体会到了单片机的强大和灵活性。

通过控制单片机的GPIO口,我们可以实现各种各样的功能,这让我对单片机的应用前景充满了信心。

实验二:数码管显示实验在这个实验中,我们学习了如何使用单片机控制数码管进行数字的显示。

通过编写程序,我们成功地将数字从0到9依次显示在数码管上。

这个实验让我了解了数码管的工作原理和控制方式。

在实验过程中,我遇到了一些问题,如数字显示不清晰、显示不准确等,但通过不断的调试和优化,最终解决了这些问题。

这个实验让我明白了实践中的问题和挑战,并培养了我解决问题的能力。

实验三:按键控制实验在这个实验中,我们学习了如何使用单片机实现按键控制。

通过编写程序,我们成功地实现了按下按键时LED灯亮起,松开按键时LED灯熄灭的功能。

这个实验让我了解了按键的原理和使用方法。

在实验过程中,我遇到了一些问题,如按键抖动、按键误触等,但通过添加软件消抖和优化程序,最终解决了这些问题。

这个实验让我明白了软件的重要性和优化的必要性。

实验四:PWM调光实验在这个实验中,我们学习了如何使用单片机实现PWM(脉宽调制)调光功能。

通过编写程序,我们成功地实现了LED灯的亮度可调节。

这个实验让我了解了PWM的原理和应用。

在实验过程中,我遇到了一些问题,如PWM频率调节不准确、亮度不连续等,但通过调整参数和优化程序,最终解决了这些问题。

这个实验让我明白了硬件和软件的协同工作的重要性。

实验五:温度检测实验在这个实验中,我们学习了如何使用单片机实现温度检测功能。

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

单片机实验报告学号:____________ 姓名:____________一、实验目的:1.实验一的目的:掌握汇编语言设计和调试方法,熟悉键盘操作;2.实验二的目的:掌握汇编语言设计和调试方法;3.实验三的目的:进一步掌握汇编语言设计和调试方法。

二、实验设备:装有Keil uVision的计算机1台(本人用的是装有Keil uVision2的计算机)三、实验内容:实验一清零程序1.实验内容:把2000H~20FFH的内容清零2.我的流程图、源程序及调试结果:流程图(用Edraw Mind Map 7.8制作):源程序:ORG 0000HLJMP STARTORG 0100HSTART: MOV R0,#0FFHMOV DPTR,#2000HMOV A,#00HMAIN: MOVX @DPTR,AINC DPTRDJNZ R0,MAINSJMP $END调试结果:将源程序中的MOV A,#00H改为MOV A,#0FFH,以便观察上述程序是否能够实现清零功能。

实验二拆字程序1.实验内容:把2000H的内容拆开,高位送2001H,低位送2002H,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。

2.我的流程图、源程序及调试结果:流程图(用Edraw Mind Map 7.8制作):源程序:ORG 0000HLJMP STARTORG 0100HSTART: MOV DPTR,#2000HMOV A,#0A3H ;给累加器A赋一个值MOVX @DPTR,A ;将累加器A中的内容作为2000H的内容 MOV R0,AANL A,#0F0HSWAP AINC DPTRMOVX @DPTR,AMOV A,R0ANL A,#0FHINC DPTRMOVX @DPTR,ASJMP $END调试结果:实验三拼字程序1.实验内容:把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一字节。

2.我的流程图、源程序及调试结果:流程图(用Edraw Mind Map 7.8制作):源程序:ORG 0000HLJMP STARTORG 0100HSTART: MOV DPTR,#2000HMOV A,#0B2H ;给累加器A赋一个值MOVX @DPTR,A ;将累加器A中的内容作为2000H的内容ANL A,#0FHSWAP AMOV R0,AINC DPTRMOV A,#0E5H ;给累加器A赋一个值MOVX @DPTR,A ;将累加器A中的内容作为2001H的内容ANL A,#0FHORL A,R0INC DPTRMOVX @DPTR,ASJMP $END调试结果:四、实验小结此次实验让我基本掌握了MOVX,SWAP这两条从未用过的指令的用法,理解了地址高位与低位的含义,16位地址与8位地址的记法,DPTR作为地址指针的重要作用,并让我注意到了DEC比INC少一种用法,即有INC DPTR,却没有DEC DPTR。

第二次单片机实验报告学号:____________ 姓名:____________一、实验目的:(l)学习P1口的使用方法;(2)学习延时子程序的编写。

二、实验必备知识:(l)Pl口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

(2)本实验中延时子程序采用指令循环来实现。

三、实验设备:装有Keil uVision和STC_ISP的计算机1台单片机芯片1片单片机综合实验箱1个杜邦线若干四、实验内容:P1口输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

五、我的电路原理图、流程图及源程序:1.电路原理图:因为没有用实验室的设备完成实验,所以我用的是自己的计算机和单片机完成实验的。

其起作用的部分的电路图如下图用(Proteus 7.8绘制)所示:2. 流程图(用Edraw Mind Map 7.8制作):3.源程序:ORG 0000HMOV A,#01111111BJMP STARTORG 0100HSTART: MOV P1,ACALL DEL100msRR A ;将A中的内容右移一位,相应地,发光二极管中低电平所处位置左移一位JMP STARTDEL100ms:MOV R7,#250DEL1: MOV R6,#200DEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETEND六、思考:1.改变延时常数,使发光二极管闪亮时间改变。

答:如下两图所示,将晶振频率和时钟频率均选为12MHz,则一个机器周期为1us,执行一条DJNZ指令需要两个机器周期,即2us.用R6、R7分别表示其各自存储的立即数,则上述DEL100ms的延时子程序所延长的时间T=2*R6*R7us,故改变R6、R7中存储的立即数即可改变延时子程序延长的时间,从而使发光二极管闪亮时间改变。

如:将DEL100ms的延时子程序中的MOV R7,#250改为MOV R7,#125,则DEL100ms的延时子程序延时的时间变为原来100ms的一半,即50ms.但立即数的大小有范围,对于8位单片机而言,其大小不能超过256,所以若想延长更长的时间,需要在延时程序中多加几个循环,或同时调用多个延时子程序。

Keil uVision2中的选项对话框Proteus 7.8中的选项对话框2.修改程序,使发光二极管闪亮移位方向改变。

答:将上述源程序中的 RR A 改为RL A则可将发光灯泡流动的方向由向左改为向右。

第三次单片机实验报告学号:____________ 姓名:____________一、实验目的:掌握工业顺序控制程序的简单编程,中断的使用。

二、实验预备知识:在工业控制中,象冲压、注塑、轻纺、制瓶等生产过程,都是一些继续生产过程,按某种顺序有规律地完成预定的动作,对这类继续生产过程的控制称顺序控制,象注塑机工艺过程大致按“合模→注射→延时→开模→产伸→产退”顺序动作,用单片机最易实现。

三、实验设备:装有Keil uVision和STC_ISP的计算机1台单片机芯片1片单片机综合实验箱1个杜邦线若干四、实验内容:由 P1.0~1.6控制注塑机的七道工序,现模拟控制七只发光二极的点亮,设定每道工序时间转换为延时,P3.4为开工启动开关,低脉冲有效。

INT1为外部故障输入模拟,低电平报警。

P1.7为报警声音输出。

(可设置声光报警)五、我的电路原理图、流程图及源程序:1.电路原理图:因为没有用实验室的设备完成实验,所以我用的是自己的计算机和单片机完成实验的。

现在根据题意用Proteus 7.8仿真如下,其中,AT89C51的晶振已设置为12MHz,蜂鸣器的驱动电压已改为较低的1V,蜂鸣器的低电平端接红色超亮发光二级光的正极:图一原理图图二蜂鸣器的参数 2. 流程图(用Edraw Mind Map 7.8制作):3.源程序:(1)仿真时用的程序,其原理图如图一所示:ORG 0000HJMP STARTORG 0013HJMP INT_1ORG 0100HJMP LIGHTSTART: MOV A,#0FEHMOV R0,#7HSETB IT0SETB EX1SETB EAMOV R1,#1HHERE: JB P3.4,HERE ;保证只有开工启动开关按下时才执行后续程序LIGHT: MOV P1,A ;按键按下开始工序CALL DELRL ADJNZ R0,LIGHTMOV P1,#0FFHJMP $ ;等待中断INT_1: PUSH PSW ;中断工序并声光报警PUSH ACCMOV P1,#7FHPOP ACCPOP PSWRETIDEL: MOV R7,#25 ;延时1sDEL1: MOV R6,#200DEL2: MOV R5,#100DEL3: DJNZ R5,DEL3DJNZ R6,DEL2DJNZ R7,DEL1RETEND(2)做实验时用的程序(此程序是在以前写作业和自己训练时编写的程序上改编而成,因而不太简洁),其原理图未画出,但注释中已解释得很明白:ORG 0000HJMP STARTORG 0013HJMP KEY1ORG 0100HJMP MAINSTART: SETB IT0SETB EAMOV A,#0FEHHERE: JB P3.4,HERE ;保证只有开工启动开关按下时才执行后续程序MOV R3,#7HMAIN: MOV R1,#248 ;可与下一条语句及延时程序搭配,使2ms的延时程序变为延时1s的程序MOV R2,#2LIGHT: MOV P1,A ;按键按下开始工序CALL DELDJNZ R1,LIGHTMOV R1,#248DJNZ R2,LIGHTRL ADJNZ R3,MAINMOV P1,#0FFHJMP $ ;等待中断KEY1: PUSH PSWPUSH ACCMOV P1,#7FH ;中断工序,光报警,我用的单片机的P1口全都接了发光二极管CLR P2.3 ;声报警。

我用的单片机的P2.3接的是蜂鸣器,低电平有效POP ACCPOP PSWRETIDEL: MOV R7,#25 ;延时2msDEL1: MOV R6,#40DEL2: DJNZ R6,DEL2DJNZ R7,DEL1RETEND六、思考:若报警解除后,工序需从头开始等待开机信号,如何编程?答:加一个标志来表明是否是刚从中断中退出来,然后设置一个分支程序即可(由于RETI不同于RET,所以没有简单地将RETI换成相应的JMP指令跳转到程序的起始处)。

如下(在仿真时用的程序上加了三条指令):ORG 0000HJMP STARTORG 0013HJMP INT_1ORG 0100HJMP LIGHTSTART: MOV A,#0FEHMOV R0,#7HSETB IT0SETB EX1MOV R1,#1H ;此处为添加的第一条语句HERE: JB P3.4,HERELIGHT: MOV P1,ACALL DELRL ACJNE R1,#1H,START ;此处为添加的第二条语句 DJNZ R0,LIGHTMOV P1,#0FFHJMP $INT_1: PUSH PSWPUSH ACCMOV P1,#7FHMOV R1,#0H ;此处为添加的第三条语句 POP ACCPOP PSWRETIDEL: MOV R7,#25DEL1: MOV R6,#200DEL2: MOV R5,#100DEL3: DJNZ R5,DEL3DJNZ R6,DEL2DJNZ R7,DEL1RETEND。

相关文档
最新文档