计算机硬件课程设计报告可编程作息时间控制器_第1页
计算机硬件课程设计报告可编程作息时间控制器_第2页
计算机硬件课程设计报告可编程作息时间控制器_第3页
计算机硬件课程设计报告可编程作息时间控制器_第4页
计算机硬件课程设计报告可编程作息时间控制器_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、 设计概述 1、设计思路综述作息时间控制系统主要有四大子系统功能实现:1.时间运行系统;2.报时时间值设置及调时系统;3.时分显示系统;4.报时响应系统。时间运行系统让时间一直运行着;报时时间值设置及调时系统使得用户可以随时设置时间;时分显示系统让用户可以清楚知晓当前系统时间,报时响应系统完成当当前时间与报时时间值一致时进行响应(如led闪烁)。四大子系统的协调有序的运行,保证了作息时间控制系统具有报时,调时,显时功能,还达到了与用户可交互的目的。时间运行与调节利用芯片8253的处理而产生符合要求的脉冲,执行计时子程序改变时间参数而计时,进行时间计算,并用实时检测程序将时间参数用数码管显示

2、电路显示出小时与分钟以及秒钟数。与此同时也进行与报时时间段程序的不断调用,使得在规定时刻进行报时。可选择5253通道0与通道1实现定时,通道1输出out1接led及音响的输入端口,完成上述连接后,编程实现小时,分钟的变化的子程序,以及对8253,8255进行初始化编程,计时程序实现时间运行。2、分工介绍在本次试验中,我们采用的芯片分工学习,然后交流学习到的知识,合作完成实验。二、需求分析(一)intel 8086(主控芯片)intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复

3、杂的寄存器配置。它提供64k 8 位元的输出输入(或32k 16 位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个。数据寄存器组:ax、bx、cx、dx;指示器变址寄存器组:si、di、sp、bp段寄存器组:cs、ds、es、ss(二)8253的工作原理1、计数器/定时器的功能:(1) 对外部事件发生次数进行计数;(2) 产生计算机系统需要的定时信号。计数和计时本质上是相同的,它们都是对一个输入脉冲进行计数。计数器的输入信号可以是随机信号,定时器的输入信号要求具有固定周期。如果输入脉冲的频率一定,那么记录脉冲的个

4、数与所需的时间是一一对应的关系。例如输入脉冲频率为2mhz,那么计数2106 计时1秒。因此,使用同一个芯片,既可以用来计数,又可以用来定时。计数器/定时器8253可以通过编程,从6种工作方式中选择一种工作方式。一个计数器/定时器的组成:控制字寄存器决定工作模式(8位)状态寄存器反映工作状态初值寄存器计数的初值(16位)计数输出寄存器 cpu从中读当前计数值(16位)。计数器执行计数操作,cpu不能访问。(16位)下面是我们对8253的一些具体的介绍:2、8253a的内部结构和引脚信号图示123456789101112242322212019181716151413d7d6d5d4d3d2d1

5、d0clk0out0gate0gndclk1out1gate1clk2out2gate2a1a0vccwrrdcs82538253的三个计数通道在结构上和功能上完全一样,每个通道均有两个输入引脚clk和gate,一个输出信号 引脚out。3、 8253的初始化步骤和门控信号的功能1. 初始化步骤:(1) 写入控制字;(2) 按控制字要求写入计数初值。 计数初值n=fclk/fout =tout/tclk初始化程序:movdx, 203h;8253初始化moval, 控制字outdx, al2. 门控信号控制功能:门控信号gate的控制功能如教材p310表8-2所示,由表可知:方式0,4时:门控

6、信号为电平触发 方式1,5时:门控信号为上升沿触发 方式2,3时:门控信号为电平或上升沿触发4、 8253的工作方式 工作方式决定以下内容:1)门控信号的影响高电平允许:当gate=0,即使出现clk,也不计数 方式0,2,3,4上升沿允许(上升沿触发)方式1,5,2,32) out信号的状态写入控制字后, out的状态计数过程中, out的状态计数终了, out的状态3)计数操作可否重复不可重复模式0,4自动重复模式2,3条件重复模式1,5(1)方式0:计数结束中断方式特点:计数器只计数一遍,不循环,计数过程中,可由门控信号控制暂停计数,在计数过程中可改变计数值。写入新值后,计数器按新值重新

