微机接口课程设计--电子钟实验 网络专业

上传人:第*** 文档编号:33544617 上传时间:2018-02-15 格式:DOC 页数:20 大小:126KB
返回 下载 相关 举报
微机接口课程设计--电子钟实验 网络专业_第1页
第1页 / 共20页
微机接口课程设计--电子钟实验 网络专业_第2页
第2页 / 共20页
微机接口课程设计--电子钟实验 网络专业_第3页
第3页 / 共20页
微机接口课程设计--电子钟实验 网络专业_第4页
第4页 / 共20页
微机接口课程设计--电子钟实验 网络专业_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微机接口课程设计--电子钟实验 网络专业》由会员分享,可在线阅读,更多相关《微机接口课程设计--电子钟实验 网络专业(20页珍藏版)》请在金锄头文库上搜索。

1、微机原理与接口技术-电子钟实验2010 年 1 月 6 日 键盘实验一 实验任务及要求任务:1、掌握综合使用基本输入输出设备、通用接口芯片、专用接口芯片的方法;2、掌握实时处理程序的编制和调试方法。要求设计一个定时显示装置,用实验仪左侧的六个 LED 数码管显示时间,时间显示格式为 24 小时制。分秒值为 59 分 55秒时开始报时,每秒钟蜂鸣器鸣叫一声,到整点报时停止。用小键盘控制时钟的启停和时钟的设置,键的定义参见左图键值具体定义如下: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。0 1 23 4 56 7 89 G S时间的精确定时:用 8254 定时器 0 产生 25ms 的中断信号;8254 的片选 CS 连地址输出端 320H,A0,A1 分别连地址总线A2,A3,GATE0 连+5V,CLK0 连 74LS393 分频输出的 47K 输出

3、端,OUT0 连接到 8259 的 IRQ0整点报时控制:由 8255 模块控制;PC0 直接与蜂鸣器相连,CS_4 连接到实验仪中部的地址输出端CS_4中断处理模块:由 8259 控制8259 的片选 CS-1 连地址输出 300H, INT1 连总线输入INTR,8259 模块的 INT-A 连总线的 INTA,8259 的 SP/1 连+5V, 8259 的 IRQ0 连接到 8254 的 OUT0。没用 键盘键盘扫描与显示实验 一、器件使用要点 本实验中使用的核心器件是由 74HC245 和 74HC273 构成简单的并行输入/输出口。74HC245 是一个双向三态驱动器,它的第 19

4、 脚/G 是片选通信号,只有在/G 为低电平时,74HC245 才会工作,否则 74HC245 的输出为高阻态;而第 1 脚 DIR 是方向选择,当 DIR=1 时,74HC245 的数据方向是从AB,DIR=0 时,数据方向从 BA。74HC273 是一个锁存器,它的第 1 脚/CLR 是清零脚,当/CLR=0 时,74HC273 的输出为 0;第 11 脚 CLK 是时钟输入脚,当该端输入一个上升沿,74HC273 就会把数据输入端 D0-D7 的数据锁存住并输出,直到下一个上升沿的到来才会改变。 二、实验原理 1、通用并口模块原理图: 图(1)由一片 74HC245 作为键盘的行扫描电路

5、(键盘的列扫描信号由一片 74HC273 提供,如图 2 所示),74HC245 的 P0-P3 已经分别接到 4*3的小键盘的 4 行。另外,这片 74HC245 的引脚和 4*3 小键盘行、列都有引出相应的接插口,所以也能另作它用,例如用 74HC245 来驱动发光二极管,或者与适当的输入输出器件(例如 8255)相配合就可以进行键盘扫描实验。该片 74HC245 的/G 端引了出来(KEYCS0)作为它的片选信号端。 图(1) 图(2)中左边的 74HC273 实现数码管的段码驱动,右边的 74HC273 除了与图(1)中的 74HC245 配合,作为键盘的行列扫描信号,来确定那个键被按

6、下,还作为 6 个共阴数码管的位驱动。该模块的 6 个共阴数码管的段引脚(分别是 KEY 模块的的 a、 b、c、d、e、f、g、dp)和位引脚(分别是KEY 模块上的 DS1、DS2、DS3、DS4、DS5、DS6)都引出来,如果用其它的驱动模块也可以控制数码管的显示。因为这两片 74HC273 都只作为输出用,所以用一片 74HC32 对 IOW 和它们各自的片选信号进行逻辑与运算,仅当是写操作时才会选中它们,以此避免不该它们工作时它们却工作的情况发生: 在 KEYCS1 和 IOW 有效(低电平)的前提下,74HC32 的输出第 6 脚有效,对应的就是控制位选的 74HC273 被选通。

