8253+8255+8259 电子时钟

合集下载

基于8255和8253的数字时钟模型设计研究

基于8255和8253的数字时钟模型设计研究

基于8255和8253的数字时钟模型设计研究作者:鲍鹏孙常东高珩邱烨来源:《硅谷》2009年第18期[摘要]向读者介绍一种用FDSJ86/88电子实验箱实现的电子数字时钟系统。

通过采用汇编语言进行软件编程,结合FDSJ86/88电子实验箱的硬件支持环境,实现电子时钟的基本功能,如时间的设置、时间的显示以及闹钟功能的设定与报警等功能。

揭示电子时钟的工作原理,有助于加深对电子时钟原理的了解与认识。

[关键词]电子时钟 FDSJ86/88 汇编语言模块分解中图分类号:TP2文献标识码:A文章编号:1671-7597(2009)0920039-01一、设计背景电子时钟在我们日常生活中有着及其广泛的应用,无论在人们的工作,学习还是生活中,电子时钟都发挥这不可或缺的作用。

在很多场所都可以看到电子时钟的身影。

为了实现电子时钟时间设置,时间显示,以及能够正确无误的运行,本文采用用硬件软件相结合的方式来完成此次电子时钟设计。

我们为电子时钟设计三个功能:时间的设置和时间的显示以及闹钟功能的设定与报警。

时间的设置是通过汇编程序来完成的,我们可以根据不同的需求设置不同的时间,并通过显示器进行显示。

二、需求分析在电子时钟的设计过程中,我们需要用到的电子芯片主要有8255和8253。

他们的工作原理和功能如下所示。

(一)8253芯片Intel8253芯片是一种可编程定时器/计数器,它可以利用硬件电路和中断方法控制定时,定时时间和范围完全由软件来确定和改变。

在8253芯片内部具有3个独立的16位计数器通道,通过对它进行编程,最高计数频率能达到2MHz。

8253还适用于许多其它的场合,如用作可编程方法频率产生器、分频率、程控单脉冲发生器等。

在本课程设计中,8253芯片的通道0和通道1工作在方式2下,提供一秒的脉冲信号,通道2工作在方式3下,进行秒的计数。

(二)8255A芯片8255A是一种通用的可编程并行I/O接口芯片,它是为Intel系列微处理器设计的配套电路,也可用于其它微处理器系统连接。

用8253计时器和8259中断做电子时钟

用8253计时器和8259中断做电子时钟

用8253计时器和8259中断做电子时钟实验报告开课学院及实验室:学院广州大学年级、专业、班级姓名 zhirongguo 学号成绩指导老师实验课程名称实验项目名称一、实验目的微型计算机原理和接口技术实验六电子钟实验 1、进一步掌握8253定时器的使用和编程方法。

2、进一步掌握8259中断控制器的编程方法。

3、进一步掌握数码显示电路的驱动方法。

二、实验器材计算机,汇编相关程序,WAVE6000实验仿真器三、实验原理利用8253定时器、8259中断控制器和实验箱上提供的数码显示电路,设计一个电子时钟。

格式如下:XX XX XX 由左向右分别为:时、分、秒定时器每100us中断一次,在中断服务程序中,对中断次数进行计数,100us计数10000次就是1秒。

然后再对秒计数得到分和小时值,并送入显示缓冲区。

四、实验步骤(1) 在实验箱断电的情况下连好线。

连线 1 2 3 4 5 连接孔1 KEY/LED_CS 8253_CS 8253的GATE1 8253的CLK1 4MHZ 连接孔2 CS0 CS4 +5V 1MHZ Fin连线 6 7 8 9 10 连接孔1 8253的OUT1 8259_CS 右8259的INT 右8259的SP/EN 连接孔2 右8259的IR0 CS5 8088的INTR (在CPU的左侧) +5V(2) 输入自编程序并检查,保存程序。

(3) 调试程序。

(4) 记录实验结果及分析。

