微机原理与接口技术课设

上传人:xzh****18 文档编号:35520882 上传时间:2018-03-16 格式:DOC 页数:15 大小:143KB
返回 下载 相关 举报
微机原理与接口技术课设_第1页
第1页 / 共15页
微机原理与接口技术课设_第2页
第2页 / 共15页
微机原理与接口技术课设_第3页
第3页 / 共15页
微机原理与接口技术课设_第4页
第4页 / 共15页
微机原理与接口技术课设_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《微机原理与接口技术课设》由会员分享,可在线阅读,更多相关《微机原理与接口技术课设(15页珍藏版)》请在金锄头文库上搜索。

1、1微机原理与接口技术微机原理与接口技术课程设计报告课程设计报告电子钟实验姓姓 名:名: 学学 号:号:班班 级:级:指导老师:指导老师:2013 年 1 月2一课程设计题目课程设计题目电电 子子 钟钟 实实 验验实验目的实验目的掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法; 掌握实时处理程序的编制和调试方法。实验要求实验要求设计一个定时显示装置,用实验仪左侧的六个 LED 数码管显示时间, 时间显示格式为 24 小时制。分秒值为 59 分 55 秒时开始报时,每秒钟蜂鸣器鸣 叫一声,到整点报时停止。用小键盘控制时钟的启停和时钟的设置,键的 定 义参见右图。键值具体定义如下:

2、G 键(启停键)程序启动后,按下该键时时钟启动, 再次按下该键,暂停计时,显示当前时间。 S 键(设置键)按下 S 键后,为时钟设置时、分、秒 初始值。实验设备实验设备74 系列模块;8254 模块;8259 模块;8255 模块。实验提示实验提示硬件连线硬件连线 键盘的控制、键盘的控制、LEDLED 显示模块:采用显示模块:采用 7474 系列模块控制系列模块控制 键盘的行信号 Q_0、Q_1、Q_2、Q_3 分别与开放的输入信号 Q0、Q1、Q2、Q3 相连,键盘的列信号 P_0、P_1、P_2 和开放的 输出信号 P0、P1、P2 相连。74 芯片的片选信号 CS1 接地址译码 信号 3

3、40H, CS2 接地址译码信号 360H。 LED 显示模块采用 8255 控制时:8255 片选 CS_1、2、3、4 连接到实验仪中部的地址输出端 CS_1、2、3、4 时间的精确定时:用时间的精确定时:用 82548254 定时器定时器 0 0 产生产生 25ms25ms 的中断信号的中断信号;0123456789GS38254 的片选 CS 连地址输出端 320H,A0,A1 分别连地址总线 A2,A3,GATE0 连+5V,CLK0 连 74LS393 分频输出的 47K 输出端, OUT0 连接到 8259 的 IRQ0 整点报时控制:由整点报时控制:由 82558255 模块控

4、制;模块控制;PC0 直接与蜂鸣器相连 中断处理模块:由中断处理模块:由 82598259 控制控制 8259 的片选 CS-1 连地址输出 300H, INT1 连总线输入 INTR,8259 模块的 INT-A 连总线的 INTA,8259 的 SP/1 连+5V, 8259 的 IRQ0 连 接到 8254 的 OUT0。(2 2)软件编程)软件编程 要稳定的看到数码管上显示的时分秒值,必须对数码管动态刷新。本 实验要求用中断方式每隔 25ms 刷新一次数码管的显示结果。8254 的 0 号计数 器信号的周期设为 25ms,及时和刷新数码管的显示。程序中设置一个启停标 志 stop,当

5、stop 值为 0 时启动时钟,每中断 40 次更新显示时间;stop 值为 0FFH 时,暂停时钟。当时间的分秒值为 59 分 55 秒时,用 8255 控制 8254 的 GATE1,设为 1,启动定时器 1 工作,报时。时间到整点后,GATE1 清 0.二课程设计流程课程设计流程主程序主程序初始化各段寄存器及相关变量初始化各段寄存器及相关变量初始化初始化 8255、8254、8259 芯片芯片设置中断向量,开放设置中断向量,开放 8259 中断屏蔽中断屏蔽开放处理器中断开放处理器中断4中断服务程序中断服务程序保护现场保护现场判断时间是否不小于判断时间是否不小于 59 分分 55 秒秒报时

6、报时扫描键盘扫描键盘G 键?键?调用启停子程序调用启停子程序S 键?键?调用设置时间子程序调用设置时间子程序COUNT 加加 1COUNT=40?修改时间,调用修改时间,调用 ADDONE 子程序子程序COUNT 清清 0显示时间,调用显示时间子程序显示时间,调用显示时间子程序结束中断(发结束中断(发 EOI 命令)命令)恢复现场恢复现场中断返回中断返回三源程序源程序.486p DATA SEGMENT AT 0 USE16 ORG 1000H HOUR DW ?YNYNYYN5MIN DW ? SEC DW ? SLL DB ? COUNT DB ? DATA ENDS CODE SEGME

