微机接口电子时钟课程设计.docx
- 文档编号:5959589
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:22
- 大小:177.82KB
微机接口电子时钟课程设计.docx
《微机接口电子时钟课程设计.docx》由会员分享,可在线阅读,更多相关《微机接口电子时钟课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
微机接口电子时钟课程设计
目录
第1章前言1
1.1课题介绍1
1.2基本功能要求1
1.3课题引言1
第2章接口简介2
2.1接口技术简介2
2.1.1接口与接口技术2
2.1.2接口的作用和功能2
2.2芯片介绍4
2.2.18255芯片介绍4
2.2.28259芯片介绍7
2.2.38253芯片介绍8
第三章总体设计10
3.1设计目标10
3.2主程序模块10
3.3显示模块12
3.4中断处理模块12
3.5:
硬件连接图13
第四章详细设计15
4.1主程序流程图15
4.2中断时间变化流程图16
第六章实验小结18
参考文献19
第1章前言
1.1课题介绍
应用计算机技术,通过巧妙的软件设计和简易的硬件电路,实现电子时钟。
具有显示时间和更改时间的功能
1.2基本功能要求
(1).设计实验电路(要求利用实验仪的硬件资源)
(2).分析实验原理
(3).列出实验接线表
(4).采用汇编语言编写实验程序
(5).通过实验验证功能的实现
(6).编写课程设计说明书
1.3课题引言
随着微型计算机的普及和广泛应用,接口技术成为十分重要、十分关键的计术。
因为计算机的强大的功能往往是由接口能力和处理外界信息的能力表现出来的。
所谓接口就是微处理器CPU与外设的连接电路,是CPU与外界进行通信信息交换的中转站。
只有通过接口连接键盘、显示器、打印机,计算机处理的信息才能显现;通过接口连接软磁盘和硬磁盘,才可极大地扩充计算机的存储空间;通过接口连接多个微型计算机组成分布式系统,其多机并行运算可以达到数亿次以上;计算机只有通过接口连接各种各样的自然界模拟信号,才能应用到控制与测试等领域,实现机电仪一体化;将计算机配接口组成计算机网,实现信息资源共享,使社会信息化。
由于计算机应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂。
微机接口采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换。
因此,接口技术是硬件与软件的综合技术。
本次开发是在8086系统平台上,利用DAC0832、8255芯片连接电路,从而实现利用6个开关键切换/调频/调幅的波形发生器。
当完成时,竟发现接口技术如此神奇,而自己也能利用它做出一些有趣的东西了。
”千里之行、始于足下”,相信经过这次的课程设计能够使自己在接口技术的应用上更上一个台阶。
第2章接口简介
2.1接口技术简介
2.1.1接口与接口技术
20世纪科学技术对人类的最大贡献之一就是电子计算机的发明。
自1946年第一台电子计算机问世以来,经过几十年的发展与变革,使计算机逻辑部件经历了电子管时代,晶体管时代,集成电路时代,大规模、超大规模集成电路时代,超大规模、超高速集成电路时代。
同时,计算机内存的容量不断增加,软、硬件不断丰富,特别是多媒体、超媒体技术的发展,使计算机的使用越来越得心应手,在当今的信息化社会、网络时代,它已成为人们工作和生活中不可缺少的基本工具,充当了改变人类社会生产和生活方式的主角。
而在计算机中人们接触最多的是微型计算机。
随着微型计算机的普及和广泛应用,接口技术成为十分重要、十分关键的计术。
因为计算机的强大的功能往往是由接口能力和处理外界信息的能力表现出来的。
所谓接口就是微处理器CPU与外设的连接电路,是CPU与外界进行通信信息交换的中转站。
只有通过接口连接键盘、显示器、打印机,计算机处理的信息才能显现;通过接口连接软磁盘和硬磁盘,才可极大地扩充计算机的存储空间;通过接口连接多个微型计算机组成分布式系统,其多机并行运算可以达到数亿次以上;计算机只有通过接口连接各种各样的自然界模拟信号,才能应用到控制与测试等领域,实现机电仪一体化;将计算机配上接口组成计算机网,实现信息资源共享,使社会信息化。
由于计算机应用越来越广泛,要求与计算机接口的外围设备越来越多,越来越复杂。
微机接口采用硬件与软件相结合的方法,使微处理器与外部世界进行最佳耦合与匹配,以在CPU与外部世界之间实现高效、可靠的信息交换。
因此,接口技术是硬件与软件的综合技术。
2.1.2接口的作用和功能
1)接口一般多指I/O接口,其作用有三点:
(1)信息变化-----包括信息种类的转换(A/D,D/A)和数字格式转换(如串/并,并/串);
(2)速度协调-----因CPU是工作与ns数量级,而外设多为机械动作,如硬盘的读/写时间为ms数量级,键盘的操作更慢,因此接口起到速度协调的作用,使快速的CPU能与慢速的外设协调工作;
(3)辅助和缓冲-----辅助电路包括常见的中断控制器,DMA控制器,计数/定时器,时钟发生器等,而缓冲电路包括电平、阻抗、功率和时间的匹配和驱动。
2)CPU与外设之间的接口,一般应具有如下八个功能
(1)数据缓冲功能
为了解决CPU高速与外设低速的矛盾,避免速度不一致而丢失数据,接口中一般都设置数据寄存器或锁存器称为数据口。
为了实现CPU与外设之间的联络,接口电路还要提供寄存器”空”、”满”、”准备好”、”忙”、”闲”等状态信号,以便向CPU报告接口或外设的工作情况,称为状态口。
(2)接收和执行CPU命令的功能
CPU对I/O设备的控制命令,一般一代码的形式送到接口的命令寄存器,称为命令口;再由接口电路对命令代码进行识别和分析,产生若干控制信号,传到I/O设备,使其产生相应的操作。
(3)信号转换功能
由于外设所需的控制信号和它所能提供的状态信号往往与微机的总线信号不匹配,信号变换就不可避免,因此,信号转换包括CPU的信号与外设信号的逻辑关系、时序配合以及电平匹配上的转换,它是接口设计的一个重要内容。
(4)设备选择功能
微机系统中一般带有多种外设,同一种外设也可能配备多台,一台外设也可能包含多个I/O端口,这就需要借助接口中的地址译码电路对外设进行I/O端口寻址。
与内存的片选、字选操作十分类似,通常将高位地址用于外设接口芯片的选择,低位地址进行芯片内部寄存器或锁存器的选择,以选定需要与自己交换信息的设备,只有被选中的设备才能与CPU进行数据交换或通信。
(5)中断管理功能
当外设需要及时得到CPU的服务,特别是在出现故障时,这就要在接口中设置中断控制器,为CPU处理有关中断事务。
这样,既做到微机系统对外界的实时相应,又对CPU与外设并行工作,提高CPU的效率。
(6)错误检测功能
为提高数据传输的可靠性,一般接口都配有检错功能,如奇偶检错功能和循环冗余码校验。
还有容错功能,如USB传输出错,主机会重发直至正确为止。
至于可靠性要求特高的场合,如军工产品,还有纠错功能,如海明校验等。
(7)可编程功能
现在的接口芯片基本上都是可编程的,这样在不改动硬件的情况下,只修改相应的驱动程序就可以改变接口的工作方式,大大地增加了接口的灵活性和可扩充性。
(8)可复位功能
接口接收到CPU送来的复位信号之后,能使锁连接的外设重新启动或复位。
上述功能并非每种接口都要具备,对不同配置和不同用途的微机系统,其接口功能不同,接口电路的复杂程度也大不一样,但前四中功能是一般接口都应具备的。
2.2芯片介绍
2.2.18255芯片介绍
1)8255A主要特性:
(1)8255A有2个8位(PA,PB)和2个4位并行I/O端口。
(2)PA口有3种工作方式:
方式0,方式1,方式2;PB口有2中工作方式:
方式0,方式1;分别对应CPU与I/O接口的多种数据传送方式,如无条件传送、查询传送、和中断传送等。
(3)PA口除作为数据端口,工作于方式0以外,当PA,PB工作于方式1,方式2时,它的部分引线被分配为专用联络信号。
PC口可按位置位/复位。
2)8055A内部结构
8055A内部结构图如图1所示,8255A由以下四部分组成:
(1)A组和B组控制部件
端口A和端口C的高四位(PC7~PC4)构成A组,由A组控制部件实现控制功能,端口B和端口C的低四位(PC3~PC0)构成B组,由B组控制部件实现控制功能。
它们各有一个控制单元,可以接收来自读/写部件的命令和通过数据总线(D7~D0)送来的控制字,并且根据控制字定义各端口的操作方式
(2)并行I/O端口PA,PB,PC
8055A包含三个8位端口:
端口A包含一个8为数据输出锁存/缓冲器和一个8位数据输入锁存器;端口B包含一个8位数据输出锁存缓冲器和一个8位数据输入锁存缓冲器;端口C包含一个8位的输出锁存/缓冲器和一个8位数据输入器。
(3)数据总线缓冲器
这是一个三态双向8位数据缓冲器,它是8255A与8086CPU之间的数据接口。
CPU执行输出指令时,可将控制字或数据通过数据总线缓冲器传送给8255A。
CPU执行输入指令时,8255A可将状态信息或数据通过总线缓冲器向CPU输入。
(4)读/写控制逻辑
这是8255A内部完成读/写控制功能的逻辑电路。
它能接收CPU的控制命令,根据CPU的控制命令向片内各功能部件发出操作命令。
8255A内部结构框图
3)8255A的引脚信号和功能
8255A采用40条引脚的双向直插式(DIP,DUALIn-linePackage)封装。
其引脚信号参见图2:
8255A的芯片引脚信号
(1)与CPU连接信号线14条
8255A与CPU链接信号有14条,分别为8条数据总线D0~D7和6条读写线。
a.数据总线D0~D7:
它们为三态输出输入线,用于将8255与系统数据总线相连,是8255与CUP接口数据线,供CPU向8255读写数据、命令和状态信息。
b.片选信号
:
输入信号,低电平有效。
当
为低电平时CPU选中8255A,可向8255A进行读写;
高电平未选中。
由CPU输出高位地址码(A15~A2)译码得到。
c.读信号
:
输入信号,低电平有效。
有效,表示CPU读8255A,即由8255A向CPU传递数据或状态信息。
d.写信号
:
输入信号,低电平有效。
有效,表示CPU写8255A,由CPU将控制字或数据写入8255A。
e.RESET:
复位信号,高电平有效。
RESET有效时,清除8255A中所以控制字寄存器内容,且将各端口置成输入方式。
f.地址线A1,A0:
端口选择信号。
当A1A0=00时,选择端口A;当A1A0=01时,选择端口B;当A1A0=11时,选择控制字寄存器。
这两条线连接到系统地址总线的A1,A0上。
当
=0,8255A被选中时A1,A0用于选择8255A内部寄存器,以便对它们进行读写操作。
(2)8255A与外设连接信号线24条
8255A的A,B,C三个端口有24条线用以与外设相连。
a.PA7~PA0:
A口外设数据线(双向)。
b.PB7~PB0:
B口外设数据线(双向)。
c.PC7~PC0:
C口外设数据线(双向)。
2.2.28259芯片介绍
中断控制器8259A是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先排队、辨别中断源以及提供中断矢量的电路集中于一片中。
因此无需附加任何电路,只需对8259A编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
在MD微机系统中,8259芯片工作于单片方式。
8259引脚图如图,各引脚功能如下。
8259A引脚图
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0——地址信号;
INT——中断请求信号;
INTA(低电平有效)——中断响应信号;
CAS0~CAS2——级联信号,形成一条专用8259A总线,以便多片8259A的级联;
SP/EN——从编程/允许级联。
在缓冲方式中,可用做输出信号以控制总线缓冲器的接收和发送。
在非缓冲方式中,作为输入信号用于表示主片还是从片;
IR0~IR7——外部中断请求输入线。
要求输入的中断请求信号是由低电平到高电平的上升沿(并保持高电平到CPU响应时为止)或者是高电平。
8259中断矢量地址与中断信号之间的关系如上图所示
2.2.38253芯片介绍
3、8253芯片的内部结构及引脚
8253可编程定时/计数器是Intel公司生产的通用外围芯片之一,有3个独立的十六位计数器,技术频率范围为0~2MHZ,它所有的技术方式和操作方式都通过编程控制。
8253的功能用途是:
1:
延时中断:
2:
可编程频率发生器
3:
事件计数器
4:
二进倍频器
5:
实时时钟
6:
数字单稳:
7:
复杂的电机控制器
8253有六种工作方式:
方式0:
计数结束中断
方式1:
可编程频率发生器
方式2:
频率发生器
方式3:
方波频率发生器
方式4:
软件触发的选通信号
(6)方式5:
硬件触发的选通信号
8253各引脚功能:
D7~D0——八条双向数据线;
WR(低电平有效)——写输入信号;
RD(低电平有效)——读输入信号;
CS(低电平有效)——片选输入信号;
A0、A1——片内寄存器地址输入信号;
CLK——计数输入,用于输入定时基准脉冲或计数脉冲;
OUT——输出信号,以相应的电平指示计数的完成,或输出脉冲波形;
GATE——选通输入(门控输入),用于启动或禁止计数器的操作,以使计数器和计测对象同步。
第三章总体设计
3.1设计目标
本系统设计的电子钟以8088微处理器作为CPU,用8253做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。
在此系统中,8253的功能是定时,接入8253的CLK信号为周期性时钟信号。
8253采用计数器0,工作于方式2,使8253的OUT0端输出周期性的负脉冲信号。
即每隔20ms,8253的OUT0端就会输出一个负脉冲的信号,此信号接8259的IR2,当中断到50次数后,CPU即处理,使液晶显示器上的时间发生变化。
程序由以下模块组成:
系统共有3个功能模块,分别为,主控模块,显示模块,中断模块。
3.2主程序模块
主控模块是系的核心模块,对8253、8255A进行初始化,设置中断向量,扫主要由软件实现,它的主要功能是调用其它模块对系统工作进行协调
START:
MOVAX,DATA
MOVDS,AX
MOVHOUR,0
MOVMINUTE,0
MOVSECOND,0
CLI
MOVAX,0
MOVDS,AX
MOVAL,MD8253
MOVDX,CONTROL
OUTDX,AL
MOVAL,00
MOVDX,COUNT0
OUTDX,AL
MOVAL,00
OUTDX,AL
MOVAL,MD8255
MOVDX,CTL8255
OUTDX,AL
MOVBX,4*ICW2
MOVAX,CODE
SHLAX,4
ADDAX,OFFSETIENTER
MOV[BX],AX
MOVAX,0
INCBX
INCBX
MOV[BX],AX
CALLIINIT
MOVAX,DATA
MOVDS,AX
STI
LP:
MOVAL,HOUR
MOVAH,0
MOVCL,10
DIVCL
MOVCH,AH
MOVAH,0
MOVBX,OFFSETLEDMAP
ADDBX,AX
MOVAL,[BX]
MOVLEDBUF,AL
MOVBX,OFFSETLEDMAP
MOVAL,CH
MOVAH,0
ADDBX,AX
MOVAL,[BX]
ORAL,80H
MOVLEDBUF+1,AL
MOVAL,MINUTE
MOVAH,0
MOVCL,10
DIVCL
MOVCH,AH
MOVAH,0
MOVBX,OFFSETLEDMAP
ADDBX,AX
MOVAL,[BX]
MOVLEDBUF+2,AL
MOVBX,OFFSETLEDMAP
MOVAL,CH
MOVAH,0
ADDBX,AX
MOVAL,[BX]
ORAL,80H
MOVLEDBUF+3,AL
MOVAL,SECOND
MOVAH,0
MOVCL,10
DIVCL
MOVCH,AH
MOVAH,0
MOVBX,OFFSETLEDMAP
ADDBX,AX
MOVAL,[BX]
MOVLEDBUF+4,AL
MOVBX,OFFSETLEDMAP
MOVAL,CH
MOVAH,0
ADDBX,AX
MOVAL,[BX]
ORAL,80H
MOVLEDBUF+5,AL
CALLDISPLAYLED
JMPLP
CODEENDS
ENDSTART
3.3显示模块
显示模块是将显示缓冲区的数值送到LED显示的功能模块,显示缓冲区是由六个字节构成,分别保存小时的高位和低位,分钟的高位和低位,秒钟的高位和低位。
硬件上由六个LED构成,软件上由扫描显示的方法实现。
DISPLAYLEDPROCNEAR
MOVBX,OFFSETLEDBUF
MOVCL,6
MOVAH,00100000B
DLOOP:
MOVDX,OUTBIT
MOVAL,0
OUTDX,AL
MOVAL,[BX]
MOVDX,OUTSEG
OUTDX,AL
MOVDX,OUTBIT
MOVAL,AH
OUTDX,AL
PUSHAX
MOVAH,1
CALLDELAY
POPAX
SHRAH,1
INCBX
DECCL
JNZDLOOP
MOVDX,OUTBIT
MOVAL,0
OUTDX,AL
RET
DISPLAYLEDENDP
3.4中断处理模块
中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每秒一次,中断程序该为时间按秒增加,并显示,只要开中断,便可实现每秒显示时间增加一秒,从而达到动态显示的效果。
IENTERPROCNEAR
PUSHAX
PUSHDX
INCSECOND
MOVAL,SECOND
CMPAL,60
JNEEXIT1
MOVSECOND,0
INCMINUTE
MOVAL,MINUTE
CMPAL,60
JNEEXIT1
MOVMINUTE,0
INCHOUR
MOVAL,HOUR
CMPAL,24
JNEEXIT1
MOVHOUR,0
EXIT1:
MOVDX,CS8259A
MOVAL,20H
OUTDX,AL
POPAX
IRET
IENTERENDP
3.5:
硬件连接图
按如下接线图连接好试验箱上的芯片引脚,主要用到器件有8255,8253,LED,8259,小键盘。
8253的片选接地址208-20F,OUT1,OUT0接灯(测试用),GATE0,GATE1接+5V,CLK1接8259的IRQ2,CLK0接Q12(12分频)。
8255的片选接地址218-21F,实验箱已将其和小键盘相连。
LED的片选接地址210-217。
第四章详细设计
4.1主程序流程图
4.2中断时间变化流程图
是否
否
是
否
是
第五章实验结果截图
第六章实验小结
这次课程设计,历时只有短短的四五天时间,时间很短,要想真正的做出来成果还是有很大的困难的,况且只有我们三个人花时间搞设计,某两个人开始的时候什么都不管,然后到了周三的时候看到还没有得到正确结果的时候,他们就拷贝别人的代码,周四的时候去答辩,搞得我们三个心里很不是滋味……开始的时候参考了网上别人做的,我想的有点复杂,像当前时间要系统获得,然后通过程序还可以修改时间,修改时间包括对小时、分钟的修改,修改就设计到按键来使相应的寄存器操作,获取键盘的值很困难,最后进过老师的提示,我就简单化了程序,开始的时间直接通过程序赋值初始化为000,然后把那些额外的功能都给删掉,这样就便得简单很多了,直接就是几个函数的应用了,像8段数码管的显示函数,8255A、8259、8253的初始化函数,以及用来对时分秒计数器加1然后判断是否到60的函数和一个主函数,主函数中最难的就是转化的问题了,我是把小时、分钟、秒的十位和个位先析出然后一个一个的转化为显示码。
有了思路之后,也不是立即就能写代码的,还要了解LED、8259、8253、8255的功能和用法,理解之后才能进行代码的编写……对于这些函数的编写,我也上网查过资料,参考了别人写的,在写代码的过程中发现有很多汇编的知识我都忘记了,连最基本的在进行div运算时得到的商和余数放在哪个寄存器里我都忘记了,翻阅汇编书才知道的。
总之,写出来这些代码发了不少功夫,同时弄懂了不少知识也复习了接口和汇编的知识,付出的努力也得到了回报。
通过这次课程设计,发现自己的动手能力很差,以前没有做过类似的实验,就不知道怎么做,发现了自己的不足也学到了很多东西,像硬、软件的设计方法,显示电路的一般原理,也进一步掌握了8253定时器的使用和8259中断处理器程序的编程方法,以前都是纯软件的设计,没有涉及到硬件的编程,同时深刻理解了电子时钟的原理,开拓思路,锻炼实践动手能力、提高分析能力和解决问题的能力是这次课程设计最大的收获。
虽然这次课程设计我没有做出什么理想的结果,但是我付出了努力,我也得到了很多收获,比那些直接拿别人代码什么都不改的人在我认为强多了,课程设计最终过与不过是另外一回事,最主要是的自己学到了很多东西。
参考文献
《微机原理、汇编与接口技术实验教程》(第二版)朱定华、林卫清华大学出版社2010,5
《微机接口技术》(第三版)王成瑞著高等教育出版社2009.2
《微机原理、汇编与接口技术》(第二版) 朱定华 编著清华大学出版社2010.1
《微机原理与接口技术(基于32位机)》 马春燕等编 电子工业出版社2007.1
《微机原理与接口技术》何珍祥编著机械工业出版社2009.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 电子 时钟 课程设计