五、实验参考程序、框图开始置定时器模式及常数设置初始常数启动定时器读取小时值转换成显示数据显示数据送缓冲读取分钟值转换成显示数据显示数据送缓冲读取秒值转换成显示数据显示数据送缓冲调用显示子程序主程序框图 CONTROL equ 0c003h COUNT0 equ 0c000h COUNT1 equ 0c001h COUNT2 equ 0c002h md8255 equ82h ; 8255 工作方式 PA8255 equ 8000h ; 8255 PA口输出地址中断入口保护现场 10000次计数值减1 否计数值为0 是设置下次10000次计数值秒值加1 到60秒否是秒值清0,分钟加1 否到60分钟分值清0,小时加1 否到24小时小时值清0 恢复现场中断返回 100us定时中断服务程序 CTL8255 equ8003h ; ICW4 8255 控制口地址 ICW2 equ 00100000b OUTBIT equ08002h ; 位控制中断号为20H 口 ICW4 equ 00000001b OUTSEG equ 08004h ; 段控工作在8086/88 方式制口 OCW1 equ 11111110b ICW1 equ 00010011b ; 只响应INT0 中断单片8259, 上升沿中断, 要写CS8259A equ 0d000h ; ; ; ;8259地址CS8259B equ 0d001h data segment CNT db 0LEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?) Hour db 0 Minute db 0 Second db 0LEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h data ends code segmentassume cs:code, ds: data Delay proc nearpush ax ; 延时子程序push cx mov al, 0 mov cx,ax loop $ pop cx pop ax ret Delay endp DisplayLED proc nearmov bx, offset LEDBuf mov cl, 6 ; 共6个八段管mov ah, 00100000b ; 从左边开始显示 DLoop:mov dx, OUTBIT mov al, 0out dx,al ; 关所有八段管mov al, [bx]mov dx, OUTSEG out dx,al mov dx, OUTBIT moval, ahout dx, al ; 显示一位八段管 push ax mov ah, 1call Delay pop ax shr ah, 1 inc bx dec cl jnz DLoop mov dx, OUTBIT mov al, 0out dx,al ; 关所有八段管 ret DisplayLED endp IEnter procnear push ax push dx inc Second mov al,Second cmp al, 60 jne Exit mov Second, 0 inc Minute mov al, Minute cmp al, 60 jne Exitmov Minute, 0 inc Hour mov al, Hour cmp al, 24 jne Exit mov Hour, 0 Exit:mov dx, CS8259A mov al, 20h ; 中断服务程序结束指令out dx, al pop dxpop ax iret IEnter endp IInit procmov dx, CS8259A mov al, ICW1 out dx, al movdx, CS8259B mov al, ICW2 out dx, al mov al, ICW4 out dx, al mov al, OCW1 out dx, al ret IInit endpstart proc near mov ax, data mov ds, ax mov Hour,0 mov Minute, 0 mov Second, 0 climov ax, 0 mov ds, ax mov al, 76h;01110110B ; 计数器1,16位,方式3,二进制mov dx, CONTROL out dx, al mov ax, 62500 movdx, COUNT1 out dx,al ; 计数器低字节 mov al, ah out dx,al ; 计数器高字节 mov al, MD8255 mov dx,CTL8255 out dx, al mov bx,4*ICW2 ; 中断号 mov ax, code shl ax,4 ; x 16add ax, offset IEnter ; 中断入口地址(段地址为0) mov [bx],ax mov ax, 0 inc bx inc bx mov [bx],ax ; 代码段地址为0 call IInit mov ax, data mov ds, ax mov CNT,0 ; 计数值初始为0mov al, CNT mov dx, PA8255 out dx, al stiLP: ; 等待中断,并计数。

8253、8255、8259和8251实现电子琴的自动弹凑和手动弹凑

8253、8255、8259和8251实现电子琴的自动弹凑和手动弹凑

