您的当前位置:首页正文

基于单片机的遥控窗帘设计

2024-04-23 来源:好走旅游网
河南理工大学本科课程设计报告

河南理工大学

《单片机应用与仿真训练》设计报告

题目:基于单片机的遥控窗帘设计

姓 名: 易亚元 朱正 学 号: 0916202057

0916301010

专业班级: 电气09-2 指导老师: 张宏伟 所在学院: 万方科技学院

2012年6月 23 日

- 1 -

河南理工大学本科课程设计报告

摘要

随着电子技术和自动化技术的发展,人们对生活质量的要求越来越高。家用电器产品也在不断的更新换代。从始初的晶体管到电子管;由模拟到数字;由分立元件到集成电路;从普通向高性能、多功能型;由手动控制向红外线遥控、向智能化发展。此次要设计的是遥控窗帘。它是采用AT89S52单片机的最小系统设计,控制一个可逆、直流电动机控制窗帘的拉开和关闭。

这里介绍了基于单片机技术的遥控窗帘的设计原理,给出了遥控器和接受控制器的硬件设计方案,以流程图方式对本系统的遥控器和接收器的软件设计进行了较为详细的介绍,并制作出了实物模型。该系统的遥控器部分主要由键盘扫描电路、单片机(AT89S52)、行程开关及电动机驱动控制电路等组成;窗帘控制部分主要由导轨、窗帘、拉绳和电动机等组成。接收器根据接收到的遥控器编码不同来控制电动机的正转、反转或停止,从而实现窗帘的打开、关闭或停止

该设计包括光电开关电路、系统主控模块、电源转换电路、保护电路等组成,可实现窗帘自动升降.

关键字:单片机 无线遥控 光电开关 L298驱动

- 2 -

河南理工大学本科课程设计报告

目录

1、概述 ............................................................ 3 1.1选题目的和意义 .................................................. 3 1.2选题的要求 ...................................................... 3 2、系统总体方案及硬件设计 .......................................... 4 2.1 遥控窗帘的基本设计原理.......................................... 5 2.2原理框图 ........................................................ 5 2.3各功能模块介绍 .................................................. 6 2.3.1无线遥控控制............................................... 6

2.3.2手动控制................................................... 7 2.3.3输出部分................................................... 7 2.3.4防过卷模块................................................. 8 2.3.5TLP521—4光耦隔离.......................................... 8 2.3.6电机控制模块............................................... 8 2.3.7电源模块................................................... 9 2.4单片机 ......................................................... 10 3、软件设计 ....................................................... 17 3.1主程序设计 ..................................................... 17 3.2主程序说明: ................................................... 17 3.3模块化程序流程图 ............................................... 18 4、 Proteus软件仿真 ............................................... 19 4.1Protues0软件仿真电路图 ......................................... 19 4.2仿真实验结果分析 ............................................... 20 4.3硬件测试 ....................................................... 20 5、课程设计体会 ................................... 错误!未定义书签。

- 3 -

河南理工大学本科课程设计报告

1、概述

1.1选题目的和意义

随着社会经济的发展和人们生活水平的改变,宽大窗户的办公和生活建筑越来越多。这种建筑结构美观,采光良好。但是,窗户的高度或者宽度超过4米以后手拉窗帘却比较困难。而现在的放地产商几乎却都没有为用户考虑这个问题,使一些高档住宅反而带来了生活上的不便,解决这个问题的方法是使用窗帘机。

窗帘机是专门为高大的窗户设计的窗帘控制装置,根据功能不同可以分为电动、遥控、自动和智能等多种规格。电动窗帘机是通过窗帘机上的控制按键操作窗帘开合的一种最简单的窗帘机,仅仅解决了手动窗帘的问题,可还需要人来近距离操作,电动窗帘使一些超高、超宽窗帘的操作变得比较容易。但是因为这种窗帘技术含量低,基本没有厂家作大规模工业化生产;遥控窗帘机可以远距离操作窗帘的开合,使用更为方便,自动窗帘机具有自动控制功能,可以满足用户各种情况下的使用要求。

