学校作息时间控制系统设计(单片机应用)_第1页
学校作息时间控制系统设计(单片机应用)_第2页
学校作息时间控制系统设计(单片机应用)_第3页
学校作息时间控制系统设计(单片机应用)_第4页
学校作息时间控制系统设计(单片机应用)_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学校作息时间控制系统设计学校作息时间控制系统一、设计任务利用单片机设计1个作息时间控制系统。实现方式是当前时间与预先存在6116中的作息时间表进行比较,若时间相同则输出相应的控制码到8255的PA口上,因PA口连接不同的外部设备,所以控制码不同,外设的动作也相应不同,从而完成作息时间的控制。举个控制的例子:作息时间表中8点00分00秒时,控制码为0FEH,当前时间如果达到8点00分00秒,则单片机给8255PA口输出经取反后的控制码,即01H,此时PA.0为高电平,与它相连的电铃接通,产生上课铃声;8点00分10秒时,单片机查得控制码为0FDH,取反后得02H,数据送到8255PA口时,PA.

2、1口为高电平,控制电铃的关闭。二、设计要求1、24小时制时钟的设计:利用单片机的定时器产生工作方式1产生50ms的定时器中断,中断子程序判断满20次即产生1秒信号,1秒信号累加到秒寄存器,若秒寄存器超过60则进位到分寄存器,若分寄存器超过60秒则进位到小时寄存器,若小时寄存器超过24则将秒、分、时寄存去分别清零,以上过程即可完成24小时计时时钟。2、时间的比较设计:先将作息时间表初始化到6116外部数据存储器中,然后采用循环方式,每循环一次就完成当前时间与1个作息时间的判断。3、控制码输出设计:利用8255可编程并行口芯片,令PA口为工作方式0输出。PA口连接电铃,广播等外设。只要给PA口相应

3、的控制码,就能控制外设的动作三、 芯片介绍及接线方式1、芯片简介1、 74LS373。74LS373是带有三态门的八D锁存器,当使能信号线OE为低电平时,三态门处于导通状态,允许1Q-8Q输出到OUT1-OUT8,当OE端为高电平时,输出三态门断开,输出线OUT1-OUT8处于浮空状态。G称为数据打入线,当74LS373用作地址锁存器时,首先应使三态门的使能信号OE为低电平,这时,当G端输入端为高电平时,锁存器输出(1Q-8Q)状态和输入端(1D-8D)状态相同;当G端从高电平返回到低电平(下降沿)时,输入端(1D-8D)的数据锁入1Q-8Q的八位锁存器中。当用74LS373作为地址锁存器时,

4、它们的G端可直接与单片机的锁存控制信号端ALE相连,在ALE下降沿进行地址锁存。2、 74LS138。3-8译码器. 当一个选通端(E3)为高电平,另两个选通端(E1)和/(E2)为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出3、 74LS241,8同相输出三态缓冲器/线驱动器。本方案用于段码驱动。4、 ULN2803。位码驱动。8个NPN达林顿晶体管,连接在阵列非常适合逻辑接口电平数字电路(例如TTL,CMOS或PMOS上/ NMOS)和较高的电流/电压,如电灯,电磁阀,继电器,打印锤或其他类似的负载,广泛的使用范围:计算机,工业和消费应用。所有设备功能由集电

5、极输出和钳位二极管瞬态抑制。 该ULN2803是专为符合标准TTL。该电路为反向输出型,即输入低电平电压,输出端才能导通工作。引脚如下:1-8引脚:输入端 ;11-18引脚:输出端;9引脚:地端;10引脚:电源 集电极最大输出电流为500mA,足够满足驱动8位led的动态显示(设一段数码管5mA,8段数码管就是40mA,动态驱动时电流大约是40mA*8=320mA)Rating 参数Symbol 符号Value 数值Unit 单位 Outputvoltage 输出电压VO 50 V Inputvoltage (Except ULN2801) 输入电压(除ULN2801 )VI 30 V Col

6、lector Current Continuous  集电极电流-连续IC 500 mA Base Current Continuous 基极电流-连续IB 25 mA Operating Ambient Temperature Range 操作环境温度范围TA 0 to +70 Storage Temperature Range 储存温度范围Tstg 55 to +150 Junction Temperature 结温TJ 125 5、 6116。6116是2K*8位静态随机存储器芯片,采用CMOS工艺制造,单一+5V供电,额定功耗160mW,典型存取时间200ns,24线双列直插