汇编与微机接口技术试验二、实验项目名称:用8253、8255、8259和8251实现电子琴的自动弹凑和手动弹凑三、实验学时:2学时四、实验原理:用8253做定时器输出音频信号,控制喇叭发出声音。

利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调.五、实验目的:a)加强8088CPU的汇编程序设计b)加强对8253定时/计数器芯片的应用理解c)加强对8255可编程并口芯片的应用理解d)加强对8259可编程中断控制器芯片的应用理解e)加强对8251可编程串口芯片的应用理解f)了解计算机发声原理六、实验内容:a)利用8088外接8253可编程定时器/计数器音符音频的频率输出,用8255的PA口接8只按键,作为电子琴1、2、3、4、5、6、7、i数字键按键,编程完成按下数字键按键即发出相应的音调。

b)利用8251串口实现与PC机的超级终端程序通讯,可在PC上按键大写字母‘A’能转换为自动弹凑,大写字母‘M’能转换为手动弹凑,在手动弹凑方式下,能用PC机的1、2、3、4、5、6、7、8按键替代试验箱按键弹凑音乐。

七、实验器材(设备、元器件):DVCC试验箱,PC机;八、实验步骤:a)、阅读ppt掌握理解试验内容;b)、按照试验要求连接电路;c)、连接试验箱与电脑主机;d)、打开试验所需软件,输入代码;f)、运行,观察实验结果;九、实验数据及结果分析:1.该实验主要程序段如下:CODE SEGMENTCS_8259_P0 EQU 20HCS_8259_P1 EQU 21HCS_8255_CTRL EQU 73HCS_8255_PA EQU 70HCS_8253_CTRL EQU 4BHCS_8253_CH0 EQU 48HCS_8253_CH2 EQU 4AHCS_8251_STAT EQU 51HCS_8251_DATA EQU 50HASSUME CS:CODEORG 1000HSTART: JMP MAINMODE DB 0 ;0为手动弹凑模式,非0为自动手动弹凑模式TONELEN DW 0TONEFR DW 2,3030,2865,2551,2273,2024,1912,1704,1517,1433,1276,1136,1012 TABLE DB 42H,82H,82H,82H,84H,02H,72HDB 62H,72H,62H,52H,48HDB 0B2H,0B2H,0B2H,0B2H,0B4H,02H,0A2HDB 12H,0A2H,0D2H,92H,88HDB 82H,0B2H,0B2H,0A2H,84H,02H,72HDB 62H,72H,62H,52H,44H,02H,12HDB 12H,62H,62H,52H,44H,02H,82HDB 72H,62H,52H,32H,48HDB0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FH,0FHENDTAB DB 00HMAIN: CALL I8253ACALL INTSETCALL I8259ACALL I8255ACLDMOV AX,SEG TABLEMOV DS,AXLEA DI,ENDTABMOV AL, 0CMP MODE,ALJZ MAN_PLAYAUTO_PLAY:LEA S I,TABLESOUND:IN AL, CS_8251_STATTEST AL, 00000010BJZ NEXT1IN AL, CS_8251_DATACMP AL, 'M'JNZ NEXT1MOV AL,1MOV MODE,ALJMP MAN_PLAYNEXT1:LODSBMOV BX,AXMOV CX,AXAND CX,0FHAND BX,0F0HSHR BX,1SHR BX,1SHR BX,1; SHR BX,1MOV AX,TONEFR[BX]CALL OUTTONEMOV AX,10MUL CXMOV WORD PTR TONELEN,AXDELAY: MOV AX,WORD PTR TONELENCMP AX,0JNE DELAYCMP SI,DIJNE SOUNDJMP AUTO_PLAYMAN_PLAY:MOV AX,0MOV TONELEN, AXIN AL, CS_8251_STATTEST AL, 00000010BJZ CHK8255IN AL, CS_8251_DATACMP AL, 'A'JNZ NEXT2MOV AL,0MOV MODE,ALJMP AUTO_PLAYNEXT2: CMP AL, 31HJL CHK8255CMP AL, 38HJG CHK8255SUB AL, '0'MOV AH, 0MOV BX,AXSHL BX,1MOV AX,TONEFR[BX]CALL OUTTONEJMP MAN_PLAYCHK8255:K1: MOV DX, CS_8255_PA ;PA端口地址IN AL, DX ;读开关的状态TEST AL, 01H ;判是否是K1闭合JZ K2 ;不是转K2MOV AX, 2273 ;是K1闭合送“1”音频数据1/440.00HZJMP KEYDOWNK2: IN AL, DX ;读开关的状态TEST AL, 02H ;判是否是K2闭合JZ K3 ;不是转K3MOV AX, 2024 ;是K2闭合送“2”音频数据1/493.88HZJMP KEYDOWNK3: IN AL, DX ;读开关的状态TEST AL, 04H ;判是否是K3闭合JZ K4 ;不是转K4MOV AX, 1805 ;是K3闭合送“3”音频数据1/554.37HZJMP KEYDOWNK4: IN AL,DX ;读开关的状态TEST AL, 08H ;判是否是K4闭合JZ K5 ;不是转K5MOV AX, 1704 ;是K4闭合送“4”音频数据1/587.33HZJMP KEYDOWNK5: IN AL, DX ;读开关的状态TEST AL, 10H ;判是否是K5闭合JZ K6 ;不是转K6MOV AX, 1517 ;是K5闭合送“5”音频数据1/659.26HZJMP KEYDOWNK6: IN AL, DX ;读开关的状态TEST AL, 20H ;判是否是K6闭合JZ K7 ;不是转K7MOV AX, 1353 ;是K6闭合送“6”音频数据1/739.99HZJMP KEYDOWNK7: IN AL,DX ;读开关的状态TEST AL, 40H ;判是否是K7闭合JZ K8 ;不是转K8MOV AX, 1205 ;是K7闭合送“7”音频数据1/830.61HZJMP KEYDOWNK8: IN AL, DX ;读开关的状态TEST AL, 80H ;判是否是K8闭合JZ NOKEY ;不是转K1MOV AX, 1136 ;是K8闭合送“8”音频数据1/880.30HZJMP KEYDOWNFREQ DW 0 ;保存前次设置频率NOKEY: JMP MAN_PLAYMOV AX, 2 ; 关闭发音KEYDOWN:CMP FREQ,AXJE NOKEYMOV FREQ,AXCALL OUTTONEJMP MAN_PLAYOUTTONE PROC NEAR ;按音频数据设置定时器时间常数PUSH AX ; 键码压栈MOV AL, 36H ; 计数器0, 16位二进制,方式3(方波)。