1.2选题的要求

(1) 进一步熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤

(2)掌握单片机仿真软件Proteus的使用方法; (3)掌握键盘和显示器在的单片机控制系统中的应用。 (4)掌握撰写课程设计报告的方法。

- 4 -

河南理工大学本科课程设计报告

2、系统总体方案及硬件设计

2.1 遥控窗帘的基本设计原理

基于单片机的遥控窗帘的设计要求如下: 1)控制窗帘的开关、利用直流电机正反转实现。 2)防过卷功能。

3)具有无线遥控和手动按键控制两种功能。 4)能够指示运行状态。

针对设计要求作如下设计,本装置设计以单片机为核心,通过单片机发送相应的信号,利用光耦的隔离作用,保证信号的稳定,利用L298N控制直流电机正反转和停止,来控制窗帘的上升、停止、下降等动作,采用霍尔传感器的磁效应实现最高点、最低点电机自动停止来防止窗帘的过卷,窗帘的操作可通过键盘手动和无线遥控两种方法完成。使用不同颜色的发光二极管对窗帘的运动方向进行显示,使窗帘这种常用的家居用品更具人性化。

2.2原理框图

开始 显示部分 电机正转 电机反转 图 1—系统原理框图 电机停止 光电检测 单片机处理 过卷检测 - 5 -

河南理工大学本科课程设计报告

2.3各功能模块介绍

2.3.1无线遥控控制

利用315M遥控器发出正转、反转和停止信号,与窗帘相连接的控制电路接收到控制信号后,根据遥控命令来控制电机的运行状态,从而达到远距离对控制窗帘的打开、闭合和停止。对于遥控窗帘来说,遥控器的按键需要一个打开按键和一个闭合按键来控制窗帘的打开和闭合。遥控器的按键还应加一个停止按键,这样我们就不会为使电机运行而一直按着按键不放。这样有两个好处:一是方便用户控制用户在打开或关闭窗帘时不用一直按着按键;二是最大可能地降低遥控器和接收器功耗,这是因为遥控器在按下一次后发送一串数据后就可以立即进入睡眠,对于主机也不用时时检测信号这样就可以更好的降低功耗。

无线遥控主要用到315M无线遥控器,下面介绍315M遥控器:

数据发射模块的工作频率为315M,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在-25~+85度之间变化时,频飘仅为3ppm/度。特别适合多发一收无线遥控及数据传输系统。声表谐振器的频率稳定度仅次于晶体,而一般的LC振荡器频率稳定度及一致性较差,即使采用高品质微调电容,温差变化及振动也很难保证已调好的频点不会发生偏移。 发射模块未设编码集成电路,而增加了一只数据调制三极管Q1,这种结构使得它可以方便地和其它固定编码电路、滚动码电路及单片机接口,而不必考虑编码电路的工作电压和输出幅度信号值的大小。比如用PT2262或者SM5262等编码集成电路配接时,直接将它们的数据输出端第17脚接至数据模块的输入端即可。

数据模块具有较宽的工作电压范围3~12V,当电压变化时发射频率基本不变,和发射模块配套的接收模块无需任何调整就能稳定地接收。当发射电压为3V时,空旷地传输距离约20~50米,发射功率较小,当电压5V时约100~200米,当电压9V时约300~500米,当发射电压为12V时,为最佳工作电压,具有较好的发射效果,发射电流约60毫安,空旷地传输距离700~800米,发射功率约500毫瓦。当电压大于l2V时功耗增大,有效发射功率不再明显提高。这套模块的特点是发射功率比较大,传输距离比

- 6 -

河南理工大学本科课程设计报告

