微机接口课程设计正文.docx
- 文档编号:7482420
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:25
- 大小:190.47KB
微机接口课程设计正文.docx
《微机接口课程设计正文.docx》由会员分享,可在线阅读,更多相关《微机接口课程设计正文.docx(25页珍藏版)》请在冰豆网上搜索。
微机接口课程设计正文
前言
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
所以在此次设计中有以下几点要注意:
(1)设计内容及设计方案论述时钟的具体设计方案及设计要求。
(2)单元电路设计、原理及器件选择说明时钟的设计原理以及器件的选择。
(3)主要从LED点阵屏驱动部分、时钟电路部分、温度传感器电路部分、单片机最小部分、扬声器几部分中进行说明。
(4)绘制整机原理图,该系统的设计、安装、调试工作全部完成。
课程设计任务书
1.课程设计题目
电子钟的设计
2.设计任务和内容
设计一个电子钟,利用四个数码管,在其上显示分、秒;用4个小键盘分别进行分+1,分-1,秒+1,秒-1改变时间值。
3.设计步骤和要求
设计步骤:
首先进行相关资料查阅和学习,理解电子钟制作的流程和要求。
然后结合微机接口技术的理论和实验教材中实例的指导,完成设计任务。
设计要求:
1.撰写要求
设计报告有设计报告目录和正文组成。
其中正文要求最少包括以下部分:
(1).课程设计题目名称;
(2).设计要求完成的任务
(3).系统设计文档(包括:
系统结构,详细设计以及程序设计文档)
(4).课程设计总结(包括收获和体会以及不足和存在的问题)
(5).参考文献.
2.装订顺序
(1).封面
(2).前言
(3).目录
(4).课程设计任务书
(5).正文
(6).小结
(7).参考文献
(8).附录,主要代码
指导老师(签名)__________________________
年月日
第一章概述
1.1设计目的…………………………………………………………………………4
1.2设计内容…………………………………………………………………………4
1.3设计参考…………………………………………………………………………5
1.4电子时钟简介……………………………………………………………………5
1.5设计思路…………………………………………………………………………5
第二章概要设计
2.1设计内容…………………………………………………………………………6
2.2分析论证…………………………………………………………………………6
2.3设计思路…………………………………………………………………………7
2.4电路原理与主要芯片功能………………………………………………………7
2.4.18279主要功能…………………………………………………………….8
2.4.28259主要功能……………………………………………………………10
2.4.38253主要功能……………………………………………………………12
2.4.4系统设计框图………………………………………………………………12
第三章详细设计
3.18279键盘显示模块设计…………………………………………………………14
3.1.18279内部结构…………………………………………………………………14
3.1.28279方式字命令………………………………………………………………14
3.1.38279的初始化设置……………………………………………………………15
3.28259A中断控制模块……………………………………………………………15
3.2.18259A方式控制字……………………………………………………………15
3.2.28259A初始化设置……………………………………………………………16
3.3定时器/计数器的设计……………………………………………………………16
3.3.18253方式控制字………………………………………………………………16
3.3.28253工作方式…………………………………………………………………17
3.3.38253初始化设置………………………………………………………………17
3.4设计系统电路………………………………………………………………….18
第四章接线与调试…………………………………………………………………………19
小结………………………………………………………………………………………………20
参考文献………………………………………………………………………………………21
附录程序………………………………………………………………………………………22
第一章概述
1.1设计目的
通过这学期对《微机原理及接口技术》的学习,可是掌握的知识还不够,知识局限于书本上和老师教的,这些还只是停留在理论的层面上。
这是一门对于硬件及其原理要求熟悉掌握的实践性很强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机的结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。
通过设计实践,培养学生查阅专业资料,工具书和参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。
通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。
具体要求如下:
1、掌握DMA工作原理,中断工作原理,定时计数原理,并行通信原理,A/D和D/A工作原理。
2、熟悉编程及调试程序的方法。
3、掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。
4、掌握8279的各种工作方式及其应用编程。
5、掌握8253定时/计数器的工作原理、工作方式及其应用编程。
6、练习LED-KEYBOARDUNIT的使用方法和数码管的显示编程方法能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。
1.2设计内容
设计的主要内容:
设计一个电子钟,利用四个数码管,在其上显示分、秒;用4个小键盘分别进行分+1、分-1、秒+1、秒-1改变时间值。
基本要求:
(1)、设计实验电路(要求利用实验仪的硬件资源)
(2)、分析实验原理
(3)、列出实验接线表
(4)、采用汇编语言编写实验程序
(5)、通过实验验证功能的实现
(6)、编写课程设计说明书
1.3设计参考
本课程设计中的几个要点:
A、设计一个1s时钟,作为时间的基准。
可通过定时器来实现,由于定是限制,我们可以设定定时时钟为50ms中断一次,然后用一个计数器计数20次,即50ms*20=1000ms=1s。
B、分与时都可采用软件计数器来实现,60秒为1分,60分为1小时。
C、由于实际应用中要求显示为十进制,而在程序中处理的数据都为十六进制,因此在程序中要对显示缓冲区的数据进行十进制调整。
1.4电子时钟简介
电子时钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
传统的设计方法有两种:
一是利用组合逻辑电路和时序电路等中小规模集成电路来设计,在大三的《数字电路》中已经实际并利用组合逻辑电路和时序电路芯片74L161、74LS190、74LS04和LED数码管设计12时制电子钟;一是利用单片机编程技术来设计。
这两种设计在硬件方面都是比较复杂的,而且设计周期长。
本学期通过对《现代微机原理与接口技术》的学习,利用目前所掌握的知识进行实践是必要的,以巩固基础知识,培养独立操作能力。
1.5设计思路
电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。
其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。
这样,才能循环记时。
本次课程设计要实现的功能为:
利用定时器从0开始进行计时,将计时的结果显示在数码管上。
每隔1秒,秒钟计时一次,到60秒,分钟加1,到60分小时加1。
根据需要,需选择的芯片有8254,8259,8255,系统时钟频率1.041667MHz。
第二章概要设计
2.1设计内容
本次课程设计的内容为电子时钟的设计与实现,利用定时器从0开始进行计时,将计时的结果显示在数码管上。
每隔1秒,秒钟计时一次,到60秒,分钟加1,秒钟清零。
根据需要,需选择的芯片有8253,8259,8279,系统时钟频率1.041667MHz。
利用8253计时,计时从0秒到9秒,到9秒后又从0秒重新开始计时,同时将0秒~9秒的数字变动信息通过8279送数码管显示。
由系统时钟频率1.041667MHz,同学们考虑如何利用8253计数器实现1秒的计时。
2.2分析论证
2.2.1显示模块
利用数码管的显示功能来设计。
数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。
通过在这八个发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。
电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。
该模块主要是将时钟运算模块和对时模块运算出来并存放在内存单元里的十六进制表示的时位和分位数据转化为十进制,并通过四个数码管显示出来。
该模块实现的硬件是TND86/88的LED-KEYBOARDUNIT。
2.2.2时钟运算模块
该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。
该模块可以细分为秒定时模块和运算模块。
秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,可以选择TND86/88实验箱中的8253定时/计数器来提供,但又因为8253所能提供的信号的周期时毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。
中断信号是8253的通道2工作方式为方式3时,产生一个50ms的脉冲信号。
运算模块负责时、分、秒的计算,该模块主要通过8259A的IRQ7号中断来实现,首先将秒定时模块提供的中断信号为8259的IRQ7中断请求信号。
但由于每50ms一次中断请求。
所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当count的值为20时,才能让秒单元内的数值加1。
另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1、秒清零;当分加到60时,时加1、分清零。
当时加到24啊,直接清零。
2.2.3对时模块
该模块主要功能是修改时、分内存单元的数值。
在对时的时候,秒应停止不变,并且在对分进行调整的时,时单元内的数值不变。
由以上分析可见,对时、分的调整用两个优先级高于IRQ7的中断来完成。
因此,可以用8259的IRQ2中断来实现,两个中断源的中断请求信号只需直接接在两个按键即可起到对时作用。
2.3设计思想
本系统所要完成的是电子钟的计时等功能,其中最基本的就是实现计时功能,并把相应的数值送到数码管上显示出来。
在本系统中,用到的8253的功能只是相当于一个定时计,我们给定时器输入30KHz频率的脉冲,这样每隔一秒就会在OUT0端产生0到1的跃变,作为中断IRQ的请求信号。
当然,时钟的计数也有其特定的规则,那就是秒、分的个位逢十进一,十位逢六进一,所以,我们可以通过中断处理程序来控制其进位。
这样我们便完成了计时功能。
然而,如果仅仅将计时得到的相应数据送入数码管,我们会发现,四个数码管同时显示,无法完成其时钟的显示功能。
但是,我们知道,四个数码管的亮灭与小键盘X1,X2,X3,X4各列是否为低电平是相对应的,于是,我们就可以将低电平输出到相应的键盘上,来实现对应数码管的显示。
通过以上分析,我们可以用四位二进制码分别对应表示X4X3X2X1的逻辑值(1--高电平,0--低电平),这样要实现时钟的显示功能,便可以按照以下方法来进行:
首先将秒的个位数据通过8279的B端口送给数码管,同时将二进制码“0111”通过8279的A端口送给小键盘X4X3X2X1,这样通过计算机的扫描后,就会在数码管4上显示秒的个位值;接着将秒的十位数据送给数码管,同时将二进制码“1011”送给小键盘X4X3X2X1,这样就会在数码管3上显示相应的数值;同样的道理,分别将分的个位、十位送给数码管,“1101”、“1110”送给小键盘X4X3X2X1,就会依次在数码管2、1上显示分的个位、十位数值。
另外,必须注意的一点就是,显示的时间应该是:
XX.XX,中间的一点显示在分的个位上,也就是说在数码管2上显示那一点,以区分分与秒。
所以,我们将显示分个位的数码管的二进制码最高位置“1”,其他数码管置“0”,便达到了显示点的功能。
从上面的方法我们可以看出,电子钟分秒各位的显示并不是同时进行的,而是按顺序依次循环显示的,它利用的就是人的视觉暂留现象来欺骗人们的眼睛,造成一种“四位数值同时显示”的假象。
2.4电路原理与主要芯片功能
本次设计实现的电子时钟的功能,电子时钟主要采用可编程并行接口芯片8279、中断控制器8259A、定时/计数器8253、LED数码显示管和四个按键来设置一个控制灯的开关来组合设计。
其中主要用8259A的IR7中断服务程序完成秒、分、时的运算即计时功能,IR6的中断服务程序完成调时、调分功能。
8253用来产生50ms的脉冲作为IR7的中断请求信号。
8279A用来控制显示器显示时钟。
按键K1+和K2+分别作为IR2和IR6的中断请求信号。
按键K1+启动/关闭对时功能,它决定是否屏蔽IR7和IR6中断源。
2.4.18279主要功能
8279是可编程的键盘、显示接口芯片。
它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。
8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制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时将显示全熄灭。
2.8279的工作方式
8279有三种工作方式:
键盘方式、显示方式和传感器方式。
(1)键盘工作方式
8279在键盘工作方式时,可设置为双键互锁方式和N键循回方式。
双键互锁方式:
若有两个或多个键同时按下时,不管按键先后顺序如何,只能识别最后一个被释放的键,并把该键值送入FIFORAM中。
N键循回方式:
一次按下任意个键均可被识别,按键值按扫描次序被送入FIFORAM中。
(2)显示方式
8279的显示方式又可分为左端入口和右端入口方式。
显示数据只要写入显示RAM,则可由显示器显示出来,因此显示数据写入显示RAM的
顺序,决定了显示的次序。
图2-18279键盘显示模块结构图
2.4.28259A主要功能
8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。
单个的8259A能管理8级向量优先级中断。
在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。
8259A有多种工作方式,能用于各种系统。
各种工作方式的设定是在初始化时通过软件进行的。
在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态。
8259A的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259A的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
OCW1-OCW3各命令字格,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259A内部寄存器的读出命令。
图2-28259内部结构和引脚
2.4.38253主要功能
Intel8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz)
8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。
输出锁存器的值是通过程序设置的。
输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU可以对此进行读操作。
顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用。
工作原理
8253具有3个独立的计数通道,采用减1计数方式。
在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。
当计数脉冲是已知周期的时钟信号时,计数就成为定时。
8253内部结构
8253芯片有24条引脚,封装在双列直插式陶瓷管壳内。
1.数据总线缓冲器 数据总线缓冲器与系统总线连接,8位双向,与CPU交换信息的通道。
这是8253与CPU之间的数据接口,它由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。
2.读/写控制 读/写控制分别连接系统的IOR#和IOW#,由CPU控制着访问8253的内部通道。
接收CPU送入的读/写控制信号,并完成对芯片内部各功能部件的控制功能,因此,它实际上是8253芯片内部的控制器。
A1A0:
端口选择信号,由CPU输入。
8253内部有3个独立的通道和一个控制字寄存器,它们构成8253芯片的4个端口,CPU可对3个通道进行读/写操作3对控制字寄存器进行写操作。
这4个端口地址由最低2位地址码A1A0来选择。
如表9.3.1所示。
3.通道选择
(1)CS#——片选信号,由CPU输入,低电平有效,通常由端口地址的高位地址译码形成。
(2)RD#、WR#——读/写控制命令,由CPU输入,低电平有效。
RD#效时,CPU读取由A1A0所选定的通道内计数器的内容。
WR#有效时,CPU将计数值写入各个通道的计数器中,或者是将方式控制字写入控制字寄存器中。
CPU对8253的读/写操作如表9.3.2所示。
4.计数通道0~2 每个计数通道内含1个16位的初值寄存器、减1计数器和1个16位的(输出)锁存器。
8253内部包含3个功能完全相同的通道,每个通道内部设有一个16位计数器,可进行二进制或十进制(BCD码)计数。
采用二进制计数时,最大计数值是FFFFH,采用BCD码计数时。
最大计数值是9999。
与此计数器相对应,每个通道内设有一个16位计数值锁存器。
必要时可用来锁存计数值。
当某通道用作计数器时,应将要求计数的次数预置到该通道的计数器中、被计数的事件应以脉冲方式从CLK端输入,每输入一个计数脉冲,计数器内容减“1”,待计数值计到“0”。
OUT端将有输出。
表示计数次数到。
当某个通道用作定时器时。
由CLK输入一定频率的时钟脉冲。
根据要求定时的时间长短确定所需的计数值。
并预置到计数器中,每输入一个时钟脉冲,计数器内容减“1”,待计数值计到“0”。
OUT将有输出,表示定时时间到。
允许从CLK输入的时钟频在1~2MHz范围内。
因此,任一通道作计数器用或作定时器用,其内部操作完全相同,区别仅在于前者是由计数脉冲进行减“1”计数。
而后者是内时钟脉冲进行减“1”计数。
作计数器时,要求计数的次数可直接作为计数器的初值预置到减“1”计数器中。
作定时器时,计数器的初值即定时系数应根据要求定时的时间进行如下运算才能得到:
定时系数=需要定时的时间/时钟脉冲周期
①设置通道:
向方式控制字寄存器端口写入方式选择控制字,用于确定要设置的通道及工作方式;
②计数/定时:
向通道写入计数值,启动计数操作;
③读取当前的计数值:
向指定通道读取当前计数器值时,8253将计数器值存入锁存器,从锁存器向外提供当前的计数器值,计数器则继续作计数操作。
④计数到:
当计数器减1为0时,通过引脚OUTi向外输出“到”的脉冲信号。
计数初值输入存放在初值寄存器中,计数开始或重装入时被复制到计数器中。
锁存器在非锁存状态,其值随计数器的变化而变化;一旦锁存了计数器的当前值,直到锁存器值被读取后才能解除锁存状态。
图2-38253内部结构框图和引脚图
2.4.4系统设计框图
图2-4系统框图
第三章详细设计
3.18279键盘显示模块
8279是一具有40条引脚的双列直插式芯片,8279的主要特征:
能同时控制键盘与显示器操作、扫描式键盘工作方式、有8B的FIFORAM(键盘)、可控制2个8位或1个16位LED数码显示器、有16B可左/右输入的显示RAM等。
外部引脚如下图所示:
图2-18279键盘显示模块结构图
3.1.18279内部结构
(1)I/O控制及数据缓冲器;
(2)控制与定时寄存器及定时控制;
(3)扫描计数器;
(4)键盘去抖动与控制及返回缓冲器;
(5)FIFORAM及状态寄存器;
(6)显示RAM、显示寄存器、显示地址寄存器。
3.1.28
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 课程设计 正文