7、式封装。A0-A10为地址线;CE是片选线;OE是读允许线;WE是写允许线控制逻辑如下表所示:CEOEWE方式D0-D7H*未选中高阻LLH读DoutLHL写DinLLL写Din8、8255。8255共有40个引脚,采用双列直插式封装,各引脚功能如下: D0-D7:三态双向数据线,与单片机数据总线连接,用来传送数据信息。CS:片选信号线,低电平有效,表示芯片被选中。RD:读出信号线,低电平有效,控制数据的读出。WR:写入信号线,低电平有效,控制数据的写入。Vcc:+5V电源。PA0-PA7:A口输入/输出线。PB0-PB7:B口输入/输出线。PC0-PC7:C口输入/输出线。RESET:复位信

8、号线。A1、A0:地址线,用来选择8255内部端口。GND:地线。8255内部包括三个并行数据输入/输出端口,两个工作方式控制电路,一个读/写控制逻辑电路和8位总线缓冲器。各部分功能概括如下:(1)端口A、B、CA口:是一个8位数据输出锁存器/缓冲器和一个8位数据输入锁存器。B口:是一个8位数据输入/输出锁存器/缓冲器和一个8位数据输入锁存器。C口:是一个8位数据输出锁存器/缓冲器和一个8位数据输入缓冲器(输入不锁存)。通常A口、B口作为数据输入/输出端口。C口作为控制/状态信息端口,它在“方式控制字”的控制下可分为两个4位端口,每个端口有一个4位锁存器,分别与A口、B口配合使用,作为控制信号

9、输出或状态信息输入端口。(2)工作方式控制电路工作方式控制电路有两个,一个是A组控制电路,另一个是B组控制电路。这两组控制电路具有一个控制命令寄存器,用来接受中央处理器发来的控制字,以决定两组端口的工作方式,也可根据控制字的要求对C口按位清“0”或者按位置“1”。A组控制电路用来控制A口和C口的上半部分(PC7-PC4)。B组控制电路用来控制B口和C口的下半部分(PC3-PC0)。(3)总线数据缓冲器总线数据缓冲器是一个三态双向8位缓冲器,作为8255与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。(4)读/写控制逻辑电路读/写控制逻辑电路接受CPU发来的控制信号RD、WR

10、、RESET、地址信号A1-A0等,然后根据控制信号的要求,将端口数据读出,发往CPU,或者将CPU送来的数据写入端口。控制逻辑为:A1A0RDWRCS工作状态00010A口数据->数据总线01010B口数据->数据总线10010C口数据->数据总线00100总线数据->A口01100总线数据->B口10100总线数据->C口11100总线数据->控制字寄存器*1数据总线->三态11010非法状态*110数据总线->三态工作方式控制字:D0端口C(下半部)  1:输入  0:输出B组D1端口B  1:输入

11、60; 0:输出D2方式选择  0:方式0  1:方式1D3端口C(上半部)  1:输入  0:输出A组D4端口A  1:输入  0:输出D5D6方式选择 00:方式0  10:方式1  *1:方式2D7置方式标志  1:有效C口按位操作控制字:D0位:置位/复位  1:置位  0:复位D3D2D1000001010011100101110111COC1C2C3C4C5C6C7D4无关D5D6D7位:置位/复位标志  0:有效四、 设计过程1、 根据设计任务和要求,选用合适的

12、芯片并连接电路。本课程设计用到的芯片有(括号中为主要作用):80C51(MCU),8255(可编程并行接口芯片),74LS373(锁存器),74LS138(3-8译码器),74LS241(三态输出驱动),ULN2803(达林顿结构晶体管阵列).2、 根据画好的电路图再设计程序流程图3、 根据程序流程图用汇编语言编写程序4、 利用Labcenter公司的Proteus软件仿真并通过软件及硬件的调试2、程序流程图初始化程序定义内部RAM初始化作息时间表主程序:时间比较子程序调用键按下子程序调用键扫描子程序输出控制码时、分、秒均相等YN调用显示子程序循环往复50ms中断子程序 时间比较子程序 保护现

