ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:44.27KB ,
资源ID:2887387      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2887387.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与接口技术课程方案设计书报告电子钟.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口技术课程方案设计书报告电子钟.docx

1、微机原理与接口技术课程方案设计书报告电子钟微机原理与接口技术课程设计报告电子钟实验学院:计算机学院指导教师:马学文一实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。要求设计一个定时显示装置,用实验仪左侧的六个LED数码管显示时间,时间显示格式为24小时制。分秒值为59分55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。0123456789GS用小键盘控制时钟的启停和时钟的设置,键的定义参见上图键值具体定义如下:G键(启停键)程序启动后,按下该键时钟启动;再次按下该键,暂停计时,显示当前时间。S键(设置键)按下S

2、键后,为时钟设置时、分、秒初始值。二 硬件连线键盘的控制、LED显示模块:采用74系列模块控制键盘的行信号Q_0、Q_1、Q_2、Q_3分别与开放的输入信号Q0、Q1、Q2、Q3相连,键盘的列信号P_0、P_1、P_2和开放的输出信号P0、P1、P2相连。74芯片的片选信号CS1接地址译码信号340H, CS2接地址译码信号360H。时间的精确定时:用8254定时器0产生25ms的中断信号;8254的片选CS连地址输出端320H,A0,A1分别连地址总线A2,A3,GATE0连+5V,CLK0连74LS393分频输出的47K输出端,OUT0连接到8259的IRQ0整点报时控制:由8255模块控

3、制;PC0直接与蜂鸣器相连,CS_4连接到实验仪中部的地址输出端CS_4中断处理模块:由8259控制8259的片选CS-1连地址输出300H, INT1连总线输入INTR,8259模块的INT-A连总线的INTA,8259的SP/1连+5V, 8259的IRQ0连接到8254的 OUT0。三、程序流程图主程序初始化各阶段寄存器及相关变量初始化8254、8259、8255芯片设置中断向量、开放8259中断屏蔽开放处理器中断扫描键盘 G键 S键其他键Stop值取反Stop置0FF调用键盘扫描程序设置当前时分秒值Stop置为0中断服务程序保护现场判断时间是否不小于59分55秒报时扫描键盘G键?调用启

4、停子程序S键?调用设置时间子程序COUNT加1COUNT=40?修改时间,调用ADDONE子程序COUNT清0显示时间,调用显示时间子程序结束中断(发EOI命令)恢复现场中断返回四、实验源代码.486p DATA SEGMENT AT 0 USE16 ORG 1000H HOUR DW ? MIN DW ? SEC DW ? SLL DB ? COUNT DB ?DATA ENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATAORG 1500H BEG:JMP START TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,

5、6FH,77H,7CH,00H 。0F的共阴极七段译码表 00H表示不显示任何东西KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H 。行列编码值 KEYVAL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH 。所有键的键面值 PORT1 EQU 340H 。数码管段选端口 PORT2 EQU 360H 。数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000H MOV CR0,EAX MOV AX,DATA MOV DS,AX MOV HOUR,0203H 。小时分

6、钟以及秒的初始化 MOV MIN,0509H MOV SEC,0502H LEA BX,TAB MOV SLL,0 。开始暂停标志位置0 MOV COUNT ,0 。中断次数计数初始值为0 。8255初始化,用于产生报时的脉冲 MOV EAX,80808080H。控制字 MOV DX,20CH 。后面的是4个8255的控制端口20C-20F (这个地址由实验台决定) OUT DX,EAX 。初始化8255,A、B、C口均为方式0输出 MOV DX,20BH MOV AL,0FFH OUT DX,AL 。8254初始化,用于产生周期为25ms的中断 MOV AL,00110110B 。计数器0,

7、先低后高,方式三,二进制 MOV DX,32cH 。写往控制口 OUT DX,AL MOV DX,320H 。计数器0写初值:47KHz*25ms MOV AX,1175 OUT DX,AL MOV AL,AH OUT DX,AL 。8259初始化 CLI :关中断 MOV DX,300H 。ICW1 MOV AL,00010011B OUT DX,AL MOV DX,308H 。ICW2 MOV AL,08H 。IR0中断类型号为08H OUT DX,AL MOV AL,00000001B 。ICW4 OUT DX,AL MOV AL,0FEH 。IR0开屏蔽 OUT DX,AL XOR A

