饮水机循环定时器的设计(编辑修改稿)内容摘要:
大学本科生毕业设计(论文) 13 在对 Flash 存储器编程期间,该引脚还用于输入编程脉冲( PROG )。 如果需要的话,通过对专用寄存器( SFR)区中 8EH 单元的 D0位置数,可禁止 ALE操作。 该位置数后,只有在执行一条 MOVX 或 MOVC 指令期间, ALE 才会被激活。 另外,该引脚会被微弱拉高,单片机执行外部程序时,该设定禁止 ALE 位无效。 PSEN (Pin29) 外部存储器读选通信号 当 AT89C51 由外部程序存储器取指令(或常数)时,每个机器周期两次 PSEN 有效(即输出两个脉冲)。 但在此期间内,每当访问外 部数据存储器时,这两次有效的 PSEN 信号将不出现。 EA /Vpp(Pin31) 外部访问允许端。 要使 CPU 只访问外部程序存储器(地址为0000HFFFFH),则 EA 端必须保持低电平(接到 GND 端)。 然而要注意的是,如果保密位 LB1 被编程,复位时在内部会锁存 EA 端的状态。 当 Flash 存储器编程期间,该引脚也用 于施加 12V 的编程允许电源 Vpp(如果选 用 12V 编程)。 /输出引脚 ~ 、 ~ 、 ~ 、 ~ PO口( Pin39~ Pin32): 8位双向 I/O口线,名称为 ~ P1口( Pin1~ Pin8): 8 位准双向 I/O 口线,名称为 ~ P2口( Pin21~ Pin28): 8位准双向 I/O 口线,名称为 ~ P3口( Pin10~ Pin17): 8位准双向 I/O 口线,名 称为 ~ P0 端口( ~ ) P0 是一个 8 位漏极开路型双向 I/O 端口。 作为输出口用时,每位能以吸收电流的方式驱动 8 个 TTL 输入,对端口写 1 时,又可作高阻抗输入端用。 在访问外部程序和数据存储器时,它是分时多路转换的地址(低 8 位) /数据总线,在访问期间激活了内部的上拉电阻。 在 Flash 编程时, P0 端口接收指令字节;而早验证程序时,则输出指令字节。 验证时,要求外接上拉电阻。 P1 端口( ~ ) P1 是一个带有内部上拉电阻的 8 位双向 I/O 端口。 P1 的输出缓冲器可驱动( 吸收或输出电流方式) 4 个 TTL 输入。 对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。 作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流( I)。 大学本科生毕业设计(论文) 14 在对 Flash 编程和程序验证时, P1 接收低 8 位地址。 P2端口( ~ ) P2 是一个带有内部上拉电阻的 8 位双向 I/O 端口。 P2 的输出缓冲器可驱动(吸收或输出电流方式) 4 个 TTL 输入。 对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。 P2 作输入口使用时,因为有内部的上拉电阻,那些被外部信号 拉低的引脚会输出 一个电流( I)。 在访问外部程序存储器和 16 位地址的外部数据存储器(如执行 MOVX @DPTR 指令)时, P2送出高 8 位地址。 在访问 8 位地址的外部数据存储器(如执行 MOVX @R1指令)时, P2口引脚上的内容(就是专用寄存器( SFR)区中 P2 寄存器的内容),在整个访问期间不会改变。 在对 Flash 编程和程序验证期间, P2 也接收高位地址和一些控制信号。 P3 端口( ~ ) P3 口是一组带有内部上拉电阻的 8位双向 I/O 口。 P3 口输出缓冲级可驱动 (吸收或输出电流 )4 个 TTL 逻辑门 电路。 对 P3 口写入“ 1”时,它们被内部上拉电阻拉高并可作为输入端口。 作输入端时,被外部拉低的 P3口将用上拉电阻输出电流 (I)。 P3口一除了作为一般的 I/0 口线外,更重要的用途是它的第二功能,如下表 2所示 : 端口引脚 第二功能 RXD TXD INT0 INT1 T0 T1 WR RD (表 1) P3 口还可用于接收一些 Flash 闪速存储器编程和程序校验的控制信号。 大学本科生毕业设计(论文) 15 第四章 饮水机定时器的软件设计 一 系统软件设计要求 该定时器主要是由 4 部分组成:按键电路、时钟电路、显示电路和继电器电路组成。 对于定时器的软件设计要求能够准确,不能因为外界的条件变化或是自身的某些原因而出现偏差:还要能够具有较高的灵活性,在编写程序的时候,采用自顶向下的分析方法,将整个软件系统划分城若干个子系统,可以针对每一个子程序编写程序。 如果需要修改现有功能或添加功能,只需要修改或添加相应的程序即可。 另外还要尽量做到设 置最少的控制端,能够实现最多的功能,做到既实用又方便。 二 软件设计所需实现的功能 ( 1)正常模式下数码管正确显示时间,显示时间的时和分。 ( 2)定时模式下能利用按键进行正常模式与定时模式能相互切换,能够利用按键组合设置 2 个定时时间。 ( 3)定时设置还可设置成单次定时和循环定时 2 个设置。 ( 4)正常显示时间时,若连续十分钟没有进行任何按键操作,则数码管会自动熄灭,而当按下任意按键时,数码管则会再次点亮并显示当前的时间。 三 定时器软件设计的流程图 大学本科生毕业设计(论文) 16 (图 10)软件设计流程图 程序如下: void ScanKey() { P1_0=1。 //端口赋 1,以保证正确扫描按键 if(P1_0==0 ) //有键按下 { delay(80)。 P1_0=1。 //端口赋 1,以保证正确扫描按键 判断按键是否响应 初始化时间设置 DS1302 初始化 读出 DS1302 中的时分秒 数码管显示 是否已设定时间 定时 2 是否显示 定时 1 是否显示 按键处理 负载电路断开 负载电 路导通 YES YES YES No No No No YES YES 开始 大学本科生毕业设计(论文) 17 if(P1_0==0) //去抖动 { wait()。 if(mark==1) {mark=0。 minute=min。 second=sec。 } else if(P1_0==1) {flag[0]=1。 minute=min。 second=sec。 } //按键值 else {flag[0]=2。 minute=min。 second=sec。 } } } P1_3=1。 //端口赋 1,以保证正确扫描按键 if(P1_3==0) //有键按下 { delay(80)。 P1_3=1。 if(P1_3==0) { P1_3=1。 while(P1_3==0)。 if(mark==1) {mark=0。 minute=min。 second=sec。 } else { flag[3]=!flag[3]。 LED=!LED。 minute=min。 second=sec。 } } } } 大学本科生毕业设计(论文) 18 void ScanKey1(void) { P1_1=1。 if(P1_1==0) { delay(80)。 P1_1=1。 if(P1_1==0) { wait()。 if(P1_1==1) {flag[1]=1。 minute=min。 second=sec。 } else{flag[1]=2。 minute=min。 second=sec。 } } } else flag[1]=0。 P1_2=1。 if(P1_2==0) { delay(80)。 P1_2=1。 if(P1_2==0) { wait()。 if(P1_2==1) {flag[2]=1。 minute=min。 second=sec。 } else {flag[2]=2。 minute=min。 second=sec。 } } 大学本科生毕业设计(论文) 19 } else flag[2]=0。 } ( 1)如图 10 其中初始化时间设置是对 DS1302 时钟芯片的初始化的前提,其设置办法是用两个按键分别调节时和分,将时和分调节到需要调节的当前时间后,将该数据写入 DS1302 中,此时, DS1302 中的内部时钟则以刚刚设定的数据为起点,然后再通过读操作把时间读出来并显示即可。 ( 2)按键处理包括了定时时间的设置和已经设置好了定时时间,按模式切换按键可以用来查看刚才设置好的时间。 ( 3)整个软件程序的编写时本课题的一个大工程,占毕业设计比例最大,花费时间最多的。 其结构比较复杂,需要仔细编写,思路要清晰,程序要编写 准确可行。 大学本科生毕业设计(论文) 20 四 上电后设置流程图 如下图 11是对定时器接通 +5V电源后通电时按键处理操作流程的说明。 (图 11) 程序如下: void DealWith() 结束 初始化时间 按键 2 控制时,按键 3控制分,调整完后按住按键 2 进行意识确认 启动时钟芯片显示正常的时间 按下按键 1 按键 2 控制数码管位移,按键 3 控制加 1 按住按键 3 一会,定时 1 设置完成 显示正常时间 按下按键 1 不马上松开 按键 2 控制数码管位移,按键 3 控制加 1 定时时间 2 设置 按住按键 3 一会,定时 1 设置完成 显示正常时间 开始 大学本科生毕业设计(论文) 21 { uchar i=0。 while(flag[0]==1) //设置定时时间 1 { ScanKey()。 ScanKey1()。 if(flag[0]==2) {flag[0]=0。 wait()。 //等待 } P0=sel[i]。 P2=table[timer1[i]]。 if(flag[1]==1) { P0=sel[++i]。 } if(i==4) i=0。 if(flag[2]==1) { timer1[i]=timer1[i]+1。 //闪烁位加 1 if(timer1[i]==10) timer1[i]=0。 P2=table[timer1[i]]。 } if(timer1[0]2) { timer1[0]=0。 } if(timer1[2]5) { timer1[2]=0。 } if(timer1[0]==2 amp。 amp。 timer1[1]4) { timer1[1]=0。 } if(flag[2]==2) { FF1=1。 while(moment) { display(timer1)。 } flag[0]=0。 } } while(flag[0]==2) //设置定时。饮水机循环定时器的设计(编辑修改稿)
相关推荐
式( 31) A 为材料的承载情况,是确定常数。 故: mmnpAd 335 40 331 根据功率分配,此轴需用功率很大可取 进行设计 mmnpAd 55900 332 根据功率分配可取 kw119 0 01 8 01 8 06 0 . 5p mmnpAd 4418 01111 0 333 根据轴的直径求它的扭矩为: mAT1 mNAnPmAT
加工、保存,管理人员可以在解决具体问题需要信息资料时,随时进行检索查询,了解整个快捷 酒店 管理系统的动态情况,进行动态管理,从而 有效的处理 快捷 酒店 的 管理工作,实现对 快捷 酒店 营业 信息管理的自动化,提高 酒店的工作 效率。 项目开发目的 快捷酒店的管理系统开发的目的是使快捷酒店的日常工作的管理模式从繁琐手工沈阳理工大学应用技术学院学士学位论文 5 记录转变成快捷的信息管理
09303 2024 294908 20xx 216165 2025 303962 20xx 223190 2026 313264 20xx 230385 2027 322825 2017 237756 2028 332654 2018 245311 2029 342761 2019 253056 2030 353158 2020 260999
他们收集的资料表明:第一,享受低保福利一年以上的人占被调查者的四成。 即 %的人享受时间在 1年以上; 18—59岁的成年劳动人口中也有 %的人享 受低保时间在 1年以上,存在福利依赖。 第二,找工作的积极性不高。 调查发现半数以上的低保对象主动寻找工作的积极性不高,从 18—59岁的低保对象中只有 %的人表示自己最近一个月主动找过工作,而 %的人表示没有找过。 第三,存在着对低保福利的依赖心理
理 饭店 资源 (菜品、人员) 不方便; 反映缓慢 和 容易 失去 商机。 功能要求 本系统侧重餐馆点菜收银功能的实现,同时 为了弥补上述 餐饮行业普遍存在的 缺陷,依据餐饮行列的特点,本系统需要实现以下目标: 操作简单方 便,界面简洁大方; 方便、快捷的开台点菜功能; 智能化定位菜品功能; 快速查看开台点菜的功能; 自动结账的功能; 日消费额汇总统计;
TTP Module,将页面指向其他页面以便执行代码 调试例程,在 编译时应该启动这些例程 身份验证技术 角色管理器,打开或者关闭 匿名识别,允许或拒绝 错误处理设置 SiteMap 文件数据,用于导航和菜单 Profile 数据,用于标识用户 唐 山 学 院 课 程 设 计 7 针对 Simplified Mail Transfer Protocol(SMTP