可编程作息时间控制器.docx
- 文档编号:7163840
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:19
- 大小:167.75KB
可编程作息时间控制器.docx
《可编程作息时间控制器.docx》由会员分享,可在线阅读,更多相关《可编程作息时间控制器.docx(19页珍藏版)》请在冰豆网上搜索。
可编程作息时间控制器
可编程作息时间控制器
一.设计概述
1.思路综述
可编程作息时间控制器:
作息时间控制系统主要有四大子系统功能实现:
1.时间运行系统;
2.报时时间值设置及调时系统;
3.时分显示系统;
4.报时响应系统。
时间运行系统让时间一直运行着;报时时间值设置及调时系统使得用户可以随时设置时间;时分显示系统让用户可以清楚知晓当前系统时间,报时响应系统完成当当前时间与报时时间值一致时进行响应(如LED闪烁)。
四大子系统的协调有序的运行,保证了作息时间控制系统具有报时,调时,显时功能,还达到了与用户可交互的目的。
2.合作与分工
在本次试验中,我们分工学习芯片,然后交流学习到的知识,共同完成实验!
二.需求分析
一).芯片需求:
PC机一台Intel8086(主控芯片)8253芯片8279芯片
二).芯片详述
1.Intel8086(主控芯片)
Intel8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。
它提供64K8位元的输出输入(或32K16位元),以及固定的向量中断。
大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。
运算结果会储存在操作数中的一个。
数据寄存器组:
AX、BX、CX、DX;
指示器变址寄存器组:
SI、DI、SP、BP
段寄存器组:
CS、DS、ES、SS
2.8253
1).8253A的内部结构和引脚信号图示
8253的三个计数通道在结构上和功能上完全一样,每个通道均有两个输入引脚CLK和GATE,一个输出信号引脚OUT。
2).8253的初始化步骤和门控信号的功能
1.初始化步骤:
(1)写入控制字;
(2)按控制字要求写入计数初值。
•计数初值N=fCLK/fOUT=TOUT/TCLK
初始化程序:
MOVDX,203H;8253初始化
MOVAL,控制字
OUTDX,AL
3).门控信号控制功能:
门控信号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触发,则按新的计数值计数。
3).8253功能实现
1.时间运行与调节利用芯片8253的处理而产生符合要求的脉冲,执行计时子程序改变时间参数而计时,进行时间计算,并用实时检测程序将时间参数用数码管显示电路显示出小时与分钟以及秒钟数。
与此同时也进行与报时时间段程序的不断调用,使得在规定时刻进行报时。
可选择8253通道0与通道1实现定时,通道1输出out1接LED及音响的输入端口,完成上述连接后,编程实现小时,分钟的变化的子程序,以及对8253,8255进行初始化编程,计时程序实现时间运行
2.计数器/定时器的功能:
(1)对外部事件发生次数进行计数;
(2)产生计算机系统需要的定时信号。
计数和计时本质上是相同的,它们都是对一个输入脉冲进行计数。
计数器的输入信号可以是随机信号,定时器的输入信号要求具有固定周期。
如果输入脉冲的频率一定,那么记录脉冲的个数与所需的时间是一一对应的关系。
例如输入脉冲频率为2MHz,那么计数2106计时1秒。
因此,使用同一个芯片,既可以用来计数,又可以用来定时。
计数器/定时器8253可以通过编程,从6种工作方式中选择一种工作方式。
一个计数器/定时器的组成:
控制字寄存器——决定工作模式(8位)
状态寄存器——反映工作状态
初值寄存器——计数的初值(16位)
计数输出寄存器——CPU从中读当前计数值(16位)。
计数器——执行计数操作,CPU不能访问。
(16位)
3.8279
8279的内部结构和引脚信号图示
8279是可编程的键盘、显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。
8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*864BRAM,键盘控制部分可控制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的数据存入FIFORAM中。
OUTA0---OUTA3:
通常作为显示信号的高4位输出线。
OUTB0---OUTB3:
通常作为显示信号的低4位输出线。
/BD:
显示熄灭输出线,低电平有效。
当/BD=0时将显示全熄灭。
三.电路图
8253定时、计数:
8279键盘显示:
四.软件功能
该软件通过8253与8279的定时与键盘的设定可以实现给用户提供时间提醒。
作息时间控制系统主要有四大子系统功能实现:
1.时间运行系统;2.报时时间值设置及调时系统;3.时分显示系统;4.报时响应系统。
时间运行系统让时间一直运行着;报时时间值设置及调时系统使得用户可以随时设置时间;时分显示系统让用户可以清楚知晓当前系统时间,报时响应系统完成当当前时间与报时时间值一致时进行响应(如LED闪烁)。
四大子系统的协调有序的运行,保证了作息时间控制系统具有报时,调时,显时功能,还达到了与用户可交互的目的
可编程作息时间控制器
8279将键盘初始化和赋值当前时间与报时时间值一致时进行响应(如LED闪烁)
82531.时间运行系统;2.报时时间值设置及调时系统;3.时分显示系统
五.流程图及代码
1.8253的设计流程图
2.8253代码
STACKSEGMENTSTACK
DW64DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
;8253计时程序
BEGINPROCNEAR
MOVAL,36H;00110110B;计数器0,16位,方式3,二进制
MOVDX,20BH
OUTDX,AL
MOVAX,2000
MOVDX,208H
OUTDX,AL;计数器低字节
MOVAL,AH
OUTDX,AL;计数器高字节
MOVAL,76H;01110110B;计数器1,16位,方式3,二进制
MOVDX,20BH
OUTDX,AL
MOVAX,2000
MOVDX,209H
OUTDX,AL;计数器低字节
MOVAL,AH
OUTDX,AL;计数器高字节
JMP$
BEGINEND
CODEENDS
ENDBEGIN
3.8279的设计流程图
4.8279代码
Z8279EQU212H
D8279EQU210H
LEDMODEQU00;左边输入,八位显示,外部译码八位显示
LEDFEQEQU38H;扫描频率
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
START:
;初始化
PUSHCS
POPDS
MOVDX,212H
MOVAL,00
OUTDX,AL
MOVAL,38H
OUTDX,AL
MOVDX,210H
MOVAL,7FH
OUTDX,AL
MOVDX,210H
MOVAL,7FH
OUTDX,AL
MOVDX,210H
MOVAL,7DH
OUTDX,AL
MOVDX,210H
MOVAL,7FH
OUTDX,AL
MOVDX,210H
MOVAL,70H
OUTDX,AL
MOVDX,210H
MOVAL,5BH
OUTDX,AL
MOVDX,210H
MOVAL,70H
OUTDX,AL
MOVDX,210H
MOVAL,76H
OUTDX,AL;以上为写(ZK88)
NOP
MOVDX,212H
MOVAL,0C2H
OUTDX,AL;置空FIFO寄存器
WAIIT:
NOP
INAL,DX
MOVBL,AL
ANDAL,80H
CMPAL,80H
JEWAIIT;FIFO正在清除期间则跳转等待
MOVAL,BL
ANDAL,0FH
CMPAL,00H
JEWAIIT;无键按下则等待
MOVAL,40H;写读FIFORAM命令字
OUTDX,AL
MOVDX,210H;读入FIFORAM内容
INAL,DX
NOP
CMPAL,3BH
JEFINI
;查表,将键码放入AL中
LEABX,LED
XLAT
MOVDX,210H;将AL中内容写到数码管上
OUTDX,AL
MOVDX,212H;清FIFORAM寄存器
MOVAL,0C2H
OUTDX,AL
JMPWAIIT;等待下一次键输入
FINI:
MOVDX,212H
MOVAL,0D3H
OUTDX,AL
JMP$
LED:
DB07H,66H,06H,3FH
DB00H,00H,00H,00H
DB7FH,6DH,5BH,71H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB6FH,7DH,4FH,79H
DB00H,00H,00H,00H
DB77H,7CH,39H,5EH
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
CODEENDS
ENDSTART
5.总体流程图
门控值为高电平点的摘要。
您可将文本框放置在文档中的任何位置。
可使用“文本框工具”选项卡更改重要引述文本框的格式。
]
注:
将8253和8279的程序直接合成,并将8279控制键盘输出的数据直接传输给8253,通过其脉冲控制输入频率,控制彩灯以及响铃的频率,就可以达到我们要求的键盘控制时间来设定作息时间。
6.总体设计代码:
STACKSEGMENTSTACK
DW64DUP(?
)
STACKENDS
DATASEGMENT
SECDB20DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE
;8279键盘程序
START:
;初始化
PUSHCS
POPDS
MOVDX,212H
MOVAL,00
OUTDX,AL
MOVAL,38H
OUTDX,AL
MOVDX,210H
MOVAL,7FH
OUTDX,AL
MOVDX,210H
MOVAL,7FH
OUTDX,AL
MOVDX,210H
MOVAL,7DH
OUTDX,AL
MOVDX,210H
MOVAL,7FH
OUTDX,AL
MOVDX,210H
MOVAL,70H
OUTDX,AL
MOVDX,210H
MOVAL,5BH
OUTDX,AL
MOVDX,210H
MOVAL,70H
OUTDX,AL
MOVDX,210H
MOVAL,76H
OUTDX,AL;以上为写(ZK88)
NOP
MOVDX,212H
MOVAL,0C2H
OUTDX,AL;置空FIFO寄存器
WAIIT:
NOP
INAL,DX
MOVBL,AL
ANDAL,80H
CMPAL,80H
JEWAIIT;FIFO正在清除期间则跳转等待
MOVAL,BL
ANDAL,0FH
CMPAL,00H
JEWAIIT;无键按下则等待
MOVAL,40H;写读FIFORAM命令字
OUTDX,AL
MOVDX,210H;读入FIFORAM内容
INAL,DX;查表,将键码放入AL中
MOVSEC,AL;将键盘值读入SEC中
NOP
CMPAL,3BH
JEFINI
LEABX,LED
XLAT
MOVDX,210H;将AL中内容写到数码管上
OUTDX,AL
MOVDX,212H;清FIFORAM寄存器
MOVAL,0C2H
OUTDX,AL
;MOVAL,BL
;ANDAL,0FH
CMPAL,00H
JNZBEGIN
FINI:
MOVDX,212H
MOVAL,0D3H
OUTDX,AL
JMP$
LED:
DB07H,66H,06H,3FH
DB00H,00H,00H,00H
DB7FH,6DH,5BH,71H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB6FH,7DH,4FH,79H
DB00H,00H,00H,00H
DB77H,7CH,39H,5EH
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
DB00H,00H,00H,00H
;8253计时程序
BEGINPROCNEAR
MOVAL,36H;00110110B;计数器0,16位,方式3,二进制
MOVDX,20BH
OUTDX,AL
MOVAX,SEC
MOVDX,208H
OUTDX,AL;计数器低字节
MOVAL,AH
OUTDX,AL;计数器高字节
MOVAL,76H;01110110B;计数器1,16位,方式3,二进制
MOVDX,20BH
OUTDX,AL
MOVAX,SEC
MOVDX,209H
OUTDX,AL;计数器低字节
MOVAL,AH
OUTDX,AL;计数器高字节
JMPWAIIT
BEGINENDP
JMPWAIIT
CODEENDS
ENDSTART
参考资料
《微机原理与接口》
《硬件编程接口与系统软件实现》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 作息 时间 控制器