较远,比较适合恶劣条件下进行通讯。天线最好选用25厘米长的导线,远距离传输时最好能够竖立起来,因为无线电信号传输时收很多因素的影响,所以一般实用距离只有标称距离的一半甚至更少,这点需要开发时注意。 数据模块采用ASK方式调制,以降低功耗,当数据信号停止时发射电流降为零,数据信号与发射模块输入端可以用电阻或者直接连接而不能用电容耦合,否则发射模块将不能正常工作。数据电平应接近数据模块的实际工作电压,以获得较高的调制效果。

发射发射模块最好能垂直安装在主板的边缘,应离开周围器件5mm以上,以免受分布参数影晌。模块的传输距离与调制信号频率及幅度,发射电压及电池容量,发射天线,接收机的灵敏度,收发环境有关。一般在开阔区最大发射距离约800米,在有障碍的情况下,距离会缩短,由于无线电信号传输过程中的折射和反射会形成一些死区及不稳定区域,不同的收发环境会有不同的收发距离。 2.3.2手动控制

手动控制是系统的必要补充,当遥控器失灵或者接收控制部分的程序紊乱时,可通过手动控制面板上的控制按键控制窗帘的打开和闭合。所以需要设计一个打开按键、一个闭合按键和一个停止键。通过与单片机管脚连接的独立键盘,每次每当按下一个独立键盘,都会向单片机的管脚输送一个低电平。单片机接收到这样一个信号后,通过已有程序的逻辑判断,向下面的执行部分发出相应的控制信号。

2.3.3输出部分

对于输出部分,本系统由TLP521-4光耦隔离,L298N电机控制芯片以及模拟窗帘部分组成,对于电机模块,本装置采用的是用L298N控制电机的运转。由于单片机输出电流太小,不能有效作为电机的直接控制,电机的驱动电路,驱动芯片采用L298N,该芯片的输出引脚OUT1、OUT2与步进电机相连接,通过给单片机输出脉冲来间接控制电机各线圈的接通与切断。

- 7 -

河南理工大学本科课程设计报告

2.3.4防过卷模块

这个窗帘是通过电机带动从上往下打开,所以这里需要设计两个霍尔传感器,一个设计在窗帘导轨的正上方,用于检测窗帘是否已完全关闭;另一个设计在窗帘槽的最下方,用于检测窗帘是否已完全打开,从而防止由于电机长时间通电而损坏。

本装置用到的霍尔传感器的介绍:

漫反射光电开关 E18-D80NK 可以检测前方0-80CM(可以调节)障碍物,是机器人避障,很好用的光电传感器。三线NPN输出型。

这是一种集发射与接收于一体的光电传感器。检测距离可以根据要求进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。 2.3.5TLP521—4光耦隔离

为了防止电机工作是影响单片机的工作,所以用TLP521-4光耦做隔离

图表 2—光耦隔离模块

- 8 -

河南理工大学本科课程设计报告

2.3.6电机控制模块

电机控制是通过L298N来控制的。电机的正反转都由L298N的不同输出来控制。L298N的介绍:

L298 是 SGS 公司的产品,比较常见的是 15脚 Multiwatt 封装的 L298N,内部同样包含4 通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N 芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达 50V,可以直接通过电源来调节输出电压;可以直接用单片机的 IO 口提供信号;而且电路简单,使用比较方便。L298N可接受标准 TTL 逻辑电平信号 VSS,VSS可接 4.5~7 V 电压。4脚 VS 接电源电压,VS 电压范围 VIH 为+2.5~46 V。输出电流可达 2.5 A,可驱动电感性负载。1 脚和 15 脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298 可驱动 2 个电动机,OUT1,OUT2 和 OUT3,OUT4 之间可分别接电动机,本实验装置我们选用驱动一台电动机。10,12 脚接输入控制电平,控制电机的正反转。EnA接控制使能端,控制电机的停转。表 1 是 L298N 功能逻辑图。