13、场及断点取当前时间加一60秒中断20次取作息时间表时间 N60分加一Y比较是否相等 NN 加一 Y24小时输出控制码恢复现场及断点 N Y返回相应位清0 Y返回 Q键按下子程序 键扫描子程序显示子程序指向显示ram第一位行扫描读P1口输出段码读键值P1=0FHN输出位码键值分析返回Y返回延时子程序循环满8次 N Y返回3、程序清单 ORG 0000HMSTART: AJMP MAINORG 000BHAJMP WATCHORG 0013HLJMP INTT0ORG 0100HMAIN: MOV SP,#44HMOV 21H,#77H ;调时间时从第8位开始MOV 24H,#00HMOV 25H

14、,#00HMOV 26H,#00H ;时分秒存储MOV DPTR,#2003HMOV A,#10000000B;A口输出B口输出c口输出MOVX DPTR,AMOV DPTR,#2000H ;段控MOV A,#0C0HMOVX DPTR,AMOV DPTR,#2001HMOV A,#07FH ;位控MOVX DPTR,AMOV DPTR,#4003H ;8255iiMOV A,#10000000BMOVX DPTR,AMOV DPTR,#4000HMOV A,#00H MOVX DPTR,A MOV R0,#50HMOV R1,#113D;存8*14+1个字节的数据MOV R2,#00HMOV

15、 30H,#50HMOV 31H,#00HMM:MOV DPTR,#TABTIMEMOV A,R2MOVC A,A+DPTR;把内存数据存到外存MOV DPL,30HMOV DPH,31HMOVX DPTR,AINC DPTRMOV 30H, DPLMOV 31H ,DPHINC R2DJNZ R1,MM ;初始化作息时间表MOV DPTR,#00C0HMOVX A,DPTRMOV R0,#70HMOV R7,#08HCLR F0MOV P1,#0F0HMA1:MOV A,#00HMOV R0,AINC R0DJNZ R7,MA1 ;清0MOV R1,#75HMOV R1,#0AHMOV R1

16、,#72HMOV R1,#0AH MOV TMOD,#01HMOV TL0,#0DCH ;0DCHMOV TH0,#0BH;0BHMOV TCON,#00010000B ; 定时开始MOV IE,#10000010B ;开中断MOV 40H,#10H ;50ms*20=1sKEY:NOP ;主循环LOOP1:MOV DPTR,#50HMOV 2DH,DPLMOV 2EH,DPHLOOP2:MOV DPL,2DHMOV DPH,2EH;存地址MOVX A,DPTR;存控制码MOV 2AH,A;判断开始时存控制码MOV R3,#03HMOV R4,#00HMOV R1,#24HMOV 2BH,#0

17、0HLOOP3:INC DPTRMOVX A,DPTR;读作息时间表小时字节MOV 7BH,AMOV A,R1;CJNE A,7BH,LOOP4;不相等则直接下一数据块SETB 2BH.2LOOP4: INC R1INC DPTR;指向分MOVX A,DPTR;读作息分MOV 7BH,AMOV A,R1;CJNE A,7BH,LOOP5;SETB 2BH.1LOOP5: INC R1INC DPTR;指向秒MOVX A,DPTR;读作息秒MOV 7BH,AMOV A,R1CJNE A,7BH,LOOP6SETB 2BH.0LOOP6:INC DPTRMOV 2DH,DPLMOV 2EH,DPH

18、MOVX A,DPTRJZ LOOP8 ;到数据区边缘,则重新开始LOOP7:ACALL KSACALL SHOW0 ACALL KSJB F0, KEY1; 有键按下,调用lk1子程序AJMP NEXT1KEY1:ACALL LK1NEXT1:ACALL SHOW0MOV A,2BHCJNE A,#07H,LOOP2;不等则LOOP2MOV DPTR,#4000HMOV A,2AHCPL AMOVX DPTR,ALOOP8:AJMP KEYLK1:ACALL SHOW0 ;消除抖动ACALL KSJB F0,LK2; 有键按下RETLK2:MOV R6,#7FH;行赋值MOV R7,#00H

19、; 第3行LK3: MOV A,R6MOV P1,A ;R6 TO P1NOPMOV A,P1JB ACC.3, LONEMOV A,#00HAJMP LKPLONE:JB ACC.2 ,LTWO ;第3列MOV A,#4HAJMP LKPLTWO: JB ACC.1 ,LTREE ;第2列MOV A,#8HAJMP LKPLTREE:JB ACC.0 ,NEXT ;第1列MOV A,#0CH ;算键码LKP:ADD A,R7;保护键码PUSH ACC ;去抖动LK4:ACALL SHOW0 ;按键松开ACALL SHOW0ACALL KSJB F0, LK4POP ACC;INC AMOV

