y7524420017
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
述的话 ,可 以概括 如下 :
“ 首先,控制器检测是手动情形, 还是 自 动情形。如果是手动情形,就 让卷袋电 机转动一周; 如果是自 动情形, 就进入 下面的程序: 自 首先检测是否有人入厕,如果检测红外检测装置检测到有 动情形下,
人入厕 时,继续检测其入厕时间是否持续有 6秒钟 ,如 果有 6秒钟 ,就起 动 抽风机和飘香机 ,送出 “ 有人用厕 ”信 号;如果没 有六秒 钟,则重 新检测是 否有人入厕 。
序 ,三是 中断服务程序 。 2 .延 时子程序
延时 程序在时间 概念要求不很高的场合下, 如在本系统中) ( 一般是以 循 环的形式 ( f 循环) 如o r 来实现的。 本文的 延时 程序就是利用 f 循环进行编 o r 程, 后又通过仿真器的 程序时效分 析功能和实际的验证来修改并最终确定的.
调用该函 进行毫秒级的 数可 延时, 延时时间 0 655 从 至 53 毫秒之间任意
选择。 如要延时5 个毫秒, 用格式为m ey) 即将形参j 其调 Dl(; a5, 的值进行相
应 替代 即可 。 卷 袋 电机转 动一周子程序
卷袋电 机转动一周子程序所需信号 是霍尔开关信号, 程序同时也存 该子
在于中断服务程序中, 该子程序流程图 见下页图4 : . 该程序的 2 代码 ( 数) 函
如下 : * /电机 起停子程序 * /
viMo r O o d tS oP
{ Moo t ; ri 1 tB = Moo t ; ri 1 tB = Moo t ; ri 1 tB = 刀 起动 电机
外部中断 。 在设置了 , 相应的中断后, 925 的 P. 脚的逻辑电平由 1 8C01 3 2引 跳变到 0 时,就会产生外部中 0, 断 ) 控制器就转向中断程序入口处 ( 地 入口 址为 O00H x03 )执行中断 服务程序,执行完后 自 动回到主程序的中断处继续 执行主程序。 在转向 执行中断服务程序时, 控制器会自 动保存 P 值和程序状 C
而其后的un2 sg i 表示执行中断服务程序时,所用的寄存器为 第二组寄存器,
以免与默认的第一组寄存器产生重叠,使得退出 该中断服务程序再去执行其
他语句 时改变 了原来 寄存器 的值 ,产生错 误的执行结果 。 一
综上所述, 依据图4 所示的主 . 1 程序流程图, 地调用三个子程序, 合理 就 可以 很方便地进 行主程序的编程。 再经仿真器仿真调试后装入 “ 坐便器使用 控制板”上的 8C01 925 芯片内, 就可以实 现坐便器的智能控制。 当然要提高
m e y 00; a( 0) Dl 3
d o
/ 延时 3 秒 刀 霍尔开关没有 闭合 ,电机继续转动
笼
m e 1 Dl ) 州 ;
} h e ue i O; w i( or t ) lH B=
西南交通大学硕士研究生学位论文
‘」舒I 页
刀 已经 闭 程序退 出了 d- h e ow i 循环 , 示霍尔开关 l 表 / ,要使 电机停 止转动 合 Moo i O tr t ; B=
态字到 堆栈 ,执行 完 中断服 务程序要 回到 主程 序时又 自 动将 这些值从堆 栈中 弹 出。
中断 服务程序在引用了卷袋电机转动一周的子程序后,其编程就相对简
单多 了。这里 直接给 出其程 序代码 : * /手动 中断程序 ,是外 部 0中断 v iItrpO i e ut s g o ne uto r p 0 n 2 d r n r t ui ( m e y10) D l (00; a
形 ,就 是在 自动情形下才会有 动作 ,手动 时无需作 出动作。
程序设计时, 要采集的信号 有三 个。一是手动 自 / 动开关信号,二是霍尔
西南交通大学硕士研究生学 位论文
4 8页
开关信号,三是红外检测信号。 送出的信号有一个,即 “ 有人用厕 ” 信号。 根据前面几 个章节的叙述,我们知道, 该程序的功 ; tBt o - 0
m ey 00 Dl ( 0) a1 ;
/ 停止电 机后作 1 秒钟的时间缓冲再执行其他程序
代码中的M tBt ue t o ri Hori o 和 B 已经在在整个程序文件的前面通过下面的
语句进行 了定 义:
st o t 37 电 i P^; / 机控制位,为 1 机转动,为 0 b Mo r = i tB 电 电机停止转动 st e i P 4 霍尔开关位,由0 1 B= ^; / b H or t l i u 到 表示开关闭 合,此时电机 通过这样的定义, o ri M tBt o 就代表了控制电 机的 8C01 925 的引脚 P. 3, 7
程序中 n ca i 和uh 在整个程 的u t r 序文件的最前面己 经通过下面的宏定义语
句 将其 定义为两种数 据类型 。 # en uhr i e ca caus nd r df e i ng h # en u t i e n i us n i df e n g d i n t
西南交通 大学硕士研究生 学位论文
4 7页
第4 章
智能型免水冲环保厕所 软件设计
在这个章节将讨论智能型免水冲环保厕所的软件的设计。我们知道,对 于智能型的机电 产品,硬件只能是实习功能的 物理保证,而只有软件才真正 地使 “ 肢发达”的电 四 气元件拥有一 个智能的 “ 脑 ” 所以从某种意义上来 头 。 说,软件是机电控制的核心。软件设计的好坏关系到功能的实现, 升级的简
延时程序的代码如下 :
西南交通 大学硕 士研究生学位论文
开始
4 9页
图4 . 1坐便器使用控制程序之 主程序 流程 图
西 南交通大 学硕士研 究生学位论文
5页 0
* / 通用的延时 j毫秒子程序* / vim ey i j o Dl (n ) d a u t
{
u hr cai ;
frjO- o(> ;- ; j) 、 { f ( ; 15+ ) 0< 2; + oi i r= i { ; } } )
接着, 通过红外检 测装置检测, 该入厕者是否离厕, 如果己 经离厕,则 继续检测其离厕时间 是否持续有 8 即确定其不会继续用厕。 秒, 如果持续有 8 秒, 则停止抽风机和飘香机,同时 起动 卷袋电机; 如果没有持续 8秒时间就 又在使用坐便器,则 抽风机和 飘香机继续运转, 卷袋电机也不会被起动。 最后,卷袋电 机转动了 一周后,重新回到最开始的地方,即重新检测是
否有人入厕 。 ”
4 .程序流程图及相关代码 .2 2
主程序
程序的 流程图体现了 程序设计者的一种软件功能实现的思路,同时又是
将程序要 实现的功能进行 “ 程语言化 ”的一个工具 。该 “ 编 坐便器 使用控制
程序”的主 程序流程图见下页图4 . . 1 该流 程图所示的主程序即为 “ 坐便器使用控制程序”的m i ) 数。该 a( 函 n 主 程序内明 显含有三个子程序, 一是延时程序, 二是卷袋电 机转动一周子程
E ; AR
m e y 00 a( 0) Dl 1 ; M tSQ o r ; o P 机转动, / / 手动则电 一周后停下
函数名Ieut) rp ( n r 0后面的ieut t nrp0 tr 表示该函数是外部中断。 的中断服务
程 序, 这样 C 1 5 编译器会 自动识别将该程序装载到外部 中断 0的入 口地址处。
其抗干 扰性能 的话 , 就要在程序设 计中再加入后面 的软件 抗干扰设计的 内容 .
43 数显驱动程序设计 .
数显驱动程序是装 载在 “ 数显驱动板” 上的 8C 01 9 25 上的,根据该电 路
控 制板的功能 ,该芯 片的软件设计应包括四个部分:
42 坐便器使用控制的程序设计 .
4 .程序设计前的简要分析 .1 2
本程序是应用在坐便器后部的 “ 坐便器使用控制板” 上的。其功能 是根 据检测到的 入厕者的人体行为而使控制对象作出 相应的 动作。 人体的 行为有, 入厕、使用、 离厕。被 控对象要作出的动作有, 卷袋电 机的 起停 , 抽风机和飘香机的 起停。 其中的卷袋电 机的 起停有两种情形,一 是在 自 动情形下,二是在手动情形 下;而抽风机和飘香机的起停只有一种情
易和 维修 维护是否方便等 。
4, 软件设计的主要内容 .
从功 能上来看 ,软 件的设计一是 功能实现所需 的程 序设计 ,二是软件抗
干扰设计和软件 自 自 设计。本系统共有两块电路控制板有 8C01 检 修复 9 25, 即有两种场合需要软件设计; 它们分别是 “ 坐便器使用控制板”和 “ 数显驱 动板” ,分别处理坐便器使用的智能控 制问题和数据的存储显示问题。 软 件的抗干扰设计是为了 预防和自 修复程序运行中产生的一些不可预知 问题, 如系统的 “ 死锁”和 “ 走飞” 等。另 外,在接受开关信号时的 “ 去抖 动”问 题在用软件实 现时,也可以 看作是一种软件的 抗干扰设计。
H ori就代表 了接受霍尔 开关信 号的引脚 P . ue t B 1o 4
开 始
/ 已经转动 了一 周,应 该停止
图4 . 袋电机 起停控 制子程序 的流程 图 2卷
西 南交通大 学硕士研 究生 学位论文 4 中断服务程序 .
5页 2
本 中断服 务程序 是针对 手动情形 ,控制器接 受手动 中断信号后 ( 的是 用
“ 首先,控制器检测是手动情形, 还是 自 动情形。如果是手动情形,就 让卷袋电 机转动一周; 如果是自 动情形, 就进入 下面的程序: 自 首先检测是否有人入厕,如果检测红外检测装置检测到有 动情形下,
人入厕 时,继续检测其入厕时间是否持续有 6秒钟 ,如 果有 6秒钟 ,就起 动 抽风机和飘香机 ,送出 “ 有人用厕 ”信 号;如果没 有六秒 钟,则重 新检测是 否有人入厕 。
序 ,三是 中断服务程序 。 2 .延 时子程序
延时 程序在时间 概念要求不很高的场合下, 如在本系统中) ( 一般是以 循 环的形式 ( f 循环) 如o r 来实现的。 本文的 延时 程序就是利用 f 循环进行编 o r 程, 后又通过仿真器的 程序时效分 析功能和实际的验证来修改并最终确定的.
调用该函 进行毫秒级的 数可 延时, 延时时间 0 655 从 至 53 毫秒之间任意
选择。 如要延时5 个毫秒, 用格式为m ey) 即将形参j 其调 Dl(; a5, 的值进行相
应 替代 即可 。 卷 袋 电机转 动一周子程序
卷袋电 机转动一周子程序所需信号 是霍尔开关信号, 程序同时也存 该子
在于中断服务程序中, 该子程序流程图 见下页图4 : . 该程序的 2 代码 ( 数) 函
如下 : * /电机 起停子程序 * /
viMo r O o d tS oP
{ Moo t ; ri 1 tB = Moo t ; ri 1 tB = Moo t ; ri 1 tB = 刀 起动 电机
外部中断 。 在设置了 , 相应的中断后, 925 的 P. 脚的逻辑电平由 1 8C01 3 2引 跳变到 0 时,就会产生外部中 0, 断 ) 控制器就转向中断程序入口处 ( 地 入口 址为 O00H x03 )执行中断 服务程序,执行完后 自 动回到主程序的中断处继续 执行主程序。 在转向 执行中断服务程序时, 控制器会自 动保存 P 值和程序状 C
而其后的un2 sg i 表示执行中断服务程序时,所用的寄存器为 第二组寄存器,
以免与默认的第一组寄存器产生重叠,使得退出 该中断服务程序再去执行其
他语句 时改变 了原来 寄存器 的值 ,产生错 误的执行结果 。 一
综上所述, 依据图4 所示的主 . 1 程序流程图, 地调用三个子程序, 合理 就 可以 很方便地进 行主程序的编程。 再经仿真器仿真调试后装入 “ 坐便器使用 控制板”上的 8C01 925 芯片内, 就可以实 现坐便器的智能控制。 当然要提高
m e y 00; a( 0) Dl 3
d o
/ 延时 3 秒 刀 霍尔开关没有 闭合 ,电机继续转动
笼
m e 1 Dl ) 州 ;
} h e ue i O; w i( or t ) lH B=
西南交通大学硕士研究生学位论文
‘」舒I 页
刀 已经 闭 程序退 出了 d- h e ow i 循环 , 示霍尔开关 l 表 / ,要使 电机停 止转动 合 Moo i O tr t ; B=
态字到 堆栈 ,执行 完 中断服 务程序要 回到 主程 序时又 自 动将 这些值从堆 栈中 弹 出。
中断 服务程序在引用了卷袋电机转动一周的子程序后,其编程就相对简
单多 了。这里 直接给 出其程 序代码 : * /手动 中断程序 ,是外 部 0中断 v iItrpO i e ut s g o ne uto r p 0 n 2 d r n r t ui ( m e y10) D l (00; a
形 ,就 是在 自动情形下才会有 动作 ,手动 时无需作 出动作。
程序设计时, 要采集的信号 有三 个。一是手动 自 / 动开关信号,二是霍尔
西南交通大学硕士研究生学 位论文
4 8页
开关信号,三是红外检测信号。 送出的信号有一个,即 “ 有人用厕 ” 信号。 根据前面几 个章节的叙述,我们知道, 该程序的功 ; tBt o - 0
m ey 00 Dl ( 0) a1 ;
/ 停止电 机后作 1 秒钟的时间缓冲再执行其他程序
代码中的M tBt ue t o ri Hori o 和 B 已经在在整个程序文件的前面通过下面的
语句进行 了定 义:
st o t 37 电 i P^; / 机控制位,为 1 机转动,为 0 b Mo r = i tB 电 电机停止转动 st e i P 4 霍尔开关位,由0 1 B= ^; / b H or t l i u 到 表示开关闭 合,此时电机 通过这样的定义, o ri M tBt o 就代表了控制电 机的 8C01 925 的引脚 P. 3, 7
程序中 n ca i 和uh 在整个程 的u t r 序文件的最前面己 经通过下面的宏定义语
句 将其 定义为两种数 据类型 。 # en uhr i e ca caus nd r df e i ng h # en u t i e n i us n i df e n g d i n t
西南交通 大学硕士研究生 学位论文
4 7页
第4 章
智能型免水冲环保厕所 软件设计
在这个章节将讨论智能型免水冲环保厕所的软件的设计。我们知道,对 于智能型的机电 产品,硬件只能是实习功能的 物理保证,而只有软件才真正 地使 “ 肢发达”的电 四 气元件拥有一 个智能的 “ 脑 ” 所以从某种意义上来 头 。 说,软件是机电控制的核心。软件设计的好坏关系到功能的实现, 升级的简
延时程序的代码如下 :
西南交通 大学硕 士研究生学位论文
开始
4 9页
图4 . 1坐便器使用控制程序之 主程序 流程 图
西 南交通大 学硕士研 究生学位论文
5页 0
* / 通用的延时 j毫秒子程序* / vim ey i j o Dl (n ) d a u t
{
u hr cai ;
frjO- o(> ;- ; j) 、 { f ( ; 15+ ) 0< 2; + oi i r= i { ; } } )
接着, 通过红外检 测装置检测, 该入厕者是否离厕, 如果己 经离厕,则 继续检测其离厕时间 是否持续有 8 即确定其不会继续用厕。 秒, 如果持续有 8 秒, 则停止抽风机和飘香机,同时 起动 卷袋电机; 如果没有持续 8秒时间就 又在使用坐便器,则 抽风机和 飘香机继续运转, 卷袋电机也不会被起动。 最后,卷袋电 机转动了 一周后,重新回到最开始的地方,即重新检测是
否有人入厕 。 ”
4 .程序流程图及相关代码 .2 2
主程序
程序的 流程图体现了 程序设计者的一种软件功能实现的思路,同时又是
将程序要 实现的功能进行 “ 程语言化 ”的一个工具 。该 “ 编 坐便器 使用控制
程序”的主 程序流程图见下页图4 . . 1 该流 程图所示的主程序即为 “ 坐便器使用控制程序”的m i ) 数。该 a( 函 n 主 程序内明 显含有三个子程序, 一是延时程序, 二是卷袋电 机转动一周子程
E ; AR
m e y 00 a( 0) Dl 1 ; M tSQ o r ; o P 机转动, / / 手动则电 一周后停下
函数名Ieut) rp ( n r 0后面的ieut t nrp0 tr 表示该函数是外部中断。 的中断服务
程 序, 这样 C 1 5 编译器会 自动识别将该程序装载到外部 中断 0的入 口地址处。
其抗干 扰性能 的话 , 就要在程序设 计中再加入后面 的软件 抗干扰设计的 内容 .
43 数显驱动程序设计 .
数显驱动程序是装 载在 “ 数显驱动板” 上的 8C 01 9 25 上的,根据该电 路
控 制板的功能 ,该芯 片的软件设计应包括四个部分:
42 坐便器使用控制的程序设计 .
4 .程序设计前的简要分析 .1 2
本程序是应用在坐便器后部的 “ 坐便器使用控制板” 上的。其功能 是根 据检测到的 入厕者的人体行为而使控制对象作出 相应的 动作。 人体的 行为有, 入厕、使用、 离厕。被 控对象要作出的动作有, 卷袋电 机的 起停 , 抽风机和飘香机的 起停。 其中的卷袋电 机的 起停有两种情形,一 是在 自 动情形下,二是在手动情形 下;而抽风机和飘香机的起停只有一种情
易和 维修 维护是否方便等 。
4, 软件设计的主要内容 .
从功 能上来看 ,软 件的设计一是 功能实现所需 的程 序设计 ,二是软件抗
干扰设计和软件 自 自 设计。本系统共有两块电路控制板有 8C01 检 修复 9 25, 即有两种场合需要软件设计; 它们分别是 “ 坐便器使用控制板”和 “ 数显驱 动板” ,分别处理坐便器使用的智能控 制问题和数据的存储显示问题。 软 件的抗干扰设计是为了 预防和自 修复程序运行中产生的一些不可预知 问题, 如系统的 “ 死锁”和 “ 走飞” 等。另 外,在接受开关信号时的 “ 去抖 动”问 题在用软件实 现时,也可以 看作是一种软件的 抗干扰设计。
H ori就代表 了接受霍尔 开关信 号的引脚 P . ue t B 1o 4
开 始
/ 已经转动 了一 周,应 该停止
图4 . 袋电机 起停控 制子程序 的流程 图 2卷
西 南交通大 学硕士研 究生 学位论文 4 中断服务程序 .
5页 2
本 中断服 务程序 是针对 手动情形 ,控制器接 受手动 中断信号后 ( 的是 用