基于8255、8259芯片的电子钟设计~

基于8255、8259芯片的电子钟设计~

摘要电子钟程序设计用到了可编程并行芯片8255和定时芯片8254,中断控制器8259。

在编辑1毫秒定时程序时,用到了中断控制器8259。

此程序主要由三大部分组成。

第一部分为定义显示界面。

第二部分为调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间数存入内存区。

第三部分:将存在系统内存区的时间数用七段数码管显示出来。

该程序实现了准确显示秒和分,读数准确,走时精准。

关键词中断控制器8259、可编程并行芯片8255、定时芯片8254七段数码管延时中断定时计数比较1设计任务描述1.1设计题目:简单电子钟设计1.2 设计内容:利用微机原理试验箱的发光数码管显示单元,把时间换显示在LED数码管上。

1.2.1设计要求:1)走时准确。

2)显示无误。

2电子钟设计原理电子钟的总体设计原理是:首先利用定时芯片8254的定时作用定时计数,在给定的时间(100S)逐渐变为0时,就会发出一个中断信号,8259中断器接到此中断信号就会调用MIR7时间显示程序,执行此程序后8255就会工作,把接到的二进制时间码转换成ASCII码在四个数码管上显示时间。

具体做法是在数据段开辟一显示缓冲区,用来存储系统时间调用DOS中断,返回系统时间,并将来返回的二进制时间转换成ASCII码,方便时间显示时的调用。