7、开始计数(2)方式1:可编程单稳态输出方式特点:若计数值为n,则输出脉冲宽度为n*clk,计数到0,可由gate上升沿再次触发,输出一个脉冲,不需重新赋值。若计数过程中,门控信号再次触发,计数器在触发信号的下一个clk重新开始计数。若计数过程中,cpu改变计数值,但计数过程不受影响,再次触发后,按新值重新计数(3)方式2:比率发生器(分频器)特点:不需重新赋值,计数器能连续工作。计数过程中,若gate变低,计数器暂停工作,gate变高后,计数器重新取出初值,开始计数(4)方式3:方波发生器特点:同方式2的三个特点,不同的是:初值为偶数时,每来一个脉冲,计数值减2;初值为奇数时,第一个clk使计

8、数器减“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的上升沿出现时,取出初值开始计数,计

9、数过程中改变计数值,若没有gate的触发,不影响计数过程,当计数到“0”后,若有gate触发,则按新的计数值计数。(二)8279功能介绍 8279 是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘fifo(先进先出堆栈)/传感器,双重功能的8*8 64b ram,键盘控制部分可控制 8*8=64 个按键或 8*8 阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示 ram容量为 16*8,即显示器最大配置可达 16位 led 数码显示。 (1)数据线 db0db7 是双向三态数据总线,在接口电路中与系统数据 总线相

10、连,用以传送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 位的状态,该位状态控制键盘上/下档功能。在传感器