7、NT USE16 ASSUME CS:CODE,DS:DATA ORG 1500H BEG:JMPSTART TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,00H ;0F 的共阴极七段译码表 00H 表示不显示任何东西 ;若为 8255 控制数码管则段码值对应为; ;0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,00H KEYCOD DB 0EEH,0DEH,0BEH,0EDH,0DDH,0BDH,0EBH,0DBH,0BBH,0E7H,0D7H,0B7H ;行列编码值

8、KEYVAL DB 0,1,2,3,4,5,6,7,8,9,0AH,0BH ;所有键的键面值 PORT1EQU340H ;数码管段选端口PORT2EQU360H ;数码管位选端口,键盘矩阵的行列端口 START: MOVEAX,60000000H MOV CR0,EAX MOV AX,DATA MOV DS,AX MOV HOUR,0203H ;小时分钟以及秒的初始化 MOV MIN,0509H MOV SEC,0502HLEA BX,TAB MOV COUNT ,0 ;中断次数计数初始值为 0;8255 初始化 ,用于产生报时的脉冲 mov eax,80808080h;控制字mov dx,2

9、0ch ;后面的是 4 个 8255 的控制端口 20c-20f (这个地址由实验台决 定)out dx,eax ;初始化 8255,A、B、C 口均为方式 0 输出MOV DX,20BHMOV AL,0FFHOUT DX,AL ;8254 初始化,用于产生周期为 25ms 的中断 MOV AL,00110110B ;计数器 0,先低后高,方式三,二进 制 MOV DX,32cH ;写往控制口 OUT DX,AL MOV DX,320H ;计数器 0 写初值:47KHz*25ms MOV AX,1175 OUT DX,AL6MOV AL,AH OUT DX,AL;8259 初始化CLI :关中

10、断 MOV DX,300H ;ICW1 MOV AL,00010011B OUT DX,ALMOV DX,308H ;ICW2 MOV AL,08H ;IR0 中断类型号为 08HOUT DX,ALMOV AL,00000001B ;ICW4OUT DX,ALMOV AL,0FEH ;IR0 开屏蔽OUT DX,ALXOR AX,AX ;装载中断向量MOV ES,AXMOV DI,08H*4MOV AX,OFFSET INTSRMOV ES:DI,AXMOV AX,SEG INTSRMOV ES:DI+2,AXSTI ;开中断JMP $INTSR PROC ;中断服务程序CMP MIN,050

11、9H ;比较当前时间是否在 59 分 55 秒00 分 00 秒之 间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2 NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXTT7NEXT3: MOV DX,20BH MOV AL,0FFHOUT DX,AL NEXTT: CMP COUNT,30 ;使最后一秒长时蜂鸣JLE NEXT4MOV DX,20BHM

12、OV AL,0FFHOUT DX,AL NEXT2: CMP COUNT,10 ;用 8255 产生 0.5ms 的蜂鸣JLE NEXT4MOV DX,20BHMOV AL,0FFHOUT DX,AL NEXT4: CALL KEYCHECK ;检测有无键按下CMP AL,0AH ;启停键按下,调用启停程序JNZ NEXT5CALL TSTARTJMP NEXT6 NEXT5: CMP AL,0BH ;设置键按下,调用设置时间程序JNZ NEXT6CALL SETTIME NEXT6: INC COUNT ;当 COUNT 直为 40 时,加一秒,之后置 0CMP COUNT,40 ;25ms

13、*40=1sJB NEXT7CALL ADDONEMOV COUNT,0 NEXT7: CALL SHOW ;显示时间MOV AL,20H ;发 EOI 命令,结束中断MOV DX,300HOUT DX,ALIRET INTSR ENDPTSTART PROC ;控制时间暂停和开始。CALL DELAY R1: CALL KEYCHECKCMP AL,0AHJZ R2CALL SHOWJMP R1 R2 : RET TSTART ENDPADDONE PROC ;加 1 秒子程序8MOV AX,SEC ;当前秒个位为 9,加 1 后变 0,十位加 1CMP AL,9JE N1INC ALMOV

14、 SEC,AXJMP N6 N1: INC AHMOV AL,0 CMP AH,6 ;十位加 1 后为 6,则秒变为 00,分钟个位加 1JE N2MOV SEC,AXJMP N6 N2: MOV AX,0MOV SEC,AXMOV AX,MIN ; 当前分钟个位为 9,加 1 后变 0,十位加 1CMP AL,9JE N3INC ALMOV MIN,AXJMP N6 N3: INC AHMOV AL,0CMP AH,6 ;十位加 1 后为 6,则分钟变为 00,小时个位加 1JE N4MOV MIN,AXJMP N6 N4: MOV AX,0MOV MIN,AXMOV AX,HOURINC ALCMP AL,0AHJNZ NL

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 计算机原理

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