分别将来的分钟数、秒数存入显示缓冲区,调用DOS字符串显示功能将时间显示出来。

并调用屏幕I/O中断,定位光标的开始位置,结合着将时间显示在我们预先定义好的位置上。

由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式来不断获取系统的时间,这样就形成了会跳动的电子钟了。

时间显示的刷新要配合延时程序进行,为了得到良好的显示效果,延时程序要尽量接近1秒,但又不能超过一秒,所以本程序调用了一段较精确的时间延迟程序,屏幕显示延迟一段时间后再跳回到初始位置,再显示,由此循环下去,就形成了符合要求的电子钟了。

3器件的功能简介3.1:8255介绍3.1.1 8255外部引线D0---D7双向数据信号线,用来传送数据和控制字。

8253、8259、8255综合设计题

8253、8259、8255综合设计题

1.键盘中断(8255,8259),设计一程序当按下任意键或任意组合键时从8255的A口读出按键扫描码并显示,按“ESC”键退出。

2.交通灯控制系统:按照时间控制原则,利用并行接口和定时器,采用时间中断方式设计一套十字路口的交通灯管理系统,通行时间(或禁止时间)30秒,准备时间3秒,在准备时间里黄灯闪烁3次,闪烁频率为0.5秒,周而复始。

可利用8255、8253、8259等接口电路。

(可到实验室完成)
3.键盘电子乐器:利用并行接口8255作为键盘接口,设计一个具有2个八度音阶的键盘乐器,音阶键不少于16个,采用扫描方式管理键盘,音域范围自行定义。

8255电子钟课程设计

8255电子钟课程设计

8255电子钟课程设计一、课程目标知识目标:1. 理解8255可编程定时器/计数器的工作原理,掌握其在电子时钟设计中的应用。

2. 学会使用8255芯片与微控制器(如8051)的接口技术,并能正确编程控制电子钟的时、分、秒显示。

3. 掌握电子时钟的时间计数与显示的基础算法,能够运用所学知识设计简单的电子时钟程序。

技能目标:1. 培养学生动手能力,通过搭建8255电子时钟电路,提高学生的电路连接与调试技巧。

2. 培养学生编程能力,让学生能够独立编写8255控制电子时钟的程序代码,并实现功能。

3. 培养学生问题解决能力,面对电子时钟设计中的问题,能够进行故障排查和程序优化。

情感态度价值观目标:1. 培养学生对电子技术和编程的兴趣,激发学生的学习热情和创新精神。

2. 培养学生团队协作精神,通过小组合作完成课程设计,增强集体荣誉感和责任感。

3. 培养学生科学严谨的态度,在设计过程中注重细节,遵循操作规程,确保安全与可靠性。

本课程针对高年级电子信息技术或计算机科学与技术相关专业学生,结合教材内容,注重理论联系实际,旨在提高学生电子电路设计、编程及实际应用能力。

课程目标明确、具体,可衡量,为后续教学设计和评估提供依据。

二、教学内容本课程教学内容紧密围绕课程目标,结合教材以下章节:1. 8255可编程定时器/计数器原理与功能- 8255芯片内部结构- 工作模式及时序分析- 接口技术及其在微控制器中的应用2. 电子时钟基础知识- 电子时钟原理概述- 时、分、秒计数与显示方法- 电子时钟程序设计基础3. 8255电子时钟设计与实现- 电路设计与搭建- 程序编写与调试- 故障排查与优化教学内容安排与进度:第一周:8255可编程定时器/计数器原理学习,接口技术了解。

第二周:电子时钟基础知识学习,程序设计基础掌握。

第三周:分组讨论,确定电子时钟设计方案,开始电路搭建与程序编写。

第四周:电路调试,程序优化,完成8255电子时钟设计。

8255电子钟课程设计

8255电子钟课程设计

