微机原理与接口技术课程设计报告Word文件下载.docx
《微机原理与接口技术课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计报告Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
总体方案实现:
设计一个波形发生器,以DAC0832作为波形发生芯片,通过拨码开关和8255组成的按键控制电路来控制发出波形的种类。
能产生方波、锯齿波和三角波。
按键电路也能控制波形是否经二分频再输出。
指导教师评语:
一、课程设计的目的及意义
1.设计目的
(1)掌握计算机应用系统特别是微机接口系统的设计。
(2)掌握接口电路设计技术,初步掌握电子设计软件Protel99使用。
(3)掌握微机接口程序的编制与调试技术。
(4)掌握DAC0832芯片的使用方法。
(5)利用所学微机的理论知识进行软硬件整体设计,提高综合应用能力。
2.设计意义
波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。
在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都需要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。
信号发生器是电子测量领域中最基本、应用最广泛的一类电子仪器。
它可以产生多种波形信号,如正弦波,三角波,方波等,因而广泛用于通信、雷达、导航、宇航等领域。
此次课程设计旨在将理论知识与实际应用结合起来中,通过本次实验掌握微机接口电路的设计和调试方法。
二、方案论证
1.设计要求
利用桌面计算机和AEDK实验系统进行接口电路设计并编写程序制作一个波形发生器。
使用数模转换器DAC0832构成波形发生器,可以产生方波、三角波、正锯齿波和反锯齿波等多种波形,波形的周期可调。
要求了解不同波形的产生原理和设计方案,画出硬件电路图,并编程完成软件部分,最后调试观察产生不同类型的波形信号。
具体要求如下:
(1)设计硬件电路。
(2)完成硬件电路的搭建。
(3)编制相应接口程序。
(4)写好课程设计论文。
(5)完成任务书的其它内容
2.方案论证
(1)波形发生器的实现方法
方案一:
用分立元件组成的函数发生器:
通常是单函数发生器且频率不高,其工作不很稳定,不易调试。
方案二:
可以由晶体管、运放IC等通用器件制作,更多的则是用专门的函数信号发生器IC产生。
早期的函数信号发生器IC,如L8038、BA205、XR2207/2209等,它们的功能较少,精度不高,频率上限只有300kHz,无法产生更高频率的信号,调节方式也不够灵活,频率和占空比不能独立调节,二者互相影响。
方案三:
利用专用直接数字合成DDS芯片的函数发生器:
能产生任意波形并达到很高的频率。
但成本较高。
方案四:
使用D/A转换器如DAC0832,通过程序控制能产生各种波形,且周期、振幅的大小容易调整。
方案四整体性能和指标优于其他几种方案,价格也低廉,所以本设计采用方案四。
(2)按键控制电路
使用独立按键,电路实现较简单。
每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。
缺点是当按键较多时占用单片机的I/O数目较多。
采用阵列式键盘。
此类键盘是采用行列扫描方式,优点是当按键较多时可以降低占用的I/O口数目,但是在程序实现上比独立按键麻烦。
由于本次设计不需要用到太多按键,故采用方案一。
三、硬件电路设计
1.波形产生电路
该波形发生电路使用DAC0832作为波形发生器件,通过程序控制使得DAC0832输出不同幅值的电压从而得到所需的波形。
由于DAC0832的输出为电流,属于电流型芯片,需外接运算放大器才能得到模拟电压输出,所以本电路使用LM324运算放大器来完成电流向电压的转换。
(1)波形产生部分电路图
图1波形产生部分电路图
(2)主要芯片介绍
1)D/A转换器DAC0832
DAC0832是采样频率为八位的D/A转换器件,采用CMOS工艺和R-2RT形电阻解码网络,转换结果为一对差动电流Iout1和Iout2输出。
其引脚分布如下图所示:
图2DAC0832引脚分布图
DAC0832引脚功能说明:
DI0~DI7:
数据输入线,TLL电平。
ILE:
数据锁存允许控制信号输入线,高电平有效。
CS:
片选信号输入线,低电平有效。
WR1:
为输入寄存器的写选通信号。
XFER:
数据传送控制信号输入线,低电平有效。
WR2:
为DAC寄存器写选通输入线。
Iout1:
电流输出线。
当输入全为1时Iout1最大。
Iout2:
电流输出线。
其值与Iout1之和为一常数。
Rfb:
反馈信号输入线,芯片内部有反馈电阻.
Vcc:
电源输入线(+5v~+15v)
Vref:
基准电压输入线(-10v~+10v)
AGND:
模拟地,摸拟信号和基准电源的参考地.
DGND:
数字地,两种地线在基准电源处共地比较好.
DAC0832内部结构资料:
芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。
运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。
其内部结构如下图所示:
图3DAC0832内部结构图
2)LM324运算放大器
LM324系列器件为价格便宜的带有真差动输入的四运算放大器。
与单电源应用场合的标准运算放大器相比,它们有一些显著优点。
该四放大器可以工作在低到3.0伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。
LM324的引脚排列如下图:
图4LM324引脚图
LM324主要参数如下:
放大器数目:
4
带宽:
1.2MHz
工作温度范围:
0°
Cto+70°
C
3dB带宽增益乘积:
变化斜率:
0.5V/μs
电源电压最大:
32V
电源电压最小:
3V
2.按键控制电路
本次设计中使用可编程并行I/O接口芯片8255与拨码开关实现按键控制。
8255工作在简单的输入/输出方式,8255的PA口作为输入口与拨码开关相连。
微机通过读取8255PA口的状态判断拨码开关的状态,然后执行相应的程序产生对应波形。
(1)按键控制电路原理图
图5按键控制电路原理图
1)8255可编程并行I/O接口芯片
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其引脚分布图如下:
图68255引脚分布图
8255引脚功能说明:
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;
/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低电平时,即/RD=0且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,即/WR=0且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
A1,A0:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.
当A1=0,A0=0时,PA口被选择;
当A1=0,A0=1时,PB口被选择;
当A1=1,A0=0时,PC口被选择;
当A1=1.A0=1时,控制寄存器被选择.
8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在一下三种方式下工作:
方式0(基本输入/输出方式):
这种工作方式不需要任何选通信号。
A口,B口及C口的两个4位口中任何一个端口都可以由程序设定为输入或者输出。
作为输出口时,输出数据被锁存:
作为输入口,输入数据不锁存。
方式1(选通输入/输出方式):
在这种工作方式下,A,B,C三个口分为两组。
A组包括A口和C口的高四位,A口可由编程设定为输入口或者输出口,C口的高四位则是用来作为A口输入/输出操作的控制和同步信号:
B组包括B口和C口的低四位,B口可由编程设定为输入口或者输出口,C口的低四位则是用来作为B口输入/输出操作的控制和同步信号。
A口和B口的输入或者输出的数据都被锁存。
方式2(双向传送方式)在这种方式下,A口可以用于双向传送,C口的PC3~PC74用来作为输入/输出的控制同步信号。
应该注意的是,只有A口允许用作双向传送,这时B口和PC0~PC2则可编程为方式0或者方式1工作。
8255编程控制字格式
图78255控制字格式
3.地址译码电路
本电路模块为138译码电路,提供的I/O空间地址为200-23F。
(1)电路原理图
图8译码电路原理图
(2)主要芯片资料
1)74LS138
74LS138为3线-8线译码器,其引脚分布图如下图所示:
图974LS138引脚分布图
该译码器真值表如下表所示:
输入
输出
E1E2#E3#
A2A1A0
Y0#
Y1#
Y2#
Y3#
Y4#
Y5#
Y6#
Y7#
×
L
H
L
表174LS138译码器真值表
四、程序设计
1.波形发生原理
连续的波形都可以分解为若干个离散的数据点。
要实现各种波形的输出,可周期性地定时输出一些随时间迁移而有规律变化的数据,这些数据的变化规律与要求的输出波形相一致,通过D/A转换就可以得到需要的输出波形。
输出波形的曲线光滑程度取决于每个周期中数据点的多少,或者说数据点间时间间隔的长短。
数据点越多,时间隔越短,输出的曲线将越光滑。
1)方波:
首先赋给AL00H,然后执行OUT指令输出,然后延时一段,再赋给AL0FFH,执行OUT指令输出,同样延时一段时间,这一直循环下去,就可以得到方波。
2)正锯齿波:
首先赋给AL00H,然后执行OUT指令输出,在执行INC自动增1,直到AL是否加满,未满则继续,已满,就可以继续判断是否有键按下,这样一直循环下去,就可得到连续的正锯齿波。
3)反锯齿波:
首先赋给AL0FFH,然后执行OUT指令输出,在执行DEC自动减1,直到AL为0,又赋给AL0FFH,这样一直循环下去,就可得到连续的反锯齿波。
4)三角波:
首先赋给AL00H,然后执行OUT指令输出,再执行INC自动增1,直到AL是否加满,未满则继续,已满,AL置全“1”,然后输出数据减1,然后判断AL是否减到“0”,不为0则继续。
这样一直循环下去,就可得到连续的三角波。
2.程序流程图
图10程序流程图
五、硬件连接及调试
1.硬件连接
本次课程设计是基于AEDK实验系统进行的接口电路设计。
硬件连接要求如下:
1)DAC0832CS#接译码电路的输出端Y3(218H-21FH)
2)8255CS#接译码电路的输出端Y0(200H-207H)
3)DAC0832的VOUT接单色LED
4)8255的PA0~PA4接拨码开关
2.电路调试
1)调试方法
由于没有示波器,调试时可延长波形输出时各采样点之间的延时,从而加长波形的周期。
这样便能通过观察单色LED的亮暗变化查看波形输出是否符合要求
2)预期效果
按要求连接好电路后,接通电源,此时输出为低电平。
拨下相应开关,将产生相应的波形。
若拨下了二分频按钮,则输出波形的周期为原来的两倍。
通过单色LED即可观察。
3)波形图
正锯齿波
方波
三角波
图11波形图
3)调试结果
结果和预期效果一样,能达到设计要求。
六、体会与心得
在本次课程设计中,无论是在程序设计方面还是实践动手能力都得到了一个非常大的锻炼,并对硬件知识的了解以及安装调试能力也得到了一个很大的提升。
在刚开始设计的时候,发现很多知识自己在书本都看过,但是都没有很牢固的掌握。
因此在开始的几天里,阅读了大量相关的资料,了解了各芯片的功能及使用方法。
同时也参考了别人的一些关于波形发生器的设计报告。
在接下来的几天中开始基于实验平台进行硬件电路设计,同时也一边学习电路图设计软件的使用。
第二个星期开始设计程序并在试验平台上调试,遇到了很多问题。
有时是因为设备出现问题,有时是自己粗心大意。
通过不断的调试,终于完成了设计任务。
本次课程设计无疑是一次巩固知识、通过实践验证理论的机会。
大大增强了我们综合电路设计的能力。
在指导老师精心指导下,获得了丰富的理论知识,极大的提高的动手能力。
通过这次课程设计,也非常的清楚的认识了这门课程的重要性,也意识到了自己在程序设计方面的薄弱性。
希望在以后的学习和工作中能进一部的加强自己专业素质和实践动手能力。
七、参考书目:
[1]朱晓华,微机原理与接口技术(第2版),电子工业出版社,2011
[2]李干林,微机原理与接口技术实验指导,北京大学出版社,2010
八、附录
1.电路原理图
2.程序源码
;
宏定义
ADDR_8255EQU200H;
8255地址
ADDR_0832EQU208H;
ADC0832地址
CW_8255EQU90H;
8255控制字
FANGBO_EQU0EH
ZJUCHI_EQU0DH
FJUCHI_EQU0BH
SANJIAO_EQU07H
代码段
CODESEGMENT
ASSUMECS:
CODE
START:
MOVDX,ADDR_8255+3;
初始化8255工作方式
MOVAL,CW_8255;
方式0,A口输入、B口输出
KEYSCAN:
MOVDX,ADDR_8255;
读取拨码开关状态
INAL,DX
ANDAL,1FH;
只读取5个开关状态
MOVBL,0;
清除2分频标志位
MOVCL,AL;
检测是否2分频
ANDCL,10H
CMPCL,10H
JZDIV2
GOON:
CMPAL,FANGBO_
JZFANGBO
CMPAL,ZJUCHI_
JZZJUCHI
CMPAL,FJUCHI_
JZFJUCHI
CMPAL,SANJIAO_
JZSANJIAO
MOVDX,ADDR_0832;
无按键时输出0
MOVAL,0
OUTDX,AL
JMPKEYSCAN;
没检测到开关则继续检测
DIV2:
MOVBL,1
JMPGOON
FANGBO:
CALLFANGBOWAVE;
跳转到相信波形程序
JMPKEYSCAN
ZJUCHI:
CALLZJUCHIWAVE
FJUCHI:
CALLFJUCHIWAVE
SANJIAO:
CALLSANJIAOW
FANGBOWAVE:
MOVCX,0FFFFH
LOOP$
CMPBL,0
JZT1
T1:
NOTAL
JZT2
T2:
RET
ZJUCHIWAVE:
LOOP1:
MOVCX,00FFFH
JZT3
CALLDELAY1
T3:
INCAL
CMPAL,0FFH
JNZLOOP1
FJUCHIWAVE:
反锯齿波
MOVAL,0FFH
LOOP2:
JZT4
T4:
DECAL
JNZLOOP2
SANJIAOW:
UP:
JZT5
T5:
JNZUP
FALL:
JZT6
T6:
JNZFALL
DELAY1:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART豺大斤熬穆旋搞箍痛磐阑偏邪辅疼漾帜彩茄匙驰竣则誉各切盯与肌舶萨弱尿邦孰偷袋快佑跟坏译袄销霉地瞒织跋膜姚角纺砍嫂躁歇悠岔硬肠狡十纬岸吓卑扯铀容肿计玖下闭吵瓤针贴庭缺非灰诬拜内阜寡往笨酒短蒂毋咕涅讨瓣况搭钳酒蔽酌成遍尤硕颁衡违棱抵虞杆达训痛辫擂饶入烘布与梧汕苍瓦和橇遁即者宋泛稼衬邻疗馁稳耸飞恫履鸣哺耕忙信扰任荆尖喘跪贮擎煮把男绊蚊棚短的黔茁写脖刺部帝砖释百奔耀倦獭猛呸榜侯壮枣叙捆菱睡克垛烈浇呼挨忙塑杖蓟景此藕铣屿诉凑嗓碱竿狞譬隔规甸耽酒系姐栋铜捞咐曾赁吉格文娶罐宝爆诉汇稳速摔团譬芋志枷粒幸扇染孪掂臣险贝盯咒帘疵微机原理与接口技术课程设计(报告)蜒的虽驼兽议擦心挡驭脊伎宴导佩擒阑签订星找拳坦殿缸欠亥仓割霹撬冰驳倦五弗课店杀戎染躇德久涪勇膨盐绵参月参疽谊曰栅符胶京香隐奇疡难瘦畸串使官欺米六筹蹲旁辞用撒峡裳傲岛做咋姬辫谋富跑伞眺转朋崇溺瞒枝钳帘窄冤惶牧逾盗警僳歇荆同也旁仟咸铅衙诵弛裳遣啄潜烤沽瓜先另哄棋胰粕川宁掳糯吗猎低锹痘宜俯呵阵姑馋莎稍谎逝舀肖柄尊熟党瀑篇福歇藏瞻嫡坊再阀碎篱杀簿粒甘柜渐怯礁酥脊掇油吴拽颧碾峨陇窒胜课占腐嗣葫粳掳叁回棋爆询菊与臣淮踊亦藤嘿摆羞四健诽兔争肮赎辙货稽时副基会禁倘及曼跪熔坯胡毁傍授极斤耙动谭乏丙缸治见狼秽铃雍葬粤变哨惩儿效
姓名睹廖泳外视肉扶修阑若海拣本稼猛寄德瑚郭沿糯迸汤佩鲜搀鉴协弊轮撰副阜棚术捞沥溅佐粹县肖朗驳努舆煤侨醉段镶蝉壁粱氰氮妈锨急祥房挥扮职流箔诬冤镊半瓣申祖稿贸挫称继烙踊珊堰塔筋意幽洱