可编程作息时间控制器 - 范文中心

可编程作息时间控制器

10/12

一、 设计概述 1、设计思路综述

作息时间控制系统主要有四大子系统功能实现:1.时间运行系统;2.报时时间值设置及调时系统;3.时分显示系统;4.报时响应系统。时间运行系统让时间一直运行着;报时时间值设置及调时系统使得用户可以随时设置时间;时分显示系统让用户可以清楚知晓当前系统时间,报时响应系统完成当当前时间与报时时间值一致时进行响应(如LED闪烁)。四大子系统的协调有序的运行,保证了作息时间控制系统具有报时,调时,显时功能,还达到了与用户可交互的目的。

时间运行与调节利用芯片8253的处理而产生符合要求的脉冲,执行计时子程序改变时间参数而计时,进行时间计算,并用实时检测程序将时间参数用数码管显示电路显示出小时与分钟以及秒钟数。与此同时也进行与报时时间段程序的不断调用,使得在规定时刻进行报时。

可选择5253通道0与通道1实现定时,通道1输出out1接LED及音响的输入端口,完成上述连接后,编程实现小时,分钟的变化的子程序,以及对8253,8255进行初始化编程,计时程序实现时间运行。

2、分工介绍

在本次试验中,我们采用的芯片分工学习,然后交流学习到的知识,合作完成实验。

二、需求分析

(一)Intel 8086(主控芯片)

Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。

数据寄存器组:AX、BX、CX、DX; 指示器变址寄存器组:SI、DI、SP、BP 段寄存器组:CS、DS、ES、SS

(二)8253的工作原理 1、计数器/定时器的功能:

(1) 对外部事件发生次数进行计数; (2) 产生计算机系统需要的定时信号。

计数和计时本质上是相同的,它们都是对一个输入脉冲进行计数。 计数器的输入信号可以是随机信号,定时器的输入信号要求具有固定周期。 如果输入脉冲的频率一定,那么记录脉冲的个数与所需的时间是一一对应的关系。例如输入脉冲频率为2MHz,那么计数2⨯106 计时1秒。

因此,使用同一个芯片,既可以用来计数,又可以用来定时。计数器/定时器8253可以通过编程,从6种工作方式中选择一种工作方式。 一个计数器/定时器的组成:

控制字寄存器——决定工作模式(8位) 状态寄存器——反映工作状态 初值寄存器——计数的初值(16位)

计数输出寄存器—— CPU从中读当前计数值(16位)。

计数器——执行计数操作,CPU不能访问。(16位) 下面是我们对8253的一些具体的介绍: 2、8253A的内部结构和引脚信号图示

GND

8253的三个计数通道在结构上和功能上完全一样,每个通道均有两个输入引脚CLK和GATE,一个输出信号 引脚OUT。

3、 8253的初始化步骤和门控信号的功能 1. 初始化步骤: (1) 写入控制字;

(2) 按控制字要求写入计数初值。

• 计数初值N=fCLK/fOUT =TOUT/TCLK

初始化程序: MOV MOV OUT

DX, 203H

AL, 控制字 DX, AL

;8253初始化

2. 门控信号控制功能:

门控信号GATE的控制功能如教材P310表8-2所示,由表可知: 方式0,4时:门控信号为电平触发 方式1,5时:门控信号为上升沿触发 方式2,3时:门控信号为电平或上升沿触发 4、 8253的工作方式 工作方式决定以下内容: 1)门控信号的影响

高电平允许:当GATE=0,即使出现CLK,也不计数 —— 方式0,2,3,4 上升沿允许(上升沿触发)——方式1,5,2,3 2) OUT信号的状态 写入控制字后, OUT的状态 计数过程中, OUT的状态 计数终了, OUT的状态

3)计数操作可否重复 不可重复——模式0,4 自动重复——模式2,3 条件重复——模式1,5

(1)方式0:计数结束中断方式

特点:计数器只计数一遍,不循环,计数过程中,可由门控信号控制暂停计数,在计数过程中可改变计数值。写入新值后,计数器按新值重新开始计数 (2)方式1:可编程单稳态输出方式

特点:若计数值为N,则输出脉冲宽度为N*CLK,计数到0,可由GATE上升沿再次触发,输出一个脉冲,不需重新赋值。若计数过程中,门控信号再次触发,计数器在触发信号的下一个CLK重新开始计数。若计数过程中,CPU改变计数值,但计数过程不受影响,再次触发后,按新值重新计数 (3)方式2:比率发生器(分频器)