8255电子钟课程设计一、教学目标本课程的目标是让学生了解和掌握8255芯片的基本原理和应用方法,能够利用8255芯片设计和制作一个简易的电子钟。

具体的学习目标包括:1.知识目标:学生需要了解8255芯片的结构、工作原理和编程方法;掌握电子钟的设计原理和制作流程。

2.技能目标:学生能够熟练使用8255芯片和相关电子元器件设计并制作电子钟;能够运用编程语言进行程序设计,实现电子钟的功能。

3.情感态度价值观目标:培养学生对电子技术的兴趣和好奇心,提高学生动手实践的能力,培养学生团队合作的精神。

二、教学内容本课程的教学内容主要包括8255芯片的基本原理、编程方法以及电子钟的设计和制作。

具体的教学大纲如下:1.第一章:8255芯片的基本原理和工作原理;2.第二章:8255芯片的编程方法;3.第三章:电子钟的设计原理;4.第四章:电子钟的制作方法和步骤。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

具体的教学方法如下:1.讲授法:用于讲解8255芯片的基本原理、编程方法和电子钟的设计原理;2.讨论法:用于引导学生讨论电子钟的制作过程中遇到的问题和解决方案;3.案例分析法:通过分析典型的电子钟设计案例,让学生了解电子钟的制作方法和技巧;4.实验法:让学生动手实践,实际操作制作电子钟,增强学生的实际操作能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《8255电子钟设计与应用》;2.参考书:电子技术相关书籍;3.多媒体资料:电子钟设计原理和制作的视频教程;4.实验设备:8255芯片、电子元器件、编程器、实验板等。

五、教学评估本课程的评估方式将包括平时表现、作业、考试等多个方面,以全面客观地评估学生的学习成果。

具体评估方式如下:1.平时表现:通过学生在课堂上的参与度、提问回答、小组讨论等表现来评估;2.作业:布置相关的设计任务和编程练习,评估学生对知识的掌握和应用能力;3.考试:进行理论知识考试和实际操作考试,评估学生对8255芯片原理和电子钟设计的理解和掌握程度。

微机原理与接口技术综合实验电子钟实验报告

微机原理与接口技术综合实验电子钟实验报告

微机原理综合实验:电子钟实验要求8253每1s产生中断请求给8259,中断服务程序利用8255控制数码管,构建一个电子钟。

一、实验原理(相关芯片大致介绍)1.82548254 是Intel 公司生产的可编程间隔定时器,是8253 的改进型,比8253 具有更优良的性能。

8254 具有以下基本功能:(1)有3 个独立的16 位计数器。

(2)每个计数器可按二进制或十进制(BCD)计数。

(3)每个计数器可编程工作于6 种不同工作方式。

