西安科技大学微机接口课设电子闹钟

上传人:枫** 文档编号:542335667 上传时间:2022-07-29 格式:DOC 页数:19 大小:402KB
返回 下载 相关 举报
西安科技大学微机接口课设电子闹钟_第1页
第1页 / 共19页
西安科技大学微机接口课设电子闹钟_第2页
第2页 / 共19页
西安科技大学微机接口课设电子闹钟_第3页
第3页 / 共19页
西安科技大学微机接口课设电子闹钟_第4页
第4页 / 共19页
西安科技大学微机接口课设电子闹钟_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《西安科技大学微机接口课设电子闹钟》由会员分享,可在线阅读,更多相关《西安科技大学微机接口课设电子闹钟(19页珍藏版)》请在金锄头文库上搜索。

1、西安科技大学微机原理与接口技术课程设计题 目: 闹钟设计 学 院: 计算机科学与技术学院 专业班级: 计科1004班 组 员: 郭雅心 韦清松 7月 8日目 录1闹钟设计要求与设计方案11.1.设计目的11.2.设计要求11.3.设计思路12闹钟设计的硬件设计22.1硬连线图:22.2四大模块:22.2.18253定时、计数器模块22.2.28255并行接口模块32.2.38259中断控制模块32.2.4显示模块33闹钟设计的软件设计43.1.主程序设计43.2.按键处理程序设计53.3.IRQ7中断设计63.4.七段数码管显示设计74闹钟设计的运行与调试85设计体会与小结86程序清单97参考

2、文献171 闹钟设计要求与设计方案1.1. 设计目的学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。1.2. 设计要求 设计一个钟表。在数码管上显示时间。 定时时间到,屏幕显示“get up!”字符串。 显示同时,流水灯闪烁,蜂鸣器响1秒钟。1.3. 设计思路本设计以唐都仪实验箱为载体,结合中断控制器8259A、并行接口8255、中断定时器8253、七段数码显示管L

3、ED及八个发光二极管的功能,用汇编语言编程实现了闹钟设计的实验。闹钟的总体设计原理是:首先利用定时芯片8253的定时作用定时计数,每10ms开一次中断即8253计数18432次调用时间显示程序,数码管加1,毫秒部分加到99后清0向前进1 秒部分到显示59S过后变为0,执行此程序后8255就会工作,把时间在四个数码管上显示时间。当数码管显示时间与拨动KK1开关设置的定时时间相同时。在程序里面设置了一个蜂鸣器标志变量和流水灯标志变量,当变量为0的时候,表明蜂鸣器没有响,当变量为1的时候,表明蜂鸣器正在发声。每次秒钟加一之前,检测蜂鸣器标志变量,当蜂鸣器变量为1时,就关闭蜂鸣器,并置蜂鸣器标志变量为

4、0。当秒钟加一之后,若当前设定时间与实时时间相同,就开启蜂鸣器,并置蜂鸣器标志变量为1。流水灯相似,只是多了几个判断,分别显示四个流水灯亮。在第一个流水灯亮时,屏幕显示“get up!”,流水灯闪烁,蜂鸣器响。 闹钟具体做法:时间显示程序要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,精确的时间延迟程序,第一二块数码管显示分位,第三四块显示秒位。数码管显示一段时间60s后再跳回到初始位置00s,再显示,由此循环下去。设置一个闹钟开关标志变量,用来调节闹钟有效性,当开关为1时,定时设置有效,为0则无效,定时时间为有效时的时间设置。2 闹钟设计的硬件设计2.1 硬连线图:GAT

5、E28253 CLK2OUT2IRQ78259 PB0PB78255 PA0PA1 PA2PA3PA4PA7PC4PC0PC1PC2 +5VX4X1X2X33个LED灯D0D2系统总线1.8432MHZ嗡鸣器SPK2*4键盘KK2图2-1硬线连接图2.2 四大模块:2.2.1 8253定时、计数器模块8253A芯片在本实验中用了计数器2,工作在方式0下,8253计数次数为 10ms*1.1.8432MHz,中断每10ms有一次,这样就可以通过控制发中断的次数来得到想要的时间。8253的CLK0接系统时钟1.8432MHZ,门控信号GATE2接+5V。采用内部7号中断。2.2.2 8255并行接

6、口模块8255的PA0PA3负责4位7段数码管的位选,以及2x4键盘扫描的列信号。PA4PA7负责4位流水灯的闪烁。PB0PB7负责4位7段数码管的段选。PC0PC1负责2x4键盘扫描的行信号。PC2负责接收开关信号。PC4负责蜂鸣器的发声。2.2.3 8259中断控制模块本次设计使用了8259中断控制器的IRQ7,通过IRQ7中断服务子程序设置DI来计数。每加到100即达到1秒,令秒加1,计数器清0以便重新计数。秒加到60,进位让分加1.选中数码管最右管让其显示分的个位,然后进位判断,数码管选择依次左移,显示整个时间时和分。定时模块该模块实现的功能是通过键盘设定一个定时时间,并将当前定时时间

