可编程作息时间控制器讲解Word格式.docx
《可编程作息时间控制器讲解Word格式.docx》由会员分享,可在线阅读,更多相关《可编程作息时间控制器讲解Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
计数和计时本质上是相同的,它们都是对一个输入脉冲进行计数。
计数器的输入信号可以是随机信号,定时器的输入信号要求具有固定周期。
如果输入脉冲的频率一定,那么记录脉冲的个数与所需的时间是一一对应的关系。
例如输入脉冲频率为2MHz,那么计数2106计时1秒。
因此,使用同一个芯片,既可以用来计数,又可以用来定时。
计数器/定时器8253可以通过编程,从6种工作方式中选择一种工作方式。
一个计数器/定时器的组成:
控制字寄存器——决定工作模式(8位)
状态寄存器——反映工作状态
初值寄存器——计数的初值(16位)
计数输出寄存器——CPU从中读当前计数值(16位)。
计数器——执行计数操作,CPU不能访问。
(16位)
下面是我们对8253的一些具体的介绍:
2、8253A的内部结构和引脚信号图示
8253的三个计数通道在结构上和功能上完全一样,每个通道均有两个输入引脚CLK和GATE,一个输出信号引脚OUT。
3、8253的初始化步骤和门控信号的功能
1.初始化步骤:
(1)写入控制字;
(2)按控制字要求写入计数初值。
•计数初值N=fCLK/fOUT=TOUT/TCLK
初始化程序:
MOVDX,203H;
8253初始化
MOVAL,控制字
OUTDX,AL
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*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时将显示全熄灭。
三、设计专题
(一)分部设计
1、8253的设计流程及代码
(1)流程图
(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
计数器高字节
MOVAL,76H;
01110110B;
计数器1,16位,方式3,二进制
MOVDX,209H
JMP$
BEGINENDP
CODEENDS
ENDBEGIN
2、8279的设计流程及代码
(1)流程图
(2)8279代码
Z8279EQU212H
D8279EQU210H
LEDMODEQU00;
左边输入,八位显示,外部译码八位显示
LEDFEQEQU38H;
扫描频率
CODESEGMENT
START:
;
初始化
PUSHCS
POPDS
MOVDX,212H
MOVAL,00
OUTDX,AL
MOVAL,38H
OUTDX,AL
MOVDX,210H
MOVAL,7FH
MOVDX,210H
MOVAL,7DH
MOVAL,70H
MOVAL,5BH
OUTDX,AL
MOVAL,76H
OUTDX,AL;
以上为写(ZK88)
NOP
MOVAL,0C2H
置空FIFO寄存器
WAIIT:
INAL,DX
MOVBL,AL
ANDAL,80H
CMPAL,80H
JEWAIIT;
FIFO正在清除期间则跳转等待
MOVAL,BL
ANDAL,0FH
CMPAL,00H
无键按下则等待
MOVAL,40H;
写读FIFORAM命令字
MOVDX,210H;
读入FIFORAM内容
INAL,DX
NOP
CMPAL,3BH
JEFINI
查表,将键码放入AL中
LEABX,LED
XLAT
将AL中内容写到数码管上
MOVDX,212H;
清FIFORAM寄存器
JMPWAIIT;
等待下一次键输入
FINI:
MOVAL,0D3H
JMP$
LED:
DB07H,66H,06H,3FH
DB00H,00H,00H,00H
DB7FH,6DH,5BH,71H
DB00H,00H,00H,00H
DB6FH,7DH,4FH,79H
DB77H,7CH,39H,5EH
DB00H,00H,00H,00H
CODEENDS
ENDSTART
(二)总体设计
1、总体设计流程图
门控值为高电平点的摘要。
您可将文本框放置在文档中的任何位置。
可使用“文本框工具”选项卡更改重要引述文本框的格式。
]
分析:
在实验的过程中,我们将8253和8279的程序直接合成,并将8279控制键盘输出的数据直接传输给8253,通过其脉冲控制输入频率,控制彩灯以及响铃的频率,就可以达到我们要求的键盘控制时间来设定作息时间。
2、总体设计代码
DATASEGMENT
SECDB20DUP(?
DATAENDS
ASSUMECS:
8279键盘程序
PUSHCS
OUTDX,AL;
NOP
JEWAIIT;
MOVAL,BL
MOVAL,40H;
MOVDX,210H;
INAL,DX;
MOVSEC,AL;
将键盘值读入SEC中
NOP
CMPAL,3BH
MOVDX,212H;
MOVAL,0C2H
MOVAL,BL
ANDAL,0FH
JNZBEGIN
JMP$
DB00H,00H,00H,00H
DB6FH,7DH,4FH,79H
MOVAX,SEC
JMPWAIIT
JMPWAIIT
ENDSTART
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]《硬件课程指导书》马海波,刘厚泉中国矿业大学计算机学