计算机硬件技术实践报告1.docx
《计算机硬件技术实践报告1.docx》由会员分享,可在线阅读,更多相关《计算机硬件技术实践报告1.docx(10页珍藏版)》请在冰豆网上搜索。
![计算机硬件技术实践报告1.docx](https://file1.bdocx.com/fileroot1/2023-1/5/8e182852-1bc4-43d1-b131-21b5886ff175/8e182852-1bc4-43d1-b131-21b5886ff1751.gif)
计算机硬件技术实践报告1
计算机硬件技术实践报告
题目基于8086CPU设计三角波发生器
姓名
专业测控技术与仪器(电站)
班级
学号
上海电力学院自动化工程学院
目录
一、目的············································1
二、内容············································1
三、设计任务········································1
四、方案选择及原理··································1
五、所用器件········································1
主要器件简介····································2
六、原理图··········································4
七、软件设计思路····································4
八、流程图··········································5
九、程序代码········································6
十、设计中的难点····································6
十一、收获及体会····································7
十二、参考文献······································8
三角波发生器
一、目的
1、了解和掌握8086、8255及0832,等接口芯片和示波器的原理和功能;
2、能用这些接口芯片构建一个简单的系统控制对象,
3、掌握接口电路的综合设计与使用;
4、通过自己动手,进一步了解计算机工作原理,接口技术,提高计算机硬件,软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训练。
2、内容
利用D/A设计一个三角波发生器,可利用键盘改变其输出波形的幅值。
例如,可利用1-5这5个数字键改变其输出波形的幅值,当按下1-5数字键时使D/A输出幅值从1V增加到5V。
三、设计任务
1、选用8086和适当的存储器及接口芯片完成相应的功能。
2、画出详细的硬件连接图。
3、给出程序设计思路、画出软件流程图。
4、给出地址分配表。
5、给出所有程序清单并加上必要注释。
6、完成设计说明书(列出参考文献,所用器件型号)。
四、方案选择及原理
D/A转换器产生各种波形的原理:
利用D/A转换器输出的模拟量与输入数字量成正比关系这一特点,将D/A转换器作为微机输出接口,CPU通过程序向D/A转换器输出随时间呈现不同变化规律的数字量,则D/A转换器就可输出各种各样的模拟量,如方波、三角波、锯齿波、正弦波等。
五、所用器件
CPU8086、并行接口8255A、地址锁存器74LS273、0832等
主要器件简介
8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。
8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。
可寻址的内存空间为1MB。
地址锁存器74LS273是带清除端的八D触发器,只有清除端为高电平时才具有锁存功能,锁存控制端为11脚CLK,在上升沿锁存。
8086的ALE端输出的锁存控制信号必须经反相器后才能连到74LS273的CLK端,以满足CLK在上升沿锁存的要求。
DAC0832是CMOS工艺制造的8位单片D/A转换器,属于R-2RT型电阻网络的8位D/A转换器,建立时间150ms,为电流输出型,并且片内带输入数字锁存器。
DAC0832与89S52接成的是单缓冲方式,由于DAC0832是电流输出,而我们用的是模拟电压,在这种情况下,要将输出的电流转换成电压,转换电路接成同相电压输出形式。
引脚的功能定义如下:
1、DI0—DI7:
8位数字量输入信号。
2、CS:
输入寄存器的选择信号,低电平有效。
3、WRI、WR2:
前者为输入寄存器的“写”选通信号,低电平有效。
后者为DAC寄存器的“写”选通信号。
4、XFER:
数据转移控制信号,用来控制WR2信号,低电平有效。
5、IOUTI:
电流输出引角1端,此电流输出端为是“1”的各位权电流汇集输出端。
当DAC寄存器全为“1”时,此电流最大,当DAC寄存器全为“0”时,此电流为“0”。
6、IOUT2:
电流输出引角2端,此电流输出端是逻辑电平为“0”的各位输出电流之和。
在数值上,IOUT,+IOUT2=常数。
7、Rfb:
反馈信号输入端,芯片内已连接有反馈电阻。
8、VREF:
基准电压输入端,可在-10V—+10V范围内选择。
9、AGND、DGND:
模拟地和数字地,为了防止串扰,系统的模拟地应共接与一点,系统字地汇于一点,然后两地再共接与一点。
10、VCC:
工作电源,可在+5V—+15V间选择。
六、原理图
七、软件设计思路
1、硬件设计思路
一级输入按题意采用单缓冲方式,即经寄存器锁存,假设第一级有锁存,第二级直通,那么第二级的控制端
和
处于有效电平状态,使二级锁存寄存器一直处于打开状态,第二级寄存器具有锁存功能的条件是ILE,
,
都要满足有效电平时,第二级寄存器才开放,为减少控制线条数,是ALE一直处于高电平状态,控制
和
端,电路连接如原理图。
2、软件设计思路
首先单缓冲方式下,输出数据的指令仅需要一条输出指令即可。
原理图中,
端经与译码电路的输出端相连,器地址既是选中该0832芯片的片选信号,也是第一级寄存器打开的控制信号。
另外由于CPU的控制信号
与0832的写信号
相连,当执行OUT指令时,CPU的
写信号有效,与
信号一起打开第一级寄存器,输入数据被锁存。
八、流程图
主程序流程图
九、程序代码
io4=800H
codesegment
assumecs:
code
start:
movcx,256
moval,0
movdx,io4
loop1:
outdx,al
calldelay
incal
looploop1
movcx,256
moval,255
movdx,io4
loop2:
outdx,al
calldelay
decal
looploop2
jmpstart
delayproc
pushcx
movcx,125
loop$
popcx
ret
delayendp
codeends
endstart
十、设计中的难点
1、硬件
虽然是第二次接触proteus,在硬件接线方面遇到种种困难。
特别是总线的接法,因为以前没有接触过,完全无从下手。
但是经过老师实践课上的指导和自己的实践后最终掌握了总线的接法。
2、软件
软件设计基于我们这学期计算机硬件实验课上的键盘扫描程序。
整个系统中,通过本次综合设计,我们组分工负责不同的部分,实现不同的功能,并且将最近所学的内容复习了一遍,对课程内容的理解也有所加深。
本次实验的代码大部分来源于网络,但是我们对其中部分代码进行了修改,使其得到了优化。
并且认真把代码分析了一遍理解了每一步的设计思路和方法。
总的来说我们完成了本次综合设计全部内容。
希望以后可以有更多的机会,有更大的平台,提供给我起使我在短短的有限的大学生活中学习更多更有用的知识,收获更多实践性的技巧,可以为将来的工作打下良好的基础,可以为自己以后的未来铺下更好的台阶
十一、收获及体会
1、硬件设计总结:
硬件部分主要是设计原理图跟连接线路,这次主要是用到Proteus这个软件,这个软件之前没接触过,所以在下载下来以后第一件事就是上网看教程,看了两三个教程之后大概就明白了它的大体操作,开始自己动手绘图。
在绘图之前,根据需要实现的功能,选定要用到的元件,最后初步定下来一个图样,但是在实际绘图过程中发现太过复杂了,又重新制定了一个图样。
因为是第一次用这个软件,里面很多功能都不懂,经常点出很多不懂得文件,最后不得不重新设计,导致绘图时间大大增加。
在多次实践后我终于较为熟练的掌握里面的工具了,后面的绘图过程也就相对来说比较轻松,找出了自己绘制元件的时候有些麻烦,不过碰到不会的就上网XX或者问问同学,其实这个绘图过程还是挺有意思的。
线路图终于接好了,这里可以总结为三点:
第一,在绘图之前一定要先熟练掌握Proteus这个软件;第二,一点要把程序看懂,这样才可以合理布线路图;第三,在搜索元件的过程中可以大量的求助XX,里面有很多元件库表,这样可以大大缩短查找时间。
通过这段时间的学习,掌握了解了Proteus一些基本的操作以及仿真,相信对以后的学习生活都大有帮助。
2、软件设计总结:
这次课程设计中,最重点的部分应该属于软件部分。
刚刚学习了《计算机硬件技术》这门课程,一切都觉得那么新鲜。
自己一些想法,可以通过实践来实现。
软件设计之前,自己大概想好了大体的思路,但是程序需要严格的逻辑,严格的语法,有时按着自己的思路去写程序,却总是发现错误,或者程序不稳定,有时是达不到预期的效果。
理论和实践还是有着很多的差距。
这次课程设计中,收获最大的是如何确定一个程序的主线。
以前写程序,就是想到哪就写哪,写完以后,才发现,有一个小的功能已经无法实现。
如果要加入这个功能,却需要改动整个程序,导致程序的兼容性很差。
在这次设计中,我先确定了整个程序的主线。
输入密码,对比密码,密码正确或密码错误。
然后其他程序皆在这几个部分中实现。
程序的处理过程中遇到了许多难题,需要认真仔细地处理每一个步骤。
这样才能确保程序正确地运行。
经过一周的奋战,终于还是完成了整个程序的编写。
在设计程序的过程中,我不仅对以前学过的汇编语言进行了重温和查漏补缺,而且对程序整体的把握和细节的处理能力得到了很大的提高。
毕竟看程序和写程序是有很大区别的,只有实践才能真正将汇编语言学到家。
十二、参考文献
《计算机硬件技术》中国电力出版社程启明黄云峰著
《计算机硬件技术实践指导》中国电力出版社程启明黄云峰著