11、方式和选通方式中,该引脚无用。 cntl/s:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(d7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把rl0-rl7 的数据存入fifo ram 中。 outa0-outa3:通常作为显示信号的高4 位输出线。 outb0-outb3:通常作为显示信号的低4 位输出线。 /bd:显示熄灭输出线,低电平有效。当/bd=0 时将显示全熄灭。三、设计专题(一)分部设计门控值为高电平开始8253初始化低四位赋值高四位赋值灯亮同时铃响输入频率,载入计数初值结束1、8253的设计流程及代码 (1) 流程图 (2)8253代码s

12、tack segment stackdw 64 dup(?)stack endscode segmentassume cs:code,ds:code;8253计时程序begin proc near mov al, 36h; 00110110b ; 计数器0,16位,方式3,二进制 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 ; 计数器1,16位,方式3,二进制 mov dx, 20bh out

13、 dx, al mov ax, 2000 mov dx, 209h out dx, al ; 计数器低字节 mov al, ah out dx, al ; 计数器高字节 jmp $begin endpcode ends end begin2、8279的设计流程及代码n 入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。开始8279初始化制定时器模式及常数读键盘灯亮,铃响有键输入m等待输入结束y入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。n入文档的引述或关注点

14、的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。y的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。 (1)流程图 (2)8279代码z8279 equ 212hd8279 equ 210hledmod equ 00 ;左边输入,八位显示,外部译码八位显示ledfeq equ 38h ;扫描频率code segmentassume cs:code,ds:codestart: ;初始化 push cs pop ds mov dx,212h mov al,00 out dx,al mov a

15、l,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

16、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 ;fifo正在清除期间则跳转等待 mov al,bl and al,0fh cmp al,00h je waiit ;无键按下则等待 mov al,40h ;写 读fifo ram命令字 out dx,al mov dx,210h ;读入fifo ram内容 in al,dx nop cmp al,3bh je fini ;查表,将键码放入al中 lea bx,led xlat mov dx,2

17、10h ;将al中内容写到数码管上 out dx,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

18、 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 endsend start(二)总体设计1、总体设计流程图n入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。n入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格

19、式。y入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。开始8279初始化制定时器模式及常数读键盘灯亮,铃响有键输入m等待输入4结束8253初始化低四位赋值高四位赋值输入频率,门控值y入文档的引述或关注点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。门控值为高电平点的摘要。您可将文本框放置在文档中的任何位置。可使用“文本框工具”选项卡更改重要引述文本框的格式。分析:在实验的过程中,我们将8253和8279的程序直接合成,并将8279控制键盘输出的数据直接传输给8253,通过其脉冲

20、控制输入频率,控制彩灯以及响铃的频率,就可以达到我们要求的键盘控制时间来设定作息时间。2、总体设计代码stack segment stackdw 64 dup(?)stack endsdata segmentsec db 20 dup(?)data endscode segmentassume cs:code;8279键盘程序start: ;初始化 push cs pop ds mov dx,212h mov al,00 out dx,al mov al,38hout dx,al mov dx,210h mov al,7fh out dx,al mov dx,210h mov al,7fh o

21、ut 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

22、 al,80h cmp al,80h je waiit ;fifo正在清除期间则跳转等待 mov al,bl and al,0fh cmp al,00h je waiit ;无键按下则等待 mov al,40h ;写 读fifo ram命令字 out dx,al mov dx,210h ;读入fifo ram内容 in al,dx;查表,将键码放入al中 mov sec,al ;将键盘值读入sec中 nop cmp al,3bh je fini lea bx,led xlat mov dx,210h ;将al中内容写到数码管上 out dx,al mov dx,212h ;清fifo ram寄

23、存器 mov al,0c2h out dx,al ;mov al,bl ;and al,0fh cmp al,00h jnz beginfini: 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

24、,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

25、; 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 jmpwaiitcode ends end start3、 最终连线图上图为最终试验连线图,从图中我们可以清晰的看出:8253 芯片中设置的输入频率为2mhz,超出了一个接入端的范围,这样仅用一个clk接入端就不能实现我们所要求的效果,因此我们对两个接入端均选用的方式3,gate接高电平,out

26、1接clk0,完成完整的8253脉冲接线图。对8279来说,虽然8279的接线很负载,但外设的接线点很少,都在内部完成,所以我们只需要选取恰当的地址,用8279 来控制键盘按键。这样连接好线路后,因为硬件箱内部线路是连接好了的,所以我们可以直接利用按键来控制灯和铃的变化,显示出我们要求的效果,从而成功的完成实验。四、技术分析 (一) 可行性与优点分析在本次设计的过程中,我们遇到了一些困难但通过努力终于比较完整的完成了这次设计的任务;在8279键盘扫描程序中,其中重要的是键盘码的对应值,他是实现我们输入数字与控制响铃与灯亮统一的关键,同时程序中的几个循环也是比较重要的;在计时程序设计中,最重要的

27、是如何判断定时时间到,用设定时间与显示的数字作比对,直到相同为止即定时时间是准确的。在本次的实验设计中,最大的优点在于我们所选用的原理简单易行,容易实现,能够在较短的时间内达到要求的效果。(二)设计中的不足分析与改进本设计存在缺陷:首先,这个设计不够精确,数码管显示的时间与,主要原因,算的数字存在误差,系统也存在误差。在8279的程序中也有一定的缺陷。在存储键码时应当多次循环才能保证其数码管输出地与灯、铃闪烁时间一致,并且需要通过准确的计算,指定的时间才能达到预期的效果。五、实验体会这次实验使我们大长知识,首先我们在这次实验之初,对实验没有一个太大的概念,听了老师的讲解之后稍稍了解到了一点,于是我们便上网查询,找到了关于这个实验的一些资料,这些资料大体上分为3类。第一类:利用8255,8253,0832实现的;第二类:利用8255,8253,8279来实现的;第三类:8255,8279,8259来实现的。首先,我们在刚开始时便从第一类下手,这导致我们走了许多弯道,我们也在屡次不成功的基础上认识到了这

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论