7、 在 KEYCS2 和 IOW 有效(低电平)的前提下,74HC32 的输出第 8 脚有效,对应的就是控制段选的 74HC273 被选通。 图(2) 2、数码管字型编码表: 从上面的原理图可以看出,本模块显示部分由个共阴极数码管组成,并由两片 74HC273 分别对位选和段选进行控制,位选的选通端子为KEYCS1,段选的选通端子为 KEYCS2,相应的数码管字型编码如表 1 所示。 三、实验示例:(可参考随机的演示程序 key.asm) 该示例程序不停的扫描键盘,当扫描到有键按下时就把该键的键值(即12 个按键的排列顺序)送到数码管上显示。 硬件线路连接示例: 数码管的 6 根位控制信号线 D

8、S1DS6 分别接至位选 74HC273 的输出Q0Q5; 译码地址输出端 CS3 接至 KEYCS0; 译码地址输出端 CS4 接至 KEYCS1; 译码地址输出端 CS5 接至 KEYCS2; GAL 的输出(译码电路可看前面的地址译码电路部分): x:表示可以取任意值,这里取“0” 按照如上的硬件连线示例可得: 74HC245 的地址 340H;段选锁存器的地址 360H;位选锁存器的地址 380H; 下面是一个只有显示功能没有键盘扫描的小程序,可以参考一下: .486 DATA SEGMENT AT 0 USE16 ORG 1000H COUNT DB ? DATA ENDS CODE

9、 SEGMENT USE16 ASSUME CS:CODE ORG 3000H BEG: JMP START TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH DPORT1 EQU 380H DPORT2 EQU 360H START: MOV AX,DATA MOV DS,AX MOV CL,6 KK: MOV AL,CL MOV BX,OFFSET TAB XLAT TAB MOV DX,DPORT1 OUT DX,AL NOP MOV DX,DPORT2 MOV AL,0FFH OUT DX,AL NOP NOP JMP KK CODE

10、ENDS END BEG 三、程序流程图主程序初始化各段寄存器及相关变量初始化 8255、8254、8259 芯片设置中断向量,开放 8259 中断屏蔽开放处理器中断中断服务程序保护现场N判断时间是否不小于 59 分 55 秒报时扫描键盘G 键?调用启停子程序S 键?调用设置时间子程序COUNT 加 1COUNT=40?修改时间,调用 ADDONE 子程序COUNT 清 0显示时间,调用显示时间子程序结束中断(发 EOI 命令)恢复现场中断返回四、实验源代码.486p DATA SEGMENT AT 0 USE16ORG 1000HHOUR DW ?MIN DW ?SEC DW ?YYNYYN

11、ST DB ?COUNT DB ?DATA ENDSCODE SEGMENT USE16 ASSUME CS:CODE,DS:DATAORG 1500H BEG:JMP STARTTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,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 ;所有键的键面值PO

12、RT1 EQU 340H ;数码管段选端口PORT2 EQU 360H ;数码管位选端口,键盘矩阵的行列端口START: MOV EAX,60000000HMOV CR0,EAX MOV AX,DATAMOV DS,AXMOV HOUR,0203H ;小时分钟以及秒的初始化MOV MIN,0509HMOV SEC,0502HLEA BX,TABMOV ST,0 ;开始暂停标志位置 0MOV COUNT ,0 ;中断次数计数初始值为 0;8255 初始化 ,用于产生报时的脉冲 MOV DX,20FH ;利用左四的 8255,控制口为 20FHMOV AL,10000000B ;C 口输出OUT

13、DX,ALMOV DX,20BHL ;C0 输出 1,蜂鸣器不响MOV AL,0FFHOUT DX,AL ;8254 初始化,用于产生周期为 25ms 的中断MOV AL,00110110B ;计数器 0,先低后高,方式三,二进制MOV DX,32cH ;写往控制口OUT DX,ALMOV DX,320H ;计数器 0 写初值:47KHz*25msMOV AX,1175OUT DX,ALMOV AL,AHOUT DX,AL ;8259 初始化CLI :关中断MOV DX,300H ;ICW1MOV AL,00010011BOUT DX,ALMOV DX,308H ;ICW2MOV AL,08H

14、 ;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,0509H ;比较当前时间是否在 59 分 55 秒00 分 00 秒之间JL NEXT1CMP SEC,0505HJL NEXT1MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,ALJMP NEXT2NEXT1: CMP MIN,0JNE NEXT3CMP SEC,0JNE NEXT3MOV DX,20BHMOV AL,00H ;蜂鸣器低有效,报时OUT DX,AL

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

当前位置:首页 > 办公文档 > 解决方案

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