7、显示在计算机终端上。当实时时钟每走一分的时候,就与设定的定时时间比较,当定时时间与实时时间相同时,则触发相应的闹钟程序:显示“Get Up!”字符串,流水灯闪烁,蜂鸣器响一分钟。因为,键盘既可以修改实时时间,也可以修改定时时间,所以,为了区分,我们使用了一个开关KK2,通过与C口一个引脚相连来选择修改模式。当开关断开的时候,键盘修改的是定时时间,当开关闭合的时候,键盘修改的是实时时间。2.2.4 显示模块该显示模块包括三个部分:实时时间显示、定时时间显示以及流水灯闪烁。实时时间是在主程序里面,通过数码管显示的。而定时时间是在每次修改的时候,显示在计算机终端上。流水灯是通过定时模块触发显示的,当

8、定时时间与实时时间相同时,置流水灯标志变量为1。在主程序里面循环检测标志变量,当变量为0的时候,流水灯不闪烁,当变量为1时,流水灯闪烁,闪烁完毕之后,置标志变量为0。3 闹钟设计的软件设计3.1. 主程序设计图3-1主程序流程图3.2. 按键处理程序设计图3-2按键处理程序流程图3.3. IRQ7中断设计图3-3 IRQ7中断流程图3.4. 七段数码管显示设计 图3-3七段数码管显示4 闹钟设计的运行与调试本电子时钟可以24小时循环计时,数码管显示时和分,能够校时,可以设定闹钟。操作方法如下:开机运行后,装入程序并运行,数码管显示00:00并开始走时。按动2*4小键盘可以设定闹钟时间,设定好的

9、闹钟时间显示在电脑终端。按下开关KK2并同时按动小键盘则是对时钟进行调时,8个小键盘分别对应时、分的十位以及个位的加和减。内存会将设定的时间存储并与时钟时间比较,当相等时,嗡鸣器响,流水灯亮、显示GET UP字符串。5 设计体会与小结为期两周的微机原理课设结束了,在这两周中,我通过查阅大量资料,亲自动手实验,对微机原理理论课有了实践的经验,巩固了微机原理的课程知识。并且锻炼了自己的动手能力。在这两周的课程设计时间里,课程设计的基本目的达到了。我们的课程设计题目是电子闹钟,用IRQ7子程序中给出计数次数100D。每达到100就实现秒的加1,秒加到60则让分加1,依次进位并判断自加范围并且选中数码

10、管显示。8255B负责将内存里的时位和分位值输出到数码管显示。KK2与8255C口PC2引脚相接,通过对定时标志位的置0置1来控制是修改实时时间还是设定闹钟时间。小键盘负责对时间加1和减1的操作。通过设定标志位变量来设定闹钟的响铃、流水灯的亮否。通过这次的课设,让我学会了很多。一次次的调试,一次次的修改让我变得更加坚强的同时,也使得我对微机接口以及汇编的很多知识得到了很好的掌握,同时软硬件的结合使用动手能力也有很大的提高。期间遇到很多问题,如数码管显示乱码,时钟只是显示却不走时,流水灯不亮等问题。经过老师的指导和同学的帮助让我客服了一个又一个问题。通过交流,我的思维得到了很大的发散。很多问题是

11、在交流后突然思考出来的。两周的实习虽然很累,但是收获也是非常明显。总之,这次课设让我受益匪浅。6 程序清单STACK SEGMENT STACK DW 64 DUP(?)STACK ENDSDATA SEGMENTTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;数码管可显示0到9CLCTIMEDB 4 DUP(?)ALARMTIME DB 4 DUP(?)MODEDB 00HMIAO DB 00HSPEAKER DB 01HMESSAGE DB Get Up!,0AH,0DH,00H;定义MESSAGE变量LEDFLAG DB 00HDATA

12、ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX, DATAMOV DS, AXMOV ES, AX;IRQ7PUSH DSMOV AX,0000HMOV DS,AXLEA AX, IRQ7;取偏移地址ADD AX,HMOV SI,003CH MOV SI,AX;偏移量放入中断向量表低位MOV AX,0000H;段地址MOV SI,003EH MOV SI,AX;段地址写入中断向量表高位IN AL,21H;读中断屏蔽寄存器AND AL,7FH;开7号中断OUT 21H,AL;写OCW1POP DSSTI;开中断MOV AL,0B0H;计数器2

13、,方式0,二进制OUT 43H,AL;8253控制字送寄存器MOV AX,18432D;设置初始值OUT 42H,AL;低位写入2号计数器MOV AL,AHOUT 42H,AL;高位写入MOV DI,00HLEA SI,CLCTIME;取CLCTIME变量的偏移地址MOV AX,00HMOV SI,AXMOV SI+1,AXMOV SI+2,AXMOV SI+3,AXLEA SI,ALARMTIME;取ALARMTIME变量的偏移地址MOV SI, AXMOV SI+1,AXMOV SI+2, AXMOV SI+3, AXMOV AL, 81H ;A O M0,B O M0,C0-C3 IOU

14、T 63H, AL;8255控制字MOV AL,00HOUT 61H,AL;B口对应数码管全灭OUT 62H,AL;C口输出0MOV AL,0F0H OUT 60H,AL;A口对应流水灯状态全灭MAIN:STI;开中断TEST LEDFLAG,01H;判断流水灯标志位状态JZ PRO0;LEDFLAG为0跳到PRO0MOV AH,0EFH;不为0时AH置11101111BSELECT0:IN AL,60H;A口地址给ALOR AL,0F0H;AL高4位置1AND AL,AH OUT 60H,AL;选中PA4对应的流水灯MOV CX,00A0HSELECT1:CALL DISPLAY;调用显示CALL CLEAR;调用清屏LOOP SELECT1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号