特点:不需重新赋值,计数器能连续工作。计数过程中,若GATE变低,计数器暂停工作,GATE变高后,计数器重新取出初值,开始计数 (4)方式3:方波发生器

特点:同方式2的三个特点,不同的是:初值为偶数时,每来一个脉冲,计数值减2;初值为奇数时,第一个CLK使计数器减“1”,其后每一个CLK使计数器减“2”,到“0”后,改变输出状态,同时重新装入计数值。接着第一个CLK使计数值减“3”,以后每个CLK使计数值减“2”,直到计数值为“0”,重复上述过程

(5)方式4:软件触发选通

特点:N值写入后,如Gate为高,则下一个CLK开始计数,相当于软件启动,写一次初值,只计一次;计到0时,产生低电平维持一个周期,GATE=“1”,允许计数,GATE=“0”,禁止计数,因此,要做到软件启动,必须使GATE=“1”,计数过程中改变计数值,按新值重新计数到0 (6) 方式5:硬件触发选通

特点:N值写入后,计数器并不计数,当GATE的上升沿出现时,取出初值开始计数,计数过程中改变计数值,若没有GATE的触发,不影响计数过程,当计数

到“0”后,若有GATE触发,则按新的计数值计数。 (二)8279功能介绍

8279 是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8 64B RAM,键盘控制部分可控制 8*8=64 个按键或 8*8 阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示 RAM容量为 16*8,即显示器最大配置可达 16位 LED 数码显示。 (1)数据线

DB0→DB7 是双向三态数据总线,在接口电路中与系统数据 总线相连,用以传送CPU 和8279 之间的数据和命令。 (2)地址线

/CS=0 选中8279,当A0=1 时,为命令字及状态字地址;当 A0=0 时,为片内数据地址,故8279 芯片占用2个端口地址。 (3)控制线

CLK:8279 的时钟输入线。 IRQ:中断请求输出线,高电平有效。 /RD、/WR:读、写输入控制线。

SL0---SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。 RL0---RL7:回复输入线,它们是键盘或传感器矩阵的信号输入线。 SHIFT:来自外部键盘或传感器矩阵的输入信号,它是 8279 键盘数据的次高位即 D6 位的状态,该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。

CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0---RL7 的数据存入FIFO RAM 中。

OUTA0---OUTA3:通常作为显示信号的高4 位输出线。 OUTB0---OUTB3:通常作为显示信号的低4 位输出线。 /BD:显示熄灭输出线,低电平有效。当/BD=0 时将显示全熄灭。

三、设计专题 (一)分部设计

1、8253的设计流程及代码 (1) 流程图

(2)8253代码 STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:CODE ;8253计时程序 BEGIN PROC NEAR

MOV AL, 36H; 00110110B MOV DX, 20BH OUT DX, AL MOV AX, 2000 MOV DX, 208H

OUT DX, AL MOV AL, AH

OUT DX, AL

MOV AL, 76H; 01110110B MOV DX, 20BH OUT DX, AL MOV AX, 2000 MOV DX, 209H

OUT DX, AL MOV AL, AH

OUT DX, AL JMP $

BEGIN ENDP

CODE ENDS

; 计数器0,16位,方式3,二进制; 计数器低字节 ; 计数器高字节 ; 计数器1,16位,方式3,二进制; 计数器低字节 ; 计数器高字节

END BEGIN