8、X,AX 。装载中断向量 MOV ES,AX MOV DI,08H*4 MOV AX,OFFSET INTSR MOV ES:DI,AX MOV AX,SEG INTSR MOV ES:DI+2,AX STI 。开中断 JMP $ INTSR PROC 。中断服务程序 CMP MIN,0509H 。比较当前时间是否在59分55秒00分00秒之间 JL NEXT1 CMP SEC,0505H JL NEXT1 MOV DX,20BH MOV AL,00H 。蜂鸣器低有效,报时 OUT DX,AL JMP NEXT2NEXT1: CMP MIN,0 JNE NEXT3 CMP SEC,0 JNE

9、NEXT3 MOV DX,20BH MOV AL,00H 。蜂鸣器低有效,报时 OUT DX,AL JMP NEXT2NEXT3: MOV DX,20BH MOV AL,0FFH OUT DX,ALNEXT2: CMP COUNT,20 。用8255产生0.5ms的蜂鸣 JLE NEXT4 MOV DX,20BH MOV AL,0FFH OUT DX,ALNEXT4:CMP SLL,0 JZ LOB CALL TSTARTLOB: CALL KEYCHECK 。检测有无键按下 CMP AL,0AH 。启停键按下,调用启停程序 JNZ NEXT5 CALL TSTART JMP NEXT6NEX

10、T5: CMP AL,0BH 。设置键按下,调用设置时间程序 JNZ NEXT6 CALL SETTIMENEXT6: INC COUNT 。当COUNT直为40时,加一秒,之后置0 CMP COUNT,40 。25ms*40=1s JB NEXT7 CALL ADDONE MOV COUNT,0NEXT7: CALL SHOW 。显示时间 MOV AL,20H 。发EOI命令,结束中断 MOV DX,300H OUT DX,AL IRETINTSR ENDPTSTART PROC ;控制时间暂停和开始。 CMP SLL,0 JNZ R1 DEC SLLR1: CALL KEYCHECK CM

11、P AL,0AH JZ R2 CALL SHOW JMP R1R2 : INC SLL RETTSTART ENDPADDONE PROC 。加1秒子程序 MOV AX,SEC 。当前秒个位为9,加1后变0,十位加1 CMP AL,9 JE N1 INC AL MOV SEC,AX JMP N6N1: INC AH MOV AL,0 CMP AH,6 。十位加1后为6,则秒变为00,分钟个位加1 JE N2 MOV SEC,AX JMP N6N2: MOV AX,0 MOV SEC,AX MOV AX,MIN 。 当前分钟个位为9,加1后变0,十位加1 CMP AL,9 JE N3 INC A

12、L MOV MIN,AX JMP N6N3: INC AH MOV AL,0 CMP AH,6 。十位加1后为6,则分钟变为00,小时个位加1 JE N4 MOV MIN,AX JMP N6N4: MOV AX,0 MOV MIN,AX MOV AX,HOUR INC AL CMP AX,0204H 。小时加1后与24比,相等,则变为0 JE N5 MOV HOUR,AX JMP N6N5: MOV AX,0 MOV HOUR,AXN6: RETADDONE ENDPSETTIME PROC 。设置时间子程序 LEA BX,TAB MOV HOUR,0 MOV MIN,0 MOV SEC,0

13、NOP NOPL1: CALL KEYCHECK 。调用KEYCHECK,无键按下时,AL中值为0CH CALL DELAY CMP AL,0CH JNZ L2 JMP L1L2: CMP AL,02H JG L1 。设置小时十位时,将其他各位数码管灭掉及对应的七段译码表0CH MOV AH,AL MOV BYTE PTRHOUR+1,AL MOV BYTE PTRHOUR,0CH MOV MIN,0C0CH MOV SEC,0C0CHL3: CALL SHOW CALL KEYCHECK 。设置小时的个位 CALL DELAY CMP AL,0CH JZ L3 MOV AH,BYTE PTR

14、HOUR+1L4: CMP AX,0204H JGE L1 MOV HOUR,AXL5: CALL SHOW CALL KEYCHECK 。设置分钟的十位 CALL DELAY CMP AL,0CH JZ L5L6: CMP AL,06H JGE L1 MOV AH,AL MOV BYTE PTRMIN+1,ALL7: CALL SHOW CALL KEYCHECK 。设置分钟的个位 CALL DELAY CMP AL,0CH JZ L7 MOV AH,BYTE PTRMIN+1 L8: CMP AX,0509H JG L1 MOV MIN,AX L9: CALL SHOW CALL KEYCHECK 。设置秒的十位 CALL DELAY CMP AL,0CH JZ L9 L10: CMP

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1