In3,In4 的逻辑图与表 1 相同。由表 1 可知 EnA 为低电平时,输入电平对电机控制起作用,当 EnA 为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。

ENA(B) H H H L

IN1(IN3)

H L 同IN2(IN4)

X

IN2(IN4)

L H 同IN1(IN3)

X

电机运行状况

正转 反转 快速停止 停止

表1 L298N逻辑功能表

下图是其引脚图:

- 9 -

河南理工大学本科课程设计报告

图3—L298N

图4—L298N控制电机

- 10 -

河南理工大学本科课程设计报告

2.3.7电源模块

由于我们在整个电路系统中用到+5V的电压,所以我们用三端稳压块lm7805芯片来制作+5V的电源模块。电路原理图如下:

7805是我们最常用到的稳压芯片了,它的使用方便,用很简单的电路即可以输入一个直流稳压电源,它的输出电压恰好为+5v,刚好是51系列单片机运行所需的电压,我们所用的是lm7805,下面我们简单的介绍一下它的3个引脚以及用它来构成的稳压电路的资料。

<7805引脚图>

其中引脚1接整流器输出的正电压,引脚2为公共地(也就是负极),引脚3就是我们需要的+5V输出电压了。我们考虑到实际的应用环境及用户的接受认可程度,我们用下面的固定式三端稳压器输出电压可调电路来实现+5V的输出。但是在我们制作的过程中用直流+9V来代替输入端的整流器输入。 2.4单片机

本装置最重要的元件是AT89S52单片机,它为 ATMEL 所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。

(一)、AT89S52主要功能列举如下: 1、拥有灵巧的8位CPU和在系统可编程Flash

- 11 -

河南理工大学本科课程设计报告

2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 3、内部程序存储器(ROM)为 8KB 4、内部数据存储器(RAM)为 256字节 5、32 个可编程I/O 口线 6、8 个中断向量源

7、三个 16 位定时器/计数器 8、三级加密程序存储器 9、全双工UART串行通道

(二)、AT89S52各引脚功能介绍:

图表 5—AT89S52

VCC:AT89S52电源正端输入,接+5V。 VSS:电源地端。

XTAL1:单芯片系统时钟的反相放大器输入端。

XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。

RESET:AT89S52的重置引脚,高电平动作

EA/Vpp:\"EA\"为英文\"External Access\"的缩写,表示存取外部程序代码之

- 12 -

河南理工大学本科课程设计报告

意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,

ALE/PROG:ALE是英文\"Address Latch Enable\"的缩写,表示地址锁存器启用信号。。

PSEN:此为\"Program Store Enable\"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。