(4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。

(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。

2.8259Intel公司专为控制优先级中断而设计开发的芯片,包括中断源优先级排队、辨别中断源以及提供中断矢量的电路,无需附加任何电路,用户只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式。

同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。

管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。

3.8255并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。

CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。

8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、课程设计目的和意义通过本次课程设计要掌握此三种芯片使用的方法,灵活运用课本知识,加深所学的知识,对所学的相关芯片的原理、内部结构、使用方法等有更加深刻的了解,学会利用课本知识联系实际应用及编程。

同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。

二、开发环境及设备①设计环境PC机一台、windows XP系统、实验箱、导线若干。

②设计所用设备8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。

8255并口:用做接口芯片,和小键盘相连。

8259中断控制器:用于产生中断。

LED:六个LED用于显示时:分:秒值。

小键盘:用于控制设置。

三、设计思想与原理1、设计思想本系统设计的电子时钟以8088微处理器作为CPU,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。

在此系统中,8254的功能是定时,接入8254的CLK信号为周期性时钟信号。

8254采用计数器0,工作于方式2,使8254的OUT0端输出周期性的负脉冲信号。

即每隔20ms,8254的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。

其中8259只需初始化ICW1,其功能是向8259表明IRx输入是电瓶触发方式还是上升沿触发方式,是单片8259还是多片8259。

8259接收到信号后,产生中断信号送CPU处理。

2、设计原理利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。

电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。

基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一,六个数码管动态显示时、分、秒的当前值。

1、内容利用实验台上提供的定时器8254和扩展板上提供的8259以及键盘和数码显示电路,设计一个电子时钟,由8254中断定时,小键盘控制电子时钟的启停及初始值的预置。

电子时钟的显示格式HH:MM:SS由左到右分别为时、分、秒,最大记时59:59:59超过这个时间时分秒位都清零从00:00:00重新开始。

2、要求本实验要求设计一个定时显示装置,用六个数码管显示时间,用小键盘控制计时,设置和显示时间。

系统一运行就从00点00分00秒开始计时,并在数码管上显示时、分、秒当前值,而且,可以用键盘设置当前时间。

基本工作原理:每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;六个数码管动态显示时、分、秒的当前值。

C键:置初值,显示00:00:00G键:显示动态变化(启动表);D键:显示静态不变(表停止);E键:终止程序,返回DOS;P键:设置时:分:秒的值3、设计环境PC机一台、windows XP系统、实验箱,导线若干。

4、设计所用设备8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ2。

8255并口:用做接口芯片,和小键盘相连。

8259中断控制器:用于产生中断。

LED:六个LED用于显示时:分:秒值。

小键盘:用于控制设置。

三、设计所用芯片结构1、8259A 芯片的内部结构及引脚中断控制器8259A 是Intel 公司专为控制优先级中断而设计开发的芯片。

它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。

因此无需附加任何电路,只需对8259A 编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。

在MD 微机系统中,8259芯片工作于单片方式。

8259引脚图如图3.3,各引脚功能如下。

D7~D0——八条双向数据线; WR (低电平有效)——写输入信号; RD (低电平有效)——读输入信号; CS (低电平有效)——片选输入信号; A0——地址信号; INT ——中断请求信号;INTA (低电平有效)——中断响应信号;CAS0~CAS2——级联信号,形成一条专用8259A 总线,以便多片8259A 的级联;SP/EN ——从编程/允许级联。

在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。

在非缓冲方式中,作为输入信号用于表示主片还是从片;IR0~IR7——外部中断请求输入线。

要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU 响应时为止)或者是高电平。

8259中断矢量地址与中断信号之间的关系如表3.1所示:中断序号 0 1 2 3 4 5 6 7 功能调用 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 矢量地址 20H24H28H2CH30H34H38H3CH图3.1 8259A 引脚图表3.1 8259A 中断矢量表~ 23H~ 27H ~ 2BH ~ 2FH ~ 33H~ 37H~ 3BH ~ 3FH 说明时钟键盘可用可用串行口 可用可用可用2、8255芯片的内部结构及引脚8255可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A 、B 、C 三个并行接口,用+5V 单电源供电,能在以下三种工作方式下工作: 方式0—基本输入/输出方式 方式1—选通输入/输出方式 方式2—双向选通输入/输出方式8255引脚图如图3.2示,各引脚功能如下。

D7~D0——与CPU 侧连接的八条双向数据线; WR (低电平有效)——写输入信号; RD (低电平有效)——读输入信号; CS (低电平有效)——片选输入信号; A0、A1——片内寄存器选择输入信号; PA7~PA0——A 口外设双向数据线; PB7~PB0——B 口外设双向数据线; PC7~PC0——C 口外设双向数据线; RESET——复位输入信号 2、8255端口地址 信号线寄存器 编址 IOY3A 口60H B 口 61H C 口 62H 控制寄存器63H3、8254芯片的内部结构及引脚8254可编程定时/计数器是Intel 公司生产的通用外围芯片之一,有3个独立表3.2 8255端口地址表图3.2 8255引脚图的十六位计数器,技术频率范围为0~2MHZ ,它所有的技术方式和操作方式都通过编程控制。

8254的功能用途是: (1) 延时中断 (2) 可编程频率发生器 (3) 事件计数器 (4) 二进倍频器 (5) 实时时钟 (6) 数字单稳(7)复杂的电机控制器8254有六种工作方式: (1) 方式0:计数结束中断 (2) 方式1:可编程频率发生器 (3) 方式2:频率发生器 (4) 方式3:方波频率发生器 (5)方式4:软件触发的选通信号(6)方式5:硬件触发的选通信号 8254引脚图如图3.3示,各引脚功能如下。

D7~D0——八条双向数据线; WR (低电平有效)——写输入信号; RD (低电平有效)——读输入信号; CS (低电平有效)——片选输入信号; A0、A1——片内寄存器地址输入信号;CLK ——计数输入,用于输入定时基准脉冲或计数脉冲;OUT ——输出信号,以相应的电平指示计数的完成,或输出脉冲波形; GATE ——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。

2、8254端口地址信号线寄存器编址表3.3 8254端口地址表IOY20#计数器40H 1#计数器 41H 2#计数器 42H 控制寄存器43H四、具体模块设计1、概述本系统设计的电子钟以8088微处理器作为CPU ,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。

在此系统中,8254的功能是定时,接入8254的CLK 信号为周期性时钟信号。

8254采用计数器0,工作于方式2,使8254的OUT0端输出周期性的负脉冲信号。

即每隔20ms ,8254的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU 即处理,使液晶显示器上的时间发生变化。

程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。

系统框图如下:图一 系统框图2、主程序模块主控模块是系的核心模块,对8254、8255A 进行初始化,设置中断向量,扫键盘读入的数显示缓冲的值秒脉冲显示模块 主控模块中断模块定时模块小键盘模块 六个LED小键盘8255A82548259描键盘根据按键值作相应的处理。

主要由软件实现。

它的主要功能是调用其它模块对系统工作进行协调,它的主要功能是读小键盘输入键值并执行要做的工作,如果键值为C则将显示初始值00:00:00置入显示缓冲,并调用显示模块显示。

如果键值为G则开中断,(中断程序为秒最低位加一)。

如果键值为D则关中断,停止动态显示。

如健值为P则连续六次调用小键盘模块,将键值依次存入显示缓冲。

并调用显示模块显示。

如果健值为E,则终止程序,返回DOS。

3、小键盘模块小键盘模块送入主控模块的子功能模块。

由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。

软件上使用行扫描法获得键值并送回主控模块。

本课题只考虑去抖动。

执行一个约10ms的延时程序后再扫描键盘,若F0=1表示真正有键按下,从而消除了抖动影响。

实现代码如下:KEY ROC NEARPUSH CX KST: MOV AL,82HMOV DX,P55CTLOUT DX,ALMOV AL,00HMOV DX,PA55OUT DX,ALMOV DX,PB55IN AL,DXOR AL,0F8HCMP AL,0FFHJZ DELAYMOV CX,0300H DLY: LOOP DLYMOV CL,08HMOV AH,0FEH SCAN1: MOV DX,PA55MOV AL,AHOUT DX,ALMOV DX,PB55IN AL,DXOR AL,0F8HCMP AL,0FFHJNZ KEYNROL AH,1DEC CLJNZ SCAN1JMP KSTKEYN: PUSH AXMOV DX,PB55 RELEA: IN AL,DXOR AL,0F8HCMP AL,0FFHJNZ RELEAPOP AXNOT AXMOV SI,OFFSET TABLEMOV DI,OFFSET CHARMOV CX,24TT: CMP AX,[SI]JZ NNDEC CXJZ KSTADD SI,02INC DIJMP TTNN: MOV DL,[DI]MOV [CHAR1],DLMOV AH,02HINT 21HPOP CXJMP Y ANG DELAY: CALL DISPLYJMP KST Y ANG: RET KEY ENDP4、显示模块显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。

相关文档
最新文档