20、20H,A ;键码送20hMOV A,21H ;#77HMOV R0,AMOV A,20HMOV R0,A ;显示完成MOV A,21HDEC AMOV 21H,ASUBB A,#70H ;若下一位为0 JZ LK8LK6:RETLK8:MOV 21H,#77HSJMP LK6NEXT:INC R7MOV A,R6JNB ACC.4,KNDRR AMOV R6,AAJMP LK3KND:RETINTT0:RETIWATCH:MOV TL0,#0DCH ;0DCHMOV TH0,#0BH ;0BHPUSH PSW ;保护现场和断点PUSH ACCPUSH 00HPUSH 01HPUSH 02HP

21、USH 03HPUSH 04HPUSH 05HPUSH 06HPUSH 07HMOV A,40HDEC AMOV 40H,A ; 40H-1JNZ REVIVE ;如过A不为0则跳出中断MOV 40H,#10HMOV R0,#71HACALL INCR0 ;秒+1MOV A,R4XRL A,#60HJNZ REVIVE ;JUMP ACALL CLR0MOV R0,#74HACALL INCR0;分+1MOV A,R4XRL A,#60HJNZ REVIVEACALL CLR0MOV R0,#77HACALL INCR0;小时+1 MOV A,R4 XRL A,#24HJNZ REVIVEAC

22、ALL CLR0 REVIVE:POP 07H POP 06H POP 05HPOP 04HPOP 03HPOP 02HPOP 01HPOP 00H POP ACC POP PSWRETIINCR0: MOV A,R0;+1子程序 DEC R0SWAP AORL A,R0ADD A,#01H;A+1DA AMOV R4,AANL A,#0FHMOV R0,AMOV A,R4INC R0ANL A,#0F0HSWAP AMOV R0,ARETCLR0: CLR A ;清0子程序 MOV R0,ADEC R0MOV R0,ARETKS: CLR F0 ;判断是否有按键子程序MOV P1,#0F0H

23、MOV A,P1CJNE A,#0F0H,KS1RETKS1: SETB F0RETSHOW0:MOV R0,#71H ;显示子程序MOV A,R0DEC R0SWAP A ;十位存高字节ORL A,R0;个位存低字节DA AMOV 26H,A;秒高位+低位MOV R0,#74HMOV A,R0DEC R0SWAP AORL A,R0DA AMOV 25H,A ;分高位+低位MOV R0,#77HMOV A,R0DEC R0SWAP AORL A,R0DA AMOV 24H,A;时高位+低位MOV R0,#70HMOV R3,#7fHMOV R1,#72H ;赋值点MOV R1,#0AHMOV

24、 R1,#75HMOV R1,#0AH ;赋值点MOV A,R3SHOW1: MOV DPTR,#2001H ;位控MOVX DPTR,AMOV DPTR,#TABMOV A,R0MOVC A,A+DPTR MOV DPTR,#2000HMOVX DPTR,A ;段控ACALL DELAY0INC R0MOV A,R3JNB ACC.0,LD0RR AMOV R3,AAJMP SHOW1LD0:RETDELAY0: MOV R4,#09H ;延时子程序DLOOP1: MOV R5,#0AHDLOOP2: NOPNOPDJNZ R5,DLOOP2DJNZ R4,DLOOP1RETTAB:DB 0

25、C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,7FH,0A1H,89H,0F6H,0EFH,8CH ;ANODE; 0, 1, 2, 3, 4 , 5,6, 7, 8, 9 , ., /DIV,*MUL,= , -, +TABTIME:DB 0FEH,08H,00H,00H,0FDH,08H,00H,10H ;1 作息时间表DB 0FEH,08H,50H,00H,0FDH,08H,50H,10H ;2DB 0FEH,09H,00H,00H,0FDH,09H,00H,10H ;3DB 0FEH,09H,50H,00H,0FDH,09H,50H,10H ;4DB 07EH,09H,52H,00H,0FDH,10H,05H,00H ;5DB 0FEH,10H,10H,00H,0FDH,10H,10H,10H ;6DB 0FEH,11H,00H,00H,0FDH,11H,00H,10H ;7DB 0FEH,11H,10H,00H,0FDH,11H,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论