PORT0(P0.0~P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。

PORT2(P2.0~P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。

PORT1(P1.0~P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。

PORT3(P3.0~P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。

其引脚分配如下:

- 13 -

河南理工大学本科课程设计报告

P3.0:RXD,串行通信输入。 P3.1:TXD,串行通信输出。 P3.2:INT0,外部中断0输入。 P3.3:INT1,外部中断1输入。 P3.4:T0,计时计数器0输入。 P3.5:T1,计时计数器1输入。 P3.6:WR:外部数据存储器的写入信号。 P3.7:RD,外部数据存储器的读取信号。 单片机的最小系统设计图:

图6—单片机最小系统

手动操作键盘:

- 14 -

河南理工大学本科课程设计报告

图7—手动操作键盘

显示电路:

图8—显示电路

电机驱动电路:

- 15 -

河南理工大学本科课程设计报告

图9—电机驱动电路

光耦隔离:

图10—光耦隔离

- 16 -

河南理工大学本科课程设计报告

3、软件设计

3.1主程序设计

主程序完成系统初始化,并对采集到的数据进行处理,并发送控制指令。

图11—主程序流程图

3.2主程序说明:

电路由单片机系统最小系统,手动控制,显示,光耦隔离,驱动电机电路,无线接收电路,以及过卷模块组成。电源部分可以由下载线提供,也可由USB数据线提供,外加电压5V。

- 17 -

河南理工大学本科课程设计报告

电机的控制由手动键盘或者遥控器控制,手动键盘占用P1^0—P1^2三个I/O资源口,当有按键按下的时候,单片机对采集到的数据进行处理判断,看需要对电动机发送什么样的指令信号。同样的当用遥控器控制时,无线发射模块发送数据,无线接收模块接收到数据后,便对收到的数据进行解码,并对相应位置位,无线接收模块占用P3^3—P3^5三个I/O资源口,当相应的资源口接收到数据后进行逻辑判断,并做出反应,发送信号。

为了防止电动机运行过程中对单片机的影响,用TLP521-4光耦进行信号隔离,对单片机发送来的信号,光耦保持,并将它发送个电机驱动芯片L298N,L298N收到光耦发送来的信号后,根据信号,对电动机发送相应的信号,使其进行正转、反转和停止,并带动窗帘打开,关闭。为了防止窗帘再打开和关闭的时候过卷,用用两个霍尔传感器作为位置检测,当窗帘运动到指定高度是,霍尔传感器便发送信号个单片机,单片机收到信号后便发送信号,控制电机停止 3.3模块化程序流程图 正转流程图:

图12—正转程序流程图

- 18 -

河南理工大学本科课程设计报告

反转流程:

图13—反转程序流程图

- 19 -

河南理工大学本科课程设计报告

4、Proteus软件仿真

4.1Protues0软件仿真电路图

由于部分原件在Protues里面无法仿真,Protues里面对单片机来说,可以不仿真其最小系统电路,所以在此仿真电路中只涉及到,手动操作键盘,灯光显示,电

图14—总系统模拟图

4.2仿真实验结果分析

将所编写的程序,生成可执行的文件并加载到Protues仿真软件的单片机中,执行软件程序,在执行过程中能顺利的完成所需执行的任务,正常正传,反转,停车,对应不同的运行方式,不同颜色的的灯光显示,绿色对应正转,红色停止,黄色对应反转。

软件仿真时遇到了电机转速过快的问题,窗帘作为家用,一般情况下是低转速生气和降落的,为了解决这个问题,对程序进行了小部分修改,对于L298N芯片,要是驱动的电机慢速启动,只需要对其进行PWM波送信号,送信号的时候,改变电机停转的占空比即可,在程序上做一定的修改后,仿真软件电机便可慢速

- 20 -

河南理工大学本科课程设计报告

启动,达到所需要的要求。在仿真软件上的仿真结果达到要求。 4.3硬件测试

按照设计的电路将硬件电路焊接完毕后,对硬件电路进行了一系列的测试,各种功能都能实现,可通过遥控器或者手动键盘来使电机达到正反转的效果。为了防止窗帘过卷所添加的霍尔传感器,未在软件仿真中使用,但在硬件测试中,能很好的工作,在测试时遇到的问题是无线遥控的一个控制键不灵敏,需要靠近接收装置才能进行控制。总体来说,硬件电路和程序都没有问题,能实现设计要求。

- 21 -

河南理工大学本科课程设计报告

5、课程设计体会

这次单片机课程设计不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,学习了单片机C语言。经过一周的努力,顺利的完成了单片机课设。这是一个磨练志的过程。从课题的选择开始,硬件和软件系统的设计、到最后的Proteus软件仿真完成,这其中经历了很多困难,但是更重要的是在这个过程中我得到了很大的锻炼。一方面通过C51单片机等一些器件的设计让我学习和掌握了单片机技术的基础知识和 技术要点,也使以前学的很多知识都得到了运用;另一方面在用Proteus软件画电路图时,然后再转换成一维的 WORD 中进行编辑,这个过程中让我掌握了计算机辅助的设计技术。当然,这是一个需要不断的尝试,不断的校核,不断的修改,最后完成一个合理的设计的过程。需要的是细心和耐心。在很大程度上培养了我拼搏的工作精神。使我受益匪浅,更加明确了自己专业的方向。 通过本次课设,我不仅学到了关于单片机技术方面的许多专业知识,同时也让我 感觉到团队合作的重要性。其实如何有效和快速的找到资料也是课设给我的启发,利用好图书馆和网络,是资源的到最好的利用。与他人交流思想是取得成功的关键,在交流中,不仅强化了自己原有的知识体系,也扩展了自己的思维。课设是一个通过思考、发问、自己解惑并动手、提高的过程。我会在以后的学习中不断学习,积累经验,完善自己。这里我要感谢实验室的指导老师,非常感谢!

参考文献:

[1] 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005

[2] 谭浩强.C程序设计解题与上机指导(第二版).北京:清华大学出版社,1999 [3] 余发山.王福忠.单片机原理与应用技术(第一版).北京:中国矿业大学出版社.2008

- 22 -

河南理工大学本科课程设计报告

程序:

#include

#define uchar unsigned char #define uint unsigned int sbit P27=P2^7; sbit P14=P1^4; // sbit P15=P1^5; sbit P16=P1^6; sbit P17=P1^7; // sbit P33=P3^3; //

sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit guang1=P0^0; sbit guang2=P0^1; sbit anjian=P2^0; sbit a=P2^7; sbit b=P2^6; sbit c=P2^5; sbit d=P2^4; void delay(int z) { int x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void jiansuz()

- 23 -

河南理工大学本科课程设计报告

{ P10=0; P11=1; delay(3); P10=0; P11=0; delay(5);

}

void jiansuf() { P10=1; P11=0; delay(3); P10=0; P11=0; delay(5);

}

void zhongsuz() { P10=0; P11=1; delay(5); P10=0; P11=0; delay(5); }

- 24 -

河南理工大学本科课程设计报告

void zhongsuf() { P10=1; P11=0; delay(5); P10=0; P11=0; delay(5);

}

void jiasuz() { P10=0; P11=1; delay(5); P10=0; P11=0;

delay(3); P12=0; P13=1;

}

void jiasuf() { P10=1; P11=0;

delay(5); P10=0; P11=0;

delay(3);

- 25 -

河南理工大学本科课程设计报告

}

void tingzhi() { }

void init() { }

void wuxian() {

if(P33==1)

EA=1; EX0=1; TR0=1; EX1=1;

IT1=0; //只是修改了这个! TR1=1; // P12=1; P13=1; P10=0; P11=0; P13=0; P12=1;

{

delay(1000); if(P33==1) {

- 26 -

河南理工大学本科课程设计报告

}

}

tingzhi(); while(a==1)

{

jiasuz(); }

while(b==1)

{ }

jiasuf();

while(c==1)

{ }

tingzhi();

while(d==1)

{ }

tingzhi();

}

void main() { }

void exter0() interrupt 0

init(); while(1) { }

wuxian();

- 27 -

河南理工大学本科课程设计报告

{ /* a=0;

b=0; c=0; d=0; tingzhi(); if(a==1)

{ }

else if(b==1)

{ }

else if(c==1)

{ }

else if(d==1)

{ }

tingzhi(); tingzhi(); jiasuf();

jiasuz();

*/ tingzhi();

/* while(a==1)

{

jiasuz(); }

while(b==1)

- 28 -

河南理工大学本科课程设计报告

}

{ }

jiasuf();

while(c==1)

{ }

tingzhi();

while(d==1)

{

tingzhi();

} */

void exter1() interrupt 2 { a=0;

b=0; c=0; d=0; tingzhi(); if(guang1==0)

jiasuz();

else if(guang2==0)

jiasuf();

}

// 开始了! // 外部中断0 // 外部中断

- 29 -

因篇幅问题不能全部显示,请点此查看更多更全内容