微型计算机技术课程设计.docx
- 文档编号:9372110
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:18
- 大小:1.36MB
微型计算机技术课程设计.docx
《微型计算机技术课程设计.docx》由会员分享,可在线阅读,更多相关《微型计算机技术课程设计.docx(18页珍藏版)》请在冰点文库上搜索。
微型计算机技术课程设计
微型计算机技术
课程设计
指导教师:
学生班级:
学生姓名:
学号:
班内序号:
课设日期:
2010年12月13日~2010年12月19日
目录
1.目的及内容………………………………………………………3
2.问题分析及设计思路……………………………………………3
3.电路设计功能说明………………………………………………4
4.硬件原理图及接口芯片的介绍…………………………………4
5.程序相关流程图…………………………………………………10
6.汇编源程序………………………………………………………11
7.课设难点、结果…………………………………………………13
8.课设总结…………………………………………………………15
1.目的及内容
1.设计目的:
1.通过本设计,学会综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制工作奠定一定的基础。
2.主要掌握接口芯片8253、8255A等可编程器件的使用,掌握译码器74LS138的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程:
分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。
2.设计内容:
1.功能要求
采用8253设计一个1s定时电路,将定时信号接到8255的PC口的某一位,编程查询该位的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。
按下Esc键结束程序。
2.设计所需器材与工具
①一块实验面包板(内含时钟信号1MHz或2MHz)。
②可编程芯片8253、8255A、74LS138、74LS245各一片。
74LS06两片,发光二极管8个。
排电阻一个。
③导线若干。
④示波器、万用表、常用工具等共用(从实验室现借现还)。
2.问题分析及设计思路
1.问题分析:
主要会遇到以下这些问题:
①8253设计定时电路怎么产生稳定的确定周期的脉冲和怎么接的问题,另外它输出的信号接到哪里?
8253和8255的A0A1和译码电路的输入输出口怎么接才能得到已确定的I/O端口地址?
②8255的工作方式的选取,控制引脚的连接,C口联络信号定义等
③各芯片的内部结构和外部引脚的功能及接线的问题.电路程序的编写问题等.
2.设计思路:
1.利用74LS138设计地址译码电路,8255A端口地址:
300H~303H,8253的端口地址:
304H~307H。
2.74LS245用于总线和8253、8255A之间的双向传输和隔离。
3.利用面包板上时钟(1MHz或2MHz)和8253设计一个1s定时电路,将定时信号接到8255的PC4,编程查询PC4的状态,若为低电平,则从8255A的PA口输出不同的值使和PA口相接的发光二极管依次变化,实现走马灯的效果。
按下Esc键结束程序。
4.每个74LS06中包含了6个非门,它的输入来自PA口的某一位,输出接到发光二极管的负极。
5.每个发光二极管的正极接排电阻的从2到9的一个引脚,排电阻的1脚接VCC(+5V)。
3.电路设计功能说明
74LS245数据总路线缓冲器是用于总线和8253、8255之间的双向传输和隔离,74LS06反向驱动器在本次课设中是将8255的PA口输出的数据经过它反向驱动8个发光二极管发光,74LS138用来设计地址译码电路,8255在经过初始化编程之后,处理器执行输入IN指令和输出OUT指令、对3个数据端口进行读写就可以实现处理器与外设间的数据交换,8253在本课设中用于产生一个1s定时信号,PC-BUS线连接电脑的CPU引脚,用于与外设进行数据交换和地址选择等作用.
4.硬件原理图及接口芯片的介绍
1.硬件原理图:
硬件原理图如下:
2.接口芯片介绍:
1).74LS245数据总路线缓冲器
74LS245的引脚和内部结构图如上.
其真值表如下:
74LS245是由8个双向缓冲器组合起来,控制端连接在一起而构成的8位双向三态缓冲器芯片.每个双向三态缓冲器由两个三态缓冲器构成,它有两个控制端,即输出允许控制端OE(低有效,用于控制数据的输出)和方向控制端DIR(用于控制数据驱动的方向),它用于隔离和缓冲.
本次课设中的74LS245是用于总线和8253、8255之间的双向传输和隔离.
2).74LS06反向驱动器
74LS06反向驱动器的内部引脚图如下:
74LS06反向驱动器是由6个非门构成,在本次课设中是将8255的PA口输出的数据经过它反向驱动8个发光二极管发光.74LS06反向驱动器是集电极开路(OC)输出,它的每个输出线需要通过电阻挂到高电平上.当8255的PA的某个口输出高电平时,经反相为低电平接到发光二极管Li负极,发光二极管正极接着高电平.这样,二极管形成导通电流,发光二极管Li将点亮.当PA的某个口输出低电平时,对应的发光二极管Li不会导通,将不会发光.
3)74LS138译码器
74LS138译码器的引脚图如下:
74LS138译码器是一种集成3位二进制(3-8线)译码器.A、B、C为二进制译码输入端,G0~G7为译码输出端(低电平有效).当G1=1、G2A+G2B=0时,译码器处于工作状态.74LS138译码器的输出端包含了输入端变量A,B,C组成的所有最小项的非.
本次课设74LS138用来设计地址译码电路,其中G0接8255片选口,G1接8253的片选引脚.8255A的端口地址是300H~303H,8253的端口地址是304H~307H.
译码电路的真值表如下:
4)8255A并行接口电路芯片
8255A并行接口电路芯片的引脚图如下:
8255的内部结构如下:
8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。
参见下表:
8255A并行接口电路芯片具有24条可编程输入输出引脚,分成A、B、C三个端口,每个端口8位,都可以编程设定为输入或输出端口.它共有3种工作方式:
基本输入输出方式、选通输入输出方式和双向选通传送方式.
8255A的初始化编程比较简单,只需要一个方式控制字就可以把3个端口设置完成(把方式控制字送到控制端口的地址).对控制字的写入要采用控制I/O地址:
A1A0=11(即控制端口).外设数据的读写利用端口A、B、C的I/O地址:
A1A0依次等于00、01和10(本课设中用到的译码电路产生的对应的PC机I/O地址为300H、301H、302H)。
初始化编程之后,处理器执行输入IN指令和输出OUT指令、对3个数据端口进行读写就可以实现处理器与外设间的数据交换.
在本次课设中8255A主要用到了PA口和D0~D7口,几个控制端口以及PC4口.8255AC口联络信号定义如下:
5)定时/计数器8253
定时/计数器8253的内部结构图和引脚图如下所示:
8253是可编程间隔定时器,有3个独立的16位减法计数器通道,每个计数器有6种工作方式(由处理器写入的方式控制字确定).8253芯片面向处理器连接的引脚类似于处理器的数据、地址和控制信号.8253内部通过数据总线缓冲器引出8位数据引脚D7~D0,与系统数据总线相连,用于接收处理器的控制字(保存于控制字寄存器中)和计数初值,以及发送计数器的当前计数值和工作状态.
8253内部的读写控制逻辑接收来自系统总线的读写控制信号,控制整个芯片的工作.PC机主板I/O地址译码电路译码输出Y1与8253片选信号连接,系统地址总线A1和A0与8253芯片对应的地址引脚A1和A0连接,这样得到定时器的4个I/O地址304H~307H.
8253的初始化需要首先写入方式控制字,再写入计数初值.对于计数器的工作方式2和工作方式3,计数值减为0后自动将预置寄存器的计数初值送到减1计数器,同时重复下一次的计数过程,直到写入新的方式控制字才停止.这一特点使得8253在本课设中用于产生一个1s定时信号(OUT2接PC4).
另外,8253工作于方式3时,应给的计数初值N=时钟频率/输出频率,假设N=2500,如果是用二进制计数则N=09C4H,如果用BCD码计数则N=2500H.
5.程序相关流程图
程序的主要流程图如下:
6.汇编源程序
DATASEGMENT;数据段
MESG1DB'1sinvokeinterruptonetime,andtolightoneofLEDs',0ah,0dh
DB'ExitwithEsc',0ah,0dh,'$'
LEDDATADB01H,02H,04H,08H,10H,20H,40H,80H;
DATAENDS
CODESEGMENT;代码段
ASSUMECS:
CODE,DS:
DATA
DELAYPROC;延时程序
PUSHCX;CX入栈
PUSHBX
MOVBX,01FFFH
LOOP2:
MOVCX,0FFFFH
LOOP1:
LOOPLOOP1;循环执行LOOP1直到CX为0
DECBX;BX减1
JNZLOOP2;不等于0就跳转到LOOP2
POPBX;BX出栈
POPCX;CX出栈
RET;返回
DELAYENDP
START:
MOVAX,DATA
MOVDS,AX
MOVAH,09H
MOVDX,OFFSETMESG1
INT21h;显示提示信息
MOVDX,303H;初始化8255,303H为写控制字的端口地址
MOVAL,89H;10001001写入方式控制字方式0A端口输出C端口输入
OUTDX,AL
MOVDX,300H;8255的A端口的地址
MOVAL,000H
OUTDX,AL;LED灯全熄灭
MOVDX,307H;8253定时1S,307H为8253写控制字的I/O地址
MOVAL,01110110B;以下几句是初始化8253
OUTDX,AL
MOVDX,305H;305H为计数器1的I/O地址
MOVAL,0E8H;分两次依次先低后高写入计数器1的计数初值1000
OUTDX,AL
MOVAL,03H
OUTDX,AL
MOVDX,307H;再给8253写控制字
MOVAL,10110110B;确定计数器、读写格式、工作方式和数制
OUTDX,AL
MOVDX,306H;306H为8253的计数器2的I/O地址
MOVAL,0E8H;分高低位给1000为计数初值
OUTDX,AL
MOVAL,03H
OUTDX,AL
MOVCX,0
L1:
MOVAH,0BH;检查是否有Esc键按下
INT21H
INCAL
JNZLP;若无键按下,则程序往下执行
MOVAH,08H;如有Esc键按下,则程序退出
INT21H
CMPAL,27
JZEXIT
LP:
MOVDX,302H;302H为8255A的C口I/O地址
INAL,DX
TESTAL,10H;看PC4位是否为0,
JNZLP
MOVSI,OFFSETLEDDATA
ADDSI,cx
MOVAL,[SI]
MOVDX,300H
OUTDX,AL
CALLDELAY;点亮LED
INCCX
CMPCX,08H
JEL0
JMPL1
L0:
MOVCX,00H;
jmpL1
IRET
EXIT:
MOVAX,4C00H;程序退出
INT21H
CODEENDS
ENDSTART
7.课设难点、结果
1)课设难点:
本次课设难点主要在三个方面:
①电路图,②动手连接电路并调试成功,③程序的编写.
首先说电路图.因为电路图的连接需要对这几个芯片的引脚、功能、工作方式的选择等非常的熟悉,并且要有proteus画电路的经验.否则,光画电路图就是一个比较大的工作量:
不仅要熟悉这还要熟悉那,最重要是会使用,而不是光懂书上讲的内容.
其次,电路图画好之后,连电路也是一个考验耐性的事.本来课设的这几天气温就不高,同学们的手多少赶不上夏天时候那样灵巧,再加上剪线连线一般都需要好几个小时(我的连线就用了五六个小时),所以很容易让人产生不耐烦的情绪.而且面包板上电路图连线连上后还得通电跑程序,万一几个灯没有按照程序预定的方式点亮,那就意味着线可能要重新连了.我身边就有这样连了几遍才成功的同学.
再次,就是程序的编写了.因为如果从头开始写程序,我觉得比较难,而且也没几个人会把它做出来.幸好老师提到之前做过的实验中的一个思考题可供参考.这样一来,难度也就下降了许多.不过我还是参照了别人的程序,因为我怕弄错了自己也不知道.所以我觉得程序也是有一定难度的.
2)结果见下列照片:
8.课设总结
由于学本课程以前从没有学过关于汇编语言的知识,因而在最开始学的时候感觉有难度.当知道要做课程设计的时候心里面感觉有些害怕和担心,担心自己在汇编程序这块不会或者做不好,但是当真的要做的时候也只好硬着头皮上了.在这上面,我想很多同学都会和我有一样的感受.不过当东西做出来的时候,心里面的感觉真的很好。
毕竟是我们自己亲手一点一点连线连出来的,很有成就感.我想微机原理与接口技术课程设计和其他课程设计有共同的地方,那就是不仅加深和巩固了我们的课本知识,而且增强了我们自己动脑、动手的能力。
这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理与接口技术课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识.本次课程设计的实验相对比较简单,而且经过老师的讲解以及以前实验PPT上的参考,几乎把我们要用到的程序和实验电路的接线方法都告诉我们了,所以做起来比较容易。
说实话,我觉得我们上课光用那本教材感觉不行,它缺少了很多东西,那本教材根本不能让我们学的细致.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 技术 课程设计