【苏金明】接口技术大作业报告.docxVIP

  • 67
  • 0
  • 约6.6千字
  • 约 16页
  • 2020-09-10 发布于福建
  • 举报
基于接口技术的电子时钟设计 姓名:苏金明 班级:计算机1306 学号日期:2015年12月-2016年1月 设计目的 设计一个24小时制的电子时钟。 设计内容 实现24小时制的电子时钟的走时 能够设置时分秒 具有设定闹钟的功能 具有日期显示和调节的功能 设计过程 思路 利用计数器8253芯片通过时间的分频,可以产生时钟的驱动信号。 利用8255并行接口可以时间信号的输入和输出。实现时间的设置和显示。 通过6个7端数码管进行时间的显示。 利用蜂鸣器可以进行闹钟的报警。 原理 计时单元有定时/计数器8253的通道0,工作方式3?来实现(产生固定频率的方波)。然后再利用软件计数,实现计时。8253定时时间到后产生中断信号,中断服务实现时、分、秒累加。 8255A口、B口进行输出,分别控制段码和位码,进行时间的动态扫描显示。C进行输入,输入时分秒的设置信号和1HZ的脉冲信号。设置时间通过开关产生单脉冲8255的PC0~PC3输入,设定按钮,时加1按钮,分加1按钮,秒加1按钮。 时间显示采用实验箱上的6个LED数码管分别显示时、分、秒,采用动态扫描方式实现。 流程 主控制流程 走时流程 电路图 基本算法 具体的软件代码严格安装流程图进行编程。 子程序及其作用如下: DEVIDE ;时分秒的六位数是通过内存单元中的H,M,S保存的。将时分秒的高低四位拆开,变为六位数。并且存贮相对应的7端数码管的驱动编码于RES单元。 ISK0 ;K0是进行时间设置的按钮。判断k0是否按下并弹起,按下一次为暂停并设置时间,按下两次则为恢复。所以,这里需要模2。 ISK1 ; ISK2 ; ISK3 ;分别进行时分秒的设置,基本原理和K0相同,但是需要注意的是,K1是以24为周期进行循环的,(由于采用的24小时制的计时方法),K2和K3是以60为周期进行循环的。所以要分别模24、60、60。 SHOW ;在数码管上显示时间。这里采用动态扫描的方法进行显示。具体的方法参见数字系统设计相关内容。通过DIVIDE子程序产生的RES单元的具体数字,驱动6个7段数码管进行示数。 SET ;进行时间的设置。先判断K0是否处于设置(暂停)状态,如果处于设置状态,则进行设置,否则继续监听。 BEGIN ;走时程序。如果K0被按下,则此程序结束,进入SET程序,否则持续走时。走时过程中,秒满60则分进1,分满60则时进1,时满24则归零。 源程序及注释 ;8255地址: 0800-0803H? ;8253地址: 0804-0807H DATE SEGMENT? BUF??DB?3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;不加点?? ???? RES?DB?6?DUP(?)??;定义时分秒的存储单元,用于显示????;时钟的时分秒,????? H?DB?00H??;时?? M?DB?00H??;分?? S?DB?00H??;秒? ? K0?DB?0??;暂停开关,标志位?? K1?DB?0??;调整时的开关,标志位?? K2?DB?0??;调整分钟的开关,标志位 K3 DB 0 ; 调整秒钟的开关,标志位 ????K??DB?0DFH?;循环移位?? X1?DB?00H??? ? DATE ENDS CODE???SEGMENT? ??? ASSUME?CS:CODE,DS:CODE? MAIN:?? MOV?AX,CS? ?? MOV?DS,AX?? ?? ;8253产生一秒的脉冲??? MOV?DX,080BH????;8253 MOV?AL,36h?????;0号定时器,方式3,二进制?? OUT?DX,AL?? CALL SETF ;设置频率为1HZ,根据实际情况而定,这里不进行实现 ? ;写8255工作方式控制字?? MOV?AL,89H????;A口B口方式0输出,C口输入 ???? MOV?DX,0803H? ??? OUT?DX,AL??????? GO:??? CALL?BEGIN????;走时?? CALL?SET??????;设置? JMP GO? ?? ;时钟显示的时间六位数拆开?? DEVIDE?PROC LEA?DI,RES???;获取偏移量 MOV?DX,00H? ;小时?? MOV?DL,H? ;获取时的值 ????MOV?CL,4?? SHR?DL,CL?????;通过移位获取时的高位?? MOV?BX,DX????? ? MOV?DL,BUF[BX]??;类似于查表获取对应数字数码管的值?? MOV?[DI],DL????;保存到RES对应单元?? ??? INC?DI?????

文档评论(0)

1亿VIP精品文档

相关文档