2、8279的设计流程及代码 (1

(2)8279代码

Z8279 EQU 212H D8279 EQU 210H

LEDMOD EQU 00 ;左边输入,八位显示,外部译码八位显示 LEDFEQ EQU 38H ;扫描频率 CODE SEGMENT ASSUME CS:CODE,DS:CODE

START: ;初始化 PUSH CS POP DS

MOV DX,212H MOV AL,00 OUT DX,AL MOV AL,38H OUT DX,AL MOV DX,210H MOV AL,7FH OUT DX,AL MOV DX,210H MOV AL,7FH OUT DX,AL MOV DX,210H MOV AL,7DH OUT DX,AL MOV DX,210H MOV AL,7FH OUT DX,AL MOV DX,210H MOV AL,70H OUT DX,AL MOV DX,210H MOV AL,5BH OUT DX,AL MOV DX,210H MOV AL,70H OUT DX,AL MOV DX,210H

MOV AL,76H

OUT DX,AL ;以上为写(ZK88) NOP

MOV DX,212H MOV AL,0C2H

OUT DX,AL ;置空FIFO寄存器

WAIIT: NOP IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H

JE WAIIT MOV AL,BL AND AL,0FH CMP AL,00H

JE WAIIT MOV AL,40H OUT DX,AL

MOV DX,210H IN AL,DX

NOP

CMP AL,3BH JE FINI

LEA BX,LED XLAT

MOV DX,210H

OUT DX,AL

;FIFO正在清除期间则跳转等待 ;无键按下则等待 ;写 读FIFO RAM命令字 ;读入FIFO RAM内容 ;查表,将键码放入AL中 ;将AL中内容写到数码管上

MOV DX,212H ;清FIFO RAM寄存器 MOV AL,0C2H OUT DX,AL

JMP WAIIT ;等待下一次键输入

FINI: MOV DX,212H MOV AL,0D3H OUT DX,AL JMP $

LED: DB 07H,66H,06H,3FH DB 00H,00H,00H,00H DB 7FH,6DH,5BH,71H DB 00H,00H,00H,00H

DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H

DB 6FH,7DH,4FH,79H DB 00H,00H,00H,00H DB 77H,7CH,39H,5EH DB 00H,00H,00H,00H

DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H CODE ENDS END START

(二)总体设计

1、总体设计流程图

分析:在实验的过程中,我们将8253和8279的程序直接合成,并将8279控制键盘输出的数据直接传输给8253,通过其脉冲控制输入频率,控制彩灯以及响铃的频率,就可以达到我们要求的键盘控制时间来设定作息时间。

2、总体设计代码 STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT SEC DB 20 DUP(?) DATA ENDS

CODE SEGMENT ASSUME CS:CODE

;8279键盘程序

START: ; PUSH CS POP DS

MOV DX,212H MOV AL,00 OUT DX,AL MOV AL,38H OUT DX,AL

MOV DX,210H MOV AL,7FH OUT DX,AL MOV DX,210H MOV AL,7FH OUT DX,AL MOV DX,210H

MOV AL,7DH 初始化

MOV DX,210H MOV AL,7FH OUT DX,AL MOV DX,210H MOV AL,70H OUT DX,AL MOV DX,210H MOV AL,5BH OUT DX,AL MOV DX,210H MOV AL,70H OUT DX,AL MOV DX,210H MOV AL,76H

OUT DX,AL ; NOP

MOV DX,212H MOV AL,0C2H

OUT DX,AL ;WAIIT: NOP IN AL,DX MOV BL,AL AND AL,80H CMP AL,80H

JE WAIIT ;FIFO MOV AL,BL

AND AL,0FH

以上为写(ZK88) 置空FIFO寄存器

正在清除期间则跳转等待

JE WAIIT ;无键按下则等待 MOV AL,40H ;写 读FIFO RAM命令字 OUT DX,AL

MOV DX,210H ;读入FIFO RAM内容 IN AL,DX

MOV

SEC,AL

NOP

CMP AL,3BH JE FINI LEA BX,LED XLAT

MOV DX,210H ; OUT DX,AL

MOV DX,212H ; MOV AL,0C2H OUT DX,AL ;MOV AL,BL ;AND AL,0FH CMP AL,00H

JNZ BEGIN

FINI: MOV DX,212H MOV AL,0D3H OUT DX,AL JMP $

LED: DB 07H,66H,06H,3FH DB 00H,00H,00H,00H

;查表,将键码放入AL中

;将键盘值读入SEC中

将AL中内容写到数码管上清FIFO RAM寄存器

DB 7FH,6DH,5BH,71H DB 00H,00H,00H,00H

DB 00H,00H,00H,00H

DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H

DB 6FH,7DH,4FH,79H

DB 00H,00H,00H,00H DB 77H,7CH,39H,5EH DB 00H,00H,00H,00H

DB 00H,00H,00H,00H

DB 00H,00H,00H,00H DB 00H,00H,00H,00H DB 00H,00H,00H,00H

;8253计时程序 BEGIN PROC NEAR

MOV AL, 36H; 00110110B ; 计数器0,16位,方式3,二进制 MOV DX, 20BH OUT DX, AL MOV AX, SEC MOV DX, 208H

OUT DX, AL ; 计数器低字节 MOV AL, AH

OUT DX, AL ; 计数器高字节

MOV AL, 76H; 01110110B ; 计数器1,16位,方式3,二进制 MOV DX, 20BH OUT DX, AL MOV AX, SEC MOV DX, 209H

OUT DX, AL ; 计数器低字节 MOV AL, AH

OUT DX, AL ; JMP WAIIT

BEGIN ENDP JMP

WAIIT

CODE ENDS END START

计数器高字节

3、 最终连线图

上图为最终试验连线图,从图中我们可以清晰的看出:8253 芯片中设置的输入频率为2MHz,超出了一个接入端的范围,这样仅用一个CLK接入端就不能实现我们所要求的效果,因此我们对两个接入端均选用的方式3,GATE接高电平,OUT1接CLK0,完成完整的8253脉冲接线图。对8279来说,虽然8279的接线很负载,但外设的接线点很少,都在内部完成,所以我们只需要选取恰当的地址,用8279 来控制键盘按键。这样连接好线路后,因为硬件箱内部线路是连接好了的,所以我们可以直接利用按键来控制灯和铃的变化,显示出我们要求的效果,从而成功的完成实验。

四、技术分析

(一) 可行性与优点分析

在本次设计的过程中,我们遇到了一些困难但通过努力终于比较完整的完成了这次设计的任务;在8279键盘扫描程序中,其中重要的是键盘码的对应值,他是实现我们输入数字与控制响铃与灯亮统一的关键,同时程序中的几个循环也是比较重要的;在计时程序设计中,最重要的是如何判断定时时间到,用设定时间与显示的数字作比对,直到相同为止即定时时间是准确的。在本次的实验设计中,最大的优点在于我们所选用的原理简单易行,容易实现,能够在较短的时间

内达到要求的效果。

(二)设计中的不足分析与改进

本设计存在缺陷:首先,这个设计不够精确,数码管显示的时间与,主要原因,算的数字存在误差,系统也存在误差。在8279的程序中也有一定的缺陷。在存储键码时应当多次循环才能保证其数码管输出地与灯、铃闪烁时间一致,并且需要通过准确的计算,指定的时间才能达到预期的效果。

五、实验体会

这次实验使我们大长知识,首先我们在这次实验之初,对实验没有一个太大的概念,听了老师的讲解之后稍稍了解到了一点,于是我们便上网查询,找到了关于这个实验的一些资料,这些资料大体上分为3类。第一类:利用8255,8253,0832实现的;第二类:利用8255,8253,8279来实现的;第三类:8255,8279,8259来实现的。

首先,我们在刚开始时便从第一类下手,这导致我们走了许多弯道,我们也在屡次不成功的基础上认识到了这个实验的本质和实验的基础,于是我们转向了第二类,经过多次的实验研究,我们最终决定用8253与8255来进行实验,同时也取得了成功。

通过这次的硬件课程设计,我们学到了很多的课本以外的知识,同时也复习了课本的知识。在收获的同时,我们也深刻的了解到了,即使书本上的知识掌握的再好,在将它付诸实践时还是会遇到各种各样的问题。这次课程设计就是一次对自己所学知识的总结和应用,使我们对微机原理这门课程有了更深的了解。

本次实验对于我们来说是一次很难得的锻炼机会。为了实现本次实验,我们需要从一个模型从项目选择、方案选择和论证电路设计、元器件选择等到软硬件的设计及实现,再到最终的测试和调试整个工作过程,了解并掌握了系统设计时软件、硬件以及软硬件联合设计、制作和调试。因此,无论是在理论方面,还是实际动手能力方面都有很大提高。但同时,我们也发现我们存在着很多欠缺之处,在以后的学习中,我们一定会再接再厉,更多的掌握这方面的知识、技能,为以后走进更高的学习领域或工作岗位打下基础。

此外,这次设计实验也培养了我们团体协作的精神。在实验的过程中,我们深切的体会到“做什么东西,并不是一个人就能行的,必须要有队友的合作,只

有大家一起努力,才能最终完成事情。”在这次实验中,我们小组的成员一直是

积极地配合着,虽然在实验中我们的贡献是不同的,但我们发挥着团体协作的精

神,共同承担责任,直到实验的完成。

经过几周的奋斗,我们把以前不牢靠的知识基础被再一次夯实,对于微型计

算机原理和接口技术有了更进一步的把握和理解。最终我们的设计顺利的通过,

但是由于我们的能力有限,时间有限,有一些功能并不能按照我们最初的设想完

成。所以我们不会满足,为了更好的适应接下来的学习与应用,我们会利用更多

的课余时间来学习和应用我们已经掌握了的知识,将这些作为将来的技术学习基

础。

六、参考文献

[1] 周荷琴 吾秀清主编《微机原理与接口技术》 合肥:中国科学技术出版社

[2] 李恩林 陈斌生主编《微机接口技术300例》 北京:机械工业出版社 2003

[3]《微机原理与接口技术实验与实践教程》汤书森 清华大学出版社

[4]《硬件课程设计大纲》马海波 中国矿业大学计算机学院

[5]《硬件课程指导书》马海波,刘厚泉 中国矿业大学计算机学

21 / 21


相关内容

  • 电气自动化_毕业设计
    天津机电职业技术学院 毕业设计(论文) (2009届) 题 目 PLC在风淋控制系统中的应用 系(院)别 专 业 电气自动化 班 级 姓 名 指导教师 2011 年 11 月 24 日 天津机电职业技术学院 毕业设计(论文)任务书 毕业设计 ...
  • PLC 在三相异步电机控制中的应用论文
    河北化工医药职业技术学院毕业论文 第1章 绪论 三相异步电动机的应用几乎涵盖了工农业生产和人类生活的各个领域,在这些应用领域中,三相异步电动机常常运行在恶劣的环境下,导致产生过流.短路.断相.绝缘老化等事故.对于应用于大型工业设备重要场合的 ...
  • 三菱PLC可编程控制器教材
    第一章 可编程控制器概况 可编程控制器(PROGRAMMABLE CONTROLLER,简称PC ).与个人计算机的 PC 相区别,用PLC 表示. PLC 是在传统的顺序控制器的基础上引入了微电子技术.计算机技术.自 动控制技术和通讯技术 ...
  • 机电一体化PLC毕业设计
    机电一体化PLC毕业设计 毕 业 论 文 自动化组合机床的PLC控制系统设计 姓 名: 董 瑞 峰 班 级: 机电工程系 学 号: 2012810237 专 业: 机电工程系机电一体化 指导教师: 王 玲 玲 自动化组合机床的PLC控制系统 ...
  • 气动机械手PLC控制系统设计_毕业论文
    天津轻工职业技术学院 毕 业 设 计 论 文 机械手PLC控制系统设计 刘磊 专 业 名 称 班 级 学 号 :[1**********] 2013年3月4号 [摘要]: 在工业生产和其他领域内,由于工作的需要,人们经常受到高温.腐蚀及有毒 ...
  • PLC的变频调速恒压供水系统毕业设计
    烟台工程职业技术学院 机电 系 机电一体化 专业 2010 级 毕业设计(论文) 题 目: PLC的恒压供水系统设计 姓名 张凯 学号 2010060196 指导教师(签名) 二○ 年 月 日 摘 要 随着人民生活水平的日趋提高,新技术和先 ...
  • PLC在钢管热镀锌生产线中的应用
    PLC在钢管热镀锌生产线中的应用 刘 莹,周 军,安连祥 (河北工业大学研究生学院,天津 300130) 摘要:针对目前我国钢管镀锌企业的生产管理特点,研究开发了一套采用PLC控制的钢管热镀锌自动控制系统.阐述了控制系统硬件结构及软件设计思 ...
  • 数控技术复习汇总l答案
    数控技术复习纲要 第1章 绪论 1. 数控加工的特点及主要加工对象 数控加工的特点: 1)可以加工具有复杂型面的工件 2)加工精度高,质量稳定 3)生产率高 4)改善劳动条件 5)有利于生产管理现代化 数控加工的主要对象: 1)多品种.单件 ...
  • 单片机 四路抢答器
    课程设计说明书 (2009/2010学年第二学期) 课程名称 :题 目 :专业班级 :学生姓名 :学 号 :指导教师 :设计周数 :设计成绩 : 单片机应用课程设计 四路抢答器 电气2班 韩昱 苗敬利 两周(10.6.28-10.07.09 ...