基于at89s52单片机的校园打铃系统设计内容摘要:
和 6 位的指令码 .本实验遥控器的起始位为 ”11”。 控制位为 ”0” 或 ”1”, 是随着按键交替出现的。 系统码为 ”00000”。 不同按键的指令码有所不同 . 图 323 SAA3010遥控器实物图 本 节 介绍了硬件的连接方法以及原理,并且包含了部分电路图,此电路已经试验证明可以 运行正常,可用。 其中应用了 红外遥控器 键盘来设定及更改时 间 , 节省了单片机的 I/O口 17 的使用,可以在这些 I/O口上扩展一些控制电路来用定时功能控制别的电器的定时。 红外遥控与单片机的连接如图 324 图 324 红外遥控与单片机的连接电路 系统总原理图 图 325 系统总原理图 18 第 4 章 系统软件设计 系统说明 本系统中利用红外遥控设置打铃时间点,通电显示 dalinlcd2402 Wele to used,并且伴随蜂鸣器鸣叫 20 秒。 按键说明如下 MUTE 主菜单键,按下会弹出系统的主菜单, 连续按 MUTE 键查看下一页帮助信息, 显 示 : MUTE: NEXT HELP PAGE SLEEP: SET THE REAL TIME 0099: CONTROLLER NO SET+/: UP/DOWN PR+/: ALARM+/1 F,T+/: ALARM+/5 STORE: SET ALARM /: JUMPING SEARCH: SET TO ? PP: OK! AV: EXIT/CLEAN! daling| DL2402 zhu cai dan 当按下 SLEEP 键时,会显示设置实时时间,可以按 09 键设置实时时间 , 并且可以按 /键跳转那一项设置,再按 AV 键退出,就可以显示实时时间了。 当按下 SET+/键时,会显示已设置的打铃时间点,同时也显示是第几组打铃时间点,可以继续按键查看,当要重新设置打铃时间点时,再按 STORE 键,就会跳到设置屏,然后就可以按 09 键设置打铃时间点了,再次按 AV 键就退出,就已经设置好了打铃时间点了。 也可以按同样的方法擦除或更改打铃时间点。 这里最大的创新就是能够设置。 (忽略值),采用忽略功能的定时器可以有多种样式的组合功能。 (。 表示忽略定时的项): 1:设置单一定时闹钟: 2020/4/14[二 ]12:00:00_00(只在 2020年 4月 14 日星期二 12时闹钟响一次。 注意: _00 是控制项 )。 2:设置每日定时闹钟: ?/?/?[?]12:00:00_00(在每天的 12 时闹钟响一次 )。 3:设置某月定时闹钟: ?/04/?[?]12:00:00_00(在 4 月的 12 时闹钟响一次 )。 4:设置星期 定时闹钟: ?/?/?[二 ]12: 00: 00_00(在每周二的 12 时闹钟响一次 )。 4. 2 系统总流程图 19 主程序 蜂鸣器蜂鸣一声 红外中断接收 LCM2402 DS1302 初始化 显示 dalinlcd2402 Wele to used 2402 初始化 关蜂鸣器 Menu=0 主显示菜单 Menu=1 调时菜单 Menu=2 定时查看菜单 1 2 3 显示时间 定时值校对处理 DT。 =0xff(有键按下) Y 09 按下 定时加减键 DT=。 2402 初始化 显示 Y N Menu=2 定时查看 2402 初始化 清空 DT 接下页 按 sleep 键 Menu=1 按 off 键 Menu=99 DT= 其他 DT=off 子流程图 A 子流程图 B N 子流程图 1 2 3 41 系统流程图 1 20 42 系统流程图 2 接上页 DT=0X00amp。 DT0X0A DT=0X4C N=0 N=1 X=DT N++ Y=DT N 显示 XY 清空 DT 显示“ OK” 清空 DT 子流程图 A 显示 DT!=OFF(有键按下 ) DT=? DT=2F ( PP 键) DT=1D (AV 键 ) 其他 DT=OFF Menu=0 Menu=1 2402 初始化 清空 DT 21 图 43 系统流程图 3 子流程图 B 显示定时时间 DT!=OFF DT=? 18 13 14 15 16 其他 Menu=1 Rom加 1 Rom 减 1 Rom 加 5 Rom 减 5 Menu=0 Rom24 且 rom100 Rom=0 Rom200 Rom=24 2402 初始化 清空 DT 22 图 44 系统流程图 4 子流程图 1 MENU=99(帮助菜单 ) DT=0X2F DT!=0XFF DT=0X1D i=0 menu=0 I++ i6 时 i=0 2402 初始 化 清空 DT 子流程图 2 Menu=11 显示时间 09 按下 SET+ SET AV 键 调用写时间程序 I++ i— i1 是 i=6 Menu=0(主界面) I=6 清屏刷新显示 延时 清空 DT 一体函数 23 图 45 系统流程图 5 系统主程序 系统 主程序 /******************************************************************************************** //系统主程序 // 菜单切换 //main() *********************************************************************************************/ void main (void){ beep_a()。 keyboard_int ()。 LCM2402_Init()。 //LCM2402 初始化 Init_1302()。 //检测时钟芯片是否未被初始化 CgramWrite()。 print(0x80, DalingLCD2402 )。 print(0xc2, Wele to used)。 DelayS(5000)。 LCM2402_Init()。 //LCM2402 初始化 Bell_Out=1。 子流程图 3 (定时菜单) menu=12 显示定时时间 09 按下 SET+ SET AV 键 调用定时时间程序 I++ i— i1 是 i=6 Menu=0(主界面) I=6 清屏刷新显示 延时 清空 DT 一体函数 24 while(1){//主线程 // //0 主显示 if(menu == 0){ RealTime_Display()。 //在第一行显示时间部分 print(0xc6, !AL)。 print2(0xca, )。 print(0xcb, Used: )。 print2(0xd3,alarm_con/16+0x30)。 print2(0xd4,alarm_con%16+0x30)。 print(0xd5,/25)。 search_time()。 //定时值校对 amp。 处理函数 if (DT != 0xff){ if(DT=0x00 amp。 amp。 DT 0x0a){ uint16 i。 uint8 n=0,x=0xff,y=0xff。 LCM2402_Init()。 //LCM2402 初始化 for(i=0。 i500。 i++){ print(0x83,{ Controller NO. })。 print(0xc3,{ )。 print(0xcd, })。 if(DT=0x00 amp。 amp。 DT 0x0a){ switch (n){ case 0: x = DT。 n++。 i=0。 break。 // case 1: y = DT。 n。 i=0。 break。 // } print2(0xcb,x%16+0x30)。 print2(0xcc,y%16+0x30)。 DelayS250()。 DT = 0xff。 } if(DT == 0x4C){ print(0xca,{OK})。 //ALARMing(i)。 //** 闹钟和无线遥控的键值处理 ** DelayS250()。 DT = 0xff。 } } } if(DT0x12 amp。 amp。 DT 0x17){//当按定时加减查看的几个键时会进入定时查看菜单 25 menu = 2。 } switch (DT){ case 0x1c: menu = 1。 break。 // case 0x2F: menu =99。 break。 // default:DT = 0xff。 break。 } LCM2402_Init()。 //LCM2402 初始化 DT = 0xff。 } } //1 是否调时。 if(menu == 1){ print(0x80,Set The Real Time ?)。 print(0xc5,PP: OK AV: Esc)。 if (DT != 0xff){ switch (DT){ case 0x1D: menu = 0。 break。 // case 0x1B: menu = 11。 break。 // default:DT = 0xff。 break。 } LCM2402_Init()。 //LCM2402 初始化 DT = 0xff。 } } //2 定时查看 if(menu == 2){ alarm_Display()。 //在第一行显示定时部分 print(0xc3,] NO.)。 print2(0xc8,0x30+rom/10)。 print2(0xc9,0x30+rom%10)。 print(0xce,STORE: Set)。 if (DT != 0xff){ switch (DT){ case 0x18: menu = 12。 break。 // case 0x13: rom++。 break。 // case 0x14: rom。 break。 // case 0x15: rom=rom+5。 break。 //。基于at89s52单片机的校园打铃系统设计
相关推荐
) 外围电路内装化 这也是单片机发展的主要方向。 随着集成度的不断提高,有可能把众多的各种处围功能器件集成在片内。 除了一般必须具有的 CPU、 ROM、 RAM、定时器 /计数器等以外,片内集成的部件还有模 /数转换器 、 DMA 控制 器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。 (8)串行扩展技术 在很长一段时间里
片机和 DS1302 的多功能万年历设计 19 19 5 硬件设计与实现 单片机主控制模块的设计: AT89S52 单片机为 40 引脚双列直插芯片 ,有四个 I/O 口 P0,P1,P2,P3, MCS51 单片机共有 4个 8 位的 I/O 口( P0、 P P P3),每一条 I/O 线都能独立地作输出或输入。 单片机的最小系统如下图所示 ,18 引脚和 19 引脚接时钟电路 ,XTAL1
建设单位(章)建设单位项目负责人: 日 期: 竣工报告建设单位:XX县水利局监理单位:XX建设服务有限公司施工单位:XX建筑工程公司单位工程:土建工程开工日期2000年11月30日完工日期2011年 月 日工程内容:清水池(反应池、沉淀池),职工宿舍、设备房。 工程完成情况:完成100%施工单位:(章) 申报日期:监理单位代表(章)日 期: 建设单位代表(章)日 期:
程序的设计思想,最后通过详细介绍模糊控制规则表的建立以及模糊控制算法应用程序的实现讲述了模糊控制算法的实现。 3 系统软件 的 实现 基于 AT89C52 的温控仪的软件设计 7 铂电阻测 温 系统 [7]的主程序流程图如图 2 所示。 图 2 铂电阻测 温 系统的主程序流程图 开 始 启动 A/D 赋初值 调数据采集子程序 调数字滤波子程序 调温标变换子程序 调显示子程序 误差 e 处理子程序
人工照明 asbuilt drawing 竣工图则 asconstructed drawing 竣工图则 asbestos abatement works 石棉拆除工程 asbestos cement 石棉水泥 asbestos gasket 石棉垫料 aseismic region 无震区 ash pit 排渣槽;灰坑 asphalt 沥青 asphalt distributor 沥青喷洒机